Files
silverlinux-infra/docs/services.md
T

600 lines
6.6 KiB
Markdown

# Services
## Overview
This document lists all services running on SilverLinux and their purpose.
Generated state reference:
```text
2026-06-25 infrastructure review
```
---
## Running Services
### PostgreSQL
Purpose:
* Primary shared database platform
* Application data storage
Used by:
* Gitea
* OpenProject
Status:
```text
Running
```
---
### Microsoft SQL Server Express
Purpose:
* Secondary database platform for SQL Server compatibility
* Support future applications requiring Microsoft SQL Server
* Extend the platform beyond PostgreSQL-only workloads
Image:
```text
mcr.microsoft.com/mssql/server:2022-latest
```
Network:
```text
internal
```
Exposure:
* Port 1433 is not published
* Not routed through Nginx Proxy Manager
* Private database access only
Status:
```text
Operational
```
---
### Gitea
URL:
```text
https://git.silveressence.net
```
Purpose:
* Source control
* Git repositories
* Pull requests
* Issue tracking
Status:
```text
Running
```
---
### OpenProject
URL:
```text
https://team.silveressence.net
```
Purpose:
* Project management
* Work packages
* Time tracking
* Team collaboration
Status:
```text
Running
```
---
### Jitsi Meet
URL:
```text
https://meet.silveressence.net
```
Purpose:
* Video conferencing
* Team meetings
* Customer meetings
Status:
```text
Running
```
---
### Portainer
URL:
```text
https://portainer.silveressence.net
```
Purpose:
* Docker administration
* Stack deployment
* Container monitoring
Status:
```text
Running
```
---
### Nginx Proxy Manager
Purpose:
* Reverse proxy
* SSL termination
* Domain routing
* Certificate management
Status:
```text
Running
```
---
### Prometheus
Purpose:
* Metrics collection
* Alert rule engine
* Monitoring data storage
* Scrape targets for system, Docker and backup metrics
Scrapes:
* Prometheus
* Node Exporter
* cAdvisor
* SilverLinux backup metrics
Alert categories:
* Backup
* System pressure
* Monitoring health
* Database availability
* Container health
Status:
```text
Running
```
---
### Grafana
Purpose:
* Monitoring dashboards
* Metrics visualization
* Prometheus datasource frontend
Dashboards:
* Custom backup dashboard
* Custom system dashboard
* Docker monitoring dashboard
Note:
The imported Prometheus 2.0 Overview dashboard is not compatible with the installed Prometheus version `3.5.4`. This is a third-party dashboard compatibility issue, not an infrastructure problem.
Status:
```text
Running
```
---
### Alertmanager
Purpose:
* Alert routing
* Email notifications
* Incident grouping
* Alert deduplication
* Severity-based routing
Recipients:
* `oclick021@gmail.com`
* `martin@silversolutions.nl`
Incident groups:
* `backup_failure`
* `system_pressure`
* `storage_pressure`
* `database_outage`
* `monitoring_failure`
* `container_health`
Status:
```text
Running
```
---
### Node Exporter
Purpose:
* Host metrics collection
* CPU, memory and disk metrics
* Textfile Collector endpoint for SilverLinux backup metrics
Status:
```text
Running
```
---
### cAdvisor
Purpose:
* Docker container metrics
* Container CPU, memory and runtime visibility
Status:
```text
Running
```
---
### BaGet
URL:
```text
https://nuget.silveressence.net
```
Purpose:
* Private NuGet repository
* Internal Silver.* package distribution
* Package source for CI/CD
* Package source for team development
Access:
* Routed through Nginx Proxy Manager
Status:
```text
Running
```
---
### Gitea Actions Runner
Location:
```text
/srv/docker/gitea-runner
```
Image:
```text
gitea/act_runner:latest
```
Runner Name:
```text
silverlinux-runner
```
Type:
```text
Global Runner
```
Labels:
* `ubuntu-latest`
* `ubuntu-24.04`
* `ubuntu-22.04`
Status:
```text
Operational
```
---
### DbGate
URL:
```text
https://dbgate.silveressence.net
```
Purpose:
* Browser-based PostgreSQL administration
* Browser-based MSSQL administration
* Database explorer and debugging interface
Networks:
* `internal` for private database connectivity
* `proxy` for Nginx Proxy Manager
Security:
* Publicly reachable through the proxy layer
* HTTPS enforced
* DbGate username and password required
* Authentication must remain hardened and periodically verified
* Database ports remain private
Status:
```text
Operational
```
---
### Xray
Purpose:
* Connectivity and tunneling layer
* Improve long-distance connectivity stability to SilverLinux
* Maintain secure routing paths when direct connectivity is limited
Classification:
```text
Network tunneling / connectivity layer
```
Networks:
* `proxy`
Runtime ports:
```text
0.0.0.0:32443 -> 8080/tcp
```
Image:
```text
ghcr.io/xtls/xray-core:latest
```
Runtime note:
* The `xray_default` network exists, but the running `xray` container was attached only to `proxy` in the 2026-06-24 runtime snapshot.
Security:
* Public tunneling endpoint exposure must be monitored
* Access policy and abuse monitoring must be reviewed regularly
* Not classified as an application backend service
Status:
```text
Operational
```
---
## Shared Infrastructure
### Docker
Purpose:
* Container hosting
* Service isolation
Status:
```text
Running
```
---
### Internal Docker Network
Purpose:
* Private communication between services
Status:
```text
Running
```
---
### Proxy Docker Network
Purpose:
* HTTP and HTTPS service exposure through Nginx Proxy Manager
* Shared public routing layer for web-facing services
Status:
```text
Running
```
---
### Isolated Docker Networks
Purpose:
* Keep specialized infrastructure stacks isolated from application backends
* Separate Jitsi, Xray and CI/CD runner traffic from shared database traffic
Networks:
* `jitsi-docker-jitsi-meet-aa76415_meet.jitsi`
* `xray_default`
* `gitea-runner_default`
Status:
```text
Running
```
---
### Shared Secrets
Location:
```text
/srv/secrets/company.env
```
Purpose:
* SMTP credentials
* Database passwords
* Application secrets
Status:
```text
Active
```
---
## Removed Services
## Planned Services
See:
```text
docs/roadmap.md
```
Phase 1:
* Loki
* Redis
* Authelia
Phase 2:
* CrowdSec
* Sentry
* Restic
* Fail2Ban upgrade
* Cloudflare rate limiting and WAF
Phase 3:
* SonarQube
* Harbor
* Backstage
* Nextcloud
---
### Plane.so
Reason:
OpenProject was selected as the primary project management platform. Plane.so is not used and will not be used.
Status:
```text
Removed
```
Cleanup:
* Containers removed
* Nginx Proxy Manager route removed
* Unused SSL certificate removed from the server
---
## Related Documentation
* docs/server.md
* docs/network.md
* docs/roadmap.md
* docs/monitoring.md
* docs/domains.md
* docs/security.md
* docs/backups.md