# ═══════════════════════════════════════════════════════════════════════════════ # 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