Aktionen

Seafile Server - als separater Server hinter Webserver mit Apache2

Aus znilwiki

Changelog:

  • 06.08.2017: erste Version
  • 31.01.2019: Anpassung an Ubuntu 18.04 + Seafile 6.3.4
  • 10.06.2019: Hinweis auf Seafile ab version 7.0.x

1 Aufbau

Im Zuge des Umbaus meines Webservers habe ich angefangen die Rollen zu trennen.
Früher lief der Seafile-Server auf dem gleichen Server wie auch diese Webseite.
Nun ist es ein eigener Server dahinter:

                                +----------------------------------+                 +----------------+
                                |           WEBSERVER              |                 | SEAFILE-SERVER |
                                +-----------------+----------------+                 +----------------+
                                |    Extern       |      Intern    |                 |       Intern   |
   seafile.znil.net --------->  | 213.168.209.199 | 10.100.12.10   | <---- LAN ----> | 10.100.12.20   |
                                +-----------------+----------------+                 +----------------+


Ich habe einen Moment gebraucht bis ich das hintereinander geschaltet bekommen habe ... und es geht wie folgt:


2 Vorbereitung

  • Installiert euren SEAFILE-SERVER gemäß dieser Anleitung: Seafile Server - Installation auf Ubuntu 18.04.x LTS
  • Macht den Umbau mit dem Apache2 Reverse Proxy bis euer Seafile-Server über http://10.100.12.20 erreichbar ist - https ist nicht notwendig, ich verwende ein Lets Encrypt Zertifikat extern
  • gebt immer die IP-Adresse statt des Namens an in den Konfigurationsdateien (Apache Teil für http und https)




3 Apache2 Konfiguration

  • Legt die Subdomain auf eurem WEBSERVER an.
  • macht die Seite per https erreichbar (z.B. mit einem lets Encrypt Zertifikat
  • Die Apache-Testseite sollte also per https://eurer.seafile.servername erreichbar sein.
  • Ändert die .vhost bzw. die Konfiguratonsdatei der Webseite unter /etc/apache2/sites-available/seitenname.vhost wie folgt ab:
  • bearbeitet die .vhost Datei eurer Subdomain:
nano /etc/apache2/sites-available/seafile.znil.net.vhost

und löscht alles darin. Ersetzt den Inhalt wie folgt:

<VirtualHost 10.100.12.10:80>
         ServerName seafile.znil.net
         ServerAdmin webmaster@znil.net
         # Umleitung http zu https
         RewriteEngine On
         RewriteCond %{HTTPS} !=on
         RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

<VirtualHost 192.168.200.10:443>
         ServerName seafile.znil.net
         ServerAdmin webmaster@znil.net
         SSLEngine on
         SSLProtocol All -SSLv2 -SSLv3
         SSLCertificateFile /etc/letsencrypt/live/seafile2.znil.net/fullchain.pem
         SSLCertificateKeyFile /etc/letsencrypt/live/seafile2.znil.net/privkey.pem
         SSLCertificateChainFile /etc/letsencrypt/live/seafile2.znil.net/chain.pem
         #
         RewriteEngine On
         #
         # seafile fileserver
         #
         ProxyPass /seafhttp http://10.100.12.20:8082
         ProxyPassReverse /seafhttp http://10.100.12.20:8082
         RewriteRule ^/seafhttp - [QSA,L]
         #
         # seahub
         #
         SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
         ProxyPreserveHost On
         ProxyPass / http://10.100.12.20:8000/
         ProxyPassReverse / http://10.100.12.20:8000/
         #
         # media
         #
         ProxyPass /media http://10.100.12.20
         ProxyPassReverse /media http://10.100.12.20
</VirtualHost>

Anpassen müsst Ihr

  • alle IP-Adressen
  • den Pfad zu den SSL-Dateien

Ich lasse den SSL Teil immer einfach stehen und kopiere nur den Rest hinein.
Wichtig waren die letzten beiden Zeilen zu /media damit das Webinterface funktioniert. Dazu muss auf dem Seafile zumindest der http:// Teil funktionieren.
In Seafile müsst Ihr trotzdem die Pfade auf https anpassen wie hier beschrieben: Seafile Server - Installation auf Ubuntu 18.04.x LTS#Seafile_Konfiguration_anpassen

4 Änderung ab Version 7.0.x

Seit Seafile 7.0.x hört dieser nur noch auf 127.0.0.1:8000 => der Posrt 8000 ist also nicht von anderen Hosts zu erreichen.
Das könnt Ihr ändern indem Ihr auf dem Seafile-Server die folgende Datei bearbeitet:

nano /home/seafile/haiwen/conf/gunicorn.conf

und dort die Zeile

bind = "127.0.0.1:8000"

auf

bind = "0.0.0.0:8000"

ändert. Dann Seafile neu starten.

5 Seafile von intern

Soll der Seafile-Server auch von intern genutzt werden so:

  • so verweist intern auf die interne IP des Webservers, nicht des Seafile-Servers.

6 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung