Eigener Sync-Server für Firefox (Rust): Difference between revisions
(add some steps) |
No edit summary |
||
Line 6: | Line 6: | ||
* Account Service |
* Account Service |
||
⚫ | |||
* Sync Storage: |
|||
⚫ | |||
* Podman, Ansible?, Rust sync server, legacy python2 server, |
* Podman, Ansible?, Rust sync server, legacy python2 server, |
||
Line 13: | Line 12: | ||
=== Einrichten von Mysql für Sync-Server === |
=== Einrichten von Mysql für Sync-Server === |
||
$ sudo pacman -S mariadb |
$ sudo pacman -S mariadb |
||
Line 18: | Line 18: | ||
$ sudo mysql_secure_installation |
$ sudo mysql_secure_installation |
||
$ mysql -u root -p |
$ mysql -u root -p |
||
[ |
[mariadb]$ CREATE USER syncstorage IDENTIFIED BY '**hidden**'; |
||
[ |
[mariadb]$ CREATE DATABASE syncstorage_rs; |
||
[ |
[mariadb]$ GRANT ALL PRIVILEGES on syncstorage_rs.* to syncstorage; |
||
Tabellen für tokenserver erstellen.[4] Hier verwende ich die gleiche Datenbank `syncstorage_rs` für den Tokenserver, da sich die Tabellennamen nicht überschneiden und es so auch in der AUR-Diskussion beschrieben wird. |
|||
Die Konsole befindet sich im Git-Verzeichnis von https://github.com/mozilla-services/syncstorage-rs |
|||
$ cargo install diesel_cli |
|||
$ diesel --database-url mysql://syncstorage:ix79unOS0nF9jvTgVsQS9Q01jseiYFBq@localhost/syncstorage_rs migration --migration-dir syncstorage/src/tokenserver/migrations/ run |
|||
$ mysql -u syncstorage -p |
|||
[mariadb]$ USE syncstorage_rs; |
|||
[mariadb]$ INSERT INTO `services` (`id`, `service`, `pattern`) VALUES ('1', 'sync-1.5', '{node}/1.5/{uid}'); |
|||
[mariadb]$ INSERT INTO `nodes` (`id`, `service`, `node`, `available`, `current_load`, `capacity`, `downed`, `backoff`) VALUES ('1', '1', 'http://localhost:8000', '1', '0', '1', '0', '0'); |
|||
Tokenserver starten. Die Konsole befindet sich weiterhin im Git-Verzeichnis von https://github.com/mozilla-services/syncstorage-rs |
|||
$ make run |
|||
=== Erster start vom Sync-Server === |
=== Erster start vom Sync-Server === |
||
Line 40: | Line 54: | ||
* [1]: [https://hacks.mozilla.org/2018/11/firefox-sync-privacy/ Firefox Sync, Private by Design] |
* [1]: [https://hacks.mozilla.org/2018/11/firefox-sync-privacy/ Firefox Sync, Private by Design] |
||
* [2]: [https://github.com/mozilla-services/syncstorage-rs/ Github: syncstorage-rs] |
* [2]: [https://github.com/mozilla-services/syncstorage-rs/ Github: syncstorage-rs] |
||
* [3]: [https://github.com/mozilla-services/syncstorage-rs/tree/fca795e3c09c7feee12b450791a53bb0a2871b48#connecting-to-firefox ] |
|||
* [4]: https://github.com/mozilla-services/syncstorage-rs/blob/3a21947cf58df29809f406d689c4be3afa97e38e/syncstorage/src/tokenserver/README.md#database |
Revision as of 19:57, 11 October 2022
Firefox Sync ist ein Service zum Synchronisieren von Bookmarks, Passwörtern und Browser History. Diese werden zentral auf Mozilla-Servern verschlüsselt gespeichert.[1] Der Dienst ist Open Source (MPLv2) und lässt sich selbsthosten. Derzeit läuft in der Informatik ein eigener Sync-Server für Firefox der Version 1.5. Seitdem gab es eine Neuimplementierung in Rust[2]. Bei diesem Artikel handelt es sich um das Aufsetzen und Einrichten der Rust-Neuimplementierung.
Aufbau
Firefox Sync besteht aus zwei Komponenten:
- Account Service
- Sync Storage: Derzeit muss leider zusätzlich zu dem Rust-Storage der legacy python2 syncserver laufen.[3]
- Podman, Ansible?, Rust sync server, legacy python2 server,
Schritte
Einrichten von Mysql für Sync-Server
$ sudo pacman -S mariadb $ sudo systemctl start mariadb $ sudo mysql_secure_installation $ mysql -u root -p [mariadb]$ CREATE USER syncstorage IDENTIFIED BY '**hidden**'; [mariadb]$ CREATE DATABASE syncstorage_rs; [mariadb]$ GRANT ALL PRIVILEGES on syncstorage_rs.* to syncstorage;
Tabellen für tokenserver erstellen.[4] Hier verwende ich die gleiche Datenbank `syncstorage_rs` für den Tokenserver, da sich die Tabellennamen nicht überschneiden und es so auch in der AUR-Diskussion beschrieben wird. Die Konsole befindet sich im Git-Verzeichnis von https://github.com/mozilla-services/syncstorage-rs
$ cargo install diesel_cli $ diesel --database-url mysql://syncstorage:ix79unOS0nF9jvTgVsQS9Q01jseiYFBq@localhost/syncstorage_rs migration --migration-dir syncstorage/src/tokenserver/migrations/ run $ mysql -u syncstorage -p [mariadb]$ USE syncstorage_rs; [mariadb]$ INSERT INTO `services` (`id`, `service`, `pattern`) VALUES ('1', 'sync-1.5', '{node}/1.5/{uid}'); [mariadb]$ INSERT INTO `nodes` (`id`, `service`, `node`, `available`, `current_load`, `capacity`, `downed`, `backoff`) VALUES ('1', '1', 'http://localhost:8000', '1', '0', '1', '0', '0');
Tokenserver starten. Die Konsole befindet sich weiterhin im Git-Verzeichnis von https://github.com/mozilla-services/syncstorage-rs
$ make run
Erster start vom Sync-Server
In Configdatei: `mysql://syncstorage:**hidden**@localhost/syncstorage`
$ head -c 20 /dev/urandom | sha1sum # generieren des master_secrets $ cp config/local.example.toml config/local.toml $ vim config/local.toml
Ressourcen
- Artikel in diesem Wiki: Eigener Sync-Server für Firefox
- Projektbeschreibung
- Arch linux AUR-Paket: https://aur.archlinux.org/packages/firefox-syncstorage-git#comment-840519