Inhaltsverzeichnis
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
- seafevents.conf
[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:
- .env
TIME_ZONE=UTC SEAFILE_SERVER_PROTOCOL=https SEAFILE_SERVER_HOSTNAME=seafile.example.com JWT_PRIVATE_KEY=<Erzeuge hier eine Zeichenketter der Länge 40> SEAFILE_MYSQL_DB_HOST=127.0.0.1 SEAFILE_MYSQL_DB_PORT=3306 SEAFILE_MYSQL_DB_USER=seafile SEAFILE_MYSQL_DB_PASSWORD=<Kennwort hier eingeben> SEAFILE_MYSQL_DB_CCNET_DB_NAME="ccnet-db" SEAFILE_MYSQL_DB_SEAFILE_DB_NAME="seafile-db" SEAFILE_MYSQL_DB_SEAHUB_DB_NAME="seahub-db"
