Proxmox-GitOps: Self-configuring CI/CD Environment for Container Automation in Proxmox VE

Steven KochSteven Koch
2 min read

Proxmox-GitOps: Self-configuring CI/CD Environment for Container Automation in Proxmox VE

Proxmox-GitOps is a self-configuring GitOps environment for Proxmox LXC.

It manages provisioning, configuration, and orchestration of containers — fully defined as code and deployed via pull request.

Modular, consistent, and adapting to changing base configurations.

GitHub → stevius10/Proxmox-GitOps

https://github.com/stevius10/Proxmox-GitOps

Concept

  • Initial bootstrap via local Docker environment

  • GitOps environment pushes itself into a Gitea instance

  • The pipeline triggers itself recursively — enforces state, updates references, and redeploys

  • Container provisioning via Ansible (Proxmox API)

  • Configuration via Chef/Cinc cookbooks (application logic)

  • Environment values (from config.json) are injected and propagated across all containers

Usage

Start with: local/run.sh

The Docker-based GitOps environment initializes, pushes itself, and opens a pull request.

Accepting the PR triggers recursive CI/CD: containers are provisioned, configured, and verified.

All containers are defined in libs/, with config.env for parameters and a Ruby cookbook for service logic.

Workflows are reused and parameterized across all containers.

Self-Replication

Every container includes a runner that pushes itself into the GitOps system again.

That push retriggers the pipeline, updating submodule refs and enforcing the declared state.

Status

This project is still early.

I built it primarily for my own homelab, but would like to develop it further.

There may be bugs — if you try it out or review the code, I’d appreciate your input.

GitHub: stevius10/Proxmox-GitOps

0
Subscribe to my newsletter

Read articles from Steven Koch directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Steven Koch
Steven Koch