====== Vaultwarden ohne Docker ======
Am einfachsten Vaultwarden ohne Docker zu installieren ist das Docker Image zu extrahieren. Dieses Vorgehen wird nachfolgend erläutert und basiert auf https://www.bloovis.com/posts/2023-10-06-vaultwarden-without-docker/.
===== Vaultwarden installieren =====
Vorbereitung zur Docker Extraktion:\\
mkdir vw-image
cd vw-image
wget https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract
chmod +x docker-image-extract
Extraktion des Docker Image:\\
./docker-image-extract vaultwarden/server:latest
Erstellung der notwendigen Verzeichnisse:\\
mkdir /opt/vaultwarden
mkdir /var/lib/vaultwarden
mkdir /var/lib/vaultwarden/data
Erstellung eines Benutzers und dessen Berechtigungen:\\
useradd vaultwarden
chown -R vaultwarden:vaultwarden /var/lib/vaultwarden
Verschieben der Vaultwarden Dateien in die neuen Verzeichnisse:\\
mv output/vaultwarden /opt/vaultwarden
mv output/web-vault /var/lib/vaultwarden
Löschen der nicht mehr benötigten Dateien:\\
rm -Rf output
rm -Rf docker-image-extract
===== Vaultwarden konfigurieren =====
Hash Generierung des Adminpassworts\\
/opt/vaultwarden/vaultwarden hash
Anlegen der Konfigurationsdatei ''%%/var/lib/vaultwarden/.env%%''\\
ROCKET_ADDRESS=
DOMAIN=https://www.example.com/vaultwarden/
ORG_CREATION_USERS=user@example.com
ADMIN_TOKEN=''
SIGNUPS_ALLOWED=false
SMTP_HOST=smtp.example.com
SMTP_FROM=vaultwarden@example.com
SMTP_FROM_NAME=Vaultwarden
SMTP_PORT=587 # Ports 587 (submission) and 25 (smtp) are standard without encryption and with encryption via STARTTLS (Explicit TLS). Port 465 is outdated and us>
SMTP_SSL=true # (Explicit) - This variable by default configures Explicit STARTTLS, it will upgrade an insecure connection to a secure one. Unless SMTP_EXPLICIT_>
SMTP_EXPLICIT_TLS=false # (Implicit) - N.B. This variable configures Implicit TLS. It's currently mislabelled (see bug #851) - SMTP_SSL Needs to be set to true for this o>
SMTP_USERNAME=user@example.com
SMTP_PASSWORD=mysmtppassword
SMTP_TIMEOUT=15
Erstellung der Dienstdatei\\
[Unit]
Description=Bitwarden Server (Rust Edition)
Documentation=https://github.com/dani-garcia/vaultwarden
After=network.target
[Service]
User=vaultwarden
Group=vaultwarden
EnvironmentFile=/var/lib/vaultwarden/.env
ExecStart=/opt/vaultwarden/vaultwarden
LimitNOFILE=1048576
LimitNPROC=64
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=strict
WorkingDirectory=/var/lib/vaultwarden
ReadWriteDirectories=/var/lib/vaultwarden
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
Autostart des Dienst && starten des Dienstes\\
systemctl enable vaultwarden
systemctl start vaultwarden
systemctl status vaultwarden
===== Update Script =====
Create empty script file and make it executable.
touch /root/Update_Vaultwarden.sh
chmod +x /root/Update_Vaultwarden.sh
Paste the following content into the file
#!/bin/bash
### Author Oliver Lehmann
### Date: 12 January 2024
echo "Stopping service."
systemctl stop vaultwarden
echo "Creating Backup of Credentials Store."
rm -R /root/Backups
cd /var/lib/vaultwarden
mkdir /root/Backups
tar cfz /root/Backups/vaultwarden.tar.gz data .env &> /dev/null
echo "Removing old directories."
rm -R /opt/vaultwarden
rm -R /var/lib/vaultwarden
echo "Getting new Docker Version and Extractor"
mkdir /root/vw-image
cd /root/vw-image
wget https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract &> /dev/null
chmod +x docker-image-extract
./docker-image-extract vaultwarden/server:latest &> /dev/null
#./docker-image-extract vaultwarden/server:testing &> /dev/null
echo "Setting up directories & moving new files."
mkdir /opt/vaultwarden
mkdir /var/lib/vaultwarden
mv output/vaultwarden /opt/vaultwarden
mv output/web-vault /var/lib/vaultwarden
echo "Restoring backups and setting access permissions."
cd /var/lib/vaultwarden
tar xfz /root/Backups/vaultwarden.tar.gz
chown -R vaultwarden:vaultwarden /var/lib/vaultwarden
echo "Removing installation files."
cd
rm -R vw-image
echo "Starting vaultwarden."
systemctl start vaultwarden
echo "****************************************************************"
echo ""
echo " The Backup will be removed with the next run of this script "
echo ""
echo "****************************************************************"