Mathieu Broillet
099638570f
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
.git-images | ||
protected_resources/scripts | ||
src | ||
.drone.yml | ||
Dockerfile | ||
MANIFEST.in | ||
README.md | ||
requirements.txt | ||
run.py |
Proxmox Deploy
Description
Promox Deploy is a Python-based software that allows you to manage your Proxmox homelab by using YAML files.
This project started as I discovered another incredible project, "Proxmox VE Helper Scripts" by tteck. It allowed me to easily create and deploy apps using the LXC feature of Proxmox, allowing for isolation at a near-zero cost in perfomance.
Soon after that, I started having to maintain a multitude of ssh hosts and keys to access all my LXC easily, furthermore it made managing my LXCs using VSCode and the VSCode agent (with the remote SSH extension) really complicated and not easily maintainable.
So I created ProxmoxDeploy, I took a lot of inspiration from the scripts of tteck, again thank you for your project.
Why?
As my homelab was growing I realised that it was harder and harder to keep everything in sync and up to date. So I decided to create a script to manage my Proxmox homelab.
How it works
The concept is simple, you have a Git repository with a the following structure:
.
├── config.json
├── lxc
│ ├── <id>
│ │ ├── config.json
│ │ ├── <your files>
│ │ └── <your folders>
│ └── <id>
│ ├── ...
│── qemu
│ ├── <id>
│ │ ├── config.json
│ │ ├── <your files>
│ │ └── <your folders>
│ └── <id>
│ ├── ...
│── scripts
│ ├── <your scripts>
│ └── ...
See the wiki for more information about the structure and differents files
Now ideally you would have some sort of Git actions (GitHub Actions/Drone/Gitea Actions) that automatically runs the latest binary of PD (ProxmoxDeploy) with your repo specified, so that for every new commits, the update is automatically deployed to your homelab. See the automatic deployement page on the wiki for more info.
Usage
Download
Download the pre-compiled binaries from the release page or build it yourself.
Documentation
Have a look at the wiki.