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
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}")
Beispiel-Setup mit MySQL 5.7 auf Ubuntu 16.04.
/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
/etc/apparmor.d/usr.sbin.mysqld
: # Allow data dir access /var/lib/mysql/ r, /var/lib/mysql/** rwk, /srv/mysql/ r, /srv/mysql/** rwk,
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>';
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/
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
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>
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