#!/bin/bash source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" "DEFAULT_DOMAIN" "DB_NAME" "DB_USER" "DB_PASSWORD" "DB_ROOT_PASSWORD" _check_docker_installed || _die "Docker test failed, aborting installation..." # Create data directory mkdir -p "${DATA_PATH}/mariadb" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT DEFAULT_DOMAIN IS_HTTPS_ENABLED GEOLITE_LICENSE_KEY INITIAL_API_KEY export DB_NAME DB_USER DB_PASSWORD DB_ROOT_PASSWORD export IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG DB_IMAGE_REGISTRY DB_IMAGE_REPO DB_IMAGE_TAG cd "$SCRIPT_DIR" || _die "Failed to change to script directory" # Pull images docker compose pull || _die "Failed to pull images" # Stop existing containers docker compose down 2>/dev/null || true # Start containers docker compose up -d || _die "Failed to start containers" echo "Installation of ${CONTAINER_NAME} complete" echo "Access Shlink at http://localhost:${HTTP_PORT}" echo "" echo "To generate an API key, run:" echo " docker exec -it ${CONTAINER_NAME} shlink api-key:generate"