2026-09-20 08:15:00 +08:00
2026-09-20 08:15:00 +08:00
2026-09-20 08:15:00 +08:00

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:

  1. Clone the repository
  2. Configure your server settings in the configuration file
  3. Run the setup script
  4. 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.

S
Description
No description provided
Readme AGPL-3.0
39 KiB