# alexprestes/prestes-vps architecture

> Architecture diagram of the GitHub repository alexprestes/prestes-vps, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alexprestes/prestes-vps
- Repository: https://github.com/alexprestes/prestes-vps

## Overview

prestes-vps is the infrastructure repository for prestes.cloud; its README says that everything running on the VPS comes from this repository. The tree shows Ansible playbooks, Komodo configuration, operational scripts, and Compose-based service stacks for Authentik, Caddy, Garage, and PostgreSQL. These components are grouped by apparent responsibility, based on paths and filenames only. No source excerpts or documented component-to-component relationships were provided, so the graph intentionally omits edges rather than infer deployment or service dependencies.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_provisioning["Provisioning"]
  node_bootstrap["Bootstrap playbook<br/>[bootstrap.yml]"]
  node_komodo_playbook["Komodo playbook<br/>[komodo.yml]"]
  node_backup["Backup playbook<br/>[backup.yml]"]
  node_checks["Check playbook<br/>[check.yml]"]
end

subgraph group_orchestration["Orchestration"]
  node_komodo_compose["Komodo runtime<br/>[compose.yaml]"]
  node_komodo_env["Komodo environment<br/>[compose.env]"]
  node_procedures["Procedures config<br/>[procedures.toml]"]
  node_stack_catalog["Stack catalog<br/>[stacks.toml]"]
  node_sync_config["Sync config<br/>[sync.toml]"]
end

subgraph group_operations["Operations"]
  node_secret_scripts["Secret operations<br/>[decrypt-secrets.sh]"]
  node_pg_provision["Postgres provisioning<br/>[pg-provision.sh]"]
end

subgraph group_services["Service stacks"]
  node_authentik["Authentik stack<br/>[compose.yaml]"]
  node_caddy["Caddy stack<br/>[compose.yaml]"]
  node_caddy_config["Caddy routing config"]
  node_garage["Garage stack<br/>[compose.yaml]"]
  node_garage_config["Garage config<br/>[garage.toml]"]
  node_postgres[("PostgreSQL stack<br/>[compose.yaml]")]
end

click node_bootstrap "https://github.com/alexprestes/prestes-vps/blob/main/ansible/bootstrap.yml"
click node_komodo_playbook "https://github.com/alexprestes/prestes-vps/blob/main/ansible/komodo.yml"
click node_backup "https://github.com/alexprestes/prestes-vps/blob/main/ansible/backup.yml"
click node_checks "https://github.com/alexprestes/prestes-vps/blob/main/ansible/check.yml"
click node_komodo_compose "https://github.com/alexprestes/prestes-vps/blob/main/komodo/compose.yaml"
click node_komodo_env "https://github.com/alexprestes/prestes-vps/blob/main/komodo/compose.env"
click node_procedures "https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/procedures.toml"
click node_stack_catalog "https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/stacks.toml"
click node_sync_config "https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/sync.toml"
click node_secret_scripts "https://github.com/alexprestes/prestes-vps/blob/main/scripts/decrypt-secrets.sh"
click node_pg_provision "https://github.com/alexprestes/prestes-vps/blob/main/scripts/pg-provision.sh"
click node_authentik "https://github.com/alexprestes/prestes-vps/blob/main/stacks/authentik/compose.yaml"
click node_caddy "https://github.com/alexprestes/prestes-vps/blob/main/stacks/caddy/compose.yaml"
click node_caddy_config "https://github.com/alexprestes/prestes-vps/blob/main/stacks/caddy/config/Caddyfile"
click node_garage "https://github.com/alexprestes/prestes-vps/blob/main/stacks/garage/compose.yaml"
click node_garage_config "https://github.com/alexprestes/prestes-vps/blob/main/stacks/garage/config/garage.toml"
click node_postgres "https://github.com/alexprestes/prestes-vps/blob/main/stacks/postgres/compose.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_bootstrap,node_komodo_playbook,node_backup,node_checks toneBlue
class node_komodo_compose,node_komodo_env,node_procedures,node_stack_catalog,node_sync_config toneAmber
class node_secret_scripts,node_pg_provision toneMint
class node_authentik,node_caddy,node_caddy_config,node_garage,node_garage_config,node_postgres toneRose
```

## Components

### Provisioning

- [Bootstrap playbook](https://github.com/alexprestes/prestes-vps/blob/main/ansible/bootstrap.yml): `ansible/bootstrap.yml`
- [Komodo playbook](https://github.com/alexprestes/prestes-vps/blob/main/ansible/komodo.yml): `ansible/komodo.yml`
- [Backup playbook](https://github.com/alexprestes/prestes-vps/blob/main/ansible/backup.yml): `ansible/backup.yml`
- [Check playbook](https://github.com/alexprestes/prestes-vps/blob/main/ansible/check.yml): `ansible/check.yml`

### Orchestration

- [Komodo runtime](https://github.com/alexprestes/prestes-vps/blob/main/komodo/compose.yaml): `komodo/compose.yaml`
- [Komodo environment](https://github.com/alexprestes/prestes-vps/blob/main/komodo/compose.env): `komodo/compose.env`
- [Procedures config](https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/procedures.toml): `komodo/resources/procedures.toml`
- [Stack catalog](https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/stacks.toml): `komodo/resources/stacks.toml`
- [Sync config](https://github.com/alexprestes/prestes-vps/blob/main/komodo/resources/sync.toml): `komodo/resources/sync.toml`

### Operations

- [Secret operations](https://github.com/alexprestes/prestes-vps/blob/main/scripts/decrypt-secrets.sh): `scripts/decrypt-secrets.sh`
- [Postgres provisioning](https://github.com/alexprestes/prestes-vps/blob/main/scripts/pg-provision.sh): `scripts/pg-provision.sh`

### Service stacks

- [Authentik stack](https://github.com/alexprestes/prestes-vps/blob/main/stacks/authentik/compose.yaml): `stacks/authentik/compose.yaml`
- [Caddy stack](https://github.com/alexprestes/prestes-vps/blob/main/stacks/caddy/compose.yaml): `stacks/caddy/compose.yaml`
- [Caddy routing config](https://github.com/alexprestes/prestes-vps/blob/main/stacks/caddy/config/Caddyfile): `stacks/caddy/config/Caddyfile`
- [Garage stack](https://github.com/alexprestes/prestes-vps/blob/main/stacks/garage/compose.yaml): `stacks/garage/compose.yaml`
- [Garage config](https://github.com/alexprestes/prestes-vps/blob/main/stacks/garage/config/garage.toml): `stacks/garage/config/garage.toml`
- [PostgreSQL stack](https://github.com/alexprestes/prestes-vps/blob/main/stacks/postgres/compose.yaml): `stacks/postgres/compose.yaml`
