The primary enhancement in this PR separates the steps of installation into multiple shell scripts to make the installation script more readable, and update the infrastructure to utilize Docker Swarm so that a cluster is possible. Even if a cluster isn't used, it can function as a single-node cluster that will be ready to be expanded.
Additionally:
Enhanced scripts to handle some fringe/error scenarios
Added a base init.sh script that handles downloading the scripts and choosing the right flavor for installation
Separate parts of installation that are stacks
Added keepalived which can be used for high availability with Docker Swarm
Added linting/testing
So, in general, this tooling helps set up your server to be fully ready to host Docker for a web application environment, since it will include:
Docker, of course
Swarm to support clustering and failover
Keepalived, to support a virtual shared IP, also in support of a cluster and failover
Portainer, to provide a UI for managing/viewing the environment
Nginx Proxy Manager for hosting the web interface for any applications
All of this, in a project set up with testing and linting to ensure clean shell scripts and configurations.
The primary enhancement in this PR separates the steps of installation into multiple shell scripts to make the installation script more readable, and update the infrastructure to utilize Docker Swarm so that a cluster is possible. Even if a cluster isn't used, it can function as a single-node cluster that will be ready to be expanded.
Additionally:
init.sh
script that handles downloading the scripts and choosing the right flavor for installationSo, in general, this tooling helps set up your server to be fully ready to host Docker for a web application environment, since it will include:
All of this, in a project set up with testing and linting to ensure clean shell scripts and configurations.