From 3144964222bc5519964337d7a064d29e6e494cbb Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 20 Jun 2026 21:07:23 -0700 Subject: [PATCH] Add Woodpecker setup script --- deploy/woodpecker-setup.sh | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 deploy/woodpecker-setup.sh diff --git a/deploy/woodpecker-setup.sh b/deploy/woodpecker-setup.sh new file mode 100644 index 0000000..8ae9def --- /dev/null +++ b/deploy/woodpecker-setup.sh @@ -0,0 +1,65 @@ +#!/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 ""