Maestro


A very basic app deployment management tool to host projects on my home server.

Demo

Why did I do this?

I bought a Lenovo Tiny to use as a server on my home network to improve my skills in linux system administration and host some side-projects. I wanted a simple way to deploy my projects, so I built a very basic automation tool

  • CRUD operations for apps
  • Deploy from git repo or file upload
  • Bash scripts can be specified to run at creation, on update and on delete
  • Assign a custom domain name on my local network
  • Refresh a site by running `git pull`, if it's a git repo, and executing update script

What I learned

First of all, it was a perfect opportunity to test my minimal web framework. I added user authentication using Basic Http Authentication and used a simple JSON file for data persistence.

Also, I programmatically managed Apache's config file to deploy sites and updated my network's pi-hole local DNS to easily access the sites.