Tutorial ini akan menunjukkan cara menginstal EteSync server di Ubuntu. EteSync adalah solusi enkripsi ujung-ke-ujung sumber terbuka untuk menyinkronkan kalender, kontak, tugas, dan catatan Anda.
Fitur EteSync
Versi terbaru adalah EteSync 2.0, yang menampilkan
- Enkripsi ujung ke ujung.
- Tidak diperlukan sandi enkripsi terpisah. Anda hanya perlu satu sandi yang digunakan untuk enkripsi dan login.
- Bukti tanpa pengetahuan untuk mengautentikasi ke server memastikan sandi Anda tidak pernah keluar dari perangkat Anda.
- Sinkronisasi instan antar perangkat Anda.
- Kemampuan untuk berbagi data dengan pengguna lain
- Klien tersedia untuk desktop (jembatan DAV), web, Android, dan iOS.
- Integrasi dengan desktop GNOME dan KDE (backend EteSync untuk Evolution dan Akonadi).
- Pengaya untuk Mozilla Thunderbird.
- Tingkatkan ke protokol Etebase baru.
Dalam waktu dekat, EteSync juga akan menambahkan dukungan untuk berbagi lokasi yang aman. EteSync menyediakan layanan yang di-host di etesync.com. Saya akan menunjukkan cara menjalankan instance yang dihosting sendiri di server Ubuntu dan cara menggunakan perangkat lunak klien di berbagai platform.
Langkah 1:Instal Server MariaDB Versi Stabil Terbaru di Ubuntu
Secara default, EteSync menyimpan informasi pengguna di SQLite basis data. Jika Anda lebih suka menggunakan MariaDB , ikuti petunjuk di bawah ini.
Sebaiknya gunakan MariaDB versi stabil terbaru yaitu 10.5, karena akan ada masalah jika Anda menjalankan EteSync dengan MariaDB 10.3. Untuk menginstal versi stabil terbaru, jalankan perintah berikut untuk menambahkan repositori MariaDB di Ubuntu 20.04.
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'
Untuk menambahkan repositori di Ubuntu 18.04, cukup ganti focal
dengan bionic
di perintah ketiga.
Kemudian perbarui indeks paket dan instal server MariaDB.
sudo apt update sudo apt install mariadb-server
Jika Anda memutakhirkan server MariaDB yang ada ke versi terbaru, Anda mungkin melihat pesan berikut. Saya sarankan memilih N
untuk mempertahankan versi saat ini dan memeriksa apa yang perlu diubah nanti.
Jika ada masalah ketergantungan paket, Anda dapat menjalankan perintah berikut untuk memperbaikinya.
sudo apt --fix-broken install
Setelah instalasi selesai, server MariaDB secara otomatis dimulai. Anda dapat memeriksa statusnya dengan:
systemctl status mariadb
Seperti yang Anda lihat, ini aktif dan berjalan.
Petunjuk :Tekan Q untuk mendapatkan kembali kendali terminal jika perintah di atas tidak segera dihentikan.
Jika tidak berjalan, Anda dapat memulainya secara manual dengan:
sudo systemctl start mariadb
Untuk mengaktifkan mulai otomatis saat boot, jalankan
sudo systemctl enable mariadb
Langkah 2:Buat Database dan Pengguna untuk EteSync di Server Database MariaDB
Masuk ke server database MariaDB dengan perintah berikut. Karena MariaDB sekarang menggunakan unix_socket
plugin untuk mengotentikasi login pengguna, tidak perlu memasukkan kata sandi root MariaDB. Kita hanya perlu mengawali mysql
perintah dengan sudo
.
sudo mysql
Kemudian buat database untuk EteSync. Tutorial ini menamai database etebase
. Anda dapat menggunakan nama apa pun yang Anda suka.
create database etebase;
Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password
dengan kata sandi pilihan Anda.
create user etebase@localhost identified by 'your-password';
Berikan pengguna ini semua hak istimewa di etebase
basis data.
grant all privileges on etebase.* to etebase@localhost;
Hapus hak istimewa dan keluar.
flush privileges; exit;
Langkah 3:Instal Server EteSync 2.0 di Ubuntu
Instal pembuat lingkungan virtual Python3 dan beberapa alat pembuatan paket.
sudo apt install python3-virtualenv python3-pip gcc build-essential
Buka direktori home Anda.
cd
Kloning repositori EteSync dari Github.
git clone https://github.com/etesync/server.git etebase
Ubah ke direktori yang baru dibuat.
cd etebase
Buat lingkungan virtual Python3.
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
Salin file konfigurasi contoh.
cp etebase-server.ini.example etebase-server.ini
Edit filenya.
nano etebase-server.ini
Temukan baris berikut
;media_root = /path/to/media
Batalkan komentar dan ubah nilainya.
media_root = /home/username/etebase/media/
Temukan baris berikut,
allowed_host1 = example.com
Gunakan sub-domain seperti etebase.example.com
.
allowed_host1 = etebase.example.com
Secara default, EteSync menyimpan informasi pengguna dalam database SQLite. Jika Anda lebih suka menggunakan server database MariaDB, beri komentar pada dua baris berikut (Tambahkan titik koma di awal setiap baris).
engine = django.db.backends.sqlite3 name = db.sqlite3
Kemudian tambahkan baris berikut di akhir file ini. Ini memberitahu EteSync cara mengakses etebase
database di MariaDB, yang dibuat pada langkah 1. Jelas Anda harus menggunakan kata sandi Anda sendiri untuk etebase
pengguna.
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
Simpan dan tutup file. Server Etebase adalah aplikasi Django, kita dapat menggunakan Daphne (server HTTP/WebSocket Saluran Django) untuk menjalankan Etebase. Instal Daphne dengan:
pip3 install daphne
Karena kita menggunakan MySQL/MariaDB sebagai mesin database, kita juga perlu menginstal mysqlclient
modul.
sudo apt install libmysqlclient-dev pip3 install mysqlclient
Instal aioredis
modul untuk menggunakan cache Redis.
pip3 install aioredis
Buat file statis Django.
./manage.py collectstatic
Inisialisasi aplikasi.
./manage.py migrate
Mulai server EteSync 2.0 (Etebase).
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Langkah 4:Jalankan EteSync sebagai Layanan Systemd
Kita dapat memulai EteSync secara manual dengan daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
, tetapi lebih nyaman untuk menjalankan EteSync sebagai layanan systemd di latar belakang. Tekan Ctrl+C
untuk menghentikan instance EteSync saat ini.
Buat file unit layanan systemd untuk EteSync dengan perintah berikut.
sudo nano /etc/systemd/system/etebase.service
Masukkan baris berikut ke dalam file. Ganti username
dengan nama pengguna asli Anda.
[Unit] Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. [Service] WorkingDirectory=/home/username/etebase/ ExecStart=/home/username/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=username Group=username Restart=always RestartSec=5s [Install] WantedBy=multi-user.target
Simpan dan tutup file. Sekarang kita dapat memulai dan mengaktifkan etebase
layanan systemd.
sudo systemctl start etebase sudo systemctl enable etebase
Periksa statusnya.
systemctl status etebase
Jika etebase
service tidak aktif (berjalan), Anda dapat menjalankan perintah berikut untuk melihat apa yang salah.
sudo journalctl -eu etebase
Langkah 5:Siapkan Proksi Terbalik
Sekarang kita perlu mengatur proxy terbalik untuk aplikasi Django, jadi nanti kita bisa mengakses EteSync melalui nama domain dan mengaktifkan HTTPS dengan mudah. Kita dapat menggunakan Apache atau Nginx untuk melakukannya.
Apache
Jika Anda lebih suka Apache, maka instal server web Apache dengan menggunakan perintah berikut.
sudo apt install apache2
Untuk menggunakan Apache sebagai proxy terbalik, kita perlu mengaktifkan proxy
modul dan header
modul.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Kemudian buat file host virtual untuk EteSync.
sudo nano /etc/apache2/sites-available/etebase.conf
Masukkan konfigurasi berikut ke dalam file. Ganti etebase.example.com
dengan nama domain Anda yang sebenarnya. Jangan lupa untuk membuat catatan DNS A untuk sub-domain ini. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.
<VirtualHost *:80> ServerName etebase.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 /home/username/etebase/static </VirtualHost>
Simpan dan tutup file. Kemudian aktifkan host virtual ini.
sudo a2ensite etebase.conf
Mulai ulang Apache
sudo systemctl restart apache2
Sekarang Anda dapat mengakses antarmuka web EteSync menggunakan nama domain etebase.example.com
.
Nginx
Jika Anda lebih suka server web Nginx, maka instal Nginx dengan.
sudo apt install nginx
Buat file host virtual di Nginx untuk EteSync.
sudo nano /etc/nginx/conf.d/etebase.conf
Masukkan baris berikut ke dalam file. Ganti placeholder seperlunya dan Anda harus membuat catatan DNS A untuk sub-domain.
upstream etebase { server unix:///tmp/etebase_server.sock; } server { listen 80; listen [::]:80; server_name etebase.example.com; charset utf-8; access_log /var/log/nginx/etebase.access; error_log /var/log/nginx/etebase.error; # 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; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Sekarang Anda dapat mengakses antarmuka web EteSync di etebase.example.com
.
Pemecahan Masalah
Jika Anda melihat bad request (400)
error saat mencoba mengakses antarmuka web EteSync, pastikan Anda telah menambahkan nama server etesync ke allowd_hosts
daftar di etebase-server.ini
mengajukan. Kemudian restart etebase (sudo systemctl restart etebase
).
Anda juga dapat mengaktifkan mode debug di etebase-server.ini file, yaitu, ubah
debug = false
Untuk
debug = true
Kemudian restart etebase.
sudo systemctl restart etebase
Kemudian periksa log layanan systemd.
sudo journalctl -eu etebase
Langkah 6:Aktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu.
sudo apt install certbot
Jika Anda menggunakan Apache, maka Anda juga perlu menginstal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
Dimana:
--apache
:Gunakan plugin Apache.--nginx
:Gunakan plugin nginx.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
:Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
:Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 7:Buat Akun Pengguna
Buat pengguna admin super.
./manage.py createsuperuser
Lalu pergi ke etebase.example.com/admin
dan masuk ke konsol admin. Selanjutnya, Anda dapat membuat akun pengguna individual yang akan digunakan untuk menyinkronkan kalender, kontak, tugas, dan catatan. Perhatikan bahwa Anda tidak perlu membuat sandi untuk pengguna di konsol admin EteSync, karena Etebase menggunakan bukti tanpa pengetahuan untuk autentikasi.
Sekarang kita perlu menyiapkan klien untuk menggunakan EteSync.
Cara Memasang Modul Evolution EteSync di Desktop Ubuntu
Evolusi adalah suite groupware default di lingkungan desktop GNOME. Anda dapat menginstalnya di desktop Ubuntu Anda dengan:
sudo apt install evolution
Untuk menggunakan EteSync di Evolution, kita perlu menginstal modul EteSync for Evolution dengan mengikuti langkah-langkah di bawah ini.
Kloning libetebase
penyimpanan.
sudo apt install git git clone https://github.com/etesync/libetebase.git
Ubah ke direktori yang baru dibuat.
cd libetebase/
Instal paket yang diperlukan untuk membangun paket dari sumber.
sudo apt install build-essential libssl-dev cargo
Kompilasi paket sumber.
make
Instal biner.
sudo make install
Kemudian kembali ke direktori sebelumnya.
cd ..
Kloning Evolution-EteSync
penyimpanan.
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
Ubah ke direktori yang baru dibuat.
cd evolution-etesync/
Instal paket yang diperlukan untuk membangun paket dari sumber.
sudo apt install cmake intltool evolution-data-server-dev evolution-dev libedata-book1.2-dev libedata-cal2.0-dev libecal2.0-dev libebook1.2-dev
Kompilasi dan instal paket.
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
Menggunakan EteSync di Evolution
Sekarang luncurkan aplikasi Evolution di desktop Ubuntu Anda. Klik tombol Baru tombol di bilah alat dan tambahkan akun koleksi baru .
Kemudian masukkan nama pengguna dan alamat server EteSync Anda. Perhatikan bahwa Anda perlu menambahkan https://
sebagai awalan dari alamat server. Pilih Cari akun EteSync dan hapus centang semua opsi lainnya. Kemudian klik Cari tombol.
Ini akan meminta Anda memasukkan kata sandi untuk melanjutkan. Ini sebenarnya waktu untuk mengatur kata sandi, jadi klik Masukkan kata sandi tautkan dan atur kata sandi.
Setelah memasukkan kata sandi, klik tombol Coba lagi dan itu akan menemukan satu kandidat. Klik tombol Berikutnya tombol untuk melanjutkan.
Sinkronkan dengan NextCloud
Jika Anda memiliki server Nextcloud yang dihosting sendiri dan menginstal aplikasi Kalender, Tugas, atau Kontak di server Nextcloud, Anda dapat menambahkan server DAV Nextcloud di Evolution, sehingga dapat disinkronkan. Cukup tambahkan akun koleksi lainnya di Evolution, masukkan nama pengguna Nextcloud dan alamat CalDAV/CardDAV Anda, pilih Cari server CalDAV/CardDAV , hapus centang semua opsi lainnya. Kemudian masukkan kata sandi Nextcloud Anda. Alamat Nextcloud CalDAV/CardDAV harus https://nextcloud.yourdomain.com/remote.php/dav
.
Menggunakan Aplikasi iOS EteSync
Untuk menyinkronkan kalender, kontak, dan tugas Anda di iOS, pertama-tama Anda perlu menyiapkan akun CalDAV/CardDAV di iOS. Buka Setelan aplikasi -> Kalender -> Akun -> Tambah Akun -> Lainnya , dan tambahkan akun CalDAV dan CardDAV. CalDAV digunakan untuk menyinkronkan kalender dan CardDAV digunakan untuk menyinkronkan kontak di perangkat Anda.
Jika Anda memiliki server Nextcloud yang dihosting sendiri, Anda dapat menggunakan akun Nextcloud CalDAV/CardDAV Anda. Jika Anda tidak memilikinya, cukup gunakan akun palsu.
Selanjutnya, instal aplikasi EteSync dari app store. Kemudian tambahkan akun EteSync Anda.
Setelah masuk ke akun EteSync Anda, buka setelan menu di aplikasi EteSync. Dalam Lanjutan bagian, pilih akun CardDAV Anda untuk Sinkronkan kontak dan pilih akun CalDAV Anda untuk Sinkronkan kalender dan pengingat .