{ "module": "gitea", "version": "1", "requires": [ "postgres-database", "route" ], "contributes": { "postgres-database": { "name": "gitea" }, "route": { "name": "git.novox.be", "port": 3000 } }, "binds": { "postgres-database": "/var/lib/gitea/database.json", "route": "/var/lib/gitea/route.json" }, "secrets": { "postgres-database": "/var/lib/gitea/database.secret" }, "capabilities": [ "container-runtime" ], "emits": [ "module.gitea.repo.created", "module.gitea.issue.opened", "module.gitea.pull.merged" ], "listens": [ { "port": 3000, "protocol": "tcp", "from": "mesh", "why": "the forge, over http" }, { "port": 2222, "protocol": "tcp", "from": "mesh", "why": "git over ssh. Not 22: the machine's own daemon holds that, and a module does not take it" } ], "own-secrets": { "internal-token": "/var/lib/gitea/internal-token.secret", "broker": "/var/lib/mesh/gitea/broker" }, "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/gitea", "mode": "0700" }, { "id": "state", "type": "directory", "path": "/var/lib/gitea", "mode": "0700" }, { "id": "server-env", "type": "file", "path": "/var/lib/gitea/server.env", "mode": "0600", "content": "GITEA__security__INTERNAL_TOKEN=${secret:internal-token}\nGITEA__database__DB_TYPE=postgres\nGITEA__database__HOST=${bound:postgres-database:at}:${bound:postgres-database:port}\nGITEA__database__NAME=${bound:postgres-database:as}\nGITEA__database__USER=${bound:postgres-database:as}\nGITEA__database__PASSWD=${secret:postgres-database}\n" }, { "id": "data", "type": "directory", "path": "/services/gitea/gitea", "mode": "0700", "owner": "1000:1000" }, { "id": "server", "type": "container", "name": "gitea", "image": "gitea/gitea@sha256:dfc61e347c8b582df918f4556401bf2cecdfbdb56c5282ae9488dd76fca3e41c", "env": { "DB_TYPE": "postgres", "USER_UID": "1000", "USER_GID": "1000" }, "env-file": [ "/var/lib/gitea/server.env" ], "ports": [ "3000", "2222:22" ], "volumes": [ "/services/gitea/gitea:/data" ] }, { "id": "runtime-config", "type": "file", "path": "/var/lib/mesh/gitea/config.json", "mode": "0600", "content": "{}\n", "merge": "json" }, { "id": "runtime", "type": "container", "name": "mesh-gitea", "image": "mesh-runtime-gitea@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "host", "volumes": [ "/var/lib/mesh/gitea/broker:/run/secrets/broker:ro", "/var/lib/mesh/gitea/config.json:/run/config/config.json:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_GITEA_URL": "http://127.0.0.1:3000", "MESH_GITEA_CONFIG_FILE": "/run/config/config.json" }, "restart-on": [ "runtime-config" ] } ] }