Docker deployment guide
This is a handy guide to deploying with Docker, as well as a breakdown of the on-premise deployment guide.
Versions​
- Stable version - 5.2.3/latest -
ghcr.io/tryzealot/zealot:latest
- Nightly version - develop -
ghcr.io/tryzealot/zealot:nightly
- Based on branchdevelop
builds per commit.
Registry​
- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/
- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (Recommended)
Step by Step​
Install Docker​
Follows official tutorial to install docker.
Install Docker-Compose​
Follows official tutorial to install docker-compose.
Configure .env file​
Download a sample config.env file and customize it on your own.
Configure site domain​
The secondary verification will remind again if it is not configured
Configure SSL certificate​
Provides three ways to do this, even if the last one generates the https protocol header:
- Using Let's Encrypt SSL
- Using Self-signed SSL
- Using non-SSL with Zealot service (needs gateway or reverse proxy to manage SSL)
Generate docker-compose.yml​
The configuration file will generate at least three services, using the first two certificates will add an additional service.
zealot-zealot
: Use reverse-generation gateway services to deliver core Web and API serviceszealot-postgres
: Database servicezealot-redis
: Cache service
Create docker volumes for persistent storage​
Persistent storage Data:
zealot-data
: Uploaded apps, icons and debug files.zealot-postgres
: Core database datazealot-redis
: Hot cache and background jobs data
Pull images​
The first time you use it, you will initialize the database, load the sample application data and set up the administrator account, which is required for subsequent zealot updates.
docker-compose pull
Setup database data​
The first time you use it, you will initialize the database, load the sample application data and set up the administrator account, which is required for subsequent zealot updates.
docker-compose run --rm zealot run_upgrade
Launch docker-compose​
Manual execution is required to run the service for security periods and user-defined operations:
docker-compose up -d
Advanced​
Custom volumes​
You have two t
There are two ways to customize the path: (Assuming that the custom path is /data/zealot
)
1. Create custom docker volume​
docker volume create --name zealot-data \
--opt type=none \
--opt o=bind \
--opt device=/data/zealot/zealot-data
docker volume create --name zealot-redis \
--opt type=none \
--opt o=bind \
--opt device=/data/zealot/redis
docker volume create --name zealot-postgres \
--opt type=none \
--opt o=bind \
--opt device=/data/zealot/postgres
2. Change volumes part of docker-compose file​
Open docker-compose.yml
file and find volumes:
:
volumes:
zealot-data:
driver: local
driver_opts:
o: bind
type: none
device: /data/zealot/data
zealot-redis:
driver: local
driver_opts:
o: bind
type: none
device: /data/zealot/redis
zealot-postgres:
driver: local
driver_opts:
o: bind
type: none
device: /data/zealot/postgres