decisionshared last reviewed 2026-05-20

All Aspire repos live on self-hosted GitLab, not GitHub

Context

Aspire needs version control for ~40+ projects (webapps, MCP servers, AIOS workspace, mobile apps planned, packages). Originally many projects sat on GitHub. As the org grew, GitHub costs + lack of integration with self-hosted CI/CD became friction.

Detail

Decision

We chose: GitLab self-hosted at gitlab.dssc.co.th as the single git remote for all Aspire code.

Rationale

Constraints we accepted

Group structure

gitlab.dssc.co.th/aspire/
โ”œโ”€โ”€ infrastructure/        # CI templates, KO engine, Coolify config
โ”œโ”€โ”€ webapps/               # All web apps (deploy to Coolify)
โ”œโ”€โ”€ mcp-servers/           # 32+ MCP integrations
โ”œโ”€โ”€ mobile/                # Mobile apps (future)
โ”œโ”€โ”€ plugins/               # Scrapers, n8n workflows
โ”œโ”€โ”€ packages/              # Shared libraries (future)
โ””โ”€โ”€ aios-workspace         # AIOS + all skills (standalone)

Revisit trigger

GitLab self-hosted SaaS pricing changes materially, OR instance MTTR exceeds 2 hours/month.

Actions

Related

๐Ÿ”— Relationships

graph LR gitlab_self_hosted_not_github["gitlab-self-hosted-not-github"]:::self gitlab_self_hosted_not_github --> aspire_llm_gateway["aspire-llm-gateway"] gitlab_self_hosted_not_github --> knowledge_os_stage_1["knowledge-os-stage-1"] classDef self fill:#715EE3,color:#fff,stroke:#291F50;