EteSync adalah solusi sumber terbuka untuk menyinkronkan kontak, kalender, dan tugas Anda. Itu di-host sendiri, menyediakan enkripsi ujung ke ujung, dan memungkinkan Anda untuk berbagi data dengan pengguna lain. Ini dapat diintegrasikan dengan desktop GNOME dan KDE. Itu dapat diakses melalui klien desktop, web, Android, dan iOS.
Dalam tutorial ini, saya akan menunjukkan cara menginstal EteSync dengan Apache di Ubuntu 20.04.
Prasyarat
- Server yang menjalankan Ubuntu 20.04.
- Nama domain valid yang ditunjukkan dengan IP server Anda.
- Kata sandi root dikonfigurasi di server.
Memulai
Pertama, perbarui paket sistem ke versi yang diperbarui dengan menjalankan perintah berikut:
apt-get update -y
Setelah semua paket diperbarui, Anda dapat melanjutkan ke langkah berikutnya.
Memasang Server MariaDB
Secara default, EteSync menggunakan database SQLite untuk menyimpan informasinya. Di sini, kita akan menginstal dan menggunakan MariaDB sebagai backend database.
Pertama, instal dependensi yang diperlukan menggunakan perintah berikut:
apt-get install software-properties-common gnupg2 -y
Selanjutnya, tambahkan kunci dan repositori MariaDB GPG menggunakan perintah berikut:
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'
Selanjutnya, perbarui repositori MariaDB dan instal versi terbaru MariaDB dengan perintah berikut:
apt-get install mariadb-server -y
Setelah menginstal server MariaDB, masuk ke shell MariaDB dengan perintah berikut:
mysql
Setelah Anda masuk, buat database dan pengguna untuk EteSync dengan perintah berikut:
MariaDB [(none)]> create database etesync;
MariaDB [(none)]> create user [email protected] identified by 'securepassword';
Selanjutnya, berikan semua hak istimewa ke database EteSync dengan perintah berikut:
MariaDB [(none)]> grant all privileges on etesync.* to [email protected];
Selanjutnya, flush hak istimewa dan keluar dari MariaDB dengan perintah berikut:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Menginstal dan Mengonfigurasi EteSync
Pertama, Anda perlu menginstal beberapa dependensi Python yang diperlukan untuk EteSync. Anda dapat menginstal semuanya dengan perintah berikut:
apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -y
Setelah menginstal semua dependensi, unduh versi terbaru EteSync menggunakan perintah berikut:
git clone https://github.com/etesync/server.git etesync
Setelah unduhan selesai, ubah direktori menjadi etesync dan buat lingkungan virtual Python dengan perintah berikut:
cd etesync
virtualenv -p python3 .venv
Selanjutnya, aktifkan virtual environment dengan perintah berikut:
source .venv/bin/activate
Selanjutnya, instal semua persyaratan menggunakan perintah berikut:
pip install -r requirements.txt
Selanjutnya, salin file konfigurasi sampel:
cp etebase-server.ini.example etebase-server.ini
Selanjutnya, edit file konfigurasi menggunakan perintah di bawah ini:
nano etebase-server.ini
Tambahkan atau ubah baris berikut sesuai konfigurasi Anda:
media_root = /opt allowed_host1 = etesync.example.com ;engine = django.db.backends.sqlite3 ;name = db.sqlite3 engine = django.db.backends.mysql name = etesync user = etesync password = securepassword host = 127.0.0.1 port = 3306
Simpan dan tutup file kemudian instal modul lain menggunakan perintah berikut:
pip3 install daphne
pip3 install mysqlclient
pip3 install aioredis
Selanjutnya, buat file statis dan migrasikan database dengan perintah berikut:
./manage.py collectstatic
./manage.py migrate
Terakhir, jalankan server EteSync dengan perintah berikut:
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
2021-07-09 05:42:28,510 INFO Starting server at tcp:port=8001:interface=0.0.0.0 2021-07-09 05:42:28,510 INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras) 2021-07-09 05:42:28,511 INFO Configuring endpoint tcp:port=8001:interface=0.0.0.0 2021-07-09 05:42:28,512 INFO Listening on TCP address 0.0.0.0:8001
Tekan CTRL + C untuk menghentikan server.
Selanjutnya, buat pengguna administratif menggunakan perintah berikut:
./manage.py createsuperuser
Berikan nama pengguna, kata sandi, dan email Anda seperti yang ditunjukkan di bawah ini:
Username: etesync Email address: [email protected] Password: Password (again): Superuser created successfully.
Selanjutnya, nonaktifkan dari lingkungan virtual Python dengan perintah berikut:
deactivate
Buat File Unit Sistem untuk EteSync
Selanjutnya, Anda perlu membuat file unit systemd untuk mengelola EteSync. Anda dapat membuatnya dengan perintah berikut:
nano /etc/systemd/system/etesync.service
Tambahkan baris berikut:
[Unit] Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. [Service] WorkingDirectory=/root/etesync ExecStart=/root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=root Group=root Restart=always RestartSec=5s [Install] WantedBy=multi-user.target
Simpan dan tutup file lalu muat ulang daemon systemd untuk menerapkan perubahan konfigurasi:
systemctl daemon-reload
Selanjutnya, mulai dan aktifkan layanan EteSync dengan perintah berikut:
systemctl start etesync
systemctl enable etesync
Untuk memverifikasi status layanan EteSync, jalankan perintah berikut:
systemctl status etesync
Anda akan mendapatkan output berikut:
? etesync.service - EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. Loaded: loaded (/etc/systemd/system/etesync.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 05:45:45 UTC; 5s ago Main PID: 16213 (daphne) Tasks: 1 (limit: 2353) Memory: 48.7M CGroup: /system.slice/etesync.service ??16213 /root/etesync/.venv/bin/python /root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_se> Jul 09 05:45:45 node1 systemd[1]: Started EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.. Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,993 INFO Starting server at tcp:port=8001:interface=127.0.0.1, unix:/tmp/etebase_> Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras) Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO Configuring endpoint tcp:port=8001:interface=127.0.0.1 Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,997 INFO Listening on TCP address 127.0.0.1:8001 Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,998 INFO Configuring endpoint unix:/tmp/etebase_server.sock
Pada titik ini, EteSync dimulai dan mendengarkan pada port 8001. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Mengonfigurasi Apache sebagai Proxy Terbalik
Disarankan juga untuk menginstal dan menggunakan Apache sebagai proxy terbalik untuk mengakses EteSync. Pertama, instal server Apache dengan perintah berikut:
apt-get install apache2 -y
Setelah menginstal server Apache, aktifkan semua modul proxy dengan perintah berikut:
a2enmod proxy proxy_http headers proxy_wstunnel
Selanjutnya, buat file konfigurasi virtual host Apache baru:
nano /etc/apache2/sites-available/etesync.conf
Tambahkan baris berikut:
<VirtualHost *:80> ServerName etesync.example.com ErrorDocument 404 /404.html ErrorLog ${APACHE_LOG_DIR}/etebase_error.log CustomLog ${APACHE_LOG_DIR}/etebase_access.log combined ProxyPreserveHost On ProxyPass / http://127.0.0.1:8001/ ProxyPassReverse / http://127.0.0.1:8001/ Alias /static /etesync/static </VirtualHost>
Simpan dan tutup file kemudian aktifkan Apache virtual host dengan perintah berikut:
a2ensite etesync.conf
Selanjutnya, restart Apache untuk memperbarui perubahan:
systemctl restart apache2
Anda sekarang dapat memverifikasi status Apache menggunakan perintah berikut:
systemctl status apache2
Anda akan mendapatkan output berikut:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 05:50:26 UTC; 5s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 17551 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 17567 (apache2) Tasks: 55 (limit: 2353) Memory: 5.3M CGroup: /system.slice/apache2.service ??17567 /usr/sbin/apache2 -k start ??17568 /usr/sbin/apache2 -k start ??17569 /usr/sbin/apache2 -k start Jul 09 05:50:26 node1 systemd[1]: Starting The Apache HTTP Server... Jul 09 05:50:26 node1 apachectl[17558]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 45.58.3>
Mengakses Konsol Admin EteSync
Sekarang, buka browser web Anda dan akses antarmuka admin EteSync menggunakan URL http://etesync.example.com/admin/ . Anda akan diarahkan ke halaman berikut:
Berikan nama pengguna, kata sandi admin Anda, dan klik Masuk tombol. Anda akan melihat halaman berikut:
Amankan EteSync dengan Let's Encrypt SSL
Pertama, Anda perlu menginstal klien Certbot Let's Encrypt untuk mengunduh dan menginstal sertifikat SSL untuk domain Anda.
Anda dapat menginstalnya dengan perintah berikut:
apt-get install python3-certbot-apache -y
Setelah terinstal, Anda dapat menjalankan perintah berikut untuk menginstal Let's Encrypt Certificate untuk domain Anda etesync.example.com.
certbot --apache -d etesync.example.com
Selama instalasi, Anda akan diminta untuk memberikan alamat email Anda dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for etesync.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/etesync-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/etesync-le-ssl.conf Enabling available site: /etc/apache2/sites-available/etesync-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Selanjutnya, ketik 2 dan tekan Enter untuk mengunduh dan memasang sertifikat SSL gratis untuk domain Anda. Setelah instalasi selesai dengan sukses. Anda akan mendapatkan output berikut:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/etesync.conf to ssl vhost in /etc/apache2/sites-available/ etesync-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://etesync.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kesimpulan
Selamat! Anda telah berhasil menginstal EteSync di server Ubuntu 20.04 dengan Let's Encrypt SSL. Anda sekarang dapat menyinkronkan kalender dan kontak Anda dengan mudah dengan EteSync.