Files
HarmenandClaude Opus 5.5 40d93b34f2 gitea-runner: registratie bij de gebruiker in plaats van bij een repo
Alleen commentaar. De runner bedient nu Atreides Assets en Atreides
Services; een runner van een repo pakt alleen jobs van die repo, en het
opnieuw registreren staat erbij.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:44:24 +02:00

50 lines
3.0 KiB
YAML

# ═══════════════════════════════════════════════════════════════════════════════
# Gitea Actions-runner voor de Umbrel: bouwt en duwt de images van Atreides
# Assets en Atreides Services als daar een tag gezet wordt. De workflows zelf
# staan in die repo's (`.gitea/workflows/release.yml`); hier staat alleen wát
# ze uitvoert.
#
# GEREGISTREERD BIJ DE GEBRUIKER `sysop`, NIET BIJ EEN REPO (09-10-2026). Een
# runner van een repo pakt alleen jobs van die repo, en een tweede repo wacht
# dan zonder melding. Op gebruikersniveau bedient hij alle repo's van `sysop`
# en niets daarbuiten; de secrets REGISTRY_USER en REGISTRY_TOKEN staan op
# hetzelfde niveau.
#
# GEEN UMBREL-APP, en daarom staat dit onder `tools/` en niet in een app-map.
# umbrelOS weet hier niets van: dit is gereedschap op het apparaat, net als de
# bouwscripts van de andere twee apps.
#
# DE DOCKER-SOCKET ZIT ER WÉL IN, en dat is geen vergissing tegen de regel bij
# Electrum Gate ("geen docker-socket"). Die regel gaat over een app die door
# anderen geïnstalleerd wordt; dit is een bouwmachine en zonder de socket bouwt
# hij niets. Besef wat het betekent en besef het één keer goed: een runner aan
# die socket is in de praktijk root op dit apparaat, en hij voert uit wat er in
# de repo staat. Laat hem dus geen andermans repo's bouwen.
# ═══════════════════════════════════════════════════════════════════════════════
services:
runner:
# Gepind op wat er bij de eerste registratie draaide (18-09-2026). Een runner
# die stilzwijgend meeschuift met upstream is precies het soort verrassing dat
# een release-dag kost.
image: gitea/act_runner:0.6.1
container_name: gitea-act-runner
restart: unless-stopped
environment:
GITEA_INSTANCE_URL: https://sc.kamenier-hamer.nl
# Het registratietoken komt uit Gitea (gebruiker sysop → Settings →
# Actions → Runners) en staat in `.env` ernaast, nooit in de repo. Na de
# eerste start is het verbruikt: de registratie zelf ligt dan in
# `data/.runner`. Opnieuw registreren is dus: `data/.runner` weg, nieuw
# token in `.env`, container opnieuw aanmaken.
GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:?zet hem in .env}
GITEA_RUNNER_NAME: umbrel
# HET LABEL LINKS MOET GELIJK ZIJN AAN `runs-on:` IN DE WORKFLOW. Staat daar
# een label dat niemand draagt, dan wacht die workflow zonder te zeggen
# waarop. Rechts staat de image waarin een job draait; die moet de docker-CLI
# én buildx hebben, want de workflow bouwt en duwt.
GITEA_RUNNER_LABELS: ubuntu-latest:docker://catthehacker/ubuntu:act-latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/data