updating the documentation of the SilverLinux Insftracture
This commit is contained in:
+275
@@ -0,0 +1,275 @@
|
||||
# Server Information
|
||||
|
||||
## Overview
|
||||
|
||||
SilverLinux is the primary self-hosted infrastructure server for Silver Solutions.
|
||||
|
||||
The server hosts source control, project management, collaboration, communication and supporting infrastructure services.
|
||||
|
||||
---
|
||||
|
||||
## Host Information
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | ----------------------- |
|
||||
| Hostname | silverlinux |
|
||||
| Provider | OVH |
|
||||
| Operating System | Ubuntu Server 24.04 LTS |
|
||||
| Public IP | 51.255.83.140 |
|
||||
|
||||
---
|
||||
|
||||
## Hardware
|
||||
|
||||
| Resource | Value |
|
||||
| -------- | -------------------- |
|
||||
| CPU | Intel Xeon-D 1520 |
|
||||
| Memory | 32 GB RAM |
|
||||
| Storage | 2 × 480 GB SSD RAID1 |
|
||||
|
||||
---
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Docker
|
||||
|
||||
Purpose:
|
||||
|
||||
* Container hosting
|
||||
* Service isolation
|
||||
* Deployment management
|
||||
|
||||
### Docker Compose
|
||||
|
||||
Purpose:
|
||||
|
||||
* Multi-container application deployment
|
||||
* Service management
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
Purpose:
|
||||
|
||||
* Shared database platform
|
||||
|
||||
### Fail2Ban
|
||||
|
||||
Purpose:
|
||||
|
||||
* SSH brute-force protection
|
||||
|
||||
### UFW
|
||||
|
||||
Purpose:
|
||||
|
||||
* Firewall management
|
||||
|
||||
---
|
||||
|
||||
## Docker Networks
|
||||
|
||||
### internal
|
||||
|
||||
Purpose:
|
||||
|
||||
Private communication between services.
|
||||
|
||||
Examples:
|
||||
|
||||
* Gitea → PostgreSQL
|
||||
* OpenProject → PostgreSQL
|
||||
|
||||
---
|
||||
|
||||
### proxy
|
||||
|
||||
Purpose:
|
||||
|
||||
Public-facing services behind Nginx Proxy Manager.
|
||||
|
||||
Examples:
|
||||
|
||||
* Gitea
|
||||
* OpenProject
|
||||
* Jitsi Meet
|
||||
* Portainer
|
||||
|
||||
---
|
||||
|
||||
## Running Services
|
||||
|
||||
* PostgreSQL
|
||||
* Gitea
|
||||
* OpenProject
|
||||
* Jitsi Meet
|
||||
* Portainer
|
||||
* Nginx Proxy Manager
|
||||
|
||||
---
|
||||
|
||||
## Directory Structure
|
||||
|
||||
### Docker Services
|
||||
|
||||
```text
|
||||
/srv/docker
|
||||
```
|
||||
|
||||
Contains:
|
||||
|
||||
```text
|
||||
/srv/docker/gitea
|
||||
/srv/docker/openproject
|
||||
/srv/docker/postgres
|
||||
/srv/docker/jitsi
|
||||
/srv/docker/portainer
|
||||
/srv/docker/nginx-proxy-manager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Shared Secrets
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
Contains:
|
||||
|
||||
* SMTP credentials
|
||||
* Database passwords
|
||||
* Application secrets
|
||||
* Future OAuth credentials
|
||||
|
||||
---
|
||||
|
||||
### Backups
|
||||
|
||||
```text
|
||||
/srv/backups
|
||||
```
|
||||
|
||||
Suggested structure:
|
||||
|
||||
```text
|
||||
/srv/backups/daily
|
||||
/srv/backups/weekly
|
||||
/srv/backups/monthly
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Service Data Locations
|
||||
|
||||
### Gitea
|
||||
|
||||
```text
|
||||
/srv/docker/gitea/data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### OpenProject
|
||||
|
||||
```text
|
||||
/srv/docker/openproject/assets
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
```text
|
||||
/srv/docker/postgres/data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Nginx Proxy Manager
|
||||
|
||||
```text
|
||||
/srv/docker/nginx-proxy-manager/data
|
||||
/srv/docker/nginx-proxy-manager/letsencrypt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Jitsi
|
||||
|
||||
```text
|
||||
/srv/docker/jitsi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SSH Access
|
||||
|
||||
Primary user:
|
||||
|
||||
```text
|
||||
ubuntu
|
||||
```
|
||||
|
||||
Authentication:
|
||||
|
||||
* SSH key authentication
|
||||
* Root login disabled
|
||||
|
||||
---
|
||||
|
||||
## Security
|
||||
|
||||
Implemented:
|
||||
|
||||
* UFW enabled
|
||||
* Fail2Ban enabled
|
||||
* Shared secrets stored outside Git repositories
|
||||
* SSL certificates managed through Nginx Proxy Manager
|
||||
* PostgreSQL not exposed publicly
|
||||
* OpenID disabled in Gitea
|
||||
|
||||
---
|
||||
|
||||
## Email
|
||||
|
||||
Sender address:
|
||||
|
||||
```text
|
||||
noreply@silveressence.net
|
||||
```
|
||||
|
||||
SMTP credentials are stored in:
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
Used by:
|
||||
|
||||
* Gitea
|
||||
* OpenProject
|
||||
|
||||
---
|
||||
|
||||
## Disaster Recovery
|
||||
|
||||
This repository should contain enough information to rebuild the SilverLinux environment from scratch.
|
||||
|
||||
Recovery priorities:
|
||||
|
||||
1. Restore secrets
|
||||
2. Restore PostgreSQL
|
||||
3. Restore Nginx Proxy Manager
|
||||
4. Restore Gitea
|
||||
5. Restore OpenProject
|
||||
6. Restore remaining services
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
* docs/secrets.md
|
||||
* docs/security.md
|
||||
* docs/backups.md
|
||||
* docs/services.md
|
||||
* docs/domains.md
|
||||
Reference in New Issue
Block a user