From 6392473195de7fa8d26e5302c4bb641b4fcac59b Mon Sep 17 00:00:00 2001 From: chatton Date: Fri, 7 Jul 2023 19:14:28 +0100 Subject: [PATCH] add dashy --- host_vars/qnap.yml | 4 -- host_vars/snunmu.yml | 1 - playbooks/setup-homelab.yml | 14 +++++- roles/portainer_dashy/defaults/main.yml | 14 ++++++ .../files}/dashy-config.yml | 0 roles/portainer_dashy/handlers/main.yml | 3 ++ roles/portainer_dashy/tasks/main.yml | 46 +++++++++++++++++++ .../templates/bookstack.j2 | 25 ---------- .../templates/linkding.j2 | 16 ------- .../templates/vaultwarden.j2 | 23 ---------- 10 files changed, 76 insertions(+), 70 deletions(-) create mode 100644 roles/portainer_dashy/defaults/main.yml rename roles/{setup_hosted_services/files/dashboards => portainer_dashy/files}/dashy-config.yml (100%) create mode 100644 roles/portainer_dashy/handlers/main.yml create mode 100644 roles/portainer_dashy/tasks/main.yml delete mode 100644 roles/setup_hosted_services/templates/bookstack.j2 delete mode 100644 roles/setup_hosted_services/templates/linkding.j2 delete mode 100644 roles/setup_hosted_services/templates/vaultwarden.j2 diff --git a/host_vars/qnap.yml b/host_vars/qnap.yml index 2fb36ff..38bb402 100644 --- a/host_vars/qnap.yml +++ b/host_vars/qnap.yml @@ -45,10 +45,6 @@ external_docker_networks: ansible_pull_path: /home/{{ homelab_user }}/.local/bin/ansible-pull portainer_required_files: - - source_file: dashboards/dashy-config.yml - dest_file_name: dashy-config.yml - dest_directory: /etc/config/dashy - handler: restart-dashy - source_file: olivetin/config.yml dest_file_name: config.yml dest_directory: /etc/config/OliveTin diff --git a/host_vars/snunmu.yml b/host_vars/snunmu.yml index 5f7f1ab..108689a 100644 --- a/host_vars/snunmu.yml +++ b/host_vars/snunmu.yml @@ -12,7 +12,6 @@ portainer_required_templates: portainer_endpoint: 23 services: - - name: linkding - name: pihole - name: hasteypaste - name: dashboards diff --git a/playbooks/setup-homelab.yml b/playbooks/setup-homelab.yml index b09e2c9..89da60c 100644 --- a/playbooks/setup-homelab.yml +++ b/playbooks/setup-homelab.yml @@ -68,7 +68,19 @@ - role: portainer_bookstack - role: portainer_vaultwarden -#- name: Setup and deploy portainer services. +- name: Setup and deploy portainer services (qnap). + hosts: qnap + become: true + tags: [services] + pre_tasks: + - name: Include vault variables. + ansible.builtin.include_vars: '../{{ vault_file }}' + tags: [always] + roles: + - role: portainer_dashy + +# +#- name: Setup and deploy templated portainer services. # hosts: servers # become: true # pre_tasks: diff --git a/roles/portainer_dashy/defaults/main.yml b/roles/portainer_dashy/defaults/main.yml new file mode 100644 index 0000000..8dd2ca4 --- /dev/null +++ b/roles/portainer_dashy/defaults/main.yml @@ -0,0 +1,14 @@ +--- +dashy_image: lissy93/dashy +dashy_tag: 2.1.1 +dashy_expose_port: 4000 +dashy_portainer_stack_name: dashy +dashy_container_name: dashy +dashy_restart_policy: unless-stopped + +dashy_config_dir: /etc/config/dashy +dashy_config_file: dashy-config.yml +# environment variables +dashy_node_env: production +dashy_uid: 1000 +dashy_gid: 1000 diff --git a/roles/setup_hosted_services/files/dashboards/dashy-config.yml b/roles/portainer_dashy/files/dashy-config.yml similarity index 100% rename from roles/setup_hosted_services/files/dashboards/dashy-config.yml rename to roles/portainer_dashy/files/dashy-config.yml diff --git a/roles/portainer_dashy/handlers/main.yml b/roles/portainer_dashy/handlers/main.yml new file mode 100644 index 0000000..35bc912 --- /dev/null +++ b/roles/portainer_dashy/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: restart-dashy + ansible.builtin.command: docker restart dashy diff --git a/roles/portainer_dashy/tasks/main.yml b/roles/portainer_dashy/tasks/main.yml new file mode 100644 index 0000000..166e1ab --- /dev/null +++ b/roles/portainer_dashy/tasks/main.yml @@ -0,0 +1,46 @@ +--- +- name: Create config directory. + ansible.builtin.file: + path: '{{ dashy_config_dir }}' + state: directory + mode: '0755' + +- name: Create config file. + ansible.builtin.copy: + src: "dashy-config.yml" + dest: '{{ dashy_config_dir }}/{{ dashy_config_file }}' + owner: root + group: root + mode: 0440 + notify: restart-dashy + +- name: "Dashy | Update Portainer." + chatton.portainer.portainer_stack: + username: admin + password: '{{ portainer.password }}' + base_url: '{{ portainer_base_url }}' + stack_name: '{{ dashy_portainer_stack_name }}' + endpoint_id: '{{ portainer_endpoint }}' + state: present + definition: + version: '3' + services: + dashy: + container_name: "{{ dashy_container_name }}" + image: "{{ dashy_image }}:{{ dashy_tag }}" + volumes: + - "{{ dashy_config_dir}}/{{ dashy_config_file }}:/app/public/conf.yml" + ports: + - "{{ dashy_expose_port}}:80" + environment: + - "NODE_ENV={{ dashy_node_env }}" + - "UID={{ dashy_uid }}" + - "GID={{ dashy_gid }}" + restart: "{{ dashy_restart_policy}}" + # Configure healthchecks + healthcheck: + test: ['CMD', 'node', '/app/services/healthcheck'] + interval: 1m30s + timeout: 10s + retries: 3 + start_period: 40s diff --git a/roles/setup_hosted_services/templates/bookstack.j2 b/roles/setup_hosted_services/templates/bookstack.j2 deleted file mode 100644 index 467a802..0000000 --- a/roles/setup_hosted_services/templates/bookstack.j2 +++ /dev/null @@ -1,25 +0,0 @@ ---- -version: "3.1" -services: - bookstack: - labels: - ie.cianhatton.backup.enabled: "true" - ie.cianhatton.backup.schedule: "{{ backups.schedule_keys.nightly }}" - image: "{{ template_vars.image }}:{{ template_vars.tag }}" - container_name: bookstack - environment: - - PUID=1000 - - PGID=1000 - - DB_HOST=qnap - - DB_USER=bookstack - - DB_PASS="{{ bookstack_password }}" - - DB_DATABASE=bookstackapp - - APP_URL="https://bookstack.cianhatton.ie" - volumes: - - config:/config - ports: - - 6875:80 - restart: unless-stopped - -volumes: - config: diff --git a/roles/setup_hosted_services/templates/linkding.j2 b/roles/setup_hosted_services/templates/linkding.j2 deleted file mode 100644 index 97f8e0a..0000000 --- a/roles/setup_hosted_services/templates/linkding.j2 +++ /dev/null @@ -1,16 +0,0 @@ ---- -version: '3' -services: - linkding: - labels: - ie.cianhatton.backup.enabled: "true" - ie.cianhatton.backup.schedule: "{{backups.schedule_keys.nightly}}" - container_name: "linkding" - image: sissbruecker/linkding:latest - ports: - - "9090:9090" - volumes: - - "data:/etc/linkding/data" - restart: unless-stopped -volumes: - data: diff --git a/roles/setup_hosted_services/templates/vaultwarden.j2 b/roles/setup_hosted_services/templates/vaultwarden.j2 deleted file mode 100644 index 09799f1..0000000 --- a/roles/setup_hosted_services/templates/vaultwarden.j2 +++ /dev/null @@ -1,23 +0,0 @@ ---- -version: '3.3' -services: - vaultwarden: - labels: - ie.cianhatton.backup.enabled: "true" - ie.cianhatton.backup.schedule: "{{ backups.schedule_keys.nightly }}" - image: "{{ template_vars.image }}:{{ template_vars.tag }}" - volumes: - - data:/data - environment: - WEBSOCKET_ENABLED: true - SENDS_ALLOWED: true - EMERGENCY_ACCESS_ALLOWED: true - WEB_VAULT_ENABLED: true - DOMAIN: "https://vault.cianhatton.ie" - ADMIN_TOKEN: "{{ vaultwarden_admin_token }}" - SIGNUPS_ALLOWED: false - restart: unless-stopped - ports: - - 80:80 -volumes: - data: