#!/bin/bash # Install and configure Gitea Actions Runner # Run as: sudo bash install-gitea-runner.sh set -e RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' echo "=========================================" echo "Gitea Actions Runner Installation" echo "=========================================" echo "" # Check if running as root if [ "$EUID" -ne 0 ]; then echo -e "${RED}ERROR: This script must be run as root (sudo)${NC}" exit 1 fi # Variables RUNNER_VERSION="0.2.11" RUNNER_USER="gitea-runner" RUNNER_HOME="/home/${RUNNER_USER}" GITEA_URL="https://git.azcomputerguru.com" RUNNER_NAME="gururmm-runner" echo "Installing Gitea Actions Runner v${RUNNER_VERSION}" echo "Target: ${GITEA_URL}" echo "" # Create runner user if ! id "${RUNNER_USER}" &>/dev/null; then echo "Creating ${RUNNER_USER} user..." useradd -m -s /bin/bash "${RUNNER_USER}" echo -e "${GREEN}User created${NC}" else echo -e "${YELLOW}User ${RUNNER_USER} already exists${NC}" fi # Download runner binary echo "Downloading Gitea Actions Runner..." cd /tmp wget -q "https://dl.gitea.com/act_runner/${RUNNER_VERSION}/act_runner-${RUNNER_VERSION}-linux-amd64" -O act_runner # Install binary echo "Installing binary..." chmod +x act_runner mv act_runner /usr/local/bin/ chown root:root /usr/local/bin/act_runner # Create runner directory echo "Creating runner directory..." mkdir -p "${RUNNER_HOME}/.runner" chown -R "${RUNNER_USER}:${RUNNER_USER}" "${RUNNER_HOME}/.runner" echo "" echo "=========================================" echo "Runner Registration" echo "=========================================" echo "" echo "To complete setup, you need to register the runner with Gitea:" echo "" echo "1. Go to: ${GITEA_URL}/admin/actions/runners" echo "2. Click 'Create new Runner'" echo "3. Copy the registration token" echo "4. Run as ${RUNNER_USER}:" echo "" echo " sudo -u ${RUNNER_USER} act_runner register \\" echo " --instance ${GITEA_URL} \\" echo " --token YOUR_REGISTRATION_TOKEN \\" echo " --name ${RUNNER_NAME} \\" echo " --labels ubuntu-latest,ubuntu-22.04" echo "" echo "5. Then create systemd service:" echo "" cat > /etc/systemd/system/gitea-runner.service << 'EOF' [Unit] Description=Gitea Actions Runner After=network.target [Service] Type=simple User=gitea-runner WorkingDirectory=/home/gitea-runner/.runner ExecStart=/usr/local/bin/act_runner daemon Restart=always RestartSec=10 Environment="HOME=/home/gitea-runner" [Install] WantedBy=multi-user.target EOF echo "Systemd service created at /etc/systemd/system/gitea-runner.service" echo "" echo "After registration, enable and start the service:" echo " sudo systemctl daemon-reload" echo " sudo systemctl enable gitea-runner" echo " sudo systemctl start gitea-runner" echo " sudo systemctl status gitea-runner" echo "" echo "=========================================" echo "Installation Complete!" echo "=========================================" echo "" echo -e "${YELLOW}Next Steps:${NC}" echo "1. Register the runner (see instructions above)" echo "2. Start the systemd service" echo "3. Verify runner shows up in Gitea Admin > Actions > Runners" echo ""