A skeleton app for running your own EteSync server
To setup your own EteSync server based on the git version just clone this git repository and set up the django app:
git clone https://github.com/etesync/server-skeleton.git cd server-skeleton # Set up the environment and deps virtualenv3 .venv source .venv/bin/activate pip install -r requirements.txt
ALLOWED_HOSTS-- this is the list of host/domain names or addresses on which the app will be served
DEBUG-- handy for debugging, set to
SECRET_KEY-- an ephemeral secret used for various cryptographic signing and token generation purposes. See below for how default configuration of
SECRET_KEYworks for this project.
Now you can initialise our django app
And you are done! You can now either run the debug server just to see everything works as expected by running:
./manage.py runserver 0.0.0.0:8000
Using the debug server in production is not recommended, so you should configure your webserver to serve etesync (with TLS). An example on how to do so with nginx can be found here.
Create yourself an admin user:
At this stage you can either just use the admin user, or better yet, go to:
and create a non-privileged user that you can use.
Now all that's left is to open the EteSync app, add an account, and set your custom server address under the "advance" section.
The default configuration creates a file “
secret.txt” in the project’s
base directory, which is used as the value of the Django
setting. You can revoke this key by deleting the
secret.txt file and the
next time the app is run, a new one will be generated. Make sure you keep
secret.txt file secret (don’t accidentally commit it to version
control, exclude it from your backups, etc.). If you want to change to a
more secure system for storing secrets, edit
and implement your own method for setting
SECRET_KEY (remove the line
where it uses the
get_secret_from_file function). Read the Django docs
for more information about the
SECRET_KEY and its uses.
Inside the virtualenv, run
pip install -U -r requirements.txt to update
dependencies to latest compatible versions of Django and
djangorestframework (it will only update to latest patch level which should
Please consider registering an account even if you self-host in order to support the development of EteSync, or help by spreading the word.