37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
{ config, pkgs, self, ... }:
|
||
|
||
let
|
||
passwordmanager_compose_dir = pkgs.stdenv.mkDerivation {
|
||
name = "passwordmanager_compose_dir";
|
||
src = self + "/assets/compose/passwordmanager";
|
||
dontUnpack = true;
|
||
installPhase = ''
|
||
mkdir -p $out
|
||
cp -r $src/* $out/
|
||
'';
|
||
};
|
||
in
|
||
{
|
||
systemd.services.passwordmanager_stack = {
|
||
description = "Bitwarden via Docker Compose";
|
||
after = [ "network-online.target" "docker.service" ];
|
||
wants = [ "network-online.target" "docker.service" ];
|
||
serviceConfig = {
|
||
WorkingDirectory = "${passwordmanager_compose_dir}";
|
||
|
||
# Stop left over container by the same name
|
||
ExecStartPre = "${pkgs.bash}/bin/bash -c '${pkgs.docker-compose}/bin/docker-compose down || true'";
|
||
|
||
# Démarrer les conteneurs avec Docker Compose
|
||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose up -d";
|
||
|
||
# Arrêter et supprimer les conteneurs à l’arrêt
|
||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose down";
|
||
|
||
RemainAfterExit = true;
|
||
TimeoutStartSec = 0;
|
||
};
|
||
wantedBy = [ "multi-user.target" ];
|
||
};
|
||
}
|