# SilverLinux AI Context ## Purpose SilverLinux is the primary self-hosted infrastructure server for Silver Solutions. The goal is to host all development, collaboration, deployment and internal tooling. ## Server Hostname: silverlinux OS: Ubuntu Server 24.04 LTS Provider: OVH Public IP: 51.255.83.140 ## Core Services * PostgreSQL * Microsoft SQL Server 2022 Express * Gitea * OpenProject * Jitsi Meet * Portainer * Nginx Proxy Manager * BaGet * Gitea Actions Runner (`silverlinux-runner`) * DbGate ## Domains git.silveressence.net -> Gitea team.silveressence.net -> OpenProject meet.silveressence.net -> Jitsi portainer.silveressence.net -> Portainer nuget.silveressence.net -> BaGet (through Nginx Proxy Manager) dbgate.silveressence.net -> DbGate (through Nginx Proxy Manager) ## Secrets Secrets are stored in: /srv/secrets/company.env Never hardcode credentials. Always use env_file. ## Docker Networks proxy internal MSSQL is attached only to `internal`. DbGate is attached to both `internal` and `proxy`. ## Authentication Gitea: * Local accounts * OpenID disabled * Google OAuth planned * GitHub OAuth planned OpenProject: * Local accounts ## CI/CD Gitea Actions is enabled globally. The global self-hosted runner is operational at `/srv/docker/gitea-runner` with the name `silverlinux-runner`. Silver 2.0 uses `.gitea/workflows/package.yml` to publish NuGet packages to BaGet when a push to `net-8-version` has a commit message containing `[Package]`. The runner registration token is stored in `/srv/secrets/company.env`. The BaGet publishing key is stored as the repository Actions secret `BAGET_API_KEY`. ## Databases PostgreSQL 17 and Microsoft SQL Server 2022 Express are operational. MSSQL uses hostname `mssql` on the `internal` Docker network. Port 1433 is not published. DbGate provides authenticated HTTPS administration for MSSQL and PostgreSQL at `https://dbgate.silveressence.net`. ## Documentation Read all files in: docs/ and the README.md of each service folder before making infrastructure recommendations. ## Important Decisions * Plane.so removed * OpenProject selected * Centralized secrets implemented * Nginx Proxy Manager selected * PostgreSQL selected as shared database platform * BaGet deployed at nuget.silveressence.net through Nginx Proxy Manager * Gitea Actions and a global self-hosted runner selected for package publishing * MSSQL Express deployed alongside PostgreSQL * DbGate selected as the database administration portal