For a while, I've used digital ocean as my hosting platform of choice. For $10 a month, I get to put unlimited databases and node js apps with high performance and a fast connection. This works great for me, someone who has very little userbase for any of my apps and I just want to host them to show to people and get feedback. I want to try to configure my environment to make it easy for me to manage all my apps, proxies and https certificates.
My typical flow for deploying an app goes like this:
- Git clone the app into my main directory (~/apps). For example, my-example-app.
- Configure the environment specific variables in .env files.
./p.shto run the production environment, which launches a docker database along with my app after doing other things, like building my client.
- Once I verify my app works, I have to create an nginx file. I make one in my sites-available and replace all the boilerplate instances of domains with the new domain I want to use, and symbolic link it in sites-enabled. I then restart nginx and verify that works.
- Now I create a new letsencrypt certificate, pointing at the domain, and take a few minutes going through that.
Overall, adding and managing new apps is a pain, and I don't have any kind of CI or CD going on yet. Recently, I used the Netlify static site hosting to see how that was, and I was blown away with how easy managing it was. I linked my git repo with Netlify, set custom build commands for the frontend, and I was provided a temporary subdomain like 12930js09d1290f.netlify.com . I aliased one of my domains to that, which allowed me to one-click https for my new sites. Within minutes, the site was up with https and my custom domain, all being rebuilt automatically whenever I pushed to a specified branch on github!
I want to try to replicate as much of this as possible, self-hosted. I'm wondering what kind of options there are for management of this kind of thing through a web panel. Am I looking for "continuous integration" software or something else?