Compare commits
3 commits
1784a1c606
...
7ca22985d9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ca22985d9 | ||
|
|
a81b0a67b7 | ||
|
|
201d4f7c2f |
51
install.sh
Normal file → Executable file
51
install.sh
Normal file → Executable file
|
|
@ -5,9 +5,8 @@ set -euo pipefail
|
||||||
# CONFIG
|
# CONFIG
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
# Run this script from /home/Dejan/Docker
|
# Use the CURRENT directory
|
||||||
# It will create /home/Dejan/Docker/Vaultwarden
|
BASE_DIR="$(pwd)"
|
||||||
BASE_DIR="$(pwd)/Vaultwarden"
|
|
||||||
DOMAIN_DEFAULT="https://vaultwarden.rozic-dev.com"
|
DOMAIN_DEFAULT="https://vaultwarden.rozic-dev.com"
|
||||||
TZ_DEFAULT="Europe/Ljubljana"
|
TZ_DEFAULT="Europe/Ljubljana"
|
||||||
|
|
||||||
|
|
@ -30,37 +29,27 @@ generate_admin_token() {
|
||||||
if command -v openssl &>/dev/null; then
|
if command -v openssl &>/dev/null; then
|
||||||
openssl rand -hex 32
|
openssl rand -hex 32
|
||||||
else
|
else
|
||||||
# Fallback if openssl isn’t available
|
|
||||||
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 64
|
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 64
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# MAIN
|
# MAIN START
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
# Optional safety: ensure we’re in /home/Dejan/Docker
|
echo ">>> Running install inside: ${BASE_DIR}"
|
||||||
if [[ "$(pwd)" != "/home/Dejan/Docker" ]]; then
|
|
||||||
echo "Please run this script from /home/Dejan/Docker"
|
|
||||||
echo "Current directory: $(pwd)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ">>> Creating Vaultwarden directory at: ${BASE_DIR}"
|
|
||||||
mkdir -p "${BASE_DIR}"
|
|
||||||
cd "${BASE_DIR}"
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# .env FILE
|
# .env FILE
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
if [[ -f .env ]]; then
|
if [[ -f .env ]]; then
|
||||||
echo ">>> .env already exists, reusing existing values."
|
echo ">>> .env already exists → loading values."
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source .env
|
source .env
|
||||||
: "${ADMIN_TOKEN:?ADMIN_TOKEN must be set in .env}"
|
: "${ADMIN_TOKEN:?ADMIN_TOKEN missing in .env}"
|
||||||
: "${DOMAIN:?DOMAIN must be set in .env}"
|
: "${DOMAIN:?DOMAIN missing in .env}"
|
||||||
: "${TZ:?TZ must be set in .env}"
|
: "${TZ:?TZ missing in .env}"
|
||||||
else
|
else
|
||||||
echo ">>> Creating .env file..."
|
echo ">>> Creating .env file..."
|
||||||
|
|
||||||
|
|
@ -75,7 +64,7 @@ TZ=${TZ}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo ">>> .env created."
|
echo ">>> .env created."
|
||||||
echo " ADMIN_TOKEN (keep this secret!): ${ADMIN_TOKEN}"
|
echo " ADMIN_TOKEN: ${ADMIN_TOKEN}"
|
||||||
echo " DOMAIN: ${DOMAIN}"
|
echo " DOMAIN: ${DOMAIN}"
|
||||||
echo " TZ: ${TZ}"
|
echo " TZ: ${TZ}"
|
||||||
fi
|
fi
|
||||||
|
|
@ -95,16 +84,13 @@ services:
|
||||||
container_name: vaultwarden
|
container_name: vaultwarden
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
# Base configuration
|
|
||||||
- DOMAIN=${DOMAIN}
|
- DOMAIN=${DOMAIN}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
- WEBSOCKET_ENABLED=true
|
- WEBSOCKET_ENABLED=true
|
||||||
|
|
||||||
# Security
|
|
||||||
- SIGNUPS_ALLOWED=false
|
- SIGNUPS_ALLOWED=false
|
||||||
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
||||||
|
|
||||||
# Logging (optional)
|
# Optional logging
|
||||||
- LOG_FILE=/data/vaultwarden.log
|
- LOG_FILE=/data/vaultwarden.log
|
||||||
- LOG_LEVEL=info
|
- LOG_LEVEL=info
|
||||||
|
|
||||||
|
|
@ -117,7 +103,7 @@ services:
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
||||||
# MAIN HTTP(S) APP
|
# MAIN HTTPS ROUTER
|
||||||
- "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.rozic-dev.com`)"
|
- "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.rozic-dev.com`)"
|
||||||
- "traefik.http.routers.vaultwarden.entrypoints=web,websecure"
|
- "traefik.http.routers.vaultwarden.entrypoints=web,websecure"
|
||||||
- "traefik.http.routers.vaultwarden.middlewares=redirect-to-https"
|
- "traefik.http.routers.vaultwarden.middlewares=redirect-to-https"
|
||||||
|
|
@ -125,7 +111,7 @@ services:
|
||||||
- "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
|
||||||
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
|
- "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.rule=Host(`vaultwarden.rozic-dev.com`) && Path(`/notifications/hub`)"
|
||||||
- "traefik.http.routers.vaultwarden-ws.entrypoints=web,websecure"
|
- "traefik.http.routers.vaultwarden-ws.entrypoints=web,websecure"
|
||||||
- "traefik.http.routers.vaultwarden-ws.middlewares=redirect-to-https"
|
- "traefik.http.routers.vaultwarden-ws.middlewares=redirect-to-https"
|
||||||
|
|
@ -145,7 +131,7 @@ echo ">>> docker-compose.yml created."
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
DC_CMD=$(choose_docker_compose_cmd)
|
DC_CMD=$(choose_docker_compose_cmd)
|
||||||
echo ">>> Using Docker command: ${DC_CMD}"
|
echo ">>> Using: ${DC_CMD}"
|
||||||
|
|
||||||
echo ">>> Pulling images..."
|
echo ">>> Pulling images..."
|
||||||
${DC_CMD} pull
|
${DC_CMD} pull
|
||||||
|
|
@ -153,9 +139,8 @@ ${DC_CMD} pull
|
||||||
echo ">>> Starting Vaultwarden..."
|
echo ">>> Starting Vaultwarden..."
|
||||||
${DC_CMD} up -d
|
${DC_CMD} up -d
|
||||||
|
|
||||||
echo ">>> Done!"
|
echo ">>> Installation completed!"
|
||||||
echo "Vaultwarden should be available at: ${DOMAIN}"
|
echo "URL: ${DOMAIN}"
|
||||||
echo "Admin interface: ${DOMAIN}/admin"
|
echo "Admin: ${DOMAIN}/admin"
|
||||||
echo "Admin token (from .env): ${ADMIN_TOKEN}"
|
echo "Admin token (also saved in .env): ${ADMIN_TOKEN}"
|
||||||
echo "Data dir: ${BASE_DIR}/vw-data"
|
echo "Data directory: ${BASE_DIR}/vw-data"
|
||||||
echo "Don't forget to backup ${BASE_DIR}/vw-data and ${BASE_DIR}/.env regularly."
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue