Confluence Wiki
Confluence ist ein kommerzielles (proprietäres) Wiki vom Hersteller Atlassian. Es bietet viele Funktionen auch aus anderen Bereichen, basiert auf Java und braucht damit einen leistungsfähigen Server oder man nimmt die Cloud-Variante.
Der Leistungsumfang übertrifft die meisten anderen Wiki-Lösungen, Rechte sind vielfältig Anpassbar gerade in Zusammenhang mit Verzeichnisdiensten die auch über das hauseigene crowd angebunden oder ersetzt werden können.
Plugins von Drittherstellern sind in breiter Anzahl vorhanden, das Angebot von Template-plugins ist etwas begrenzt.
Atlassian-cloud-strategie
Features
- Funktionen eines DMS, auch Attachments werden indiziert
- Export in PDF/ Word
- Blog-Funktionen
- detaillierte Rechtvergabe durch Gruppen und Benutzer
- WebDAV Funktionen
- eMail Integration (verschickt Benachrichtigungen, Archiv)
Links
Backup
- Fallweise kann der Backup-Job gestartet werden: Back Up Confluence
- Regelmäßig kann die Datenbank und das Datenverzeichnis gesichert werden.
Backup-skript zur Sicherung (PDF-Export) von Seitenbäumen:
#!/bin/bash PARENT_DIR=$(dirname $(realpath ${0})) C_URL="https://FQDN.of.my.wiki" RS_HUB=${C_URL}/display/PROJ/SITE-TREE C_USER='backup-user' C_PASS='backup-pass' DOWNLOAD_DIR=${PARENT_DIR}/rescue_sheets function get_link_list() { local URL="${1}" local LINKTYPE="${2}" local SITE_CONTENT=`curl -s --cookie-jar /tmp/wiki-dl.cookie -u $C_USER:$C_PASS $URL` while read -r OLINE; do echo ${OLINE} done < <(echo ${SITE_CONTENT} | grep -o -E 'href="([^"#]+)"' | grep "${LINKTYPE}" | grep -vi includes | cut -d'"' -f2) } function get_page_title() { local URL="${1}" local TITLE=$(curl -s -b /tmp/wiki-dl.cookie $URL | awk 'BEGIN{IGNORECASE=1;FS="<title>|</title>";RS=EOF} {print $2}') echo ${TITLE} } [[ ! -d ${DOWNLOAD_DIR} ]] && mkdir ${DOWNLOAD_DIR} RS_LIST=$(get_link_list ${RS_HUB} "/display/PROJ/") while read -r SHEET; do SHEET_URL=${C_URL}${SHEET} SHEET_EXPORT_LINK=$(get_link_list ${SHEET_URL} pdfpageexport) SHEET_TITLE=$(get_page_title ${SHEET_URL}) echo "Downloading current version of '${SHEET_TITLE}' ($SHEET_URL)" curl -b /tmp/wiki-dl.cookie -s -o "${DOWNLOAD_DIR}/${SHEET_TITLE}.pdf" -L -J ${C_URL}${SHEET_EXPORT_LINK} done < <(echo "${RS_LIST}")
Installation
Beispiel-Setup mit MySQL 5.7 auf Ubuntu 16.04.
- MySQL konfigurieren:
/etc/mysql/mysql.conf.d/mysqld.cnf
character-set-server = utf8 collation-server = utf8_bin default-storage-engine = INNODB max_allowed_packet = 256M innodb_log_file_size = 2G transaction-isolation = READ-COMMITTED # binlog_format = row
- Für den Fall das /var/lib/mysql verlegt wurde (per symlink) muss wg. AppArmor die Regeln angepasst werden
/etc/apparmor.d/usr.sbin.mysqld
:# Allow data dir access /var/lib/mysql/ r, /var/lib/mysql/** rwk, /srv/mysql/ r, /srv/mysql/** rwk,
- Datenbank anlegen
mysql -u root -p
CREATE DATABASE <database-name> CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON <database-name>.* TO '<confluenceuser>'@'localhost' IDENTIFIED BY '<password>';
- Installer laufen lassen
- per Browser auf localhost:8080 Einstellungen vornehmen
- Dienst noch nicht starten, bei Oracle und MySQl muss vorher der passende jdbc-Treiber vorhanden sein (der ist nicht enthalten) https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.zip
unzip mysql-connector-java-5.1.44.zip cp mysql-connector-java-5.1.44/mysql-connector-java-5.1.44-bin.jar /srv/atlassian/confluence/confluence/WEB-INF/lib/
- den Service restarten und weiter per Browser
Konfiguration
RAM erhöhen
How to fix out of memory errors by increasing available memory
/srv/atlassian/confluence/bin/setenv.sh
Einstellung | Wirkung |
---|---|
-Xms2048m | mindestens benutzter heap-Speicher |
-Xmx3072m | maximal benutzter heap-Speicher |
CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:+UseG1GC ${CATALINA_OPTS}"
ändern zu
CATALINA_OPTS="-Xms2048m -Xmx3072m -XX:+UseG1GC ${CATALINA_OPTS}"
service confluence restart
SSL
Vorbereitung: Wir brauchen einen jks-keystore /PATH/TO/file.jks mit Passwort SECRET:
#!/bin/sh pem_cert=/srv/$domain.key pem_key=/srv/$domain.crt pem_chain=/srv/$domain.fullchain p12_file=/srv/$domain.p12 jks_file="/srv/atlassian/confluence-data/$domain.jks" keytool_path=/srv/atlassian/confluence/jre/bin/keytool confluence_user=confluence password="SECRET" umask 077 #letsencrypt certonly --rsa-key-size 3072 -d $domain #if [ $? -ne 0 ]; then # echo "Fehler aufgetreten bei letsencrypt" # exit 1 #fi echo "Bitte hier 2x Passwort $password eingeben:" cat $pem_key $pem_cert $pem_chain | openssl pkcs12 -export -out $p12_file # -> password eingeben if [ $? -ne 0 ]; then echo "Fehler aufgetreten bei p12-Konvertierung" exit 1 fi mv $jks_file $jks_file.old yes $password | $keytool_path -importkeystore -srckeystore $p12_file -srcstoretype pkcs12 -destkeystore $jks_file # -> Password eingeben if [ $? -ne 0 ]; then echo "Fehler aufgetreten bei jks-Erstellung" exit 1 fi chown $confluence_user $jks_file yes $password | $keytool_path -list -v -keystore $jks_file echo "neues jks erstellt: $jks_file" service confluence stop && service confluence start
SSL/TLS-Konnektor einrichten via /srv/atlassian/confluence/conf/server.xml
:
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" SSLEnabled="true" URIEncoding="UTF-8" keystorePass="SECRET" keystoreFile="$jks_file="/>
SSL erzwingen: /srv/atlassian/confluence/confluence/WEB-INF/web.xml
am Ende der Datei:
[...] <security-constraint> <web-resource-collection> <web-resource-name>Restricted URLs</web-resource-name> <url-pattern>/</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> </web-app>
Portumleitung auf Standardports
Fußzeile ändern
Einfach hinzufügen
How to edit the footer in Confluence Modify Confluence Interface Text
/srv/atlassian/confluence/confluence/WEB-INF/lib/confluence-6.5.0.jar