183 lines
4.2 KiB
Markdown
183 lines
4.2 KiB
Markdown
# Service COFFRE
|
|
|
|
## Installation de Vaultwarden
|
|
|
|
**Pour la compilation du serveur, un minimum de 2.5Go de mémoire vive est requis (sans quoi la compilation échoue)**
|
|
|
|
### Installation des dépendances
|
|
|
|
Installation des paquets `rustc` et `cargo`
|
|
|
|
sudo apt install rustc cargo
|
|
|
|
### Compilation du serveur
|
|
|
|
On récupère les sources
|
|
|
|
cd ~
|
|
mkdir vaultwarden
|
|
git clone https://github.com/dani-garcia/vaultwarden ~/vaultwarden/vaultwarden
|
|
|
|
On choisit la bonne version à l'aide des tags
|
|
|
|
git checkout <version>
|
|
|
|
On compile avec rust le serveur, en nettoyant bien avant.
|
|
|
|
cd vaultwarden/vaultwarden
|
|
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
|
|
|
|
[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
|
|
|
|
### 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
|
|
|
|
### Compiler la dernière version de l'interface web
|
|
|
|
On récupère les sources
|
|
|
|
git clone https://github.com/dani-garcia/vaultwarden ~/vaultwarden/webvault
|
|
|
|
On compile
|
|
|
|
cd ~/vaultwarden/webvault
|
|
make full
|
|
|
|
## 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 pull
|
|
|
|
### 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)
|