Jawaban singkatnya: satu — dan itu sudah saya jalankan di VPS ini, bukan cuma dibaca dari repo. Halaman ini mencatat hasil ujinya: ukuran image, RAM yang benar-benar dipakai, dan mana yang sebaiknya tidak dipasang di sini.
| Kandidat | Ukuran image (amd64) | Uji di VPS ini | Putusan |
|---|---|---|---|
| Listmonk newsletter / mailing list |
14,8 MB + Postgres 16 alpine (±250 MB, sudah ada) |
DIJALANKAN app 30,7 MB + DB 47,7 MB · HTTP 200 · login admin berhasil | Bisa. Paling ringan, cocok kalau butuh kirim email massal dari VPS sendiri. |
| Penpot alternatif Figma |
frontend 326 MB + backend 392 MB + postgres, redis, exporter |
BELUM butuh ±2–4 GB RAM & ±1 GB disk image | Jangan di sini. Pakai versi cloud Penpot dulu; self-host kalau tim desain benar-benar pindah. |
| ONLYOFFICE Docs alternatif Office |
943 MB | BELUM ±2 GB RAM + wajib domain/SSL sendiri untuk editor-nya | Belum perlu. Untuk buka .docx/.xlsx sesekali, LibreOffice di laptop cukup. |
| Chatwoot alternatif Intercom |
746 MB + sidekiq, postgres, redis |
BELUM ±2 GB RAM, 4 proses | Tunda. Baru masuk akal kalau ada volume chat pelanggan yang mau ditangani. |
| Remotion / Motion Canvas video dari kode |
— (library Node) | SUDAH ADA PADANANNYA HyperFrames + ffmpeg + Whisper sudah terpasang dan dipakai render 2 video (16:9 & 9:16) | Tidak perlu — fungsinya sudah ke-cover toolchain sendiri. |
| Mailspring email client |
— (aplikasi desktop) | TIDAK RELEVAN bukan layanan server | Install di laptop kalau perlu, bukan di VPS. |
Sumber angka: Docker Hub tag API (ukuran image, 19 Okt 2026) · docker stats untuk RAM · curl untuk status HTTP.
127.0.0.1:3210 di VPS ini (bukan mockup).
Status sekarang: container lm-app + lm-db masih hidup, terikat ke
127.0.0.1:3210 (hanya lokal — belum dibuka ke internet). Kalau mau dijadiin subdomain,
tinggal tambah satu blok Caddy ke 127.0.0.1:3210.
sudo docker network create demo-listmonk sudo docker run -d --name lm-db --network demo-listmonk \ -e POSTGRES_PASSWORD=-e POSTGRES_DB=listmonk postgres:16-alpine sudo docker run --rm --network demo-listmonk \ -e LISTMONK_db__host=lm-db -e LISTMONK_db__user=postgres \ -e LISTMONK_db__password= -e LISTMONK_db__database=listmonk -e LISTMONK_db__ssl_mode=disable \ -e LISTMONK_ADMIN_USER=admin -e LISTMONK_ADMIN_PASSWORD='<password-pilihanmu>' \ listmonk/listmonk:latest ./listmonk --install --yes sudo docker run -d --name lm-app --network demo-listmonk -p 127.0.0.1:3210:9000 \ -e LISTMONK_app__address=0.0.0.0:9000 \ -e LISTMONK_db__host=lm-db -e LISTMONK_db__user=postgres \ -e LISTMONK_db__password= -e LISTMONK_db__database=listmonk -e LISTMONK_db__ssl_mode=disable \ listmonk/listmonk:latest curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:3210/
Jebakan yang kena saat uji: listmonk default bind ke 127.0.0.1 di dalam container →
port mapping Docker tidak nyambung (curl 000). Obatnya LISTMONK_app__address=0.0.0.0:9000.