OPC # 0003: Move Gitea out of OPC Aspire Orchestration
This commit is contained in:
@@ -31,27 +31,6 @@ var cpPostgres = builder.AddPostgres("opc-postgres", password: cpPostgresPass
|
|||||||
.WithPgAdmin();
|
.WithPgAdmin();
|
||||||
|
|
||||||
var controlPlaneDb = cpPostgres.AddDatabase("opcdb");
|
var controlPlaneDb = cpPostgres.AddDatabase("opcdb");
|
||||||
var giteaDb = cpPostgres.AddDatabase("giteadb");
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region GITEA
|
|
||||||
// Gitea is ControlPlane's code management component — owns its own DB on opc-postgres.
|
|
||||||
var gitea = builder.AddContainer("gitea", "gitea/gitea", "latest")
|
|
||||||
.WithHttpEndpoint(port: 3000, targetPort: 3000, name: "http")
|
|
||||||
.WithEndpoint(port: 2222, targetPort: 22, name: "ssh")
|
|
||||||
.WithVolume("clarity-gitea-data", "/data")
|
|
||||||
.WithEnvironment("GITEA__database__DB_TYPE", "postgres")
|
|
||||||
.WithEnvironment("GITEA__database__HOST", "host.docker.internal:5433")
|
|
||||||
.WithEnvironment("GITEA__database__NAME", "giteadb")
|
|
||||||
.WithEnvironment("GITEA__database__USER", "postgres")
|
|
||||||
.WithEnvironment("GITEA__database__PASSWD", "controlplane-dev")
|
|
||||||
.WithEnvironment("GITEA__server__DOMAIN", "opc.clarity.test")
|
|
||||||
.WithEnvironment("GITEA__server__ROOT_URL", "http://opc.clarity.test")
|
|
||||||
.WithEnvironment("GITEA__server__SSH_DOMAIN", "opc.clarity.test")
|
|
||||||
.WithEnvironment("GITEA__server__SSH_PORT", "2222")
|
|
||||||
.WithEnvironment("GITEA__service__DISABLE_REGISTRATION", "true")
|
|
||||||
.WaitFor(giteaDb)
|
|
||||||
.WithLifetime(ContainerLifetime.Persistent);
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region RABBITMQ
|
#region RABBITMQ
|
||||||
@@ -67,7 +46,6 @@ var api = builder.AddProject<Projects.ControlPlane_Api>("controlplane-api")
|
|||||||
.WaitFor(rabbit)
|
.WaitFor(rabbit)
|
||||||
.WithReference(controlPlaneDb)
|
.WithReference(controlPlaneDb)
|
||||||
.WaitFor(controlPlaneDb)
|
.WaitFor(controlPlaneDb)
|
||||||
.WithEnvironment("Gitea__BaseUrl", gitea.GetEndpoint("http"))
|
|
||||||
.WithEnvironment("ClientAssets__Folder", clientAssetsPath)
|
.WithEnvironment("ClientAssets__Folder", clientAssetsPath)
|
||||||
.WithEnvironment("Docker__RepoRoot", Path.GetFullPath(Path.Combine(builder.AppHostDirectory, "..", ".."))) // ClarityStack/ root — needed for Directory.*.props
|
.WithEnvironment("Docker__RepoRoot", Path.GetFullPath(Path.Combine(builder.AppHostDirectory, "..", ".."))) // ClarityStack/ root — needed for Directory.*.props
|
||||||
.WithExternalHttpEndpoints();
|
.WithExternalHttpEndpoints();
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ networks:
|
|||||||
volumes:
|
volumes:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
minio-data:
|
minio-data:
|
||||||
|
clarity-gitea-data:
|
||||||
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
@@ -154,6 +156,37 @@ services:
|
|||||||
aliases:
|
aliases:
|
||||||
- nginx
|
- nginx
|
||||||
|
|
||||||
|
# ── Gitea ─────────────────────────────────────────────────────────────────
|
||||||
|
# Platform source control. Hosts OPC, Clarity, and Gateway repos.
|
||||||
|
# Accessible at https://opc.clarity.test (nginx terminates TLS).
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
container_name: clarity-gitea
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "2222:22"
|
||||||
|
environment:
|
||||||
|
GITEA__database__DB_TYPE: postgres
|
||||||
|
GITEA__database__HOST: postgres:5432
|
||||||
|
GITEA__database__NAME: giteadb
|
||||||
|
GITEA__database__USER: postgres
|
||||||
|
GITEA__database__PASSWD: postgres
|
||||||
|
GITEA__server__DOMAIN: opc.clarity.test
|
||||||
|
GITEA__server__ROOT_URL: https://opc.clarity.test
|
||||||
|
GITEA__server__SSH_DOMAIN: opc.clarity.test
|
||||||
|
GITEA__server__SSH_PORT: "2222"
|
||||||
|
GITEA__service__DISABLE_REGISTRATION: "true"
|
||||||
|
volumes:
|
||||||
|
- clarity-gitea-data:/data
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
clarity-net:
|
||||||
|
aliases:
|
||||||
|
- gitea
|
||||||
|
|
||||||
# ── Dnsmasq ───────────────────────────────────────────────────────────────
|
# ── Dnsmasq ───────────────────────────────────────────────────────────────
|
||||||
# Resolves *.clarity.test → 127.0.0.1 so browser requests hit nginx on the host.
|
# Resolves *.clarity.test → 127.0.0.1 so browser requests hit nginx on the host.
|
||||||
dnsmasq:
|
dnsmasq:
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name opc.clarity.test;
|
||||||
|
|
||||||
|
ssl_certificate /etc/nginx/certs/clarity.test.crt;
|
||||||
|
ssl_certificate_key /etc/nginx/certs/clarity.test.key;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://gitea:3000;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,3 +7,4 @@
|
|||||||
-- clarity_{tenant} → Created at provisioning time by ControlPlane.Worker.
|
-- clarity_{tenant} → Created at provisioning time by ControlPlane.Worker.
|
||||||
|
|
||||||
SELECT 'CREATE DATABASE keycloakdb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'keycloakdb')\gexec
|
SELECT 'CREATE DATABASE keycloakdb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'keycloakdb')\gexec
|
||||||
|
SELECT 'CREATE DATABASE giteadb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'giteadb')\gexec
|
||||||
|
|||||||
Reference in New Issue
Block a user