From a81b0a67b72f59d24428805ee75cc19957d515ea Mon Sep 17 00:00:00 2001 From: "Dejan R." Date: Thu, 11 Dec 2025 11:12:19 +0000 Subject: [PATCH] added configuration script --- install.sh | 54 ++++++++++++++++++++---------------------------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/install.sh b/install.sh index ca98858..f397ca1 100755 --- a/install.sh +++ b/install.sh @@ -5,9 +5,8 @@ set -euo pipefail # CONFIG ############################# -# Run this script from /home/Dejan/Docker -# It will create /home/Dejan/Docker/Vaultwarden -BASE_DIR="$(pwd)/Vaultwarden" +# Use the CURRENT directory +BASE_DIR="$(pwd)" DOMAIN_DEFAULT="https://vaultwarden.rozic-dev.com" TZ_DEFAULT="Europe/Ljubljana" @@ -23,44 +22,35 @@ choose_docker_compose_cmd() { else echo "Error: docker compose or docker-compose not found in PATH." >&2 exit 1 - fi + } } generate_admin_token() { if command -v openssl &>/dev/null; then openssl rand -hex 32 else - # Fallback if openssl isn’t available tr -dc 'A-Za-z0-9' >> Creating Vaultwarden directory at: ${BASE_DIR}" -mkdir -p "${BASE_DIR}" -cd "${BASE_DIR}" +echo ">>> Running install inside: ${BASE_DIR}" ############################# # .env FILE ############################# if [[ -f .env ]]; then - echo ">>> .env already exists, reusing existing values." + echo ">>> .env already exists → loading values." # shellcheck disable=SC1091 source .env - : "${ADMIN_TOKEN:?ADMIN_TOKEN must be set in .env}" - : "${DOMAIN:?DOMAIN must be set in .env}" - : "${TZ:?TZ must be set in .env}" + : "${ADMIN_TOKEN:?ADMIN_TOKEN missing in .env}" + : "${DOMAIN:?DOMAIN missing in .env}" + : "${TZ:?TZ missing in .env}" + else echo ">>> Creating .env file..." @@ -75,7 +65,7 @@ TZ=${TZ} EOF echo ">>> .env created." - echo " ADMIN_TOKEN (keep this secret!): ${ADMIN_TOKEN}" + echo " ADMIN_TOKEN: ${ADMIN_TOKEN}" echo " DOMAIN: ${DOMAIN}" echo " TZ: ${TZ}" fi @@ -95,16 +85,13 @@ services: container_name: vaultwarden restart: unless-stopped environment: - # Base configuration - DOMAIN=${DOMAIN} - TZ=${TZ} - WEBSOCKET_ENABLED=true - - # Security - SIGNUPS_ALLOWED=false - ADMIN_TOKEN=${ADMIN_TOKEN} - # Logging (optional) + # Optional logging - LOG_FILE=/data/vaultwarden.log - LOG_LEVEL=info @@ -117,7 +104,7 @@ services: labels: - "traefik.enable=true" - # MAIN HTTP(S) APP + # MAIN HTTPS ROUTER - "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.rozic-dev.com`)" - "traefik.http.routers.vaultwarden.entrypoints=web,websecure" - "traefik.http.routers.vaultwarden.middlewares=redirect-to-https" @@ -125,7 +112,7 @@ services: - "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt" - "traefik.http.services.vaultwarden.loadbalancer.server.port=80" - # WEBSOCKET FOR LIVE UPDATES + # WEBSOCKET ROUTER - "traefik.http.routers.vaultwarden-ws.rule=Host(`vaultwarden.rozic-dev.com`) && Path(`/notifications/hub`)" - "traefik.http.routers.vaultwarden-ws.entrypoints=web,websecure" - "traefik.http.routers.vaultwarden-ws.middlewares=redirect-to-https" @@ -145,7 +132,7 @@ echo ">>> docker-compose.yml created." ############################# DC_CMD=$(choose_docker_compose_cmd) -echo ">>> Using Docker command: ${DC_CMD}" +echo ">>> Using: ${DC_CMD}" echo ">>> Pulling images..." ${DC_CMD} pull @@ -153,9 +140,8 @@ ${DC_CMD} pull echo ">>> Starting Vaultwarden..." ${DC_CMD} up -d -echo ">>> Done!" -echo "Vaultwarden should be available at: ${DOMAIN}" -echo "Admin interface: ${DOMAIN}/admin" -echo "Admin token (from .env): ${ADMIN_TOKEN}" -echo "Data dir: ${BASE_DIR}/vw-data" -echo "Don't forget to backup ${BASE_DIR}/vw-data and ${BASE_DIR}/.env regularly." +echo ">>> Installation completed!" +echo "URL: ${DOMAIN}" +echo "Admin: ${DOMAIN}/admin" +echo "Admin token (also saved in .env): ${ADMIN_TOKEN}" +echo "Data directory: ${BASE_DIR}/vw-data"