GNU/Linux >> Belajar Linux >  >> Debian

Menyiapkan Etherpad di Debian

Artikel berikut menganggap Anda sudah tidak asing lagi dengan apa itu Etherpad. Jika itu
bukan itu masalahnya, maka artikel wikipedia sudah cukup untuk pengenalan singkat.

Meskipun proyek Etherpad didokumentasikan dengan baik, tidak selalu mudah untuk
masuk akal dari hanya dokumentasi. Artikel ini bertujuan untuk menyingkat beberapa
tutorial yang tersedia di wiki proyek dengan cara yang mudah diikuti.

Kami akan membahas hal berikut:

  • Menginstal Etherpad sebagai layanan
  • Mengaktifkan TLS dengan sertifikat yang ditandatangani sendiri
  • Menggunakan mysql basis data
  • Menggunakan Nginx dengan Etherpad

Menginstal Etherpad

Sampai sekarang, Debian 11 tidak menyediakan etherpad paket. Jadi, kita harus
instal secara manual dari GitHub. Untungnya, langkah-langkahnya sangat mudah (
# menunjukkan akar):

  1. Buat etherpad pengguna dan tetapkan ke etherpad kelompok:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Unduh dan jalankan skrip penyiapan:

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Instal nodejs . Kami juga membutuhkan git .

    # apt install -y nodejs git
  4. Beralih ke etherpad pengguna dan mengkloning repositori proyek.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Instal dependensi yang diperlukan:

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Buat file unit systemd di /etc/systemd/system/ direktori.

    /etc/systemd/system/etherpad.service :

    [Unit]
    Description=Etherpad Service
    After=syslog.target network.target

    [Service]
    Type=simple
    User=etherpad
    Group=etherpad
    WorkingDirectory=/usr/local/etherpad/src
    Environment=NODE_ENV=production
    ExecStart=/usr/bin/node --experimental-worker /usr/local/etherpad/src/node_modules/ep_etherpad-lite/node/server.js
    [Install]
    WantedBy=multi-user.target

  7. Izinkan firewall, dll. untuk membuka port 9001 .Lalu, akhirnya kita bisa mulai
    etherpad melayani:

    # systemctl start etherpad

Kami masih memiliki banyak konfigurasi yang harus dilakukan. Namun, sekarang kita dapat melihat instance etherpad di browser kita.

Mengaktifkan TLS dengan sertifikat yang ditandatangani sendiri

Jika Anda ingin sertifikat Anda ditandatangani oleh Certificate Authority (CA), maka Anda dapat melakukannya. Namun, di sini saya hanya akan menandatangani semuanya sendiri. Saya mengacu pada artikel wiki yang dapat ditemukan di sini.

Buka settings.json di etherpad direktori dan temukan bagian ssl
(harus di sekitar baris 174) dan modifikasi sesuai:

"ssl" : {
"key" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.key",
"cert" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.crt"
}

Buat direktori /usr/local/etherpad/ssl sebagai etherpad pengguna, cd ke direktori itu dan jalankan perintah berikut.

Hasilkan kunci server yang menyediakan frasa sandi yang diperlukan:

openssl genrsa -des3 -out epl-server.key 4096

Sekarang buat sertifikat:

openssl req -new -key epl-server.key -out epl-server.csr

openssl x509 -req -days 9000 -in epl-server.csr -signkey epl-server.key -out epl-server.crt

Sekarang kita akan menggunakan file itu untuk membuat kunci lain. Dengan begitu, kami tidak perlu memberikan frasa sandi setiap kali server kami dimulai.

Ganti nama kunci:

mv epl-server.key epl-server.key.secure

Kemudian buat kunci kedua kami:

openssl rsa -in epl-server.key.secure -out epl-server.key

Sekarang kita perlu menandatangani sendiri sertifikat kita. Untuk itu kita harus membuat kunci lain yang akan menandatangani
epl-server.key . Langkah-langkahnya mirip dengan di atas.

openssl genrsa -des3 -out own-ca.key 4096

Buat sertifikat penandatanganan:

openssl req -new -x509 -days 9000 -key own-ca.key -out own-ca.crt

Ini akan meminta kami untuk beberapa informasi. Mereka dapat dibiarkan sebagai default tetapi Nama Umum (CN) harus berbeda dari CN kunci kita sendiri. Jadi kita bisa menambahkan “(CA)” ke CN.

Akhirnya mari kita tandatangani epl-server.key our dengan sertifikat CA kami.

openssl x509 -req -days 9000 -in epl-server.csr -CA own-ca.crt -CAkey own-ca.key -set_serial 001 -out epl-server.crt

Ini akan menghasilkan epl-server.crt yang ditandatangani sendiri berkas.

Sekarang pastikan file memiliki izin aman:

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

File lain dapat dipindahkan ke beberapa tempat yang berbeda atau hanya dihapus. Saya hanya akan meninggalkan mereka apa adanya untuk saat ini. Meskipun demikian, kita dapat memulai ulang etherpad layanan sekarang dan kami akan mendapatkan https bekerja meskipun browser akan memberikan peringatan dan bahkan menolak untuk terhubung karena sertifikat kami tidak diberikan informasi yang tepat.

Menggunakan MySQL dengan Etherpad

Sampai sekarang, instance Etherpad kami telah menggunakan dirtyDB database yang tidak cocok untuk tujuan pengujian/pengembangan saja. Untuk membuat instance kami sepenuhnya cocok untuk produksi, sekarang kami akan beralih ke mysql . Sekali lagi, semua kredit untuk instruksi instalasi masuk ke wiki proyek. Saya baru saja memutuskan – untuk merangkum semuanya di satu tempat – untuk tidak membuat Anda melompat ke tautan yang berbeda.

Jadi, mari kita instal paket yang diperlukan (saya menggunakan mariadb tetapi hal-hal pada dasarnya sama):

# apt install -y mariadb-server

Sekarang jalankan mysql_secure_installation sebagai root yang menyediakan parameter yang diperlukan.

Setelah itu selesai, kita dapat melanjutkan ke setup database:

1. Hubungkan ke mysql dengan perintah berikut:

# mysql -u root -p

2. Setelah masuk, buat database:

CREATE DATABASE `etherpad_lite_db`;

Ya, itu adalah backtick di sekitar nama db. Dan jangan lupa titik koma

3. Buat pengguna database yang menyediakan nama pengguna dan kata sandi Anda sendiri:

CREATE USER '<username>'@'localhost' identified by '<pass>';

4. Ubah izin untuk pengguna baru:

GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to 'etherpad'@'localhost';

Di sini, etherpad adalah pengguna yang saya buat sebelumnya.

Basis data kami telah dibuat, jadi kami sekarang dapat exit dari prompt dan lanjutkan untuk membiarkan etherpad service mengetahui pencapaian yang telah kami buat yaitu dengan memodifikasi settings.json berkas.

Cari dbtype dengan editor teks Anda, itu harus berada di sekitar baris 196 dan mengubahnya sehingga terlihat seperti berikut:

"dbType": "mysql",
"dbSettings": {
"user" : "etherpad",
"port" : "https://1118798822.rsc.cdn77.org/var/run/mysqld/mysqld.sock",
"password": "<pass>",
"database": "etherpad_lite_db",
"charset" : "utf8mb4"
}

Jelas, saya tidak akan mengungkapkan kata sandi di sini. Itu akan berbahaya karena saya menggunakan yang sama untuk semua akun saya (tidak, tidak juga; jangan gunakan kembali kata sandi).

Kami sekarang dapat memulai kembali layanan:

# systemctl restart mysqld etherpad

Menggunakan Nginx dengan Etherpad

Sekarang mari kita konfigurasikan nginx untuk meneruskan lalu lintas http/s standar ke etherpad melayani.

Pastikan kita sudah nginx dipasang:

# apt install nginx

Buat file di /etc/nginx/sites-available/etherpad dan isinya adalah:

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name localhost; # CHANGE THIS!
    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;

    ssl                  on;
    ssl_certificate      /etc/nginx/ssl/epl-server.crt;
    ssl_certificate_key  /etc/nginx/ssl/epl-server.key;

    location / {
        proxy_pass         https://127.0.0.1:9001;
        proxy_buffering    off;
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_http_version  1.1; # apparently recommended with keepalive connections

        # WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
    }
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  localhost; # CHANGE THIS!
    return 301   https://127.0.0.1:9001/;
}

Sekarang jalankan perintah berikut:

doas mkdir /etc/nginx/ssl

doas cp /usr/local/etherpad/ssl/epl-server.crt /etc/nginx/ssl/

doas cp /usr/local/etherpad/ssl/epl-server.key /etc/nginx/ssl/

Seperti yang Anda lihat, kami hanya menyalin sertifikat dan kunci ssl ke nginx.

Nginx hadir dengan file konfigurasi default yang diaktifkan. Mari kita perbaiki itu.

# rm /etc/nginx/sites-enabled/default

Dan mari kita aktifkan etherpad our file konfigurasi untuk nginx.

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

Pastikan Anda tidak membuat kesalahan dalam konfigurasi:

# nginx -t

Sekarang mari kita mulai ulang layanan kita untuk terakhir kalinya:

# systemctl restart etherpad mysqld nginx

Pengaturan kami pada dasarnya selesai. Tentu saja, kami dapat melakukan lebih banyak tetapi saya pikir kami telah melakukan cukup banyak (selain mengubah hal-hal yang jelas seperti fakta bahwa kami telah menyiapkan CA kami sendiri) agar ini dapat digunakan. Saya akan meninggalkan pembaca untuk menjelajah lebih jauh dari
berbagai sumber yang saya tautkan di seluruh artikel. Itu saja untuk saat ini. Terima kasih telah membaca sampai habis. Jangan lupa untuk membaca artikel saya yang lain di unixcop.com.


Debian
  1. Debian – Setting Mod4 Keren?

  2. Ssh – Bagaimana Mengaktifkan Pertukaran Kunci Diffie-hellman-group1-sha1 Di Debian 8.0?

  3. Instal Server OpenVPN di Debian 11/Debian 10

  1. Menyiapkan ProFTPd + TLS Di Debian Squeeze

  2. Menyiapkan Replikasi Master-Master dengan MySQL di Debian 8 (Jessie)

  3. Menyiapkan Server dan Klien NFS di Debian 9 (Peregangan)

  1. Cara menginstal Spotify di Debian 9 Stretch Linux

  2. Konfigurasi SSH Keys pada Sistem Debian 9 - Bagaimana cara melakukannya?

  3. Debian – Tidak Dapat Memulai Instalasi Devuan/debian?