GNU/Linux >> Belajar Linux >  >> Debian

Cara Instal Etherpad dengan Nginx dan SSL di Debian 11

Etherpad adalah alternatif sumber terbuka dan gratis untuk layanan seperti Google Documents dan Zoho Writer. Etherpad adalah editor teks kolaboratif dan real-time untuk tim Anda, dapat diakses dari mana saja kapan saja karena Etherpad adalah editor teks berbasis web.

Setiap perubahan pada Etherpad terjadi secara real-time, dan juga etherpad mendukung pembuatan versi dan pemformatan bawaan untuk tim. Etherpad adalah editor yang sangat dapat disesuaikan dengan dukungan berbagai plugin. Dan juga mendukung format dokumen modern seperti doc, pdf, odt, markdown, dll.

Dalam tutorial ini, Anda akan menginstal dan mengkonfigurasi Etherpad Real-time Collaborative Editor pada Debian 11 Bullseye. Tutorial ini menggunakan MariaDB sebagai backend database dan server web Nginx sebagai proxy terbalik dengan HTTPS aman yang diaktifkan. Pada akhirnya, Anda akan menginstal Etherpad dan diamankan melalui enkripsi HTTPS yang aman.

Prasyarat

Untuk menyelesaikan tutorial ini, pertama-tama Anda memerlukan persyaratan berikut:

  • Server Debian 11, untuk pengujian bisa menggunakan RAM 1 GB. Untuk produksi, Anda dapat menggunakan lebih banyak sumber daya, bergantung pada lingkungan dan penggunaan Anda.
  • Pengguna non-root dengan hak akses root. Secara opsional, Anda dapat menggunakan pengguna root.
  • Nama domain untuk penginstalan, dan pastikan itu mengarah ke alamat IP server. Dalam contoh ini, kita akan menggunakan domain 'etherpad.example.io '.

Setelah Anda mendapatkan semua prasyarat ini, lanjutkan ke bagian pertama untuk memulai penginstalan.

Menginstal Dependensi Paket

Etherpad adalah aplikasi web yang dibangun di atas Node.js. Pada saat penulisan ini, versi terbaru Etherpad adalah xxx, dan membutuhkan setidaknya Node.js versi 14.x . Di bagian ini, Anda akan menginstal beberapa dependensi paket, termasuk Node.js ke server Debian 11.

1. Pertama, segarkan daftar indeks paket Anda, lalu instal dependensi build dengan menjalankan perintah berikut.

sudo apt update
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y

2. Dalam tutorial ini, Anda akan menginstal Node.js dari repositori Nodesource, yang menyediakan beberapa versi Node.js. Tutorial ini menggunakan versi Node.js 16.x untuk instalasi Etherpad.

Sekarang, jalankan perintah berikut untuk menambahkan repositori Node.js ke sistem Anda. Perintah ini akan secara otomatis menambahkan repositori Nodesource untuk menyegarkan indeks paket Anda.

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

3. Selanjutnya, instal Node.js 16.x dari repositori Nodesource dengan menjalankan perintah di bawah ini.

sudo apt install nodejs -y

4. Setelah instalasi selesai, verifikasi versi Node.js Anda menggunakan perintah berikut.

simpul --version

Anda akan menerima output seperti 'bla bla'.

Di bagian ini, Anda telah menginstal dependensi paket untuk Etherpad dan Node.js versi 16.x dari repositori Nodesource. Selanjutnya, Anda akan menginstal dan mengkonfigurasi database MariaDB.

Memasang dan Mengonfigurasi Database MariaDB

Di bagian ini, Anda akan menginstal database MariaDB di server Debian 11. Kemudian Anda akan mengatur kata sandi root untuk MariaDB, dan terakhir, Anda akan membuat database dan pengguna baru untuk Etherpad.

1. Secara default, paket MariaDB tersedia di repositori Debian 11. Jalankan perintah berikut untuk menginstalnya.

sudo apt install mariadb-server -y

2. Ketika instalasi MariaDB selesai, maka secara otomatis akan berjalan dan diaktifkan.

MariaDB menyediakan alat baris perintah yang membantu Anda menerapkan MariaDB dengan aman, termasuk menyiapkan kata sandi root untuk MariaDB. Jalankan perintah 'mysql_secure_installation' seperti di bawah ini.

mysql_secure_installation

Sekarang Anda akan ditanya beberapa pertanyaan terkait penerapan MariaDB dan diminta untuk menyiapkan kata sandi root.

3. Pengguna root default untuk mariaDB tidak memiliki kata sandi, tekan ENTER .

Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada):
Oke, kata sandi berhasil digunakan, lanjutkan...

4. Sekarang Anda akan diminta untuk mengganti metode otentikasi menggunakan 'unix_socket ', ketik 'Y ' untuk setuju.

Beralih ke autentikasi unix_socket [Y/n] Y
Berhasil diaktifkan!
Memuat ulang tabel hak istimewa..
 ... Berhasil!

5. Ketik 'Y ' untuk mengatur kata sandi root baru untuk MariaDB. Kemudian masukkan kata sandi Anda yang kuat dan ulangi.

Ubah kata sandi root? [Y/n] Y
Sandi baru:
Masukkan kembali sandi baru:
Sandi berhasil diperbarui!
Memuat ulang tabel hak istimewa..
 ... Berhasil!

6. Instalasi MariaDB default dilengkapi dengan pengguna anonim. Ketik 'Y' untuk menghapusnya.

Hapus pengguna anonim? [Y/n] Y
 ... Sukses!

7. Sekarang, nonaktifkan login jarak jauh untuk pengguna root MariaDB. Ketik 'Y ' untuk setuju.

Larang login root dari jarak jauh? [Y/n] Y
 ... Sukses!

8. Selanjutnya, ketik 'Y ' untuk menyetujui dan menghapus database default 'test ' dan semua hak istimewa di atasnya.

Hapus database pengujian dan akses ke sana? [Y/n] Y
 - Menghapus database pengujian...
 ... Berhasil!
 - Menghapus hak istimewa pada database pengujian...
 ... Berhasil!

9. Terakhir, muat ulang hak istimewa tabel untuk menerapkan konfigurasi baru. Ketik 'Y ' untuk menyetujui dan tekan ENTER .

Muat ulang tabel hak istimewa sekarang? [Y/n] Y
 ... Sukses!

Ketika semua konfigurasi selesai, Anda akan menerima pesan keluaran seperti 'Semua selesai! ' seperti di bawah ini.

Semua selesai! Jika Anda telah menyelesaikan semua langkah di atas, penginstalan MariaDB
Anda seharusnya sudah aman.

Terima kasih telah menggunakan MariaDB!

10. Selanjutnya, jalankan perintah berikut untuk login ke shell MariaDB. Anda akan dimintai kata sandi root MariaDB. Masukkan kata sandi Anda.

mysql -u root -p

11. Sekarang, buat database dan pengguna baru untuk Etherpad dengan menjalankan kueri berikut. Contoh ini akan membuat database baru 'etherpad_lite_db ' dengan pengguna 'etherpaduser ' dan sandi 'StrongPasswordEtherpadDB '. Pastikan untuk mengubah sandi.

BUAT DATABASE etherpad_lite_db;
BUAT PENGGUNA [dilindungi email] DIIDENTIFIKASI OLEH 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE pada etherpad_lite_db.* ke [email protected];

12. Setelah itu, reload semua tabel privileges untuk menerapkan konfigurasi baru, lalu jalankan query 'exit' untuk logout dari shell mariaDB.

HAK ISTIMEWA FLUSH;
KELUAR

Di bagian ini, Anda telah menyelesaikan instalasi dan konfigurasi database MariaDB di Debian 11. Selain itu, Anda juga telah membuat database dan pengguna untuk Etherpad. Selanjutnya, Anda akan mengunduh kode sumber Etherpad dan menginstalnya.

Memasang dan Mengonfigurasi Etherpad

Di bagian ini, Anda akan menginstal Etherpad dari kode sumber, lalu mengonfigurasinya dengan MariaDB sebagai database, dan membuat file systemd baru untuk Etherpad. Pada akhirnya, Etherpad akan berjalan sebagai layanan systemd.

1. Sebelum mengunduh kode sumber Etherpad, Anda akan membuat pengguna baru 'etherpad ' di sistem Anda. Pengguna ini akan digunakan untuk menjalankan skrip penginstal Etherpad dan menjalankan layanan Etherpad.

Jalankan 'adduser ' perintah di bawah ini untuk membuat pengguna baru 'etherpad '. Juga, tentukan direktori home ke '/opt/etherpad-lite '. Direktori ini akan digunakan untuk menyimpan semua sumber Etherpad.

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

2. Sekarang, navigasikan ke direktori '/opt ' dan mengkloning sumber Etherpad menggunakan perintah git.

cd /opt/
git clone --branch master https://github.com/ether/etherpad-lite.git

3. Setelah itu, ubah kepemilikan direktori 'etherpad-lite' menjadi pengguna 'etherpad ' dan grup 'etherpad '.

sudo chown -R etherpad:etherpad etherpad-lite

4. Sekarang navigasikan ke direktori 'etherpad-lite/ ' dan instal semua dependensi Node.js menggunakan skrip penginstal 'installDeps.sh' seperti di bawah ini. Skrip penginstal 'installDeps.sh ' akan dijalankan sebagai 'etherpad' pengguna non-root.

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad

Tunggu hingga semua instalasi dependensi paket selesai.

Selanjutnya, ubah file 'settings.json ' untuk mengatur instalasi Etherpad Anda. Anda dapat menggunakan editor nano untuk mengedit file tersebut atau menggunakan editor pilihan Anda.

pengaturan nano.json

Di baris paling atas, ganti judul dengan judul Anda sendiri. Contoh ini menggunakan judul 'Entherpad Johndoe '.

  "title":"Etherpad Johndoe",

Dalam tutorial ini, Etherpad akan berjalan di bawah proxy terbalik Nginx. Dan bagus untuk keamanan menjalankan Etherpad di localhost. Sekarang, ubah 'ip :' konfigurasi ke '127.0.0.1' . Dengan konfigurasi ini, Etherpad hanya akan berjalan di localhost saja.

  "ip":"127.0.0.1",
  "port":9001,

Secara default, Etherpad menggunakan SQLite sebagai database. Komentari semua baris ini untuk menonaktifkan.

  /*
  *"dbType":"dirty",
  *"dbSettings":{
  *  "filename":"var/dirty.db"
  *} ,
  */

Sekarang, masukkan konfigurasi database MariaDB di bawah ini. Dan pastikan untuk mengganti nama database, user, dan password.

  "dbType" :"mysql",
  "dbSettings" :{
    "user":     "etherpaduser",
    "host":     "localhost",
    "port ":     3306,
    "password":"StrongPasswordEtherpadDB",
    "database":"etherpad_lite_db",
    "charset":  "utf8mb4"
  },

Simpan dan keluar dari file.

Selanjutnya, buat file layanan systemd baru 'etherpad.service ' di direktori '/etc/systemd/system '. File ini akan berisi semua detail konfigurasi yang dibutuhkan Etherpad untuk berjalan dengan baik di server. Buat menggunakan editor nano.

sudo nano /etc/systemd/system/etherpad.service

Tambahkan konfigurasi berikut ke dalam file.

[Unit]
Description=Etherpad-lite, editor kolaboratif.
After=syslog.target network.target

[Layanan]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/node --experimental -worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
# gunakan mysql plus settings.json lengkap untuk menghindari Service hold-off time over, penjadwalan restart.
Restart =selalu

[Instal]
WantedBy=multi-user.target

File layanan ini akan berjalan sebagai pengguna dan grup 'etherpad'. Dan Anda akan melihat opsi 'Environment=NODE_ENV=production ', yang berarti aplikasi Etherpad akan berjalan di lingkungan produksi. 'ExecStart=.. ' adalah perintah default untuk menjalankan aplikasi Etherpad.

Simpan dan tutup file.

Sekarang, muat ulang manajer systemd untuk menerapkan file layanan baru.

sudo systemctl daemon-reload

Setelah itu, mulai dan aktifkan layanan etherpad, lalu verifikasi statusnya dengan menjalankan perintah berikut.

sudo systemctl aktifkan --now etherpad
sudo systemctl status etherpad

Anda akan menerima output yang mirip dengan tangkapan layar di bawah ini. Layanan etherpad sekarang 'aktif (berjalan) ', itu akan secara otomatis mulai saat startup sistem, dan itu berjalan di localhost dengan port default '9001 '.

Pada titik ini, Anda telah menyelesaikan instalasi Etherpad. Selanjutnya, Anda akan menginstal Nginx dan menyiapkannya sebagai proxy terbalik untuk aplikasi Etherpad.

Menginstal dan Mengonfigurasi Nginx

Untuk lingkungan produksi, selalu disarankan untuk menempatkan proxy terbalik di depan aplikasi Anda. Ini akan meningkatkan kinerja dan keamanan aplikasi Anda. Di bagian ini, Anda akan menginstal dan mengkonfigurasi server web Nginx sebagai proxy terbalik. Pada akhirnya, Anda akan menjalankan Etherpad dengan nama domain Anda dan diamankan dengan protokol HTTPS.

1. Pertama, instal paket Nginx dengan menjalankan perintah di bawah ini.

sudo apt install nginx -y

2. Sekarang, jika Anda sudah mendapatkan firewall UFW di sistem Debian Anda. Izinkan akses publik ke port HTTP dan HTTPS (80 dan 443) dengan menjalankan 'ufw ' perintah di bawah.

sudo ufw izinkan "Nginx Penuh"

Anda akan menerima output berikut.

Aturan ditambahkan
Aturan ditambahkan (v6)

3. Selanjutnya, buat file host virtual Nginx baru 'etherpad ' di direktori '/etc/nginx/sites-available/ '. Buat menggunakan editor nano atau editor pilihan Anda.

sudo nano /etc/nginx/sites-available/etherpad

Salin dan tempel konfigurasi berikut ke dalam file. Juga, ganti nama domain dan jalur sertifikat SSL Anda dengan informasi Anda sendiri. Untuk sertifikat SSL, Anda dapat membuat sertifikat SSL secara bebas menggunakan Letsencrypt.

# menegakkan HTTPS
server {
    listen      80;
    listen      [::]:80;
    server_name  etherpad.example.io;
    return 301   https://$host$request_uri;
}

# kita berada dalam konteks http di sini
map $http_upgrade $connection_upgrade {
    peningkatan default;
''      tutup;
}

server {
    listen       443 ssl http2;
    listen      [::]:443 ssl http2;
    server_name  etherpad.example .io;

    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;

    ssl_certificate      /etc/letsencrypt/live/etherpad.example.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.io/privkey.pem;

   _timeout_ 5m;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers aktif;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+  
EECDH+ECDSA ECDSA+SHA256 EEC DH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
    EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

    lokasi / {
        proxy_pass        http://127.0.0.1:9001;
       proxy_buffering    nonaktif; # hati-hati, baris ini tidak menimpa proxy_buffering apa pun pada set di conf.d/file.conf
       proxy_set_header   Host $host;
       proxy_pass_header  Server;

       # Perhatikan Anda mungkin ingin meneruskan header ini dll juga.
       proxy_set_header    X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
        proxy_set_header    X-Forwarded-For $remote_addr; # EP log untuk menampilkan IP jarak jauh sebenarnya
       proxy_set_header    X-Forwarded-Proto $scheme; # agar EP menyetel tanda cookie aman saat https digunakan
        proxy_http_version  1.1; # direkomendasikan dengan koneksi keepalive

        # WebSocket proxy - dari https://nginx.org/en/docs/http/websocket.html
       proxy_set_header  Tingkatkan $http_upgrade;
       proxy_set_header  Koneksi $connection_upgrade;
    }
}

File host virtual Nginx ini akan secara otomatis mengalihkan lalu lintas apa pun dari HTTP ke protokol HTTPS yang aman. Untuk debugging jika Anda memiliki kesalahan, periksa file log '/var/log/nginx/eplite.error.log '. Semua permintaan klien akan dikirim ke backend 'proxy_pass ' aplikasi Etherpad yang berjalan di localhost port 9001.

4. Simpan dan tutup file, lalu aktifkan konfigurasi virtual host dengan membuat tautan simbolis file 'etherpad ' ke direktori '/etc/nginx/sites-enabled '.

sudo ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/

5. Selanjutnya jalankan perintah 'nginx -t' untuk memverifikasi konfigurasi nginx. Perintah ini akan memeriksa kesalahan sintaks pada konfigurasi.

sudo nginx -t

Anda akan menerima output seperti di bawah ini. Pesan keluaran 'sintaks ok ' berarti Anda tidak memiliki kesalahan.

nginx:file konfigurasi /etc/nginx/nginx.conf sintaks ok
nginx:file konfigurasi /etc/nginx/nginx.conf pengujian berhasil.

6. Terakhir, restart layanan Nginx untuk menerapkan file host virtual Nginx yang baru.

sudo systemctl restart nginx

Di bagian ini, Anda telah menyelesaikan instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk aplikasi Etherpad. Etherpad Anda sekarang tersedia di http://etherpad.example.io.

Verifikasi Pemasangan Etherpad

1. Buka browser web Anda dan ketik nama domain 'http://etherpad.example.io/' pada alamat tersebut. Dan Anda akan secara otomatis dialihkan ke koneksi HTTPS aman seperti di bawah ini.

2. Untuk membuat pad baru, masukan nama pad pada kolom dan klik tombol 'OK '.

Sekarang Anda akan melihat Editor Kolaborasi Etherpad Real-time seperti di bawah ini.

Kesimpulan

Dalam tutorial ini, Anda telah menginstal dan mengonfigurasi Etherpad Real-time Collaborative Editor di server Debian 11. Anda juga telah menginstal dan mengonfigurasi Nginx sebagai proxy terbalik untuk aplikasi Etherpad.

Anda sekarang siap menggunakan etherpad sebagai editor kolaborasi di tim Anda. Untuk informasi lebih lanjut tentang Etherpad, periksa dokumentasi resmi Etherpad.


Debian
  1. Cara Menginstal Phorum dengan Nginx di Debian 9

  2. Cara Menginstal dan Mengamankan MariaDB di Debian 11

  3. Cara Menginstal WonderCMS dengan Nginx di Debian 11

  1. Cara Instal OpenCart dengan Nginx dan Lets Encrypt di Debian 10

  2. Cara Menginstal CMS Textpattern dengan Nginx di Debian 10

  3. Cara Menginstal dan Mengkonfigurasi Mariadb 10 di Debian 11

  1. Cara Menginstal Drupal 9 dengan Nginx dan Mengenkripsi SSL di Debian 10

  2. Cara Menginstal SuiteCRM dengan Apache dan Lets Encrypt SSL gratis di Debian 11

  3. Cara Menginstal AbanteCart dengan Nginx dan SSL di Debian 11