====== 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"