2.8 KiB
TirSystem IaC Server Setup for Linux
Automated server setup and management based on configuration files with privacy by design concerns.
Overview
Status: Planning Phase
This Infrastructure as Code (IaC) project aims to provide automated setup and deployment of a self-hosted server stack on Linux. The goal is to define your server configuration once and deploy reproducibly with Docker containers for optional services.
Key Features
- Configuration-Driven Setup: Define your entire server infrastructure in a configuration file
- Self-Hosted: Own your code and data—no reliance on third-party platforms
- Docker-Based: Containerized optional services for easy deployment and isolation
- Backup Management: Automated backup of server to local PC
- Privacy by Design: Built with privacy and data ownership as core principles
Available Services
The following services can be optionally deployed via Docker:
- Docker Mailserver - Self-hosted email server
- Nginx - High-performance web server and reverse proxy
- PlantUML - Diagram generation service
- Gitea - Lightweight Git service for self-hosted repositories
- PostgreSQL - Relational database
Architecture
Configuration File
↓
Setup Script
↓
├─ Nginx Container
├─ Mailserver Container
├─ PlantUML Container
├─ Gitea Container
└─ PostgreSQL Container
↓
Backup to Local PC
Getting Started
Prerequisites
- Linux system (recommended: Debian stable or later)
- Docker and Docker Compose installed
- Basic understanding of Docker and server configuration
Installation
Installation steps and automated setup will be documented as the project develops:
- Clone the repository
- Configure your server settings in the configuration file
- Run the setup script
- Services will be deployed according to your configuration
Configuration
Configure which services to deploy and their settings via the configuration file. Example:
services:
nginx: true
mailserver: true
gitea: true
plantuml: true
postgres: true
backup:
enabled: true
destination: /path/to/backup
Backup
Automated server backup to local PC includes:
- Service configurations
- Persistent data volumes
- Database snapshots
Contributing
Contributions are welcome! Please ensure any changes maintain the project's privacy-first principles.
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See LICENSE file for details.
Support
For issues, questions, or feature requests, please open an issue in the repository.
Philosophy: Privacy and data ownership matter. This project is built on the principle that you should own and control your infrastructure.