Seafile Server in 10 minuten mit Scipt Installiert . Https ? Backup?

Hallo Seafile Gemeinde ,
ich bin nicht so Linux tauglich und habe mich deshalb für die Installationsmethode mit script entschieden, da es mir die einfachste Möglichkeit erschien unter Ubuntu 18.04 LTS den Seafile Server aufzusetzen.
Ubuntu ist frisch als Minimal Installation aufgesetzt.
Ich Starte das Terminal und gebe sudo su ein, danach bin nach Anleitung mit
cd /root
wget --no-check-certificate xxxx://raw.githubusercontent.com/haiwen/seafile-server-installer/master/seafile_ubuntu
bash seafile_ubuntu 6.3.4 weiter verfahren.
Ich habe das script nicht verändert und die Community Version installiert.
Danach auf den Server per Webgui eingewählt . Einen neuen Admin angelegt und unter SERVICE_URL & FILE_SERVER_ROOT die 127.0.0.0 gegen meine Dyn Adresse ausgetauscht.
Das http gegen https getauscht.
So weit so gut.
Seafile läuft und ich kann die Daten von meinem Lappi mit Seadrive auf den Server schaufeln.
Die Weiterleitung meiner Dyn Adresse im Router erlaubt mir auch von auswärts auf den Server per http zu zugreifen.

Jetzt zu meinen Fragen an die Experten.
Ich komme nicht per Https auf den Server obwohl ich in der Fritzbox eine Weiterleitung als Https auf den Seafilesever mit Port 443 gemacht habe .
Was muss ich noch einstellen damit ich mit Https auf den Seafile Server zugreifen kann?

Was ist jetzt die sicherste Backup Methode um die Daten auf einen anderen Rechner zu sichern und im Notfall zurückzuspielen?
Meine Idee dazu ist, Seasync auf einen Rechner zu spielen der einmal die Woche Automatisch startet und damit die Daten Syncronisiert.
Was meinen die Fachleute dazu ?

Das script ist veraltet und arbeitet noch mit fastcgi, was von SeaFile allerdings nicht mehr unterstützt wird. Hier steht wie dein nginx richtig konfiguriert sein muss, bitte arbeite dich dort durch, das ist aktuell.

Hallo ,
heist das ich kann das Script erst mal so laufen lassen und mache aus Ihrem Link nur noch die Anpassung ?
Frage 2 . Gibt es irgendwo ein aktuelles script ?

Wenn du Glück hast und das der einzige Fehler ist ja.

Solche Scripte sind immer Mist, da gibt es auch kein aktuelles mehr. Wenn dann solltest du schon Docker nutzen: Operating systems - Seafile Community Manual

Hallo bionade24,
danke für deine Hilfe.

Nach der ersten Sichtung übersteigt das mein wissen mit Linux.
Deshalb habe ich mich ja für das Script entschieden.

Schaue mir heute mittag mal über das Manual , Docker an.

Schade ich dachte ich hätte endlich eine gute Cloud Lösung für Normalsterbliche gefunden .

Deswegen gibt’s ja manuals zum Lernen, auch ein sollte sich zumindest etwas mit einer Sache auskennen, der er seinen ganzen Daten anvertraut. Um es besonders einfach zu haben gibt’s Docker, Scripts haben aufgrund der Umgebungsveränderung ständig fehler.

1 Like

Hallo bionade24
das mit den Scripts habe ich nicht verstanden, warum es alt sein soll. Github gibt doch die Möglichkeit alle Entwickler an einer Version zu arbeiten.So ist auf jedenfall mein Wissenstand.

Ich habe jetzt mit der Anleitung von Docker
docker run -d --name seafile
-e SEAFILE_SERVER_HOSTNAME=xxx.xxx.xxx
-v /opt/seafile-data:/shared
-p 80:80
seafileltd/seafile:latest
versucht die Inst. zu starten .
Erste Hürde das Docker nicht unter Ubuntu 18.04 in der Minimalinst. drin ist . Okay. Mit sudo snap install docker nachinstalliert.

Mit der Ausführung aus dem Manual kommt das .
sudo docker run -d --name seafile1234455 \

-e SEAFILE_SERVER_HOSTNAME=xxx.xx.xxx
-e SEAFILE_ADMIN_EMAIL=meine-email@xxx.dx
-e SEAFILE_ADMIN_PASSWORD=sehr-gutes-ausgewaehlt
-v /opt/seafile-data:/shared
-p 80:80
seafileltd/seafile:latest
[sudo] Passwort für robert:
docker: Error response from daemon: Conflict. The container name “/seafile1234455” is already in use by container “bc746fa452f05c1236b9e28f931b58cbf51067a9a776f68a087f72fa8c5f3f60”. You have to remove (or rename) that container to be able to reuse that name.
See ‘docker run --help’.

Habe ich verstanden . Da ich den Befehl schon einmal ausgeführt habe ist der Container schon da und ich lege halt einen neuen an . Aber dann kommt das .

sudo docker run -d --name Test4711 -e SEAFILE_SERVER_HOSTNAME=xxx.xxx.xxxx -e SEAFILE_ADMIN_EMAIL=meine-email@xxx.dx -e SEAFILE_ADMIN_PASSWORD=sehr-gutes-ausgewaehlt -v /opt/seafile-data:/shared -p 80:80 seafileltd/seafile:latest
6bb5014918782b4894f76f2f7c3510cd6d63c20c2d7ec9af7280ace9b57f865b
docker: Error response from daemon: error while creating mount source path ‘/opt/seafile-data’: mkdir /opt/seafile-data: read-only file system.

Verstehe ich nicht bzw. ich habe den Ordner auch schon einmal gelöscht.
Komme da nicht weiter. Wäre toll wenn Sie mir da einen Tipp geben könnten .
Ubuntu 18.04 frisch Installiert

Der eine schreibt das Script für Ubuntu, dann kommt einer findet einen Bug auf CentOS, danach geht das Script auf Ubuntu nicht mehr, und zu Debian, verschiedenen Versionen der genannten Betriebsysteme sowie anderen Linuxen wollen wir gar nicht erst kommen. Wenn man sowas versucht kommt so ne Scheiße dabei raus, und auch dieses Script hat noch seine Probleme, die man anpassen muss. Wenn alle docker verwenden haben alle die gleiche,vordefinierte Umgebung, weil der Container sie mitbringt. Du nutzt doch auch snap wie ich sehe, ist in diesem Aspekt gesehen nix anderes, alles wird mitgeschifft. Über Snappy kann man sagen was man will, aber bei Servern (docker) und bei der Softwareentwicklung(virtualenv, jvm, docker) ist diese Methode sehr sinnvoll.

Du hast an der Stelle schon einen Container gemountet, dann sperrt docker dieses Verzeichnis. Zeig dir mit docker ps -a alle Container an und dann lösche sie mit docker rm container_name, dann kannst du wie nen neuen Seafile Container erstellen.

Hallo bionade24,
das habe ich auch rausgefunden . Beschäftige mich jetzt schon ein paar Stunden mit Docker.
Wenn ich
sudo docker run -d --name seafile
-e SEAFILE_SERVER_HOSTNAME=seafile.example.xxx
-e SEAFILE_ADMIN_EMAIL=xxxxx@gmx
-e SEAFILE_ADMIN_PASSWORD=xxxx
-v /opt/seafile-data:/shared
-p 80:80
-p 443:443
(docker).seadrive.org/seafileltd/seafile-pro:latest

eingebe bekomme ich halt diese read-only file system Ansage .
docker: Error response from daemon: error while creating mount source path ‘/opt/seafile-data’: mkdir /opt/seafile-data: read-only file system.
Externe Festplatte mit ntfs und ext4 probiert . Mount punkt der platte auf /opt/seafile-data gelegt .
Google schon eine gefühlte Ewigkeit warum die Nachricht mit read only kommt . Ohne erfolg.

Probiers mal mit sudo chmod -R a+rwx /opt/ und dann sudo rm -rf /opt/seafile-data/, danach start nochmal. Das liegt nur an den gesetzten rechten für dieses Verzeichnis und nicht an Dcoker. Und mehr als diese paar Stunden Einarbeitung erwartet auch keiner.

Sicher dass du die Pro Version verwenden willst? Und hast du dir das mit den Security Problemen von den offiziellen Containern durchgelesen? Wenn nicht hier nochmal der Link, scroll runter bis zum Punkt Docker.

Hallo bionade24
ich habe es hinbekommen .
Ich habe den Docker nochmal deinstaliert und dann
sudo apt install docker.io ausgeführt.
Seit dem geht es.

Nach dem ausführen des :
docker run -d --name seafile
-e SEAFILE_SERVER_LETSENCRYPT=true
-e SEAFILE_SERVER_HOSTNAME=192.168.123.101
-e SEAFILE_ADMIN_EMAIL=xxx@gmx.de
-e SEAFILE_ADMIN_PASSWORD=xxxxxx
-v /opt/seafile-data:/shared
-p 80:80
-p 443:443
seafileltd/seafile:latest

bekomme ich eine lange nummer angezeigt .
Ich versuche dan nach einiger Wartezeit auf die Ip des “SEAFILE_SERVER_HOSTNAME” zu zugreifen .

Allerdings kommt nichts und die Browserseite bleibt leer.
Ist das richtig das ich unter “SEAFILE_SERVER_HOSTNAME” meine IP oder meine dyn Adresse eintragen kann ?

Wie du siehst, Snaps sind scheiße, proprietär und machen nur Ärger. Einfach apt verwenden, du wirst wahrscheinlich kaum auf Abhängigkeitsgehler stoßen, wenn du wenig machst. Flatpak ist auch kaum besser wie Snappy, das ist einfach Bloat.

Du musst aufgrund des eingebauten Webservers dort deine Domain eintragen.

Hallo bionade24,
danke für deine Hilfe .

Ich habe jetzt Ubuntu 18.04 LTS nochmal ganz neu aufgesetzt.
Ich schreibe jetzt einmal für alle die auch mit Docker eine Inst. machen wollen, die Schritte auf die ich gemacht habe.
Frische Ubuntu 18.04 LTS Installation.
sudo mkdir -p /opt/seafile-data
sudo mount /dev/sda1/opt/seafile-data <— sda1 ist meine externe USB platte mit NTFS Dateisystem
sollte jetzt eine Fehlermeldung kommen habe ich die Platte mit gparted ausgehangen
Rechte setzen .
sudo chmod -R a+rwx /opt/
sudo chown -R seafile:seafile /opt/seafile-data
zum mounten auch nach neustart die fstab aufrufen und folgenden eintrag machen
sudo nano /etc/fstab
/dev/sda1 /opt/seafile-data auto defaults 0 0
reboot <— mache ich immer um zu sehen ob die Platte sauber im System hängt

DOCKER INSTALLATION
sudo apt install docker.io
sudo docker run -d --name seafile
-e SEAFILE_SERVER_LETSENCRYPT=true
-e SEAFILE_SERVER_HOSTNAME=meine.dyn.adresse
-e SEAFILE_ADMIN_EMAIL=meine-Mail-adresse
-e SEAFILE_ADMIN_PASSWORD=mein-Passwort
-v /opt/seafile-data:/shared
-p 80:80
-p 443:443
seafileltd/seafile:latest
dann erscheint eine lange Nr.
Das sollte es gewesen sein.

Leider kann ich noch nicht auf diesen Server zugreifen .
Was mich wundert ist das der Ordner unter /op/seafile-data/seafile leer ist .

Post mal den Output von docker logs seafile

*** Running /etc/my_init.d/01_create_data_links.sh…
*** Running /etc/my_init.d/10_syslog-ng.init…
Nov 1 13:19:29 02de1ec005fc syslog-ng[24]: syslog-ng starting up; version=‘3.5.6’
Nov 1 13:19:30 02de1ec005fc syslog-ng[24]: EOF on control channel, closing connection;
*** Running /etc/my_init.d/99_mysql_setup.sh…
Rebuilding mysql data dir
Starting mysqld
Waiting for mysqld to come online
Nov 1 13:19:51 02de1ec005fc mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] /usr/sbin/mysqld (mysqld 10.0.34-MariaDB-0ubuntu0.16.04.1) starting as process 253 …
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.
Nov 1 13:19:51 02de1ec005fc mysqld:
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Using mutexes to ref count buffer pool pages
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: The InnoDB memory heap is disabled
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Compressed tables use zlib 1.2.8
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Using Linux native AIO
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Using CPU crc32 instructions
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Initializing buffer pool, size = 128.0M
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Completed initialization of buffer pool
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Highest supported file format is Barracuda.
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: 128 rollback segment(s) are active.
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Waiting for purge to start
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.36-83.0 started; log sequence number 1616707
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] Plugin ‘FEEDBACK’ is disabled.
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] Server socket created on IP: ‘127.0.0.1’.
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] /usr/sbin/mysqld: ready for connections.
Nov 1 13:19:51 02de1ec005fc mysqld: Version: ‘10.0.34-MariaDB-0ubuntu0.16.04.1’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306 Ubuntu 16.04
Fixing root password
Shutting down mysqld
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] /usr/sbin/mysqld: Normal shutdown
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] Event Scheduler: Purging the queue. 0 events
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: FTS optimize thread exiting.
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:51 [Note] InnoDB: Starting shutdown…
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:52 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:54 [Note] InnoDB: Shutdown completed; log sequence number 1616717
Nov 1 13:19:51 02de1ec005fc mysqld: 181101 13:19:54 [Note] /usr/sbin/mysqld: Shutdown complete
Nov 1 13:19:51 02de1ec005fc mysqld:
Nov 1 13:19:54 02de1ec005fc mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
*** Running /etc/rc.local…
*** Booting runit daemon…
*** Runit started as PID 287
*** Running /scripts/start.py…
Nov 1 13:19:54 02de1ec005fc cron[296]: (CRON) INFO (pidfile fd = 3)
Nov 1 13:19:54 02de1ec005fc cron[296]: (CRON) INFO (Running @reboot jobs)
[2018-11-01 13:19:55] Preparing for letsencrypt …
[2018-11-01 13:19:55] Starting letsencrypt verification
Cloning into ‘/shared/ssl/letsencrypt’…
Generating RSA private key, 4096 bit long modulus
…++
…++
unable to write ‘random state’
e is 65537 (0x10001)
Generating RSA private key, 4096 bit long modulus
…++
…++
unable to write ‘random state’
e is 65537 (0x10001)
Parsing account key…
Parsing CSR…
Found domains: xxxxxxx
Getting directory…
Directory found!
Registering account…
Registered!
Creating new order…
Order created!
Verifying xxxxxxxxx…
Traceback (most recent call last):
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 198, in
main(sys.argv[1:])
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 194, in main
signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca, disable_check=args.disable_check, directory_url=args.directory_url, contact=args.contact)
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 144, in get_crt
raise ValueError(“Wrote file to {0}, but couldn’t download {1}: {2}”.format(wellknown_path, wellknown_url, e))
ValueError: Wrote file to /var/www/challenges/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk, but couldn’t download xxxxx:/xxx/.well-known/acme-challenge/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk: Error:
Url: xxxxxxx://xxxxx/.well-known/acme-challenge/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk
Data: None
Response Code: None
Response: <urlopen error [Errno 113] No route to host>
Traceback (most recent call last):
File “/scripts/start.py”, line 86, in
main()
File “/scripts/start.py”, line 51, in main
init_letsencrypt()
File “/scripts/bootstrap.py”, line 67, in init_letsencrypt
call(’/scripts/ssl.sh {0} {1}’.format(ssl_dir, domain))
File “/scripts/utils/init.py”, line 68, in call
return subprocess.check_call(*a, **kw)
File “/usr/lib/python2.7/subprocess.py”, line 541, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘/scripts/ssl.sh /shared/ssl xxxxxxxxx’ returned non-zero exit status 1
*** /scripts/start.py exited with status 1.
*** Shutting down runit daemon (PID 287)…
*** Running /etc/my_init.post_shutdown.d/10_syslog-ng.shutdown…
Nov 1 13:20:09 02de1ec005fc syslog-ng[24]: syslog-ng shutting down; version=‘3.5.6’
Nov 1 13:20:09 02de1ec005fc syslog-ng[24]: EOF on control channel, closing connection;
*** Killing all processes…
*** Running /etc/my_init.d/01_create_data_links.sh…
*** Running /etc/my_init.d/10_syslog-ng.init…
Nov 1 13:31:18 02de1ec005fc syslog-ng[18]: syslog-ng starting up; version=‘3.5.6’
Nov 1 13:31:19 02de1ec005fc syslog-ng[18]: EOF on control channel, closing connection;
*** Running /etc/my_init.d/99_mysql_setup.sh…
*** Running /etc/rc.local…
*** Booting runit daemon…
*** Runit started as PID 25
*** Running /scripts/start.py…
Nov 1 13:31:20 02de1ec005fc cron[34]: (CRON) INFO (pidfile fd = 3)
Nov 1 13:31:20 02de1ec005fc cron[34]: (CRON) INFO (Skipping @reboot jobs – not system startup)
[2018-11-01 13:31:20] Preparing for letsencrypt …
[2018-11-01 13:31:20] Starting letsencrypt verification
Already up-to-date.
Parsing account key…
Parsing CSR…
Found domains: xxxxxxxx
Getting directory…
Directory found!
Registering account…
Already registered!
Creating new order…
Order created!
Verifying xxxxxxx…
Traceback (most recent call last):
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 198, in
main(sys.argv[1:])
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 194, in main
signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca, disable_check=args.disable_check, directory_url=args.directory_url, contact=args.contact)
File “/shared/ssl/letsencrypt/acme_tiny.py”, line 144, in get_crt
raise ValueError(“Wrote file to {0}, but couldn’t download {1}: {2}”.format(wellknown_path, wellknown_url, e))
ValueError: Wrote file to /var/www/challenges/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk, but couldn’t download xxxxxx://xxxxxx/.well-known/acme-challenge/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk: Error:
Url: xxx://xxxxxxx/.well-known/acme-challenge/O3QZnjbQehv0IBeCCQ0ZfR89vm60txfUSvWeGz1UsDk
Data: None
Response Code: None
Response: <urlopen error [Errno 113] No route to host>
Traceback (most recent call last):
File “/scripts/start.py”, line 86, in
main()
File “/scripts/start.py”, line 51, in main
init_letsencrypt()
File “/scripts/bootstrap.py”, line 67, in init_letsencrypt
call(’/scripts/ssl.sh {0} {1}’.format(ssl_dir, domain))
File “/scripts/utils/init.py”, line 68, in call
return subprocess.check_call(*a, **kw)
File “/usr/lib/python2.7/subprocess.py”, line 541, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘/scripts/ssl.sh /shared/ssl xxxxxxxx’ returned non-zero exit status 1
*** /scripts/start.py exited with status 1.
*** Shutting down runit daemon (PID 25)…
*** Running /etc/my_init.post_shutdown.d/10_syslog-ng.shutdown…
Nov 1 13:31:30 02de1ec005fc syslog-ng[18]: syslog-ng shutting down; version=‘3.5.6’
Nov 1 13:31:30 02de1ec005fc syslog-ng[18]: EOF on control channel, closing connection;
*** Killing all processes…
indent preformatted text by 4 spaces

Hast du den Container vorher gestoppt? Funktioniert es?

So wie ich beschrieben habe . Sonst habe ich nichts gemacht .

Also funktioniert es?

Ich komme nicht auf den server.
Wie kann ich prüfen ob der Server läuft wenn ich nicht über die Weboberfläche rein komme ?

Hast du schon versucht, einfach die ip aufzurufen?