2.7 KiB
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:
/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:
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: