====== Seafile ====== ===== Installation ===== Um den Datenbereich später leicht erweitern zu können, empfiehlt es sich für Seafile eine dedizierte Platte zu verwenden. Abhängigkeiten installieren, es wird absichtlich aus Sicherheitsgründen kein sudo installiert. Als Alternative wird ''start-stop-daemon'' verwendet. Memcached ist optional. apt-get install apache2 mariadb-server memcached Python-Abhängigkeiten (TODO noch nicht vollständig verifiziert) apt-get install python3-setuptools python3-pip apt-get install python3-pillow python3-jinja2 python3-pylibmc python3-ldap python3-lxml python3-memcache python3-wheel pip3 install --timeout=3600 captcha sqlalchemy==1.4.3 django-pylibmc django-simple-captcha Falls die Versionen nicht passen und etwas neu gebaut werden muß, ''python3-dev'' installieren. Vorarbeiten adduser --system --group --uid 500 --disabled-password --gecos 'Seafile server' \ --home /srv/seafile seafile chmod 750 /srv/seafile cd /srv/seafile wget seafile-server_8.0.7_x86-64.tar.gz tar xzf seafile-server_8.0.7_x86-64.tar.gz mkdir installed mv seafile-server_* installed cd /srv/seafile/seafile-server-8.0.7 Bein nachfolgenden Skript kommt die Nachfrage nach dem Root-Kennwort für den Mysql-Server. Es kann ein belibiges Kennwort eingegeben werden falls der root-Benutzer das unix_socket plugin benutzt. ./setup-seafile-mysql.sh Die Berechtigungen stimmen nach einer Installation leider nicht. Die minimal erforderlichen werden im Folgenden gesetzt; chmod 750 /srv/seafile/conf chgrp -R seafile /srv/seafile/conf chmod 640 /srv/seafile/conf/seahub_settings.py chown -R seafile: /srv/seafile/seafile-data chown seafile: /srv/seafile/seafile-server-latest/runtime Die Standardinstallation ist auf der Projektseite relativ gut erklärt. Hier sind die nachfolgenden, vermutlich sinnvollen Schritte aufgeführt. * Manueller Start, initial durchführen export LC_ALL=de_DE.UTF-8 start-stop-daemon --start --chuid seafile --exec /srv/seafile/seafile-server-latest/seafile.sh -- start start-stop-daemon --start --chuid seafile --exec /srv/seafile/seafile-server-latest/seahub.sh -- start * Beim ersten Start wird nach dem administrativen Benutzer gefragt. Kommt die Frage nicht, ist etwas schieflelaufen * Init-Script benutzen ''/etc/init.d/seafile-server'' * Sorgt dafür, daß der Server unter einem eingeschränkten Benutzer (z.B. //seafile//) läuft. * Apache mit SSL als Proxy verwenden a2enmod rewrite a2enmod proxy_fcgi a2enmod proxy_http * ''LOGO_PATH'' ? Sicherheit: Seahub nur auf localhost laufen lassen. Ab Version 9 ist das bei einer Neuinstallation anscheinend voreingestellt und die folgende Anpassung ist überflüssig. Dazu die Datei ''seahub.sh'' anpassen: $PYTHON $gunicorn_exe seahub.wsgi:application -c "${gunicorn_conf}" -b "127.0.0.1:${port}" --preload ==== MySQL Datenbank ==== Falls von SQLite zu MySQL migriert wird, muß ggf. ein Datenbankbenutzer angelegt werden: CREATE USER 'seafile'@'localhost' IDENTIFIED BY '********'; GRANT ALL PRIVILEGES ON `ccnet\-db`.* to 'seafile'@'localhost'; GRANT ALL PRIVILEGES ON `seafile\-db`.* to 'seafile'@'localhost'; GRANT ALL PRIVILEGES ON `seahub\-db`.* to 'seafile'@'localhost'; ==== Libreoffice / PDF ==== apt-get install libreoffice libreoffice-script-provider-python poppler-utils [OFFICE CONVERTER] enabled = true TODO [[LibreOffice Online]] ===== Upgrade ===== ==== Maintenance Upgrade ==== z.B. 6.0.5 -> 6.0.7 - Neue Version herunterladen cd /srv/seafile wget https://download.seadrive.org/seafile-server_6.0.7_x86-64.tar.gz - Archiv auspacken tar xzf seafile-server_6.0.7_x86-64.tar.gz - Server stoppen /etc/init.d/seafile-server stop - in neu erstelltes Verzeichnis wechseln - Minor-Upgrade Script laufen lassen upgrade/minor-upgrade.sh - Server wieder starten /etc/init.d/seafile-server start ==== Minor Upgrade ==== z.B. 7.0.5 -> 7.1.5 - Neue Version herunterladen cd /srv/seafile wget https://download.seadrive.org/seafile-server_7.1.5_x86-64.tar.gz - Archiv auspacken tar xzf seafile-server_7.1.5_x86-64.tar.gz - Server stoppen /etc/init.d/seafile-server stop - in das neue Verzeichnis wechseln und das Upgrade-Script laufenlassen cd seafile-server-7.1.5 upgrade/minor-upgrade.sh - Server wieder starten /etc/init.d/seafile-server start ==== Major Version Upgrade ==== Die Versionen 11 und insbesondere 12 benötigen gesonderte Konfigurationsänderungen und ggf. zusätzliche Pakete. Z.B. von 8 -> 9 - Neue Version herunterladen cd /srv/seafile wget https://download.seadrive.org/seafile-server_9.0.10_x86-64.tar.gz - Archiv auspacken tar xzf seafile-server_9.0.10_x86-64.tar.gz - Server stoppen /etc/init.d/seafile-server stop - Update durchführen cd seafile-server-9.0.10 upgrade/upgrade_8.0_9.0.sh - optional: Memcached neu starten - Server wieder starten /etc/init.d/seafile-server start - verschiebe das Installationspaket nach ''installed'' === Version 12 === Die nachfolgende Aufstellung ist ggf. nicht vollständig! Pakete nachinstallieren über die Paketverwaltung apt-get install python3-jwt python3-pycryptodome python3-gunicorn python3-qrcode\ python3-cffi python3-openpyxl python3-bleach python3-requests-oauthlib Zusätzlich muß mit ''pip3'' nachinstalliert werden: * sqlalchemy * pytz Die Konfigurationsdatei ''ccnet.conf'' wird nicht mehr genutzt und kann somit gelöscht werden. Des weiteren muß eine neue Konfigurationsdatei ''.env'' im Konfigurationsverzeichnis angelegt werden. Beispielhafter Inhalt: TIME_ZONE=UTC SEAFILE_SERVER_PROTOCOL=https SEAFILE_SERVER_HOSTNAME=seafile.example.com JWT_PRIVATE_KEY= SEAFILE_MYSQL_DB_HOST=127.0.0.1 SEAFILE_MYSQL_DB_PORT=3306 SEAFILE_MYSQL_DB_USER=seafile SEAFILE_MYSQL_DB_PASSWORD= SEAFILE_MYSQL_DB_CCNET_DB_NAME="ccnet-db" SEAFILE_MYSQL_DB_SEAFILE_DB_NAME="seafile-db" SEAFILE_MYSQL_DB_SEAHUB_DB_NAME="seahub-db"