Cara Install Vaultwarden
Sebelumnya aku sudah membahas apa itu Vaultwarden dan kenapa penting menggunakan password manager, sekarang saatnya masuk ke bagian install Vaultwarden di server sendiri atau vps.
Disini aku menggunakan vps dengan spesifikasi 1 vCPU, 1GB RAM, 20GB SSD dan OS Debian 12, aku akan pakai Docker Compose supaya prosesnya cepat, rapi, dan gampang di-maintain. Lalu aku juga akan setup Nginx sebagai reverse proxy.

1. Install Vaultwarden dengan Docker Compose
Persiapan:
Sebelum mulai, pastikan server kamu sudah terpasang:
- Docker
- Docker Compose
- Akses SSH ke server
Kalau belum punya Docker, kamu bisa install dengan perintah berikut:
# Tambah Docker official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Tambah repository docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install docker dan docker compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Tambahkan user ke groups docker
sudo usermod -aG docker $USER
Kalau kamu pakai OS lain, bisa cek dokumentasi resmi docker: docs.docker.com/engine/install/
Buat dulu network untuk Vaultwarden
docker network create vaultwarden-network
Buat directory untuk Vaultwarden:
mkdir -p data/vaultwarden && cd data/vaultwarden/
Buat file docker-compose.yml
:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
DOMAIN: "https://vaultwarden.example.com" # ganti dengan nama domain yang akan kamu gunakan saat menggunakan Nginx reverse proxy
SIGNUPS_ALLOWED: "true" # ubah jadi "false" kalau kamu sudah selesai setup user Vaultwarden
volumes:
- ./vw-data:/data # kamu bisa ganti "vw-data" dengan nama directory yang kamu mau
ports:
- 8080:80
networks:
- vaultwarden-network # pakai network yang sudah dibuat
networks:
vaultwarden-network:
external: true
directory vw-data ini nantinya akan otomatis dibuat dan akan berisi data-data Vaultwarden, kalau mau migrasi ke server baru jangan lupa bawa directory ini dan juga file
docker-compose.yml
supaya tinggal jalankan docker compose di server baru.
Jalankan Vaultwarden:
docker compose up -d

Karena pada docker-compose.yml
menggunakan expose
port 80, maka Vaultwarden tidak dapat langsung diakses, kita perlu menggunakan Nginx.
expose: ini adalah opsi untuk hanya mengekspos port 80 di dalam container untuk komunikasi antar container di jaringan yang sama, dan tidak dapat diakses melalui browser atau network luar.
Sebelum menggunakan nginx, kita memerlukan ip private dari container Vaultwarden.
Cek IP Private container pakai command ini:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>
Simpan IP Private Vaultwarden.
2. Setup Nginx untuk Vaultwarden
Kita akan membuat Nginx jadi reverse proxy, supaya Vaultwarden bisa diakses lewat domain (misalnya https://vault.domainkamu.com
) dan juga aman pakai SSL.
Install Nginx:
sudo apt install -y nginx
Buat konfigurasi Nginx baru:
sudo vim /etc/nginx/sites-available/vaultwarden.conf
Masukan konfigurasi berikut:
server {
listen 80;
server_name vault.domainkamu.com;
location / {
proxy_pass http://127.0.0.1:80; # Ganti ke IP Private container Vaultwarden
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/vaultwarden.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Pasang SSL dengan Certbot:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d vault.domainkamu.com

Sekarang Vaultwarden sudah bisa diakses aman melalui HTTPS. 🚀