Files
gitea-deployment/run.sh

76 lines
1.8 KiB
Bash

#!/usr/bin/env bash
set -e
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo ""
echo "========================================"
echo " Gitea Deployment Bootstrapper"
echo "========================================"
echo ""
if [ ! -f ".env" ]; then
echo -e "${YELLOW}[INFO] .env file not found.${NC}"
echo "Creating .env from template..."
cp .env.sample .env
echo ""
echo -e "${YELLOW}Please edit .env and rerun this script.${NC}"
exit 1
fi
source .env
if [[ -z "$GITEA_EXTERNAL_URL" || "$GITEA_EXTERNAL_URL" == *"example.com"* ]]; then
echo -e "${RED}[ERROR] Invalid GITEA_EXTERNAL_URL in .env${NC}"
exit 1
fi
if [[ -z "$GITEA_ROOT_PASSWORD" || ${#GITEA_ROOT_PASSWORD} -lt 8 ]]; then
echo -e "${RED}[ERROR] GITEA_ROOT_PASSWORD must be at least 8 characters.${NC}"
exit 1
fi
echo -e "${GREEN}[INFO] Configuration validated.${NC}"
echo ""
echo "[STEP] Checking swap configuration..."
./scripts/setup-swap.sh || true
echo ""
echo "[STEP] Preparing SSL certificates (if HTTPS enabled)..."
./scripts/setup-ssl.sh || true
echo ""
echo "[STEP] Creating data directories..."
mkdir -p ${GITEA_DATA_PATH}/gitea
mkdir -p ${GITEA_DATA_PATH}/postgres
echo ""
echo "[STEP] Starting containers..."
docker compose up -d
echo "[STEP] Creating admin user..."
docker exec -u git -it gitea-server gitea admin user create \
--username "$GITEA_ROOT_USER" \
--password "$GITEA_ROOT_PASSWORD" \
--email "$GITEA_ROOT_EMAIL" \
--admin || true
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Gitea deployment started successfully${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo "Access your instance at:"
echo " $GITEA_EXTERNAL_URL"
echo ""
echo "Container status:"
docker compose ps