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 acd22b9b47 Serializers: remove unused field. 4 years ago
django_etebase Serializers: remove unused field. 4 years ago
etebase_server Disable signups by default. 4 years ago
example-configs/nginx-uwsgi Update example-configs to etebase. 4 years ago
myauth Disallow + in usernames. 5 years ago
requirements.in Update django and remove unused deps. 4 years ago
templates Add settings and configuration to run the etebase app. 5 years ago
.gitignore Add .gitignore. 5 years ago
LICENSE Add license file. 5 years ago
README.md Update README for Etebase with new wiki links (#56) 4 years ago
etebase-server.ini.example Port over easyconfig from the etesync server code. 4 years ago
icon.svg Update README for Etebase with new wiki links (#56) 4 years ago
manage.py Create a new django project. 5 years ago
requirements.txt Update django and remove unused deps. 4 years ago

README.md

Etebase - Encrypt Everything

A skeleton app for running your own Etebase server

Installation

From source

Before installing the Etebase server make sure you install virtualenv (for Python 3):

  • Arch Linux: pacman -S python-virtualenv
  • Debian/Ubuntu: apt-get install python3-virtualenv
  • Mac/Windows/Other Linux: install virtualenv or just skip the instructions mentioning virtualenv.

Then just clone the git repo and set up this app:

git clone https://github.com/etesync/server.git etebase

cd etebase
git checkout etebase

# Set up the environment and deps
virtualenv -p python3 venv  # If doesn't work, try: virtualenv3 venv
source venv/bin/activate

pip install -r requirements.txt

Configuration

If you are familiar with Django you can just edit the settings file according to the Django deployment checklist. If you are not, we also provide a simple configuration file for easy deployment which you can use. To use the easy configuration file rename it to etebase-server.ini and place it either at the root of this repository or in /etc/etebase-server.

There is also a wikipage detailing this basic setup.

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 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 please read the following section for a proper deployment.

Production deployment

There are more details about a proper production setup using Daphne and Nginx in the wiki.

Etebase is based on Django so you should refer to one of the following

  • The instructions of the Django project here.
  • Instructions from uwsgi here.

The webserver should also be configured to serve Etebase using TLS. A guide for doing so can be found in the wiki as well.

Usage

Create yourself an admin user:

./manage.py createsuperuser

At this stage you need to create accounts to be used with the EteSync apps. To do that, please go to: www.your-etesync-install.com/admin and create a new user to be used with the service.

After this user has been created, you can use any of the EteSync apps to signup (not login!) with the same username and email in order to set up the account. Please make sure to click "advance" and set your customer server address when you do.

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

First, run git pull --rebase to update this repository. Then, inside the virtualenv:

  1. Run pip install -U -r requirements.txt to update the dependencies.
  2. Run python manage.py migrate to perform database migrations.

You can now restart the server.

Supporting Etebase

Please consider registering an account even if you self-host in order to support the development of Etebase, or visit the contribution for more information on how to support the service.