#!/bin/dash # Data Path : /srv/data # Docker Path : /var/lib/docker GITEA_INSTANCE_URL="" GITEA_INSTANCE_URL=$(whiptail --title "GITEA_INSTANCE_URL" --inputbox "" 0 30 "${GITEA_INSTANCE_URL}" 3>&1 1>&2 2>&3) GITEA_RUNNER_REGISTRATION_TOKEN="" GITEA_RUNNER_REGISTRATION_TOKEN=$(whiptail --title "GITEA_RUNNER_REGISTRATION_TOKEN" --inputbox "" 0 30 "${GITEA_RUNNER_REGISTRATION_TOKEN}" 3>&1 1>&2 2>&3) IMAGES="" if [ "${GITEA_INSTANCE_URL}" = "" ] || [ "${GITEA_RUNNER_REGISTRATION_TOKEN}" = "" ]; then exit 1 fi apk add docker docker-compose rc-update add docker boot service docker start mkdir -p /srv/compose mkdir -p /srv/data SelectImages() { SEL=$(whiptail --title "Images" --checklist "" 0 0 0 \ "alpine" "" on \ "debian-bookworm" "" on \ "debian-bookworm-slim" "" on \ "debian-bullseye" "" on \ "debian-bullseye-slim" "" on \ "debian-buster" "" on \ "debian-buster-slim" "" on \ "node-16-bullseye" "" on \ "node-18-bookworm" "" on \ "node-20-bookworm" "" on \ "archlinux" "" on \ "archlinux-base-devel" "" on 3>&1 1>&2 2>&3) # shellcheck disable=SC2181 if [ "${?}" = "0" ]; then for ITM in ${SEL}; do # shellcheck disable=SC3000-SC4000 case ${ITM//\"/} in "alpine") IMAGES=${IMAGES}'"alpine:docker://alpine",';; "debian-bookworm") IMAGES=${IMAGES}'"debian-bookworm:docker://debian:bookworm",';; "debian-bookworm-slim") IMAGES=${IMAGES}'"debian-bookworm-slim:docker://debian:bookworm-slim",';; "debian-bullseye") IMAGES=${IMAGES}'"debian-bullseye:docker://debian:bullseye",';; "debian-bullseye-slim") IMAGES=${IMAGES}'"debian-bullseye-slim:docker://debian:bullseye-slim",';; "debian-buster") IMAGES=${IMAGES}'"debian-buster:docker://debian:buster",';; "debian-buster-slim") IMAGES=${IMAGES}'"debian-buster-slim:docker://debian:buster-slim",';; "node-16-bullseye") IMAGES=${IMAGES}'"node-16:docker://node:16-bullseye",';; "node-18-bookworm") IMAGES=${IMAGES}'"node-18:docker://node:18-bookworm",';; "node-20-bookworm") IMAGES=${IMAGES}'"node-20:docker://node:20-bookworm",';; "archlinux") IMAGES=${IMAGES}'"archlinux:docker://archlinux",';; "archlinux-base-devel") IMAGES=${IMAGES}'"archlinux-base-devel:docker://archlinux:base-devel",';; esac done # shellcheck disable=SC3057 IMAGES=${IMAGES::-1} fi } SelectImages { echo "runner:" echo " insecure: true" echo " labels: [${IMAGES}]" } > /srv/data/config.yaml { echo "services:" echo " runner:" echo " container_name: gitea-act_runner" echo " image: gitea/act_runner:latest" echo " restart: unless-stopped" echo " volumes:" echo " - /srv/data:/data" echo " - /var/run/docker.sock:/var/run/docker.sock" echo " environment:" echo " - CONFIG_FILE=/data/config.yaml" echo " - GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}" echo " - GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}" } > /srv/compose/compose.yaml cd /srv/compose || exit 1 docker-compose up -d