113 lines
2.5 KiB
Markdown
113 lines
2.5 KiB
Markdown
# 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
|