#!/bin/bash # Setup script for Woodpecker CI/CD # Run this before deploying woodpecker.yaml set -e echo "🔧 Woodpecker Setup Script" echo "==========================" echo "" # Step 1: Database setup echo "Step 1: Creating PostgreSQL database and user..." WOODPECKER_DB_USER=${1:-woodpecker} WOODPECKER_DB_PASS=${2:-changeme} docker exec -it $(docker ps -q -f "label=com.docker.compose.service=postgresql") psql -U postgres << SQL -- Drop if exists (be careful!) DROP DATABASE IF EXISTS woodpecker; DROP USER IF EXISTS woodpecker; -- Create fresh database CREATE DATABASE woodpecker; CREATE USER $WOODPECKER_DB_USER WITH PASSWORD '$WOODPECKER_DB_PASS'; GRANT ALL PRIVILEGES ON DATABASE woodpecker TO $WOODPECKER_DB_USER; -- Switch to woodpecker DB and grant schema access \c woodpecker GRANT ALL ON SCHEMA public TO $WOODPECKER_DB_USER; \q SQL echo "✅ Database created" echo "" # Step 2: Generate agent secret echo "Step 2: Generating Agent Secret..." AGENT_SECRET=$(openssl rand -hex 32) echo "Agent Secret: $AGENT_SECRET" echo "" # Step 3: Instructions echo "Step 3: Next Steps" echo "==================" echo "1. Go to Gitea: https://git.bryanmail.net" echo "2. Settings → Applications → OAuth2 Applications" echo "3. Create New OAuth2 Application:" echo " - Name: Woodpecker" echo " - Redirect URI: https://woodpecker.bryanmail.net/authorize" echo "4. Copy Client ID and Secret" echo "" echo "5. Update woodpecker.env with:" echo " WOODPECKER_GITEA_CLIENT=" echo " WOODPECKER_GITEA_SECRET=" echo " WOODPECKER_AGENT_SECRET=$AGENT_SECRET" echo " DB_USER=$WOODPECKER_DB_USER" echo " DB_PASS=$WOODPECKER_DB_PASS" echo "" echo "6. Deploy:" echo " docker stack deploy -c woodpecker.yaml woodpecker" echo "" echo "7. Access:" echo " https://woodpecker.bryanmail.net" echo ""