A hosting- és CI/CD-környezet: verziókezelés, folyamatos integráció és webhosting, Docker Compose-zal összefogva.
| Szolgáltatás | Image | Szerep |
|---|---|---|
| Traefik | traefik:latest |
Peremrouter. Host-fejléc szerinti útválasztás, 80/8080 port. |
| Gitea | gitea/gitea:latest |
Saját üzemeltetésű Git-szolgáltatás. |
| Woodpecker Server | woodpeckerci/woodpecker-server |
CI/CD-szerver, Gitea-integrációval. |
| Woodpecker Agent | woodpeckerci/woodpecker-agent |
Futtatja a pipeline lépéseit; felcsatolja a Docker socketet és a közös softwares kötetet. |
| MySQL | mysql:8 |
A softwares adatbázis: szoftver-metaadatok és kiadások. |
| phpMyAdmin | phpmyadmin:latest |
Webes felület az adatbázishoz. |
| API | helyi build | Rails 8 alkalmazás: katalógus REST API, fájlletöltés, ActiveAdmin, /build/* végpontok. Az /api, /file, /build, /admin útvonalakra és a games.teletype.hu hosztra van irányítva. |
| Frontend | helyi build | A Vue 3 / Vite játékportál. |
Az artifactok HTTP-n érkeznek: a POST /build/upload az API artifact-könyvtárába ír — a hoszton ./data/softwares, a konténerben /softwares néven csatolva (FILE_CONTAINER_PATH). Az updater és a /file/* statikus kiszolgálás ugyanezt a könyvtárat olvassa.
Egy játékrepó .woodpecker.yaml fájlja egyetlen soros jelölő (platform: <platform>, illetve name:, ha a szoftvernév eltér a repó nevétől). A teljes pipeline az update szerver Woodpecker-konfigurációs kiterjesztéséből jön — lásd a WarpEngine oldalt:
curl "https://teletypegames.org/build/config?platform=<platform>"
A repóhoz kell még egy metadata.json és az application_token Woodpecker-secret. A build után a pipeline két lépésben publikál.
1. Feltöltés — fájlonként egy multipart curl-kérés. A fájlneveknek tartalmazniuk kell a <név>-<verzió> előtagot.
curl -X POST -H "X-Update-Secret: ${UPDATE_SECRET}" -F "file=@<name>-<version>.zip" \
"${UPDATE_SERVER}/build/upload?name=...&version=..."
2. Publikálás — regisztrálja az új verziót.
curl -X POST -H "X-Update-Secret: ${UPDATE_SECRET}" \
"${UPDATE_SERVER}/build/publish?platform=...&name=...&version=..."
Az UPDATE_SECRET egy WarpEngine::ApplicationToken az update + upload jogosultságokkal — tulajdonosonként külön, opcionálisan lejáró, az adminban létrehozva.
Publikálás után a szoftver és a kiadásai automatikusan megjelennek a games.teletype.hu portálon.