From 928e83e8f9883e5b3b205622dee211d4b0e3af5b Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 20 Jun 2025 23:39:12 +0200 Subject: [PATCH] add Excalidraw Container --- playbooks/heyer.systems/docker1.yml | 5 +++ .../defaults/main.yml | 3 ++ .../handlers/main.yml | 0 .../deploy_container_excalidraw/meta/main.yml | 0 .../tasks/main.yml | 39 +++++++++++++++++++ .../templates/.env.j2 | 5 +++ .../templates/docker-compose.yml.j2 | 34 ++++++++++++++++ .../deploy_container_excalidraw/vars/main.yml | 0 8 files changed, 86 insertions(+) create mode 100644 roles/deploy_container_excalidraw/defaults/main.yml create mode 100644 roles/deploy_container_excalidraw/handlers/main.yml create mode 100644 roles/deploy_container_excalidraw/meta/main.yml create mode 100644 roles/deploy_container_excalidraw/tasks/main.yml create mode 100644 roles/deploy_container_excalidraw/templates/.env.j2 create mode 100644 roles/deploy_container_excalidraw/templates/docker-compose.yml.j2 create mode 100644 roles/deploy_container_excalidraw/vars/main.yml diff --git a/playbooks/heyer.systems/docker1.yml b/playbooks/heyer.systems/docker1.yml index 2ddf874..214b89f 100644 --- a/playbooks/heyer.systems/docker1.yml +++ b/playbooks/heyer.systems/docker1.yml @@ -35,4 +35,9 @@ - role: deploy_container_wishlist tags: - wishlist + - docker-container + + - role: deploy_container_excalidraw + tags: + - excalidraw - docker-container \ No newline at end of file diff --git a/roles/deploy_container_excalidraw/defaults/main.yml b/roles/deploy_container_excalidraw/defaults/main.yml new file mode 100644 index 0000000..676cfd8 --- /dev/null +++ b/roles/deploy_container_excalidraw/defaults/main.yml @@ -0,0 +1,3 @@ +container_excalidraw_version: latest +container_excalidraw_domain: excalidraw.example.com +container_excalidraw_directory: /opt/docker/excalidraw diff --git a/roles/deploy_container_excalidraw/handlers/main.yml b/roles/deploy_container_excalidraw/handlers/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/deploy_container_excalidraw/meta/main.yml b/roles/deploy_container_excalidraw/meta/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/deploy_container_excalidraw/tasks/main.yml b/roles/deploy_container_excalidraw/tasks/main.yml new file mode 100644 index 0000000..e7ee337 --- /dev/null +++ b/roles/deploy_container_excalidraw/tasks/main.yml @@ -0,0 +1,39 @@ +--- +- name: Ensure data directories exist + ansible.builtin.file: + path: "{{ container_excalidraw_directory }}/data/{{ item }}" + state: directory + mode: '0755' + loop: + - "app" + - "node_modules" + - "app" + - "app" + become: false + +- name: Create neccessary Files + ansible.builtin.file: + path: "{{ traefik_container_dir }}/data/{{ item }}" + state: touch + mode: '0644' + loop: + - "package.json" + - "yarn.lock" + become: false + +- name: Deploy Docker Compose and .env files + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ container_excalidraw_directory }}/{{ item.dest }}" + mode: '0644' + loop: + - { src: 'docker-compose.yml.j2', dest: 'docker-compose.yml' } + - { src: '.env.j2', dest: '.env' } + become: false + +- name: Start Container + community.docker.docker_compose_v2: + project_src: "{{ container_excalidraw_directory }}" + pull: always + docker_host: "unix:///run/user/1000/docker.sock" + become: false diff --git a/roles/deploy_container_excalidraw/templates/.env.j2 b/roles/deploy_container_excalidraw/templates/.env.j2 new file mode 100644 index 0000000..31a59e6 --- /dev/null +++ b/roles/deploy_container_excalidraw/templates/.env.j2 @@ -0,0 +1,5 @@ +# Excalidraw Version (Standard: latest) # Excalidraw Version (Standard: latest) +EXCALIDRAW_VERSION={{ container_excalidraw_version }} + +# Excalidraw Domain +EXCALIDRAW_DOMAIN={{ container_excalidraw_domain }} \ No newline at end of file diff --git a/roles/deploy_container_excalidraw/templates/docker-compose.yml.j2 b/roles/deploy_container_excalidraw/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..839a172 --- /dev/null +++ b/roles/deploy_container_excalidraw/templates/docker-compose.yml.j2 @@ -0,0 +1,34 @@ +--- +services: + excalidraw: + image: excalidraw/excalidraw:${EXCALIDRAW_VERSION:-latest} + container_name: excalidraw + restart: on-failure + stdin_open: true + healthcheck: + disable: true + environment: + - NODE_ENV=development + networks: + - traefik + volumes: + - ./data/app:/opt/node_app/app:delegated + - ./data/package.json:/opt/node_app/package.json + - ./data/yarn.lock:/opt/node_app/yarn.lock + - ./data/node_modules:/opt/node_app/app/node_modules + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.excalidraw.entrypoints=http" + - "traefik.http.routers.excalidraw.rule=Host(`${EXCALIDRAW_DOMAIN:?error}`)" + - "traefik.http.middlewares.excalidraw-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.excalidraw.middlewares=excalidraw-https-redirect" + - "traefik.http.routers.excalidraw-secure.entrypoints=https" + - "traefik.http.routers.excalidraw-secure.rule=Host(`${EXCALIDRAW_DOMAIN:?error}`)" + - "traefik.http.routers.excalidraw-secure.tls=true" + - "traefik.http.routers.excalidraw-secure.service=excalidraw" + - "traefik.http.services.excalidraw.loadbalancer.server.port=80" + +networks: + traefik: + external: true diff --git a/roles/deploy_container_excalidraw/vars/main.yml b/roles/deploy_container_excalidraw/vars/main.yml new file mode 100644 index 0000000..e69de29