Wappster is a Docker-based tool to easily deploy and manage self-hosted wapps (short for “web apps”). It’s based on open source software Portainer, Traefik, Authelia, and Watchtower.
There are three reasons for self-hosting:
- Availability: Required functionality not being available as managed services.
- Cost: Paying substantially more for consuming the software as a service than self-hosting it.
- Privacy: Not entrusting the provider with sensible data.
Wappster requires Docker 17.06.0+ and Docker Compose 1.14.0+.
To run wappster, go through the following four simple steps.
Create the required Docker network wapps
that all wapps will connect to when deployed, i.e.:
sudo docker network create wapps
Download or clone this repository, i.e.:
git clone https://github.com/MichaelSchmidle/wappster
Copy the file default.env
of the repository that you just downloaded/cloned to .env
. Then open the copied file in a text editor and define the required environment variables, i.e.:
cd wappster
cp default.env .env
nano .env
Further explanation of each environment variable can be found inside the copied .env
file itself. Save the edited file.
Next, also copy the files authelia/default.configuration.yml
and authelia/default.users.yml
to authelia/configuration.yml
and authelia/users.yml
respectively. Open the copied files and modify them to match your desired setup, i.e.:
cp authelia/default.configuration.yml authelia/configuration.yml
nano authelia/configuration.yml
cp authelia/default.users.yml authelia/users.yml
nano authelia/users.yml
Wappster’s management interfaces listen on a dedicated port (defined by the variable HTTPS_MGMT_PORT
). This gives you the option to limit access to wappster and sensible wapps via firewall. Please make sure to configure the firewall of your wappster host appropriately to limit their exposure to the public.
Finally, after saving the .env
file, spin up your instance of wappster with docker-compose
, i.e.:
sudo docker-compose up -d
This will launch the following containers:
- Portainer, the graphical user interface to deploy and manage your self-hosted wapps
- Traefik, the reverse proxy that is the SSL-secured gateway to your wappster and wapps
- Authelia, Single Sign On (SSO) for all wapps that don't come with their own multi-user authentication system
- Watchtower, the solution for automating Docker container base image updates
You can access Portainer via https://${PORTAINER_HOST}:${HTTPS_MGMT_PORT}
(as defined in the environment variables given during step 3) in order to create the first user and connect it to your Docker environment. To deploy your wapps, select the navigation item “App Templates.” The catalogue of wapps available in your wappster is listed in a separate repository.
Traefik also provides a dashboard that can be accessed via https://${TRAEFIK_HOST}:${HTTPS_MGMT_PORT}
(again as defined in the environment variables given during step 3). The dashboard should be considered “for your information only” since all configuration of Traefik happens automatically behind the scenes during the deployment of wappster and any wapp.