131 lines
2.8 KiB
Markdown
131 lines
2.8 KiB
Markdown
Docker services
|
|
===============
|
|
|
|
The present role :
|
|
- installs Docker on host
|
|
- installs various services through containers and docker-compose manifest
|
|
|
|
It has been tested on :
|
|
- Debian 9
|
|
- Debian 10
|
|
- Debian 11
|
|
- Debian 12
|
|
|
|
Available services
|
|
------------------
|
|
|
|
- Traefik
|
|
- Watchtower
|
|
- Grafana
|
|
- Maildev
|
|
- cadvisor
|
|
- Redisinsight
|
|
- Gitlab
|
|
- [Wireguard](https://github.com/wg-easy/wg-easy)
|
|
- wikiJS
|
|
|
|
Role variables
|
|
---------------
|
|
|
|
| Variable | Type | Choices | Default | Comment |
|
|
|----------------------------------------------|---------|------------------------------------------------------------------------------------|-------------------------|-----------------|
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
None.
|
|
|
|
Example Playbook
|
|
----------------
|
|
|
|
```
|
|
- hosts: example
|
|
ignore_errors: "{{ ansible_check_mode }}" # ignore errors only in check mode !
|
|
|
|
roles:
|
|
- { role: docker-services, tags: ['docker-services'] }
|
|
```
|
|
|
|
Example variables
|
|
-----------------
|
|
|
|
```
|
|
---
|
|
docker_services:
|
|
- traefik
|
|
- watchtower
|
|
- grafana
|
|
- maildev
|
|
- cadvisor
|
|
- redisinsight
|
|
- gitlab
|
|
- wireguard
|
|
- wikijs
|
|
|
|
watchtower_label_enable: true
|
|
|
|
traefik_domain: 'example.com'
|
|
traefik_letsencrypt_email: 'cert@example.com'
|
|
traefik_ipwhitelist: '42.42.42.42/32, 192.168.1.0/24, 127.0.0.1/32'
|
|
traefik_watchtower_enable: true
|
|
|
|
maildev_domain: 'maildev.example.com'
|
|
|
|
redisinsight_domain: 'redisinsight.example.com'
|
|
redisinsight_whitelist:
|
|
- 192.168.1.0/24
|
|
- 10.0.1.0/24
|
|
redisinsignt_watchtower_enable: true
|
|
|
|
gitlab_through_traefik: true
|
|
gitlab_image: gitlab/gitlab-ce
|
|
gitlab_version: 'latest'
|
|
gitlab_root_password: 'vault-this-thingy'
|
|
gitlab_domain: gitlab.example.com
|
|
gitlab_registry_domain: registry.example.com
|
|
gitlab_watchtower_enable: false
|
|
|
|
wireguard_version: 'latest'
|
|
# wg-easy webui access:
|
|
wireguard_domain: 'wg.example.com'
|
|
wireguard_password: 'please-vault-this-too'
|
|
|
|
wikijs_domain: 'wikijs.example.com'
|
|
wikijs_whitelist:
|
|
- 192.168.1.0/24
|
|
- 10.0.1.0/24
|
|
wikijs_db_root_password: 'vault-this-thingy'
|
|
wikijs_db_name: db_example
|
|
wikijs_db_user: db_user
|
|
wikijs_db_password: 'please-vault-this-too'
|
|
```
|
|
|
|
TODO
|
|
----
|
|
|
|
- Traefik
|
|
- add variables for basic auth in templates
|
|
- choose between global auth vs service auth
|
|
- Grafana
|
|
- Handle providers
|
|
- Handle custom dashboards
|
|
- Permit anonymous login and user login
|
|
- OpenVPN
|
|
- needs to be implemented
|
|
- SSHPortal
|
|
- needs to be implemented
|
|
- Loki
|
|
- needs to be implemented
|
|
- Promtail
|
|
- needs to be implemented
|
|
|
|
License
|
|
-------
|
|
|
|
MIT Modern
|
|
|
|
Author Information
|
|
------------------
|
|
|
|
Written by Ludovic Cartier <ludovic.cartier@brainsys.io>
|