diff options
Diffstat (limited to 'start-dedicated-server.sh')
| -rw-r--r-- | start-dedicated-server.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/start-dedicated-server.sh b/start-dedicated-server.sh new file mode 100644 index 00000000..8169601c --- /dev/null +++ b/start-dedicated-server.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +COMPOSE_FILE="${SCRIPT_DIR}/docker-compose.dedicated-server.ghcr.yml" +SERVICE_NAME="minecraft-lce-dedicated-server" +PERSIST_DIR="${SCRIPT_DIR}/server-data" + +if [[ ! -f "${COMPOSE_FILE}" ]]; then + echo "[error] docker-compose file not found: ${COMPOSE_FILE}" >&2 + exit 1 +fi + +if command -v docker >/dev/null 2>&1; then + COMPOSE_CMD=(docker compose) +elif command -v docker-compose >/dev/null 2>&1; then + COMPOSE_CMD=(docker-compose) +else + echo "[error] docker compose is not available." >&2 + exit 1 +fi + +if [[ "${#}" -gt 1 ]]; then + echo "Usage: $0 [--no-pull]" >&2 + exit 1 +fi + +DO_PULL=1 +if [[ "${#}" -eq 1 ]]; then + if [[ "${1}" == "--no-pull" ]]; then + DO_PULL=0 + else + echo "Usage: $0 [--no-pull]" >&2 + exit 1 + fi +fi + +if [[ "${DO_PULL}" -eq 1 ]]; then + echo "[info] Pulling latest image from GHCR..." + "${COMPOSE_CMD[@]}" -f "${COMPOSE_FILE}" pull "${SERVICE_NAME}" +fi + +echo "[info] Starting dedicated server..." +"${COMPOSE_CMD[@]}" -f "${COMPOSE_FILE}" up -d "${SERVICE_NAME}" +echo "[info] Dedicated server started." |
