Seafile Server auf https umstellen – kostenlos

Du hast Seafile Server erfolgreich installiert und konfiguriert? Vielleicht hast du bereits eine externe Festplatte angeschlossen und nutzt Seafile bereits erfolgreich in deinem privaten Netzwerk. Jetzt soll Seafile auch von unterwegs erreichbar und verschlüsselt (https) sein.

Dies ist relativ einfach und schnell erledigt. Allerdings musst du dich zuerst entsprechend vorbereiten. Die Voraussetzungen:

Jetzt musst du noch ein Paket installieren am Raspberry:

sudo apt-get install python-certbot-nginx

Damit sind die Vorbereitungen abgeschlossen und es kann los gehen.
Als erstes forderst du ein kostenloses SSL Zertifikat von Let’s Encrypt an:

sudo certbot --authenticator standalone --installer nginx -d <domain> --pre-hook "service nginx stop" --post-hook "service nginx start"

Den Teil <domain> ersetzt du durch deine erstellte DynDNS Adresse. Im Anschluss musst die Konfigurationsdatei des Webserver nginx anpassen. Ich gehe davon aus, dass du den Seafile Server anhand meiner Anleitung installiert hast oder mein zur Verfügung gestelltes Image nutzt. In dem Fall kann die Konfigurationsdatei einfach gelöscht werden:

sudo rm /etc/nginx/sites-available/seafile.conf

Jetzt einfach die Datei neu erstellen und die unten stehende Konfiguration einfügen:

sudo nano /etc/nginx/sites-available/seafile.conf
server {
    listen       80;
    server_name  _;
    rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https

    # Enables or disables emitting nginx version on error pages and in the "Server" response header field.
    server_tokens off;
}


server {
    listen 443;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/deindnsname/fullchain.pem;  # deindnsname durch deine vollständige dyndns ersetzen
    ssl_certificate_key /etc/letsencrypt/live/deindnsname/privkey.pem;    # deindnsname durch deine vollständige dyndns ersetzen
    server_name _;

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {
         proxy_pass         http://127.0.0.1:8000;
         proxy_set_header   Host $host;
         proxy_set_header   X-Real-IP $remote_addr;
         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header   X-Forwarded-Host $server_name;
         proxy_read_timeout  1200s;
         proxy_set_header   X-Forwarded-Proto https;


         # used for view/edit office file via Office Online Server
         client_max_body_size 0;

         access_log      /var/log/nginx/seahub.access.log;
         error_log       /var/log/nginx/seahub.error.log;
    }

        location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;

        send_timeout  36000s;
    }
        location /media {
        root /home/seafile/seafile-server-latest/seahub;
    }
}

Achte bitte darauf, dass du in Zeile 13 und 14 „deindnsname“ durch deine vollständige DynDNS ersetzt. (zum Beispiel: stephansnet.dyndns.net)
Die Datei speichern und schließen, die Konfiguration testen und nginx neu starten:

nginx -t    # das Ergebnis soll "Syntax ok" lauten
nginx -s reload

Jetzt müssen wir nur nur Seafile die Änderungen mitteilen. Dazu zum Benutzer Seafile wechseln und zwei Dateien anpassen:

sudo su seafile
cd
cd conf
nano ccnet.conf

Service URL aktualisieren, speichern und schließen:

SERVICE_URL = https://deindnsname
nano seahub_settings.py
FILE_SERVER_ROOT = 'https://deindnsname/seafhttp'

Der Seafile-Benutzer kann verlassen werden und ein N

FILE_SERVER_ROOT = 'https://euredomain/seafhttp'

Der Seafile-Benutzer kann verlassen werden und es muss ein Neustart des Servers erfolgen:

sudo systemctl restart seafile seahub

Jetzt kannst du deine Adresse aufrufen. Seafile Server ist nun online und verschlüsselt. Gelegenheit genug sich einmal die Seafile App anzuschauen und ggf. Fotos automatisch zu synchronisieren.

Viel Spaß.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.