updating the documentation of the SilverLinux Insftracture
This commit is contained in:
@@ -0,0 +1,243 @@
|
||||
# Architecture Decisions
|
||||
|
||||
## Purpose
|
||||
|
||||
This document records important architectural and operational decisions made for SilverLinux.
|
||||
|
||||
The goal is to document not only what was implemented, but also why the decision was made.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### Ubuntu 24.04 LTS Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use Ubuntu Server 24.04 LTS as the operating system.
|
||||
|
||||
Reason:
|
||||
|
||||
* Long-term support
|
||||
* Large community
|
||||
* Excellent Docker support
|
||||
* Familiar administration tools
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### Docker Standardization
|
||||
|
||||
Decision:
|
||||
|
||||
All services should run in Docker containers whenever possible.
|
||||
|
||||
Reason:
|
||||
|
||||
* Consistent deployment
|
||||
* Easier backups
|
||||
* Easier migrations
|
||||
* Better isolation
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### Nginx Proxy Manager Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use Nginx Proxy Manager as the reverse proxy solution.
|
||||
|
||||
Reason:
|
||||
|
||||
* Easy SSL management
|
||||
* Simple administration
|
||||
* User-friendly interface
|
||||
* Fast deployment
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### Gitea Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use Gitea for source control.
|
||||
|
||||
Reason:
|
||||
|
||||
* Self-hosted
|
||||
* Lightweight
|
||||
* GitHub-like experience
|
||||
* Excellent Docker support
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### PostgreSQL Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use PostgreSQL as the central database platform.
|
||||
|
||||
Reason:
|
||||
|
||||
* Reliability
|
||||
* Mature ecosystem
|
||||
* Supports multiple applications
|
||||
* Strong backup tooling
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-17
|
||||
|
||||
### OpenProject Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use OpenProject for project management.
|
||||
|
||||
Reason:
|
||||
|
||||
* Mature platform
|
||||
* Open source
|
||||
* Strong planning features
|
||||
* Work package management
|
||||
* Time tracking
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-21
|
||||
|
||||
### Plane.so Removed
|
||||
|
||||
Decision:
|
||||
|
||||
Do not deploy Plane.so.
|
||||
|
||||
Reason:
|
||||
|
||||
* OpenProject fully satisfies requirements
|
||||
* Reduces maintenance burden
|
||||
* Avoids duplicate functionality
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-21
|
||||
|
||||
### Centralized Secrets Management
|
||||
|
||||
Decision:
|
||||
|
||||
Store shared credentials in a single secrets file.
|
||||
|
||||
Location:
|
||||
|
||||
```text
|
||||
/srv/secrets/company.env
|
||||
```
|
||||
|
||||
Reason:
|
||||
|
||||
* Avoid secrets in Docker Compose files
|
||||
* Easier credential rotation
|
||||
* Easier disaster recovery
|
||||
* Reduced risk of accidental exposure
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-21
|
||||
|
||||
### OpenID Disabled in Gitea
|
||||
|
||||
Decision:
|
||||
|
||||
Disable OpenID authentication.
|
||||
|
||||
Reason:
|
||||
|
||||
* Not required
|
||||
* Reduces attack surface
|
||||
* Simplifies authentication model
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-21
|
||||
|
||||
### Gmail SMTP Selected
|
||||
|
||||
Decision:
|
||||
|
||||
Use Gmail SMTP for outbound email.
|
||||
|
||||
Sender:
|
||||
|
||||
```text
|
||||
noreply@silveressence.net
|
||||
```
|
||||
|
||||
Reason:
|
||||
|
||||
* Reliable delivery
|
||||
* Easy setup
|
||||
* Supports application notifications
|
||||
|
||||
Status:
|
||||
|
||||
Implemented
|
||||
|
||||
---
|
||||
|
||||
## Future Decisions
|
||||
|
||||
Document future decisions using the following template:
|
||||
|
||||
Date:
|
||||
|
||||
Decision:
|
||||
|
||||
Reason:
|
||||
|
||||
Alternatives Considered:
|
||||
|
||||
Status:
|
||||
Reference in New Issue
Block a user