diff --git a/site.yml b/site.yml index 9a2135e5a3c46153316ba979996fbade2c1cc231..4a721d3cd93f08c74ba1637e413e373563e0d2df 100644 --- a/site.yml +++ b/site.yml @@ -60,6 +60,12 @@ basedir: "/srv/{{ servicename }}", domain: "verwaltung.test-warpzone.de" } + - { + role: testserver/docker_tandoor, tags: [ test_tandoor, docker_services ], + servicename: "tandoor", + basedir: "/srv/{{ servicename }}", + domain: "tandoor.test-warpzone.de" + } ################################################## diff --git a/testserver/docker_tandoor/Documentation.md b/testserver/docker_tandoor/Documentation.md new file mode 100644 index 0000000000000000000000000000000000000000..074a7865d9cdf3f624633a600b9448df40d0df7c --- /dev/null +++ b/testserver/docker_tandoor/Documentation.md @@ -0,0 +1,4 @@ + +After initial Setup, the initial superuser 'tandooradmin' must be created in the unser interface. +The Password is stored on the Server in the file ```secrets/tandooradmin_user_pass``` within the data directory. + diff --git a/testserver/docker_tandoor/tasks/main.yml b/testserver/docker_tandoor/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..28fc83e7993b3c9e583a45fad66ceb04de9a1464 --- /dev/null +++ b/testserver/docker_tandoor/tasks/main.yml @@ -0,0 +1,40 @@ +--- + +- include_tasks: ../functions/get_secret.yml + with_items: + - { path: "{{ basedir }}/secrets/secret_key", length: 32 } + - { path: "{{ basedir }}/secrets/postgres_user_pass", length: 24 } + - { path: "{{ basedir }}/secrets/tandooradmin_user_pass", length: 24 } + + +- name: "create folder struct for {{ servicename }}" + file: + path: "{{ item }}" + state: "directory" + with_items: + - "{{ basedir }}" + - "{{ basedir }}/secrets" + - "{{ basedir }}/db" + - "{{ basedir }}/staticfiles" + - "{{ basedir }}/mediafiles" + + +- name: "deploy {{ servicename }} config files" + template: + dest: "{{ basedir }}/{{ item }}" + src: "{{ item }}" + with_items: + - docker-compose.yml + register: config + + +- name: "stop {{ servicename }} docker" + community.docker.docker_compose_v2: + project_src: "{{ basedir }}" + state: absent + when: config.changed + +- name: "start {{ servicename }} docker" + community.docker.docker_compose_v2: + project_src: "{{ basedir }}" + state: present diff --git a/testserver/docker_tandoor/templates/docker-compose.yml b/testserver/docker_tandoor/templates/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..68a281dea4f75fc9f70651f2a3902b084517f090 --- /dev/null +++ b/testserver/docker_tandoor/templates/docker-compose.yml @@ -0,0 +1,49 @@ + +services: + + + db: + + image: postgres:16-alpine + restart: always + volumes: + - "{{ basedir }}/db:/var/lib/postgresql/data" + environment: + POSTGRES_DB: tandoor + POSTGRES_PORT: 5432 + POSTGRES_USER: tandoor + POSTGRES_PASSWORD: "{{ postgres_user_pass }}" + networks: + - default + + + app: + + restart: always + image: vabene1111/recipes:latest + depends_on: + - db + volumes: + - "{{ basedir }}/staticfiles:/opt/recipes/staticfiles" + - "{{ basedir }}/mediafiles:/opt/recipes/mediafiles" + environment: + SECRET_KEY: {{ secret_key }} + DB_ENGINE: django.db.backends.postgresql + POSTGRES_HOST: db + POSTGRES_DB: tandoor + POSTGRES_PORT: 5432 + POSTGRES_USER: tandoor + POSTGRES_PASSWORD: "{{ postgres_user_pass }}" + labels: + - traefik.enable=true + - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`) + - traefik.http.routers.{{ servicename }}.entrypoints=websecure + - traefik.http.services.{{ servicename }}.loadbalancer.server.port=8080 + networks: + - default + - web + + +networks: + web: + external: true