E2E encrypted contacts, calendars and tasks: https://www.etesync.com/ - upstream sources are at https://github.com/etesync
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Tom Hacohen de4f49973f Disable CORS altogether.
This solves #4 better than dfc7c8b163
7 years ago
etesync_server Disable CORS altogether. 7 years ago
.gitignore Use secret.txt file auto-generated in project root as default SECRET_KEY 7 years ago
LICENSE Initial commit: add license. 7 years ago
README.md Mention setting up CORS in Readme 7 years ago
manage.py Initial commit of the actual server code. 7 years ago
requirements.txt Disable CORS altogether. 7 years ago

README.md

A skeleton app for running your own EteSync server

Installation

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
virtualenv .venv
source .venv/bin/activate

pip install -r requirements.txt

Edit the settings file. Please refer to the Django deployment checklist for full instructions on how to configure a Django app for production. Some particular settings that should be edited are:

  • 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 False for production
  • SECRET_KEY -- an ephemeral secret used for various cryptographic signing and token generation purposes. See below for how default configuration of SECRET_KEY works for this project.

Now you can initialise our django app

./manage.py migrate

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. If you plan to use the webclient, you also want to enable CORS in your nginx config. You can find a "wide open CORS config" example here to be adjusted to your needs.

Usage

Create yourself an admin user:

./manage.py createsuperuser

At this stage you can either just use the admin user, or better yet, go to: www.your-etesync-install.com/admin and create a non-privileged user that you can use.

That's it!

Now all that's left is to open the EteSync app, add an account, and set your custom server address under the "advance" section.

SECRET_KEY and secret.txt

The default configuration creates a file “secret.txt” in the projects base directory, which is used as the value of the Django SECRET_KEY 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 the secret.txt file secret (dont 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 etesync_server/settings.py 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.

Updating

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 be API-compatible).

Supporting EteSync

Please consider registering an account even if you self-host in order to support the development of EteSync, or help by spreading the word.

Additionally, following user requests, we've opened an account on Librepay and accept donations there:

Donate using Librepay