Compare commits
2 commits
b327249d7d
...
1784a1c606
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1784a1c606 | ||
|
|
0fa16f7c9c |
112
install.sh
112
install.sh
|
|
@ -1,3 +1,92 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# CONFIG
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# Run this script from /home/Dejan/Docker
|
||||||
|
# It will create /home/Dejan/Docker/Vaultwarden
|
||||||
|
BASE_DIR="$(pwd)/Vaultwarden"
|
||||||
|
DOMAIN_DEFAULT="https://vaultwarden.rozic-dev.com"
|
||||||
|
TZ_DEFAULT="Europe/Ljubljana"
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# FUNCTIONS
|
||||||
|
#############################
|
||||||
|
|
||||||
|
choose_docker_compose_cmd() {
|
||||||
|
if command -v docker &>/dev/null && docker compose version &>/dev/null; then
|
||||||
|
echo "docker compose"
|
||||||
|
elif command -v docker-compose &>/dev/null; then
|
||||||
|
echo "docker-compose"
|
||||||
|
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' </dev/urandom | head -c 64
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# MAIN
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# Optional safety: ensure we’re in /home/Dejan/Docker
|
||||||
|
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
|
||||||
|
#############################
|
||||||
|
|
||||||
|
if [[ -f .env ]]; then
|
||||||
|
echo ">>> .env already exists, reusing existing 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}"
|
||||||
|
else
|
||||||
|
echo ">>> Creating .env file..."
|
||||||
|
|
||||||
|
ADMIN_TOKEN=$(generate_admin_token)
|
||||||
|
DOMAIN="${DOMAIN_DEFAULT}"
|
||||||
|
TZ="${TZ_DEFAULT}"
|
||||||
|
|
||||||
|
cat > .env <<EOF
|
||||||
|
ADMIN_TOKEN=${ADMIN_TOKEN}
|
||||||
|
DOMAIN=${DOMAIN}
|
||||||
|
TZ=${TZ}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ">>> .env created."
|
||||||
|
echo " ADMIN_TOKEN (keep this secret!): ${ADMIN_TOKEN}"
|
||||||
|
echo " DOMAIN: ${DOMAIN}"
|
||||||
|
echo " TZ: ${TZ}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# docker-compose.yml
|
||||||
|
#############################
|
||||||
|
|
||||||
|
echo ">>> Writing docker-compose.yml..."
|
||||||
|
|
||||||
|
cat > docker-compose.yml <<'EOF'
|
||||||
version: "3.9"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
@ -47,3 +136,26 @@ services:
|
||||||
networks:
|
networks:
|
||||||
traefik_default:
|
traefik_default:
|
||||||
external: true
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ">>> docker-compose.yml created."
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# START CONTAINER
|
||||||
|
#############################
|
||||||
|
|
||||||
|
DC_CMD=$(choose_docker_compose_cmd)
|
||||||
|
echo ">>> Using Docker command: ${DC_CMD}"
|
||||||
|
|
||||||
|
echo ">>> Pulling images..."
|
||||||
|
${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."
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue