Seafile auf einem Raspberry Pi installieren
Die Open-Source-Software Seafile kann man eine Dropbox Alternative auf einem eigenen Server einrichten. Der Zugriff auf die Daten kann dann über eine Weboberfläche oder über einen Client für Linux, Windows, Mac OS X, Android und iOS eingerichtet werden. Ich möchte damit langfristig einen Teil meiner Daten aus der Dropbox heraus hohlen und auf meinem eigenen Server zur Synchronisation bereitstellen.
Es gibt zwar schon viele Beschreibung von Seafile auf Raspberry Pi. Für mich selber hier meine Dokumentation meiner Installation
Die Installation lässt sich in folgende Abschnitte einteilen
- Installation und Konfiguration von Seafile
- Installation und Konfiguration von nginx
- Autostart einrichten
#1. Installation und Konfiguration von Seafile
Die meisten Informationen sind von hier
Zuerst die Voraussetzungen installieren, einen eigenen User einrichten, die Software downloaden und auspacken
sudo apt-get -y install python2.7 python-setuptools python-simplejson python-imaging
sudo adduser seedaten --disabled-password
cd /var
mkdir seedaten
chown seedaten:seedaten seedaten
sudo su seedaten
cd /var/seedaten/
wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.2_pi.tar.gz
tar xzf seafile-server_3.0.2_pi.tar.gz
cd seafile-server-3.0.2/
Dann die Installation starten. Ich habe im wesentlichen nur die Vorgabewerte übernommen.
./setup-seafile-mysql.sh
Am Ende kommt ein
-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------
run seafile server: ./seafile.sh { start | stop | restart }
run seahub server: ./seahub.sh { start <port> | stop | restart <port> }
-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------
port of ccnet server: 10001
port of seafile server: 12001
port of seafile httpserver: 8082
port of seahub: 8000
Dann die eigentliche Prozesse starten. Beim ersten Start von Seahub wird auch der Administrator eingerichtet
./seafile.sh start
Starting seafile server, please wait ...
Seafile server started
Done.
./seahub.sh start 8000
Starting seahub at port 8000 ...
----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------
What is the email for the admin account?
[ admin email ] admin@caserio.de
What is the password for the admin account?
[ admin password ]
Enter the password again:
[ admin password again ]
----------------------------------------
Successfully created seafile admin
----------------------------------------
Loading ccnet config from /var/seedaten/ccnet
Loading seafile config from /var/seedaten/seafile-data
Seahub is started
Done.
#2. Installation und Konfiguration von nginx
Zuerst die Installation des Webservers und dann habe ich die Zertifikate und Schlüssel erzeugt. Da ich bis auf weiteres die Anwender noch selber verwalte reicht ein eigenes Zertifikat.
apt-get install nginx
cd /etc/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout seeblick.key -out seeblick.crt
Kleinere Änderungen in der nginx Konfiguration
vi /etc/nginx/nginx.conf
worker_processes 1
server_tokens off;
Und hier die Konfiguration des Webservers selbst. Der HTTP verkehr wird auf HTTPS umgeleitet
vi /etc/nginx/conf.d/default
server {
listen 80;
server_name se.hagen-bauer.de;
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}
server {
listen 443;
server_name seafile.hagen-bauer.de;
index index.html index.htm;
ssl on;
server_name seafile.hagen-bauer.de;
ssl_certificate /etc/ssl//seeblick.crt;
ssl_certificate_key /etc/ssl//seeblick.key;
root /var/www;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
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;
}
location /media {
root /var/seedaten/seafile-server-latest/seahub/;
}
Dann müssen noch an zwei weiteren Stellen die Urls auf das richtige Protokoll einstellt werden
vi /var/seedaten/ccnet/ccnet.conf
SERVICE_URL = https://seafile.hagen-bauer.de
vi /var/seedaten/seahub_settings.py
HTTP_SERVER_ROOT = 'https://seafile.hagen-bauer.de/seafhttp'
#3. Autostart einrichten
Einfach das Script und die Anleitung von hier übernehmen und den oben erzeugen Benutzer und das verzeichniss ändern
user=seedaten
seafile_dir=/var/seedaten
fastcgi=true
Das Script noch ausführbar machen und in den Systemboot aufnehmen
chmod +x /etc/init.d/seafile-server
update-rc.d seafile-server defaults