4.0 KiB
4.0 KiB
Service COFFRE
Installation de Vaultwarden
Installation des dépendances
Installation de la chaîne de compilation rustup
Installation des paquets rustc
et cargo
sudo apt install rustc cargo
Compilation du serveur
On compile avec rust le serveur, en nettoyant bien avant.
cargo clean
cargo build --features sqlite --release
Installation du serveur
Installation du fichier de configuration par défaut
sudo cp ../../.env.template /etc/vaultwarden.env
Installation du binaire
sudo cp vaultwarden /usr/bin/vaultwarden
Création du dossier des données
sudo mkdir /var/lib/vaultwarden/data
Correction des droits
sudo chmod +x /usr/bin/vaultwarden
sudo useradd -m -d /var/lib/vaultwarden vaultwarden
sudo chown -R vaultwarden:vaultwarden /var/lib/vaultwarden
Création du fichier de service
On crée le fichier
sudo nano /etc/systemd/system/vaultwarden.service
Avec le contenu suivant :
[Unit]
Description=Bitwarden Server (Powered by Vaultwarden)
Documentation=https://github.com/dani-garcia/vaultwarden
# If you use a database like mariadb,mysql or postgresql,
# you have to add them like the following and uncomment them
# by removing the `# ` before it. This makes sure that your
# database server is started before vaultwarden ("After") and has
# started successfully before starting vaultwarden ("Requires").
# Only sqlite
After=network.target
# MariaDB
# After=network.target mariadb.service
# Requires=mariadb.service
# Mysql
# After=network.target mysqld.service
# Requires=mysqld.service
# PostgreSQL
# After=network.target postgresql.service
# Requires=postgresql.service
[Service]
# The user/group vaultwarden is run under. the working directory (see below) should allow write and read access to this user/group
User=vaultwarden
Group=vaultwarden
# The location of the .env file for configuration
EnvironmentFile=/etc/vaultwarden.env
# The location of the compiled binary
ExecStart=/usr/bin/vaultwarden
# Set reasonable connection and process limits
LimitNOFILE=1048576
LimitNPROC=64
# Isolate vaultwarden from the rest of the system
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=strict
# Only allow writes to the following directory and set it to the working directory (user and password data are stored here)
WorkingDirectory=/var/lib/vaultwarden
ReadWriteDirectories=/var/lib/vaultwarden
# Allow vaultwarden to bind ports in the range of 0-1024
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
On recharge les services
sudo systemctl daemon-reload
On démarre
sudo systemctl start vaultwarden.service
sudo systemctl enable vaultwarden.service
Mise à jour de Vaultwarden
Mise à jour de la chaîne de compilation rustup
rustup update
Récupération des mises à jour
On récupère les commits dans le dépôt et on passe sur le tag de la dernière version (<version>
)
cd ~/vaultwarden/vaultwarden
git fetch
git checkout <version>
Mise à jour du serveur
On compile avec rust le serveur, en nettoyant bien avant.
cargo clean
cargo build --features sqlite --release
On installe le binaire
sudo cp vaultwarden /usr/bin/vaultwarden
sudo chmod +x /usr/bin/vaultwarden
On redémarre le service
sudo systemctl restart vaultwarden.service
Installation de l'interface web
Installation des dépendances
On récupère la dernière version de npm/nodejs
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
On installe nodejs
sudo apt-get install -y nodejs
npm -g install npm@7
npm i npm@latest -g
Ajout au PATH
echo 'export PATH=/opt/node/bin:$PATH' >> ~/.bashrc
Mise à jour de l'interface web
Récupération des mises à jour
On récupère les commits dans le dépôt
cd ~/vaultwarden/webvault
git fetch
Compiler la dernière version de l'interface web
cd ~/vaultwarden/webvault
make full
Lorsque demandé, insérer l'identifiant du tag le plus récent (dispo avec git tag)