All Newbie, Semua Tentang Ilmu

Recent

Cara Self-Host Vaultwarden: Password Manager Pribadi

Menyimpan ratusan sandi di browser atau catatan adalah kebiasaan yang mahal. Vaultwarden adalah implementasi ringan dari protokol Bitwarden: peramban, ekstensi, dan ponsel tetap memakai aplikasi resmi Bitwarden, tetapi datanya tersimpan di servermu sendiri.

Gembok baja stainless pada tiang, metafora penyimpanan sandi terenkripsi
Foto: Donald Trung Quoc Don, CC BY-SA 4.0, via Wikimedia Commons

Ringkasan singkat

  • HTTPS wajib untuk Web Crypto.
  • Tutup SIGNUPS_ALLOWED setelah akun dibuat.
  • Panel admin memakai ADMIN_TOKEN.
  • Backup folder data saat container berhenti.

Yang perlu disiapkan

  • Ubuntu Server dengan Docker.
  • Domain dan HTTPS — wajib, karena Web Crypto hanya aktif pada koneksi aman.
  • RAM 512 MB sudah cukup.

1. Jalankan container

mkdir -p /opt/vaultwarden && cd /opt/vaultwarden
cat > compose.yaml <<'EOF'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: unless-stopped
    environment:
      DOMAIN: https://vault.contoh.com
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: ganti_token_acak_panjang
    volumes:
      - ./data:/data
    ports:
      - "127.0.0.1:8081:80"
EOF
docker compose up -d
docker compose logs --tail=30

Port diikat ke localhost karena seluruh akses harus lewat proxy ber-HTTPS. Jangan membuka 8081 langsung ke internet.

2. Buat akun pertama

Buka https://vault.contoh.com/#/register (setelah proxy siap), buat akun, lalu simpan master password di tempat aman. Master password tidak bisa direset oleh admin — itu by design.

Vaultwarden melayani klien Bitwarden dan menyimpan data di folder /dataEkstensiperambanAplikasiponselReverse proxyHTTPS wajibVaultwarden:80/datasqlitelampirankunci RSA
Diagram: Vaultwarden melayani klien Bitwarden dan menyimpan data di folder /data

3. Tutup pendaftaran

nano compose.yaml   # SIGNUPS_ALLOWED: "false"
docker compose up -d

Kalau pendaftaran dibiarkan terbuka, siapa pun yang menemukan domainmu bisa membuat akun. Setelah akun keluarga dibuat, tutup kembali.

4. Panel admin

Akses https://vault.contoh.com/admin dengan ADMIN_TOKEN. Panel ini menampilkan jumlah pengguna, mengatur undangan, dan memeriksa diagnostik. Simpan token hanya di password manager, bukan di chat.

5. Pasang di klien

  1. Ekstensi Bitwarden di peramban → ikon gerigi → Self-hosted environment.
  2. Isi https://vault.contoh.com, lalu login.
  3. Aplikasi ponsel: Settings → Server URL, isi alamat yang sama.

Setelah itu ekstensi, aplikasi desktop, dan ponsel memakai basis data yang sama. Perubahan sandi muncul di semua perangkat.

6. Backup yang benar

docker compose stop vaultwarden
tar czf /backup/vaultwarden-$(date +%F).tar.gz -C /opt/vaultwarden data
docker compose start vaultwarden

Folder data berisi db.sqlite3, lampiran, kunci RSA, dan konfigurasi. Menyalin hanya basis datanya membuat lampiran hilang; menyalin folder saat container berjalan berisiko menghasilkan salinan tidak konsisten.

7. Perbarui dengan aman

docker compose pull
docker compose up -d

Baca catatan rilis. Vaultwarden jarang merusak kompatibilitas, tetapi migrasi basis data tidak bisa dibatalkan.

8. Berbagi untuk keluarga

Organisasi memungkinkan beberapa akun berbagi item tertentu tanpa memberi akses ke seluruh vault. Buat organisasi di panel web, undang anggota, lalu pindahkan item ke koleksi yang sesuai.

Hindari satu akun dipakai bersama: riwayat perubahan dan audit menjadi tidak berarti, dan master password tidak bisa dicabut dari satu orang saja.

9. Memulihkan dari backup

docker compose stop vaultwarden
sudo tar xzf /backup/vaultwarden-2026-10-28.tar.gz -C /opt/vaultwarden
docker compose start vaultwarden

Uji pemulihan di folder lain sebelum benar-benar dibutuhkan. Perhatikan: setelah restore, klien perlu login ulang karena sesi bergantung pada kunci di folder data.

10. Membatasi percobaan login

Tambahkan rate limit di proxy atau jail fail2ban untuk endpoint login. Vaultwarden sendiri tidak membatasi percobaan secara agresif; lapisan luar tetap diperlukan.

11. Backup terjadwal

Membuat arsip manual jarang dilakukan. Jadwalkan lewat cron agar berjalan tanpa diingat:

0 3 * * * cd /opt/vaultwarden && docker compose stop vaultwarden && tar czf /backup/vw-$(date +\%F).tar.gz data && docker compose start vaultwarden

Simpan arsip di mesin lain. Backup yang hanya ada di server yang sama akan hilang bersama server.

12. Uji restore

Setahun sekali, pulihkan arsip ke folder percobaan dan buka dengan akun uji. Ini membuktikan dua hal: arsipnya utuh, dan kamu ingat langkahnya saat panik.

13. Kapan sebaiknya tidak self-host?

Kalau kamu belum nyaman mengurus sertifikat TLS, backup, dan pembaruan, layanan berbayar lebih aman. Vaultwarden menuntut disiplin operasional: satu salah konfigurasi bisa membuat seluruh keluarga kehilangan akses ke sandi mereka.

Masalah yang sering muncul

GejalaPenyebabSolusi
Ekstensi gagal loginServer URL salah atau bukan HTTPSPeriksa sertifikat dan URL
Halaman kosongWebSocket/proxy salahTeruskan header Upgrade dan Connection
Tidak bisa mendaftarSIGNUPS_ALLOWED=falseKirim undangan dari panel admin
Data hilang setelah recreateVolume tidak dipasangPastikan ./data:/data
Admin tidak bisa masukToken berubahSet ulang ADMIN_TOKEN, restart

Pertanyaan yang sering diajukan

Apakah ini Bitwarden resmi?

Bukan. Vaultwarden adalah implementasi ulang yang kompatibel dengan klien Bitwarden, ditulis dengan Rust agar ringan.

Apakah aman?

Data dienkripsi di klien sebelum dikirim; server menyimpan blob terenkripsi. Risiko terbesar tetap master password yang lemah dan server yang tidak diperbarui.

Bisa dipakai keluarga?

Bisa. Buat akun untuk tiap anggota, lalu tutup pendaftaran publik. Organisasi tersedia untuk berbagi item tertentu.

Kalau server mati?

Klien tetap menyimpan salinan terenkripsi di perangkat, tetapi perubahan baru tidak tersinkron. Itu alasan backup rutin.





0 comments:

Post a Comment