GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal server EteSync di Ubuntu 20.04

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.


Ubuntu
  1. Cara Instal Zimbra 8.6 di Server Ubuntu 14.04

  2. Cara Menginstal Logstash di Ubuntu 18.04

  3. Cara menginstal Server Minecraft di Ubuntu 20.04 LTS

  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Menginstal Server TeamSpeak di Ubuntu 18.04 &20.04

  3. Cara Menginstal R di Ubuntu 18.04

  1. Cara Memasang Server Minecraft di Ubuntu 18.04

  2. Cara Menginstal Nginx di Ubuntu 20.04

  3. Cara Menginstal MariaDB di Ubuntu 20.04