Cara Deploy Joplin Server di NAT VPS

NATVPS.idJoplin adalah aplikasi pencatatan open-source dengan berbagai fitur dan tampilan yang intuitif. Joplin menyediakan fitur sinkronisasi yang dapat dihubungkan ke berbagai cloud provider, seperti Joplin Cloud dan Microsoft Onedrive. Walaupun begitu, kita dapat menghosting Joplin Server kita sendiri sebagai server sinkronisasi, sekaligus menjaga keamanan catatan yang tersimpan.

Artikel ini menjelaskan cara menghosting Joplin Server dengan Docker dan menyinkronkannya dengan aplikasi Joplin. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan. Untuk OS lain, silahkan menyesuaikan langkah-langkah yang tertera.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu Domain Forwarding (HTTP & HTTPS) untuk mengakses Joplin Server.

Sebagai contoh, pada artikel ini akan menggunakan domain joplin.mdinata.my.id. Anda bebas mengganti port ini sesuai pilihan Anda. Catat port ini, karena kita akan menggunakannya lagi pada proses deploy.

Install Docker

Kita akan menggunakan Docker dan Docker Compose untuk men-deploy ketiga aplikasi ini.

Pertama, Install curl menggunakan perintah:

apt update && apt install curl -y

Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:

curl -fsSL get.docker.com | sh

Tunggu hingga proses instalasi selesai.

Deploy Aplikasi

Buat direktori baru dengan nama joplin-server

cd ~/
mkdir joplin-server
cd joplin-server

Buat file baru dengan nama docker-compose.yml menggunakan nano:

apt install nano -y
nano docker-compose.yaml

Lalu tempelkan konfigurasi Compose berikut:

# Docker Compose untuk deploy Joplin Server di NAT VPS
# https://natvps.id/deploy-joplin-server-nat-vps
# Source: https://hub.docker.com/r/joplin/server (adapted)

services:
  db:
    image: postgres:13
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    expose:
      - "5432"
    restart: always
    environment:
      - POSTGRES_PASSWORD=password
      - POSTGRES_USER=joplin-user
      - POSTGRES_DB=joplindb

  app:
    image: joplin/server:latest
    container_name: joplin-server
    depends_on:
      - db
    ports:
      - "32510:32510"
    restart: always
    environment:
      - APP_PORT=32510
      - APP_BASE_URL=https://joplin.mdinata.my.id
      - DB_CLIENT=pg
      - POSTGRES_PASSWORD=password
      - POSTGRES_DATABASE=joplindb
      - POSTGRES_USER=joplin-user
      - POSTGRES_PORT=5432
      - POSTGRES_HOST=db

  • Pada bagian ports: dan APP_PORT, sesuaikan 32510 dengan port yang Anda inginkan (bebas).
  • Pada bagian APP_BASE_URL, ganti joplin.mdinata.my.id dengan domain dari Joplin Server Anda.

Simpan file tersebut dengan menekan Ctrl-X, y, kemudian Enter.

Terakhir, jalankan menggunakan Docker Compose:

docker compose up -d

Tunggu hingga proses deploy selesai.

Konfigurasi NGINX (Reverse Proxy)

Agar kita dapat mengakses URL melalui domain seperti cms-tutorial3.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
apt purge apache2* -y

# Install NGINX
apt install nginx -y

Buat konfigurasi host baru khusus untuk Joplin Server:

nano /etc/nginx/sites-available/joplin-server

Kemudian tempelkan konfigurasi berikut:

# Konfigurasi NGINX untuk deploy Ghost di NAT VPS
# https://natvps.id/deploy-joplin-server-nat-vps

server {
    server_name joplin.mdinata.my.id;
    listen 80;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:32519;
    }
}

Sesuaikan joplin.mdinata.my.id dengan domain Anda, dan 32510 dengan port Joplin Server.

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/joplin-server /etc/nginx/sites-enabled/joplin-server

# Restart NGINX
systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d joplin.mdinata.my.id

Ganti joplin.mdinata.my.id dengan domain Anda.

Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.

Mengakses Joplin Server

Joplin Server dapat diakses melalui domain yang telah diatur sebelumnya. Contoh: https://joplin.mdinata.my.id.

Kredensial default:

  • Email: admin@localhost
  • Password: admin

Mengatur Server Sinkronisasi di Aplikasi Joplin

Untuk mulai menggunakan Joplin Server, lakukan konfigurasi sinkronisasi berikut:

  1. Buka aplikasi Joplin di PC, kemudian masuk ke tab Tools -> Options
  2. Masuk ke tab Synchronisation
  3. Pada Synchronisation target, pilih Joplin Server
  4. Masukkan domain Anda di kolom Joplin Server URL
  5. Masukkan kredensial login Anda di kolom Joplin Server email dan Joplin Server password
  6. Simpan

Penutup

Demikianlah artikel ini mengenai langkah-langkah deploy Joplin Server di NAT VPS. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!

You May Also Like

About the Author: Hendra Manudinata