Docker service template
Quickstart
- Install docker and docker-compose (Ubuntu users can use
install_docker.sh
script) - Copy environment templates and name them accordingly to remove
default
prefix, eg,default.env
to.env
and update environment values inside them - Comment out or remove unneeded services from
docker-compose.yaml
- Create service files:
compose/nginx/conf/sites-enabled/
should contain "virtual host" files (active "host" files must end with.conf
)- Copy
compose/pgdb/docker-entrypoint-initdb.d/00-init-users-db.sh.example
and rename the file to remove suffix.example
and update the content accordingly to create correct and safe users for services which use database
- Run
docker-compose pull
- Run
docker-compose up certbot
to initialise Let's Encrypt SSL certificates for Nginx HTTPS support.- Suggestion: for the first run set CB_STAGING=1 to not hit the LetsEncrypt production certificate rate limit!
- After receiving
### Let's Encrypt certificate initialization completed!
stop the container (press[ctrl]+[c]
) - To remove staging certs either remove whole volume or manually delete the staging domains from within the container (
docker-compose exec certbot sh
andrm -r /etc/letsencrypt/.....
)
- Run
docker-compose up -d
Services
-
nginx - Webserver, one of few "open-port" containers
- All static files which are required for other apps have to be linked to nginx container for it to be able to serve those files
-
qbit - qBittorrent client, which is accessible through WebUI
-
cloud - Nextcloud server
-
redis - in-memory key–value database, cache and message broker, with optional durability
-
pgdb - Postgres, is a free and open-source relational database management system
-
yopass - project for sharing secrets in a quick and secure manner
-
certbot - LetsEncrypt SSL certificate generator using DNS method in DigitalOcen as a NameServer
-
registry - Privately hosted DockerRegistry (must generate
compose/nginx/conf/registry.htpasswd
-
gitea - Privately hosted Git server
-
default_web_app - primitive Flask app to serve default nginx template html and display request information at
/req
or/json
endpoints -
vardadienas - Flask app to generate and download customisable Latvian nameday calendar
.ics