Etesync server, installazione e configurazione su Ubuntu.
Proviamo ad installare su una VPS con SO Ubuntu 20.04 il server Etesync, alternativa Open Source a Google account con cui potremo sincronizzare in maniera sicura con qualsiasi dispositivo i nostri Contatti, Calendario e Note.
Al termine avremo installato Nginx, con abilitato HTTPS tramite Letsencrypt, che funziona come reverse proxy per il server Etesync con crittografia end-to-end.
I prerequisiti sono:
- shell server Linux Ubuntu ( in questo caso utilizzeremo una VPS ) con permessi di root e un utente normale abilitato sudo ( in questo caso utilizzeremo una VPS )
- qualche dimestichezza con la shell
- Putty per collegarci da remoto ? forse
- un dominio di proprietà su cui creare un record A a cui associare l’installazione
Bene, apriamo la shell del nostro utente e aggiorniamo i repository:
installiamo python3, compilatori git ecc:
1
|
sudo apt install python3-virtualenv python3-pip gcc build-essential git nano
|
1
2
|
cd ~
git clone https://github.com/etesync/server.git etebase
|
1
2
3
4
5
|
cd etebase
virtualenv -p python3 .venv
source .venv/bin/activate
pip install -r requirements.txt
cp etebase-server.ini.example etebase-server.ini
|
1
|
nano etebase-server.ini
|
a questo punto editiamo il file aperto che sarà il file di configurazione del server e modifichiamo la riga “media_root” dove inseriremo il nostro reale utente e in “allowed_host1” il nostro host.domain.tld:
1
2
3
|
media_root = /home/<user>/etebase/media/
allowed_host1 = ete.domain.tld
language_code = it-it
|
ora installiamo l’applicativo Django e Redis cache e file statici:
1
2
3
4
|
pip3 install daphne
pip3 install aioredis
./manage.py collectstatic
./manage.py migrate
|
ora facendolo partire provvisorio ne verifichiamo il funzionamento, stoppiamo con CTRL+C:
1
|
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
|
creiamo un servizio ad hoc creando il suo file specifico:
1
|
sudo nano /etc/systemd/system/etebase.service
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[Unit]
Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.
[Service]
WorkingDirectory=/home/<user>/etebase/
ExecStart=/home/<user>/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application
User=<user>
Group=<user>
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
|
avviamo ed abilitiamo il servizio all’avvio e controlliamo se tutto funziona:
1
2
3
4
|
sudo systemctl start etebase
sudo systemctl enable etebase
systemctl status etebase
sudo journalctl -eu etebase
|
Ora passiamo a installare, configurare Nginx:
1
2
3
4
5
6
|
sudo apt install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/conf.d/ete.domain.tld.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
upstream etebase {
server unix:///tmp/etebase_server.sock;
}
server {
listen 80;
listen [::]:80;
server_name ete.domain.tld;
charset utf-8;
access_log /var/log/nginx/ete.domain.tld.access.log;
error_log /var/log/nginx/ete.domain.tld.error.log;
# max upload size
client_max_body_size 75M;
location /static/ {
alias /home/username/etebase/static/;
}
location / {
proxy_pass http://etebase;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
|
testiamone la configurazione:
1
2
3
4
|
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart nginx
sudo systemctl restart etebase
|
a questo punto installiamo Letsencrypt HTTPS in Nginx tramite certbot:
1
2
3
|
sudo apt install certbot
sudo apt install python3-certbot-nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email tua@esempioemail.com -d ete.domain.tld
|
dovremmo ottenere il certificato sottola cartella /etc/letsencrypt.
Passiamo a creare l’utente di amministrazione del server e inseriamone l’email:
1
2
|
cd ~/etebase
./manage.py createsuperuser
|
Se tutto è andato come dovrebbe possiamo iniziare a configurare gli utenti all’indirizzo host.domain.tld e testare la configurazione anche da smarthphone tramite le app di Etesync-App che potete trovare direttamente dal Play Store e sono EteSync - Secure Data Sync e EteSync Notes - End-to-end, a questo punto la configurazione è abbastanza banale.
Le guide originali sono prese da Linuxbabe.com
Buon sync . . .