first commit
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
**Docker Compose**
|
||||
|
||||
```
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DOMAIN: "https://vw.domain.tld"
|
||||
volumes:
|
||||
- ./vw-data/:/data/
|
||||
ports:
|
||||
- 127.0.0.1:8000:80
|
||||
```
|
||||
|
||||
**Docker CLI**
|
||||
|
||||
```
|
||||
docker pull vaultwarden/server:latest
|
||||
docker run --detach --name vaultwarden \
|
||||
--env DOMAIN="https://vw.domain.tld" \
|
||||
--volume /vw-data/:/data/ \
|
||||
--restart unless-stopped \
|
||||
--publish 127.0.0.1:8000:80 \
|
||||
vaultwarden/server:latest
|
||||
```
|
||||
|
||||
🔹 **backup**
|
||||
cd /opt/vaultwarden
|
||||
tar -czvf vaultwarden-backup-$(date +%F).tar.gz vw-data
|
||||
|
||||
Or if you are using docker:
|
||||
docker exec -it vaultwarden /vaultwarden backup
|
||||
|
||||
🔹 **Restore**
|
||||
sudo docker-compose down
|
||||
rm -rf vw-data
|
||||
tar -xzvf vaultwarden-backup-2025-09-15.tar.gz
|
||||
sudo docker-compose up -d
|
||||
|
||||
**🔹 Backup automático con cron**
|
||||
crontab -e
|
||||
0 3 * * * tar -czf /opt/vaultwarden/backups/vaultwarden-$(date +%F).tar.gz -C /opt/vaultwarden vw-data
|
||||
|
||||
**🔹 backup.sh**
|
||||
#!/bin/bash
|
||||
### Backup de Vaultwarden
|
||||
#### Carpeta de datos
|
||||
DATA_DIR="/opt/vaultwarden/vw-data"
|
||||
#### Carpeta de backups
|
||||
BACKUP_DIR="/opt/vaultwarden/backups"
|
||||
#### Crear carpeta de backups si no existe
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
#### Nombre del archivo con fecha
|
||||
BACKUP_FILE="$BACKUP_DIR/vaultwarden-$(date +%F-%H%M).tar.gz"
|
||||
echo "📦 Creando backup en $BACKUP_FILE ..."
|
||||
tar -czvf "$BACKUP_FILE" -C /opt/vaultwarden vw-data
|
||||
echo "✅ Backup completado."
|
||||
|
||||
**🔹 restore.sh**
|
||||
#!/bin/bash
|
||||
### Restaurar backup de Vaultwarden
|
||||
DATA_DIR="/opt/vaultwarden/vw-data"
|
||||
BACKUP_DIR="/opt/vaultwarden/backups"
|
||||
if [ -z "$1" ]; then
|
||||
echo "Uso: $0 archivo_backup.tar.gz"
|
||||
exit 1
|
||||
fi
|
||||
BACKUP_FILE="$1"
|
||||
if [ ! -f "$BACKUP_FILE" ]; then
|
||||
echo "❌ El archivo $BACKUP_FILE no existe."
|
||||
exit 1
|
||||
fi
|
||||
echo "🛑 Deteniendo contenedor..."
|
||||
cd /opt/vaultwarden
|
||||
sudo docker-compose down
|
||||
echo "🗑️ Eliminando datos actuales..."
|
||||
rm -rf "$DATA_DIR"
|
||||
echo "📂 Restaurando desde $BACKUP_FILE ..."
|
||||
tar -xzvf "$BACKUP_FILE" -C /opt/vaultwarden
|
||||
echo "🚀 Iniciando contenedor..."
|
||||
sudo docker-compose up -d
|
||||
echo "✅ Restauración completada."
|
||||
|
||||
---
|
||||
|
||||
**ejecutar backup sh**
|
||||
chmod +x /opt/vaultwarden/backup.sh /opt/vaultwarden/restore.sh
|
||||
|
||||
/opt/vaultwarden/backup.sh
|
||||
/opt/vaultwarden/restore.sh /opt/vaultwarden/backups/vaultwarden-2025-09-15-1530.tar.gz
|
||||
|
||||
---
|
||||
|
||||
**Añadir menu administrador:**
|
||||
openssl rand -base64 48 - generar token mac/linux o (git bash windows)
|
||||
|
||||
[Convert]::ToBase64String((1..48 | ForEach-Object {Get-Random -Maximum 256})) - generar token windows
|
||||
|
||||
environment:
|
||||
- ADMIN_TOKEN=pon_aqui_un_token_seguro
|
||||
|
||||
<http://IP-DE-TU-SERVIDOR:8080/admin>
|
||||
|
||||
|
||||
### Docker-Based Automated Backups (Example)
|
||||
If you're using Vaultwarden via Docker and want to automate your backups to a remote machine, the following method might help. It stops the container to ensure consistency, zips the data directory, transfers it via scp, and then restarts Vaultwarden.
|
||||
|
||||
**Backup Script Example:**
|
||||
|
||||
#!/bin/bash
|
||||
docker-compose down
|
||||
datestamp=$(date +%m-%d-%Y)
|
||||
backup_dir="/home/<user>/vw-backups"
|
||||
zip -9 -r "${backup_dir}/${datestamp}.zip" /opt/vw-data*
|
||||
scp -i ~/.ssh/id_rsa "${backup_dir}/${datestamp}.zip" user@<REMOTE_IP>:~/vw-backups/
|
||||
docker-compose up -d
|
||||
|
||||
You can automate this via cron:
|
||||
0 0 * * * /root/transfer_vaultwarden_logs.sh
|
||||
|
||||
Cleanup Script (optional) to keep only the most recent backup:
|
||||
#!/bin/bash
|
||||
cd ~/backups || exit
|
||||
find . -type f -name '*.zip' ! -mtime -1 -exec rm {} +
|
||||
Always test restores. To restore, unzip the archive back into /opt/vw-data, replacing the previous data directory.
|
||||
|
||||
Reference in New Issue
Block a user