Vaultwarden: memasang pengelola kata sandi sendiri di VPS
Vaultwarden memungkinkan Anda menyimpan kata sandi di server sendiri dan menyinkronkannya antara komputer, ponsel, dan browser. Vaultwarden bekerja dengan aplikasi serta ekstensi Bitwarden resmi; Anda hanya perlu menentukan alamat server sendiri.
Di bawah ini, kita akan membahas VPS yang dibutuhkan Vaultwarden, cara menjalankannya di Ubuntu dengan Docker Compose, menonaktifkan pendaftaran terbuka, mengaktifkan HTTPS, dan mengonfigurasi cadangan.
Vaultwarden dalam lima langkah
Rencana peluncuran minimum:
- Buat VPS dengan Ubuntu dan arahkan subdomain ke sana, misalnya
vault.example.com. - Pasang Docker dan Docker Compose.
- Jalankan Vaultwarden bersama Caddy untuk HTTPS otomatis.
- Buat akun pertama dan nonaktifkan pendaftaran terbuka.
- Aktifkan autentikasi dua faktor, pembaruan, dan cadangan.
Untuk brankas pribadi atau keluarga kecil, database SQLite bawaan sudah cukup. Server PostgreSQL terpisah biasanya tidak diperlukan.
Apa itu Vaultwarden
Vaultwarden adalah implementasi server tidak resmi untuk API Bitwarden, ditulis dalam Rust dan dirancang untuk penerapan self-hosted. Vaultwarden kompatibel dengan klien Bitwarden resmi: antarmuka web, aplikasi seluler dan desktop, ekstensi browser, serta CLI.
Data brankas dienkripsi di perangkat pengguna sebelum dikirim ke server. VPS menyinkronkan database terenkripsi, tetapi tidak mengetahui kata sandi utama dan tidak dapat memulihkannya jika hilang.
Vaultwarden bukan produk Bitwarden resmi. Pemilik bertanggung jawab sendiri atas pembaruan, ketersediaan, HTTPS, cadangan, dan keamanan VPS.
Vaultwarden dan Bitwarden: apa perbedaannya
| Parameter | Bitwarden Cloud | Vaultwarden |
|---|---|---|
| Server | Infrastruktur Bitwarden | VPS atau server rumah Anda |
| Aplikasi | Klien Bitwarden | Klien yang sama dalam mode Self-hosted |
| Pemeliharaan | Ditangani penyedia | Ditangani pemilik |
| Kendali atas cadangan | Dibatasi layanan | Penuh |
| Penyiapan | Pendaftaran akun | Konfigurasi domain, Docker, dan VPS |
Vaultwarden cocok bagi orang yang menginginkan kendali atas sisi server dan siap memperbarui Linux serta memeriksa cadangan. Layanan cloud lebih praktis jika Anda tidak ingin menangani administrasi. Self-hosting tidak otomatis membuat sistem aman—tanggung jawab beralih kepada pemilik.
Persyaratan server Vaultwarden
Untuk penggunaan pribadi, konfigurasi awal yang wajar adalah:
- 1 vCPU;
- RAM 1–2 GB;
- SSD atau NVMe 10–20 GB;
- Ubuntu 24.04 LTS;
- alamat IP publik dan domain;
- port 80 dan 443 terbuka.
Ini adalah alokasi praktis untuk Ubuntu, Docker, Caddy, dan pembaruan, bukan minimum proyek yang ketat. Untuk puluhan pengguna, banyak lampiran, atau beberapa container, sebaiknya pilih RAM setidaknya 2 GB.
Cara memasang Vaultwarden di VPS
Contoh ini menggunakan Ubuntu 24.04 dan subdomain vault.example.com. Ganti dengan alamat Anda sendiri di semua file.
1. Konfigurasikan DNS dan siapkan Ubuntu
Buat catatan DNS A yang mengarah ke alamat IPv4 VPS. Kemudian hubungkan melalui SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableJangan menutup sesi SSH saat ini sebelum memastikan koneksi baru dapat digunakan.
2. Pasang Docker dan Docker Compose
Tambahkan repositori Docker resmi:
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Buat konfigurasi
mkdir -p /opt/vaultwarden
cd /opt/vaultwardenBuat compose.yaml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2-alpine
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/configBuat Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80
}Hanya Caddy yang terekspos ke luar. Container Vaultwarden dapat diakses di dalam jaringan Docker, dan data disimpan di /opt/vaultwarden/vw-data. Port WebSocket terpisah tidak diperlukan dalam penyiapan saat ini.
4. Jalankan Vaultwarden
docker compose up -d
docker compose ps
docker compose logs --tail=100 caddyBuka https://vault.example.com. Caddy akan otomatis mendapatkan sertifikat TLS jika DNS sudah mengarah ke VPS dan port 80 serta 443 dapat diakses. Jika situs tidak terbuka, periksa DNS, firewall, dan apakah server web lain menggunakan port tersebut.
5. Buat akun dan nonaktifkan pendaftaran
Daftarkan akun pertama. Gunakan kata sandi utama yang panjang dan unik, serta simpan salinan darurat di luar Vaultwarden: administrator server tidak dapat mengatur ulang atau memulihkan kata sandi utama.
Setelah pendaftaran, ubah bagian berikut di compose.yaml:
SIGNUPS_ALLOWED: "false"Terapkan pengaturannya:
docker compose up -dOrang lain kini tidak dapat membuat akun. Untuk menambahkan pengguna baru, Anda dapat mengaktifkan pendaftaran sementara atau mengonfigurasi undangan.
Cara menghubungkan aplikasi Bitwarden
Anda tidak perlu memasang klien Vaultwarden terpisah. Pada layar login aplikasi atau ekstensi Bitwarden, pilih Self-hosted lalu masukkan:
https://vault.example.comGunakan alamat ini di komputer, ponsel, dan browser. Untuk migrasi, impor ekspor dari pengelola kata sandi sebelumnya. Segera hapus file CSV atau JSON yang tidak terenkripsi setelah transfer, dan jangan mengirimkannya melalui email atau tautan publik.
Konfigurasi Vaultwarden yang aman
Setelah peluncuran, lakukan beberapa langkah berikut:
- aktifkan TOTP atau WebAuthn dan simpan kode pemulihan secara terpisah;
- tetap nonaktifkan
SIGNUPS_ALLOWED; - gunakan kunci SSH dan perbarui Ubuntu secara rutin;
- jangan membuka port internal container Vaultwarden;
- jangan menjalankan container yang meragukan di VPS yang sama;
- pastikan cadangan dapat dipulihkan.
Panel /admin biasanya tidak diperlukan untuk brankas pribadi. Jika diaktifkan, gunakan token panjang dalam bentuk hash Argon2 dan, jika memungkinkan, batasi akses berdasarkan alamat IP atau VPN. Menyimpan ADMIN_TOKEN dalam teks biasa tidak disarankan.
Buat cadangan sebelum memperbarui, lalu jalankan:
cd /opt/vaultwarden
docker compose pull
docker compose up -dServer harus diperbarui secara rutin: klien Bitwarden dirilis secara terpisah, sehingga versi Vaultwarden yang sangat lama dapat kehilangan kompatibilitas.
Mencadangkan Vaultwarden
Database SQLite utama berada di vw-data/db.sqlite3, sedangkan lampiran disimpan sebagai file terpisah. Jangan menyalin database yang sedang berjalan dengan perintah cp biasa: operasi penulisan pada saat itu dapat membuat salinan tidak konsisten.
Buat snapshot aman dengan perintah bawaan:
docker exec vaultwarden /vaultwarden backupFile db_.sqlite3 terpisah akan muncul di direktori data. Simpan attachments, sends, config.json jika telah dibuat, serta file rsa_key bersamanya.
Cadangan di VPS yang sama tidak melindungi dari penghapusan server atau kerusakan disk. Kirim salinan secara otomatis ke perangkat lain atau penyimpanan objek terpisah, sebaiknya dengan enkripsi tambahan. Lakukan pengujian pemulihan secara berkala.
VPS mana yang dipilih untuk Vaultwarden
Linux VPS dasar dengan RAM 2 GB sudah cukup untuk brankas pribadi atau keluarga. Kapasitas ini menyediakan ruang tambahan untuk Ubuntu, Docker, Caddy, pembaruan, dan cadangan otomatis.
Anda dapat menjalankan Vaultwarden di VPS entry-level dari tropic.host dan menambah sumber daya nanti jika menambahkan layanan self-hosted lain ke server. Untuk pengelola kata sandi, jaringan yang stabil, alamat publik permanen, dan disk yang andal lebih penting daripada core CPU tambahan.
Server rumah juga cocok, tetapi Anda perlu menyediakan akses eksternal, HTTPS, daya yang stabil, dan pemulihan setelah kegagalan. VPS biasanya lebih sederhana jika brankas harus berfungsi dari jaringan mana pun.
Kesimpulan
Vaultwarden adalah pengelola kata sandi self-hosted yang nyaman bagi pengguna yang ingin memakai klien Bitwarden sambil mempertahankan sisi server di infrastrukturnya sendiri. VPS kecil, domain, Docker Compose, dan Caddy sudah cukup untuk memulai.
Tanggung jawab utama dimulai setelah instalasi: nonaktifkan pendaftaran, aktifkan 2FA, perbarui container, dan simpan cadangan teruji di luar server.
FAQ
Apakah Vaultwarden dapat dipasang tanpa domain?
Secara teknis, Anda dapat menggunakan alamat lokal, tetapi web vault memerlukan konteks HTTPS yang aman. Untuk akses dari berbagai perangkat, domain dan sertifikat TLS lebih sederhana.
Berapa banyak RAM yang dibutuhkan Vaultwarden?
Untuk satu atau beberapa pengguna, RAM 1 GB biasanya sudah cukup. VPS dengan 2 GB menyediakan kapasitas yang lebih nyaman untuk sistem, Docker, Caddy, dan pembaruan.
Apakah Vaultwarden bekerja dengan aplikasi seluler Bitwarden?
Ya. Pada layar login, pilih server self-hosted dan masukkan alamat HTTPS lengkap instans Vaultwarden Anda.
Apa yang terjadi jika VPS tidak tersedia sementara?
Data yang telah disinkronkan biasanya tetap berada di cache lokal terenkripsi klien. Namun, sinkronisasi, login di perangkat baru, dan penerimaan perubahan tidak akan berfungsi sampai server dipulihkan.
Bisakah kata sandi utama yang terlupa dipulihkan melalui /admin?
Tidak. Administrator dapat mengelola server dan akun, tetapi tidak memiliki kunci dekripsi brankas pengguna. Kata sandi utama dan kode pemulihan harus disimpan secara terpisah.
