2.5 KiB
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