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.
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
/etc/init.d/seafile-servera2enmod 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
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';
apt-get install libreoffice libreoffice-script-provider-python poppler-utils
[OFFICE CONVERTER] enabled = true
TODO LibreOffice Online
z.B. 6.0.5 → 6.0.7
cd /srv/seafile wget https://download.seadrive.org/seafile-server_6.0.7_x86-64.tar.gz
tar xzf seafile-server_6.0.7_x86-64.tar.gz
/etc/init.d/seafile-server stop
upgrade/minor-upgrade.sh
/etc/init.d/seafile-server start
z.B. 7.0.5 → 7.1.5
cd /srv/seafile wget https://download.seadrive.org/seafile-server_7.1.5_x86-64.tar.gz
tar xzf seafile-server_7.1.5_x86-64.tar.gz
/etc/init.d/seafile-server stop
cd seafile-server-7.1.5 upgrade/minor-upgrade.sh
/etc/init.d/seafile-server start
Die Versionen 11 und insbesondere 12 benötigen gesonderte Konfigurationsänderungen und ggf. zusätzliche Pakete.
Z.B. von 8 → 9
cd /srv/seafile wget https://download.seadrive.org/seafile-server_9.0.10_x86-64.tar.gz
tar xzf seafile-server_9.0.10_x86-64.tar.gz
/etc/init.d/seafile-server stop
cd seafile-server-9.0.10 upgrade/upgrade_8.0_9.0.sh
/etc/init.d/seafile-server start
installedDie 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:
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=<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"