Eigener Firefox Sync Server auf Synology

Status
Für weitere Antworten geschlossen.

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
Hallo

ich möchte einen eigenen FF Sync Server auf der DS installieren.
Klappt leider nicht ganz, irgenwo hackt es noch...vielleicht "sieht" jemand die Lösung :)

Folgendes habe ich bereits gemacht:
per Telnet mit root-Rechten eingeloggt:
PHP:
ipkg install py26-mercurial py26-setuptools make
easy_install virtualenv

nun ist virtualenv im Verzeichnis /opt/local/bin angelegt, deshalb füge ich das Verzeichnis in den Path mit ein.
und restarte die Telnet-Sitzung
also
PHP:
vi ~/.profile
   PATH=$PATH:/opt/local/bin

weiter gehts mit

PHP:
mkdir /usr/local/server-full -p
cd /usr/local/server-full
hg clone https://hg.mozilla.org/services/server-full/ .
make build

nun die Konfiguration:
der Port5000 ist schon von der DS belegt, deshalb weiche ich auf den Port 5100 aus.
PHP:
vi /usr/local/server-full/development.ini
	[server:main]
	port = 5100
	[handler_syncserver_errors]
	args = ('/var/log/sync-error.log',)

und

PHP:
vi /usr/local/server-full/etc/sync.conf
	[auth]
	fallback_node = http://localhost:5100/


Sync Server starten mit:
PHP:
/usr/local/server-full/bin/paster serve development.ini

nun am PC Firefox starten und unter Extras->Sync einrichten
Neues Benutzerkonto anlegen
Eigenen Server verwenden email, pw, http://<DS-IP>:5100/ eingeben


Doch dann kommt der Fehler "Bitte geben Sie eine gültige Server-URL ein"

Wer weiß Rat ?
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
in der sync.conf den backend Eintrag verändern in:
backend = services.user.sql.SQLUser ersetzen
und den fallback_node
in [nodes] verschieben.

dann gehts :)
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
Hier meine komplette Konfiguration:

/usr/local/server-full/development.ini
PHP:
[DEFAULT]
debug = True
translogger = False
profile = False

[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 5100
use_threadpool = True
threadpool_workers = 60

[app:main]
use = egg:SyncServer
configuration = file:%(here)s/etc/sync.conf

#
# logging
#
[loggers]
keys = root,syncserver

[handlers]
keys = global,syncserver,syncserver_errors

[formatters]
keys = generic

[logger_root]
level = WARNING
handlers = global

[logger_syncserver]
qualname = syncserver
level = ERROR
handlers = syncserver,syncserver_errors
propagate = 0

[logger_syncserver_errors]
qualname = syncserver
level = ERROR
handlers = syncserver_errors
propagate = 0


[handler_global]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = generic

[handler_syncserver]
class = StreamHandler
args = (sys.stderr,)
level = INFO
formatter = generic

[handler_syncserver_errors]
class = handlers.RotatingFileHandler
args = ('/var/log/sync-error.log',)
level = ERROR
formatter = generic

[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %Y-%m-%d %H:%M:%S



/usr/local/server-full/etc/syno.conf
PHP:
[global]
clean_shutdown = false

[captcha]
use = false
public_key = xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxx
private_key = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
use_ssl = false

[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = sqlite:////volume1/web/ffsync/test.db
standard_collections = false
use_quota = true
quota_size = 5120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true

[auth]
backend = services.user.sql.SQLUser
sqluri = sqlite:////volume1/web/ffsync/test.db
pool_size = 100
pool_recycle = 3600
create_tables = true

[nodes]
fallback_node = http://localhost:5100/


[host:localhost]
storage.sqluri = sqlite:////volume1/web/ffsync/test.db

[smtp]
host = localhost
port = 25
sender = weave@mozilla.com

[cef]
use = true
file = syslog
vendor = mozilla
version = 0
device_version = 1.3
product = weave


/usr/syno/etc.defaults/rc.d/S99ffsync.sh
PHP:
#!/bin/sh
#
stop() {
     echo "stop Firefox Sync Server"
     kill `cat /var/run/ffsync.pid` && rm /var/run/ffsync.pid
}

start() {
      echo "start Firefox Sync Server"
      /usr/local/server-full/bin/paster serve /usr/local/server-full/development.ini &
      echo $! >/var/run/ffsync.pid
}


case $1 in

start)
        start
        ;;

stop)
        stop
        ;;

restart)
        stop
        sleep 1
        start
        ;;

*)
        echo "usage: $0 { start | stop | restart }" >&2
        exit 1
        ;;

esac
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
wenn es nun vollständig und getestet ist, dann wäre es etwas für unser Wiki :) schiebst es rüber?

Itari
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
ja, kann ich machen wenn ich fertig bin.

Momentan möchte ich Firefox sqlite durch mysql ersetzen.
Eine Voraussetzung ist dabei das mysql_config installiert ist.
mysql_config kann ich durch
ipkg install mysql5
installieren, aber dann "beißen" sich die Synology-MySQL und die IPKG-MySQL und es läuft keine der beiden :rolleyes:

Kann man die Synology-MySQL durch die IPKG-MySQL ersetzen?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
installieren, aber dann "beißen" sich die Synology-MySQL und die IPKG-MySQL und es läuft keine der beiden :rolleyes:

Kann man die Synology-MySQL durch die IPKG-MySQL ersetzen?

Entweder man entscheidet sich für eine der beiden Datenbankserver oder man gibt denen jeweils eine andere Port-Nummer und beim Aufruf (connect) verwendet man dann die Port-Nummer, die man gerade haben möchte.

Itari
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
hab einen Fehler entdeckt:
PHP:
[nodes]
fallback_node = http://localhost:5100/
muss
PHP:
[nodes]
fallback_node = http://<DISKSTATION_IP>:5100/
heißen.

Die Funktionalität ist nun gegeben.

Bevor es ins Wiki geht, kann sich noch ein Sicherheitsexperte überlegen ob es ok ist, wenn alles unter root läuft insbesondere die datenbank im Verzeichnis volume1/web/ffsync oder ob man einen eigenen user anlegen sollte oder gar nobody nimmt?
 

CaptainKrunch

Benutzer
Mitglied seit
08. Jan 2012
Beiträge
226
Punkte für Reaktionen
0
Punkte
0
Dienste sollten grundsätzlich nicht als root laufen. Im Falle von ausnutzbaren Lücken hat ein Angreifer ansonsten direkt Komplettzugriff aufs System
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
============================================
Installation und Konfiguration eines eigenen Firefox Sync Server
============================================

Mit dem Sync-Server kann man
  • Lesezeichen
  • Passwörter
  • Einstellungen
  • Chronik
  • Tabs

des Firefox Browsers mit der Diskstation syncronisieren.

Vorteil:
  • Eigene Daten bleiben auf *eigenen* Server gespeichert
  • Backup
  • Daten sind auf andere Browser (anderer PC, Handy usw.) übertragbar


Voraussetzung:

  1. telnet zur Diskstation als root
  2. PHP:
    ipkg install py26-mercurial py26-setuptools make
  3. PHP:
    easy_install virtualenv
  4. PHP:
    cd ~
  5. PHP:
    vi .profile
    direkt unter PATH, dies einfügen
    HTML:
    PATH=$PATH:/opt/local/bin
  6. PHP:
    vi /etc/profile
    direkt unter PATH, dies einfügen
    HTML:
    PATH=$PATH:/opt/local/bin
  7. telnet verlassen
    PHP:
    exit
    und erneut als root einloggen!
  8. PHP:
    mkdir /usr/local/server-full -p
  9. PHP:
    cd /usr/local/server-full
  10. PHP:
    hg clone https://hg.mozilla.org/services/server-full/ .
  11. PHP:
    make build
    warten...
  12. PHP:
    vi /usr/local/server-full/development.ini
    und folgende Veränderung durchführen:
    Rich (BBCode):
        [server:main]
        port = 5100
        [handler_syncserver_errors]
        args = ('/var/log/sync-error.log',)
  13. PHP:
    vi /usr/local/server-full/etc/sync.conf
    und folgende Veränderung durchführen:
    Rich (BBCode):
        [storage]
        sqluri = sqlite:////volume1/web/ffsync/test.db
        quota_size = 25600
        [auth]
        backend = services.user.sql.SQLUser
        sqluri = sqlite:////volume1/web/ffsync/test.db
        [nodes]
        fallback_node = http://<IP_DER_Diskstation>:5100/
  14. PHP:
     mkdir /volume1/web/ffsync -p
  15. PHP:
    touch /usr/syno/etc.defaults/rc.d/S99ffsync.sh && chmod 755 /usr/syno/etc.defaults/rc.d/S99ffsync.sh
  16. PHP:
    vi /usr/syno/etc.defaults/rc.d/S99ffsync.sh
    Rich (BBCode):
    #!/bin/sh
    #
    stop() {
         echo "stop Firefox Sync Server"
         kill `cat /var/run/ffsync.pid` && rm /var/run/ffsync.pid
    }
    
    start() {
          echo "start Firefox Sync Server"
          /usr/local/server-full/bin/paster serve /usr/local/server-full/development.ini &
          echo $! >/var/run/ffsync.pid
    }
    
    
    case $1 in
    
    start)
            start
            ;;
    
    stop)
            stop
            ;;
    
    restart)
            stop
            sleep 1
            start
            ;;
    
    *)
            echo "usage: $0 { start | stop | restart }" >&2
            exit 1
            ;;
    
    esac

  17. PHP:
    reboot
Der Server ist nun installiert und konfiguriert und sollte nach dem reboot laufen.

Nun Firefox-Browser öffnen, unter
  1. Extras->Sync einrichten....->Neues Benuter Konto anlegen
  2. beliebige email eingeben
  3. beliebiges passwort eingeben
  4. http://<DISKSTATION_IP>:5100/
  5. "Weiter" klicken
Es ist geschafft :) Der Browser sollte mit dem Server kommunizieren.

Fehlersuche:
im Browser-Adressleiste about:sync-log eingeben.



=======================================================================================
OPTIONAL:
Mit wenigen Änderungen, kann man den Server statt root auch mit einem unpriviligierten User betreiben.
=======================================================================================
In der Diskstation erstellt man den user (ffsync) und die Gruppe (daemons) und weist diesen User der Gruppe zu.
Man braucht keine besonderen Datei Lese/Schreibrechte.
  1. Telnet einloggen als root
  2. PHP:
    vi /etc/passwd
    in der Zeile ffsync verändert man /sbin/nologin in /bin/ash
    PHP:
    vi /usr/local/server-full/development.ini
    Verzeichnis anpassen
    Rich (BBCode):
    [handler_syncserver_errors]
        args = ('/var/log/ffsync/sync-error.log',)
  3. PHP:
    chown ffsync:daemons /volume1/web/ffsync -R
  4. PHP:
    mkdir /var/log/ffsync -p
  5. PHP:
    chown ffsync:daemons /var/log/ffsync
  6. PHP:
    mkdir /var/run/ffsync -p
  7. PHP:
    chmod ffsync:daemons /var/run/ffsync
  8. PHP:
    vi /usr/syno/etc.defaults/rc.d/S99ffsync.sh
    Rich (BBCode):
    #!/bin/sh
    #
    PIDFILE=/var/run/ffsync/ffsync.pid
    MESSAGELOG=/var/log/ffsync/sync-messages.log
    PASTER=/usr/local/server-full/bin/paster
    DEVINI=/usr/local/server-full/development.ini
    USER=ffsync
    GROUP=root
    
    
    stop() {
        $PASTER serve $DEVINI --user=$USER --group=$GROUP --pid-file=$PIDFILE --log-file=$MESSAGELOG --stop-daemon
    }
    
    start() {
    
        $PASTER serve $DEVINI --user=$USER --group=$GROUP --pid-file=$PIDFILE --log-file=$MESSAGELOG --daemon
    }
    
    
    case $1 in
    
    start)
            start
            ;;
    
    stop)
            stop
            ;;
    
    restart)
            stop
            sleep 1
            start
            ;;
    
    *)
            echo "usage: $0 { start | stop | restart }" >&2
            exit 1
            ;;
    esac

==========================================================================================
OPTIONAL2:
Standardmäßig hat der Sync-Server eine eigene Datenbank, sqlite. Es ist möglich stattdessen auch MySQL zu benutzen.
==========================================================================================
==========================================================================================
OPTIONAL3:
Standardmäßig hat der Syncserver einen eigenen Webserver. Man kann auch einen Apache benutzen.
==========================================================================================


Links:
http://docs.services.mozilla.com/howtos/run-sync.html#building-the-server
 

Anhänge

  • syncserver.txt
    5,8 KB · Aufrufe: 122

flostere

Benutzer
Mitglied seit
09. Mrz 2011
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Moin moin,

da darf man ruhigen Gewissens auch mal ein dickes Lob aussprechen! Werde ich bei Gelegenheit auf jeden Fall einmal ausprobieren! Dann kann man sich endlich einmal von allen Alternativen im Netz trennen (Firefox/Xmarks/.../etc.), denn ich will eigentlich gar nicht wissen wo meine Daten gespeichert sind.

Vielen vielen Dank schon mal
Grüße Flostére
 

CaptainKrunch

Benutzer
Mitglied seit
08. Jan 2012
Beiträge
226
Punkte für Reaktionen
0
Punkte
0
Ganz großes Tennis, papiga01! Vielen Dank für die Mühe und die tolle Anleitung. Wird sicher einigen hier massiv weiter helfen. :) *thumbsup*
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
@papiga01:
Deine Anleitung wäre auch was für's Synology Wiki :)
 

BerndZ

Benutzer
Mitglied seit
21. Apr 2009
Beiträge
56
Punkte für Reaktionen
0
Punkte
0
Moin moin,

da darf man ruhigen Gewissens auch mal ein dickes Lob aussprechen! Werde ich bei Gelegenheit auf jeden Fall einmal ausprobieren! Dann kann man sich endlich einmal von allen Alternativen im Netz trennen (Firefox/Xmarks/.../etc.), denn ich will eigentlich gar nicht wissen wo meine Daten gespeichert sind.

Vielen vielen Dank schon mal
Grüße Flostére

Ich bedanke mich ebenfalls ganz sehr! Spitze so was! Ich möchte auch viel mehr Cloud Dienste auf meine eigene DS legen, leider bleibt mir ja der Zugang zu CalDav und co. auf der DS107 verwährt :(

So mit muss ich meine Daten zu Google, MS und co. bringen :mad:

Wenn ich Zeit finde werde ich die FFSync auch sofort einrichten :)
 

papiga01

Benutzer
Mitglied seit
03. Jan 2009
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
Danke für die Blumen :eek:
Hab auch ne Textdatei angehängt in der Hoffnung dem WIKI-Schreiber das Leben angenehmer zu machen - Freiwillige vor ;)
Demnächst gibts ne weitere Anleitung...
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Hab auch ne Textdatei angehängt in der Hoffnung dem WIKI-Schreiber das Leben angenehmer zu machen - Freiwillige vor ;)

Du könntest dich doch im Wiki registrieren und das gleich selbst erledigen :)
Aber viell. findet sich auch einer der das übernehmen möchte.
 

kotto

Benutzer
Mitglied seit
05. Sep 2009
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
@papiga01
Sehr gute Beschreibung. Hat bei mir auf einer 207+ auf Anhieb mit FF11 funktioniert.
Danke

kotto
 

kotto

Benutzer
Mitglied seit
05. Sep 2009
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo,

klappt bei jemanden die Syncronisierung vom Internet auf die Syno?
Im eigenen 192.-Netz habe ich keine Probleme aber z.B aus dem Büro klappt es nicht.

Kotto
 

swiffer

Benutzer
Mitglied seit
25. Mai 2011
Beiträge
107
Punkte für Reaktionen
0
Punkte
16

Solari

Benutzer
Mitglied seit
16. Sep 2010
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Vielen Dank für die tolle Anleitung!

Ich habe leider weder Ahnung von Serveranwendungen noch von LINUX im Allgemeinen. Darum habe ich die Anleitung einfach mal "blind" abgetippt. Hat funktioniert! :)

Nun habe ich aber noch 3 Fragen.
1) Wie kann ich die ganzen Einstellungen wieder zurücknehmen, so dass quasi wieder der ursprüngliche Zustand meiner DS (vor der Serverinstallation) vorliegt?
2) Worin läge der Vorteil der optionalen Konfiguration "mit einem unpriviligierten User"? Es wird wohl mit der Sicherheit zu tun haben, aber wie genau?
3) Die Anleitung für die Konfiguration "mit einem unpriviligierten User" hat bei mir leider nicht funktioniert. Was kann da schief gelaufen sein?


Vielen Dank und schöne Grüße,
Solari
 

nachon

Benutzer
Mitglied seit
21. Aug 2011
Beiträge
2.637
Punkte für Reaktionen
1
Punkte
78
Find ich ja ziemlich cool. Die Idee und die Umsetzung. Nutze nur leider keinen Firefox mehr. Bin auch chrome gegangen. Geht da sowas nicht auch?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat