From b6a6be99da342a60f22cdf3c1e47139840976931 Mon Sep 17 00:00:00 2001 From: Matthew Grove Date: Fri, 24 Feb 2023 19:45:56 +0000 Subject: [PATCH] [DEPLOY] Update deployment files for new database --- deploy/example.env | 4 ++++ deploy/playbook.yml | 6 +----- deploy/templates/docker-compose.yml.j2 | 22 ++++++++++++++++++++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/deploy/example.env b/deploy/example.env index 018419b..5bec8b4 100644 --- a/deploy/example.env +++ b/deploy/example.env @@ -2,6 +2,10 @@ # Used to generate CSRF tokens - must never be made public SECRET_KEY=changeme +# REQUIRED=Database password +# The password for the breccia-mapper user in the postgres database +DB_PASSWORD=changeme + # Debug # Should the server run in debug mode? Provides information to users which is unsafe in production # Default: False diff --git a/deploy/playbook.yml b/deploy/playbook.yml index d34f126..9328003 100644 --- a/deploy/playbook.yml +++ b/deploy/playbook.yml @@ -71,11 +71,6 @@ dest: '{{ project_dir }}/icon-192x192.png' mode: 0600 - - name: Create database file - ansible.builtin.file: - path: "{{ project_dir }}/db.sqlite3" - state: touch - - name: Start Docker ansible.builtin.systemd: name: docker @@ -89,6 +84,7 @@ loop: - caddy - server + - db - name: Start containers ansible.builtin.command: diff --git a/deploy/templates/docker-compose.yml.j2 b/deploy/templates/docker-compose.yml.j2 index 71c5933..6e94f86 100755 --- a/deploy/templates/docker-compose.yml.j2 +++ b/deploy/templates/docker-compose.yml.j2 @@ -11,9 +11,11 @@ services: env_file: - .env volumes: - - {{ project_dir }}/db.sqlite3:/app/db.sqlite3:z - static_files:/app/static - media_files:/app/media + depends_on: + db: + condition: service_healthy caddy: image: caddy:2 @@ -25,15 +27,31 @@ services: - ./Caddyfile:/etc/caddy/Caddyfile:z # Caddy serves static files collected by Django - static_files:/srv/static:ro - - media_files:/srv/media:ro + - media_files:/srv/media - {{ project_dir }}/icon-192x192.png:/srv/media/icon-192x192.png:ro - caddy_data:/data - caddy_config:/config depends_on: - server + db: + image: postgres:15.2-alpine + restart: unless-stopped + environment: + POSTGRES_DB: 'breccia-mapper' + POSTGRES_USER: 'breccia-mapper' + POSTGRES_PASSWORD: ${DB_PASSWORD} + volumes: + - postgres_data:/var/lib/postgresql/data/ + healthcheck: + test: ["CMD-SHELL", "pg_isready -U breccia-mapper"] + interval: 5s + timeout: 5s + retries: 5 + volumes: caddy_data: caddy_config: static_files: media_files: + postgres_data: