Very Easy Sys Admin - deploy projects to a VPS without having 153948 years of sys admin experience
This is an alternative to docker-compose with a GUI. Why? Because I don't want to ssh into my server every time I want to make a small update to my side project.
- Create and manage docker containers, networks, and volumes with a web interface
- Create custom templates to launch containers with predefined settings
- Create templates form your existing containers
- Github action to deploy automatically
- Point domains to any container (or a separate service)
- Get SSL certificates from LetsEncrypt
- Ability to use custom docker registry (or host it yourself)
- Ability to push docker images to your server without using a registry
- Install go
- Run
go install github.com/nerijusdu/vesa@latest - Run
vesa --initto initialize the app for the first time (running this command multiple times will rewrite the current config) - Run
vesato start the server
To auto start vesa when your server boots up create a systemd service file in /etc/systemd/system/vesa.service with the following content:
[Unit]
Description=Vesa App Service
[Service]
Environment=HOME=/home/YOUR_USERNAME
ExecStart=/home/YOUR_USERNAME/go/bin/vesa
[Install]
WantedBy=default.targetReplace YOUR_USERNAME with your username. ExecStart points to go binary location.
Then run the following commands:
sudo systemctl daemon-reload
sudo systemctl enable vesa
sudo systemctl start vesaTo create easy releases using github actions
- Create an API client through web interface (Settings -> Client authentication)
- Copy files from
github-actionsfolder to your projects.github/workflowsfolder - There are two release workflows (choose one, delete the other if not needed):
release-registry.yml- this workflow will build and push the docker image to your custom registryrelease-unregistry.yml- this workflow will build and push the docker image straight to your server using Unregistry
- Open the yml file, update environment variables and add required secrets to your github repository.
- Allow docker to access local service with
sudo ufw allow from 172.22.0.0/16 to 172.17.0.1
- Run
vesa --init, this will overwrite previous config
Docker:
- Manage volumes
- Test docker hub auth
Other:
- Cron jobs
- Logs improvements
- Last line sometimes is missing
- Load more logs on scroll
- Custom docker labels
- Add https without redirect entrypoint
Nice to have:
- Create auto-boot service from CLI?
- Better UI
- CLI tool to setup github actions
- Secret manager
- Is it possible to use vesa in container?
Bugs: