letsbe-hub/deploy/setup.sh

66 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
#
# LetsBe Hub Production Setup Script
#
# Usage: ./setup.sh
#
set -e
echo "=== LetsBe Hub Setup ==="
echo ""
# Check if .env exists
if [[ ! -f .env ]]; then
echo "ERROR: .env file not found!"
echo "Copy .env.example to .env and fill in the values first."
exit 1
fi
# Source .env to get variables
source .env
# Validate required variables
REQUIRED_VARS=(
"HUB_URL"
"HUB_DOMAIN"
"POSTGRES_PASSWORD"
"NEXTAUTH_SECRET"
"CREDENTIAL_ENCRYPTION_KEY"
"SETTINGS_ENCRYPTION_KEY"
)
for var in "${REQUIRED_VARS[@]}"; do
if [[ -z "${!var}" || "${!var}" == *"CHANGE_ME"* ]]; then
echo "ERROR: $var is not set or still has placeholder value"
exit 1
fi
done
echo "1. Creating job directories..."
JOBS_DIR="${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs}"
LOGS_DIR="${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}"
mkdir -p "$JOBS_DIR" "$LOGS_DIR"
chmod 755 "$JOBS_DIR" "$LOGS_DIR"
echo " Created: $JOBS_DIR"
echo " Created: $LOGS_DIR"
echo ""
echo "2. Logging into Gitea registry..."
echo " (You will need your Gitea username and password/token)"
docker login code.letsbe.solutions
echo ""
echo "3. Pulling images..."
docker pull code.letsbe.solutions/letsbe/hub:${HUB_IMAGE_TAG:-master}
docker pull code.letsbe.solutions/letsbe/ansible-runner:${DOCKER_IMAGE_TAG:-master}
docker pull postgres:16-alpine
echo ""
echo "=== Setup Complete ==="
echo ""
echo "Now run: docker compose up -d"
echo ""
echo "Then configure Docker Hub and Gitea credentials in:"
echo " ${HUB_URL}/admin/settings"