From f760727d9ec7021d09595e9e7e3b25ebc3088150 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Thu, 24 Apr 2025 13:21:00 +0100 Subject: [PATCH] Streamlined dev vs prod config management --- caddy/development/Caddyfile | 14 ++++++++++++++ caddy/{ => production}/Caddyfile | 2 +- docker-compose.yaml | 2 +- prepare-env.sh => env.sh | 7 ++++--- env/invenio.env | 7 +++++++ env/invenio_dev.env | 5 +++++ env/invenio_prod.env | 5 +++++ invenio.env | 11 ----------- invenio_dev.env | 14 -------------- justfile | 4 ++-- 10 files changed, 39 insertions(+), 32 deletions(-) create mode 100644 caddy/development/Caddyfile rename caddy/{ => production}/Caddyfile (75%) rename prepare-env.sh => env.sh (62%) create mode 100644 env/invenio.env create mode 100644 env/invenio_dev.env create mode 100644 env/invenio_prod.env delete mode 100644 invenio.env delete mode 100644 invenio_dev.env diff --git a/caddy/development/Caddyfile b/caddy/development/Caddyfile new file mode 100644 index 0000000..46b7ddb --- /dev/null +++ b/caddy/development/Caddyfile @@ -0,0 +1,14 @@ +{ + debug + auto_https off + local_certs +} + +localhost { + reverse_proxy invenio-rdm:5000 + encode gzip + log { + format console + level DEBUG + } +} diff --git a/caddy/Caddyfile b/caddy/production/Caddyfile similarity index 75% rename from caddy/Caddyfile rename to caddy/production/Caddyfile index 0e54cda..1f8c574 100644 --- a/caddy/Caddyfile +++ b/caddy/production/Caddyfile @@ -2,7 +2,7 @@ admin off } -localhost { +invenio.i-form.ie { reverse_proxy invenio-rdm:5000 encode gzip } diff --git a/docker-compose.yaml b/docker-compose.yaml index cd61034..62da025 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,7 +11,7 @@ services: - "8443:443" volumes: - caddy_data:/data - - ./caddy:/etc/caddy + - ./caddy/${INVENIO_ENV}:/etc/caddy restart: unless-stopped labels: - "io.containers.autoupdate=registry" diff --git a/prepare-env.sh b/env.sh similarity index 62% rename from prepare-env.sh rename to env.sh index 7bcb005..775267d 100755 --- a/prepare-env.sh +++ b/env.sh @@ -1,14 +1,15 @@ #!/usr/bin/env bash - if [[ "$*" == *--dev* ]]; then + echo "Configuring env in development mode" ENV_FILE="invenio_dev.env" else - ENV_FILE="invenio.env" + echo "Configuring env in production mode" + ENV_FILE="invenio_prod.env" fi aws secretsmanager get-secret-value --secret-id Invenio | \ jq -r '.SecretString | fromjson | to_entries | .[] | .key + "=\"" + .value + "\""' > secrets.env -cat "$ENV_FILE" secrets.env > .env +cat ./env/invenio.env "./env/$ENV_FILE" secrets.env > .env echo "Environment set up using $ENV_FILE" diff --git a/env/invenio.env b/env/invenio.env new file mode 100644 index 0000000..c043758 --- /dev/null +++ b/env/invenio.env @@ -0,0 +1,7 @@ +INVENIO_S3_ENDPOINT_URL=https://s3.eu-west-1.amazonaws.com +INVENIO_S3_REGION_NAME=eu-west-1 +INVENIO_S3_BUCKET_NAME=i-form-invenio +INVENIO_THEME_LOGO=custom_assets/I-Form_logo.webp +INVENIO_THEME_FRONTPAGE_TITLE="I-Form Invenio Data Repository" +INVENIO_THEME_SITENAME="I-Form Repository" +INVENIO_THEME_FRONTPAGE_SUBTITLE="An Invenio data repository for the I-Form research group." diff --git a/env/invenio_dev.env b/env/invenio_dev.env new file mode 100644 index 0000000..197520b --- /dev/null +++ b/env/invenio_dev.env @@ -0,0 +1,5 @@ +INVENIO_APP_ALLOWED_HOSTS=["invenio.i-form.ie", "localhost", "localhost:5000", "127.0.0.1", "127.0.0.1:5000", "0.0.0.0", "0.0.0.0:5000"] +INVENIO_SITE_UI_URL=https://localhost:5000 +INVENIO_SITE_API_URL=https://localhost:5000/api +FLASK_ENV=development +INVENIO_ENV=development diff --git a/env/invenio_prod.env b/env/invenio_prod.env new file mode 100644 index 0000000..24f2003 --- /dev/null +++ b/env/invenio_prod.env @@ -0,0 +1,5 @@ +INVENIO_APP_ALLOWED_HOSTS=["invenio.i-form.ie"] +INVENIO_SITE_UI_URL=https://invenio.i-form.ie +INVENIO_SITE_API_URL=https://invenio.i-form.ie/api +FLASK_ENV=production +INVENIO_ENV=production diff --git a/invenio.env b/invenio.env deleted file mode 100644 index 610a10a..0000000 --- a/invenio.env +++ /dev/null @@ -1,11 +0,0 @@ -INVENIO_APP_ALLOWED_HOSTS=["invenio.i-form.ie"] -INVENIO_S3_ENDPOINT_URL="https://s3.eu-west-1.amazonaws.com" -INVENIO_S3_REGION_NAME="eu-west-1" -INVENIO_S3_BUCKET_NAME="i-form-invenio" -INVENIO_THEME_LOGO="custom_assets/I-Form_logo.webp" -INVENIO_THEME_FRONTPAGE_TITLE="I-Form Invenio Data Repository" -INVENIO_THEME_SITENAME="I-Form Repository" -INVENIO_THEME_FRONTPAGE_SUBTITLE="An Invenio data repository for the I-Form research group." -INVENIO_SITE_UI_URL="https://invenio.i-form.ie" -INVENIO_SITE_API_URL="https://invenio.i-form.ie/api" -INVENIO_ENV="production" diff --git a/invenio_dev.env b/invenio_dev.env deleted file mode 100644 index 8e2b34f..0000000 --- a/invenio_dev.env +++ /dev/null @@ -1,14 +0,0 @@ -INVENIO_APP_ALLOWED_HOSTS=["invenio.i-form.ie", "localhost", "localhost:5000", "127.0.0.1", "127.0.0.1:5000", "0.0.0.0", "0.0.0.0:5000"] -INVENIO_S3_ENDPOINT_URL="https://s3.eu-west-1.amazonaws.com" -INVENIO_S3_REGION_NAME="eu-west-1" -INVENIO_S3_BUCKET_NAME="i-form-invenio" -INVENIO_THEME_LOGO="custom_assets/I-Form_logo.webp" -INVENIO_THEME_FRONTPAGE_TITLE="I-Form Invenio Data Repository" -INVENIO_THEME_SITENAME="I-Form Repository" -INVENIO_THEME_FRONTPAGE_SUBTITLE="An Invenio data repository for the I-Form research group." -INVENIO_SITE_UI_URL="https://localhost:5000" -INVENIO_SITE_API_URL="https://localhost:5000/api" -INVENIO_FORCE_HTTPS=false -INVENIO_APP_ENABLE_SECURE_HEADERS=False -FLASK_ENV="development" -INVENIO_ENV="development" diff --git a/justfile b/justfile index b9539a3..aefdfcb 100644 --- a/justfile +++ b/justfile @@ -79,8 +79,8 @@ cleanup-versions: rm -f "versions/${tag#backup-}.txt" done -deploy: - #!/usr/bin/env bash +deploy *args: + ./env.sh {{args}} docker compose up -d --wait docker compose exec -it worker setup.sh