I'm still a newbie to devops and overall sysadmin, and a few days ago I wanted to completely reinstall everything on my server and properly setup services and deployment for apps, now my problem is how I would properly approach automatically deploying an application, building it, automatically updating it and restarting it on crashes.
Before I did this using simple bash scripts that would run in the background and automatically check for updates and deploy them if there is a newer version on the remote repository.
I already looked a bit into the topic and found out about docker and docker, kubernetes and docker compose. They all seemed perfect at first, but when looking more into the topic I didn't completely see the need for them, since the applications I have don't need to be isolated or run on a completely separate instance from the main operating systems, the applications can be run on every major kernel.
Now what I would want to know is, if there are any tools or applications to achieve exactly this, I specifically need to
- Pull from remote repository if there are any updates (Could also be achieved with Github Actions, to trigger an action on the server)
- Automatically build the newer source and restart the application
- Restart application if it crashes or the system crashes for whatever reason.