From c2475210e62b39564303de3e21503fcc53645f4b Mon Sep 17 00:00:00 2001 From: Tianyu Liu Date: Fri, 25 Apr 2025 15:38:43 +0200 Subject: [PATCH] Use variables for config --- vaultwarden/acme.sh | 25 +++----------- vaultwarden/container-vaultwarden.service | 41 +++++++++++++++++++++++ vaultwarden/deploy.sh | 10 +++--- vaultwarden/env.sh | 11 ++++++ vaultwarden/haproxy.sh | 32 ++++++++++++++++++ 5 files changed, 93 insertions(+), 26 deletions(-) create mode 100644 vaultwarden/container-vaultwarden.service create mode 100644 vaultwarden/env.sh create mode 100755 vaultwarden/haproxy.sh diff --git a/vaultwarden/acme.sh b/vaultwarden/acme.sh index 3ab6313..470ab58 100755 --- a/vaultwarden/acme.sh +++ b/vaultwarden/acme.sh @@ -1,27 +1,12 @@ -curl https://get.acme.sh | sh -s email=liu.tianyu93@hotmail.com -DOMAIN="vw.jamesvillage.dev" -SSL_PATH=$HOME/.config/ssl/$DOMAIN +#!/bin/bash +. ./env.sh + +curl https://get.acme.sh | sh -s email=$EMAIL + mkdir -p $SSL_PATH -export NAMECHEAP_USERNAME="james77676166" -export NAMECHEAP_API_KEY="afcbbc60dcf8431cb0529db06b4dfac7" -export NAMECHEAP_SOURCEIP="https://ifconfig.co/ip" - $HOME/.acme.sh/acme.sh --issue --dns dns_namecheap -d $DOMAIN \ --fullchain-file "$SSL_PATH/fullchain.cer" \ --key-file "$SSL_PATH/privkey.key" \ --reloadcmd "cat $SSL_PATH/privkey.key $SSL_PATH/fullchain.cer > $SSL_PATH/fullchain.pem" - -# cp vaultwarden_sample_haproxy vaultwarden - -# sed -i \ -# -e "s|my_domain\.tld|$DOMAIN|g" \ -# -e "s|/path/to/certificate/letsencrypt/live/vaultwarden\.example\.tld/fullchain\.pem|$SSL_PATH/fullchain.cer|g" \ -# -e "s|/path/to/certificate/letsencrypt/live/vaultwarden\.example\.tld/privkey\.pem|$SSL_PATH/privkey.key|g" \ -# vaultwarden - -# sudo mv vaultwarden /etc/nginx/sites-available -# sudo ln -s /etc/nginx/sites-available/vaultwarden /etc/nginx/sites-enabled -# sudo systemctl reload nginx - diff --git a/vaultwarden/container-vaultwarden.service b/vaultwarden/container-vaultwarden.service new file mode 100644 index 0000000..e4dc91f --- /dev/null +++ b/vaultwarden/container-vaultwarden.service @@ -0,0 +1,41 @@ +# container-vaultwarden.service +# autogenerated by Podman 4.3.1 +# Fri Apr 25 15:33:39 CEST 2025 + +[Unit] +Description=Podman container-vaultwarden.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=always +TimeoutStopSec=70 +ExecStartPre=/bin/rm \ + -f %t/%n.ctr-id +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --sdnotify=conmon \ + -d \ + --replace \ + --name vaultwarden \ + -e DOMAIN=vw.jamesvillage.dev \ + -e SHOW_PASSWORD_HINT=false \ + -p 8885:80 \ + -v /home/tianyu/.local/share/vaultwarden/data:/data docker.io/vaultwarden/server:latest +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/vaultwarden/deploy.sh b/vaultwarden/deploy.sh index b3f0811..8811721 100755 --- a/vaultwarden/deploy.sh +++ b/vaultwarden/deploy.sh @@ -1,12 +1,8 @@ #!/bin/bash +. ./env.sh set -e -CONTAINER_NAME="vaultwarden" -PORT="8885" -DOMAIN="https://vw.jamesvillage.dev" - -DATA_FOLDER="$HOME/.local/share/vaultwarden/data" mkdir -p $DATA_FOLDER if systemctl --user list-units --full --all | grep -q "container-${CONTAINER_NAME}.service"; then @@ -42,4 +38,6 @@ cp container-$CONTAINER_NAME.service $USER_SYSTEMD systemctl --user daemon-reload systemctl --user enable --now container-$CONTAINER_NAME.service -sudo loginctl enable-linger $USER \ No newline at end of file +sudo loginctl enable-linger $USER + +# on local, allow ufw port from wireguard \ No newline at end of file diff --git a/vaultwarden/env.sh b/vaultwarden/env.sh new file mode 100644 index 0000000..c7c6b26 --- /dev/null +++ b/vaultwarden/env.sh @@ -0,0 +1,11 @@ +export NAMECHEAP_USERNAME="" +export NAMECHEAP_API_KEY="" +export NAMECHEAP_SOURCEIP="" + +export EMAIL="" +export CONTAINER_NAME="" +export PORT="" +export DATA_FOLDER="" +export DOMAIN="" +export SSL_PATH=$HOME/.config/ssl/$DOMAIN +export HAPROXY_CFG="/etc/haproxy/haproxy.cfg" \ No newline at end of file diff --git a/vaultwarden/haproxy.sh b/vaultwarden/haproxy.sh new file mode 100755 index 0000000..3e20b1e --- /dev/null +++ b/vaultwarden/haproxy.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +. ./env.sh +BLOCK_BEGIN="# === BEGIN vaultwarden config ===" +BLOCK_END="# === END vaultwarden config ===" + +CONFIG=$(cat < /dev/null + +sudo systemctl reload haproxy