diff --git a/README.md b/README.md index da1a36c..2b1b4a7 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Available services - Grafana - Maildev - cadvisor + - Redisinsight Role variables --------------- @@ -52,11 +53,18 @@ Example variables - grafana - maildev - cadvisor + - redisinsight traefik_domain: 'mydomain.com' traefik_letsencrypt_email: 'cert@mydomain.com' maildev_domain: 'maildev.mydomain.com' + + redisinsight_domain: 'redisinsight.mydomain.com' + redisinsight_whitelist: + - 192.168.1.0/24 + - 31.15.24.XX + - 37.58.179.XX ``` TODO diff --git a/handlers/main.yml b/handlers/main.yml index 4a26463..f76527a 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -26,3 +26,10 @@ state: restarted ignore_errors: '{{ ansible_check_mode }}' tags: ['docker_maildev'] + +- name: redisinsight-restart + systemd: + name: docker-compose@redisinsight + state: restarted + ignore_errors: '{{ ansible_check_mode }}' + tags: ['docker_redisinsight'] diff --git a/tasks/main.yml b/tasks/main.yml index 5e522fd..c9d5a3b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -14,5 +14,6 @@ - docker_watchtower - docker_grafana - docker_maildev + - docker_redisinsight with_items: - "{{ docker_services }}" diff --git a/tasks/redisinsight.yml b/tasks/redisinsight.yml new file mode 100644 index 0000000..20bcac8 --- /dev/null +++ b/tasks/redisinsight.yml @@ -0,0 +1,9 @@ +--- +- name: redisinsight | check vars are defined + assert: + that: + - redisinsight_domain is defined + tags: ['docker_redisinsight'] + +- include_tasks: base.yml + tags: ['docker_redisinsight'] diff --git a/templates/compose/redisinsight.yml.j2 b/templates/compose/redisinsight.yml.j2 new file mode 100644 index 0000000..dc3e6d2 --- /dev/null +++ b/templates/compose/redisinsight.yml.j2 @@ -0,0 +1,34 @@ +version: '3.7' + +networks: + traefik: + external: true + +volumes: + redisinsight__db: + +services: + redisinsight: + container_name: redisinsight + image: git.rznet.fr/docker/redisinsight:latest + restart: unless-stopped + volumes: + - redisinsight__db:/root/.redisinsight-v2/ + cap_add: + - IPC_LOCK + labels: + traefik.enable: "true" + ## IP + traefik.http.routers.redisinsight.rule: "Host(`{{ redisinsight_domain }}`){% if redisinsight_whitelist is defined %} && ClientIP({% for ip in redisinsight_whitelist %}`{{ ip }}`,{% endfor %}){% endif %}" + traefik.http.routers.redisinsight.entrypoints: "websecure" + traefik.http.routers.redisinsight.tls.certresolver: "letsencrypt" + traefik.http.services.redisinsight.loadbalancer.server.port: "5000" +{% if redisinsight_auth is defined %} + ## AUTH + traefik.http.routers.redisinsight-auth.rule: "Host(`{{ redisinsight_domain }}`)" + traefik.http.routers.redisinsight-auth.entrypoints: "websecure" + traefik.http.routers.redisinsight-auth.tls.certresolver: "letsencrypt" + traefik.http.routers.redisinsight-auth.middlewares: "basicauth@file" +{% endif %} + networks: + - traefik