Official Website | Report a bug
Domovik is a cross-browser synchronization service, letting you seamlessly access Tabs, Bookmarks, and Reading Lists from any connected browser.
The companion WebExtension is available here
A walk-through of its main features is available on the official website.
If you do not wish to self-host Domovik or would like to support the project, consider using our official instance.
Domovik is an alternative for the synchronisation services already integrated in some browser (e.g. Firefox Sync or Chrome anywhere) for people who want to:
- synchronise data across different browsers;
- self-host their synchronization engine;
- synchronize data from browsers which don’t have a sync service (e.g. Qutebrowser, Nyxt, etc.);
- integrate web synchronization deeper into their workflow with out-of-browser handling (coming soon).
Domovik synchronizes all the tabs open (in non-private navigation mode) on all of your browsers. They can then be accessed either through the server web interface, or via the browser extension.
Compared to many other bookmarks manager, Domovik does not aim at replacing the bookmarks system integrated in your browser. It merely copies them to the synchronization server, from where your other browsers can access them via the browser extension. You can also access them through the web interface of the server.
Reading Lists are lists of transient links that are created from the menu of the companion extension, then disappear as soon as you open them, either from the extension or from the server web interface. They can be used e.g. as a way to temporarily store a set of tabs, as TOREAD lists, as a way to temporarily gather some thematic pages, etc.
Domovik provides a way to send asynchronous commands from a browser to another one. It is currently only used to send a page to another browser, but new features should come.
Domovik uses an end-to-end encryption scheme such that none of your browsing data ever transit in clear through the synchronization server. The advantage is that your privacy is safe; the drawback is that all of your data being encrypted with a key derived from your password, the loss of your password means the loss of all of your synchronized data.
First, clone the Domovik repo git clone https://github.com/domovikapp/domovik-server
- Install Elixir
- Install node.js
- Install PostgreSQL
- Configure your database settings – i.e. username, password & hostname for TCP access or socket & username for socket access – in
config/dev.exs
; - Setup the project with
mix setup
; - generate development self-signed SSL certificates
mix phx.gen.cert
; - start the server with
mix phx.server
.
Domovik is now available at http://127.0.0.1:4000/session/new
and https://127.0.0.1:4001/session/new
.
- Have a Python 2 interpreter available
- Install Elixir
- Install node.js
- Install PostgreSQL
- Set the environment variable
MIX_ENV
toprod
. - Create a PostgreSQL users with the permission to create databases and set the environment variable
DATABASE_URL
toecto://[USER]:[PASSWORD]@[HOST]/[DATABASE]
. - Set the environment variable
SECRET_KEY_BASE
to e.g. the output ofmix phx.gen.secret
. - Set
admin_username
andadmin_password
inconfig/prod.exs
. - Optionally, set the environment variable
PORT
to the desired TCP port (defaults to 4000). - Setup the project with
mix setup
. - Build the web assets with
npm run deploy --prefix ./assets && mix phx.digest
. - Follow the instructions to configure Pow, the authentication library.
- Finally, launch the server with
mix phx.server
or use Elixir releases.
First, build the Docker image:
sudo docker container run --rm -it --entrypoint "" -p 127.0.0.1:4000:4000 domovikapp/domovik sh
Then run the server:
sudo docker container run --rm -it -p 127.0.0.1:4000:4000 --name domovik domovikapp/domovik \\
-e "DATABASE_URL=ecto://USER:PASSWORD@HOST/DATABASE" \\
-e "SECRET_KEY_BASE=xxx"
Edit docker-compose.yml
and set SECRET_KEY_BASE
to the output of mix phx.gen.secret
(or any other similar method), then run docker-compose up
You can then either directly expose the bundled HTTP server, or use a reverse proxy such as e.g. Nginx.
Please note that due to JS cryptography APIs being only available in safe contexts, Domovik should always be accessed over HTTPS.
Domovik is built around the following technologies:
- the Elixir language;
- the Phoenix web framework;
- the Webpack bundler;
- the PostgreSQL database;
- the SASS CSS preprocessor.
Fonts used are Jost* and Inter.
Domovik is available under the AGPLv3 license, as found in the LICENSE text file.