Compare commits

...

8 Commits

Author SHA1 Message Date
90d3e6ac69 bump to 0.2.8+v4.5.0 2026-02-20 19:15:10 +00:00
dcd91e6a6f add auto-migration on backend startup 2026-02-20 19:15:02 +00:00
3647245ea4 fix readme 2026-02-20 13:01:45 -05:00
10d7a66c4a bump to 0.2.7+v4.5.0 2026-02-20 17:55:01 +00:00
6b2e1f166e working on minio-initialize 2026-02-20 11:34:35 -05:00
f4381dc8a3 Update to 0.2.6+v4.5.0
- Upgrade app images to v4.5.0
- Switch from postgres:16 to pgautoupgrade/pgautoupgrade:18-debian for automatic major version upgrades
- Fix PGDATA relative path (add leading /)
- Fix pg_backup.sh restore path to match PGDATA
2026-02-16 14:45:12 -05:00
de32805e71 switch to pgautoupgrade 2026-02-16 13:45:39 -05:00
dc7c769011 Merge pull request 'Update version to 0.2.5+v4.4.0' (#11) from new-version into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/lasuite-docs/pulls/11
2026-01-27 00:04:19 +00:00
8 changed files with 101 additions and 39 deletions

View File

@ -66,3 +66,9 @@ OIDC_AUTH_REQUEST_EXTRA_PARAMS='{"acr_values": "eidas1"}'
LOGGING_LEVEL_HANDLERS_CONSOLE=INFO
LOGGING_LEVEL_LOGGERS_ROOT=INFO
LOGGING_LEVEL_LOGGERS_APP=INFO
##############################################################################
# MIGRATIONS
##############################################################################
# Set to false to disable automatic migrations on backend startup
AUTO_MIGRATIONS=true

View File

@ -20,11 +20,11 @@
* `abra app new lasuite-docs --secrets`
* `abra app config <app-name>`
* `abra app deploy <app-name>`
* `abra app cmd <app-name> backend migrate`
* `abra app restart <app-name> minio-bootstrap` (Note: this will appear to fail, but probably worked! Check `abra app logs <app-name> minio-bootstrap`)
You should then be able to visit the landing page of your app, but not yet to login. To login, you need to deploy and integrate single sign on (described below in the "Configure Authentication" section).
You should then be able to visit the landing page of your app, but not yet to login. To login, you need to deploy and integrate single sign on (described below in the "Configure Authentication" section).
* Migrations run automatically on backend startup. To trigger manually: `abra app cmd <app-name> backend migrate`
* Minio buckets are created automatically on first deploy. To manually trigger: `abra app cmd <app-name> minio minio_initialize`
## Configure Authentication

View File

@ -3,6 +3,8 @@
export ABRA_ENTRYPOINT_VERSION=v5
export NGINX_CONF_VERSION=v3
export PG_BACKUP_VERSION=v3
export MINIO_INITIALIZE_VERSION=v1
export MIGRATE_VERSION=v1
environment() {
# this exports all the secrets as environment variables
@ -10,6 +12,9 @@ environment() {
}
migrate() {
environment
python manage.py migrate --noinput
/migrate.sh
}
minio_initialize() {
/minio-initialize.sh
}

View File

@ -84,14 +84,14 @@ x-minio-env: &minio-env
services:
app:
image: lasuite/impress-frontend:v4.4.0
image: lasuite/impress-frontend:v4.5.0
networks:
- backend
deploy:
labels:
- "traefik.enable=false"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "coop-cloud.${STACK_NAME}.version=0.2.5+v4.4.0"
- "coop-cloud.${STACK_NAME}.version=0.2.8+v4.5.0"
user: "${DOCKER_USER:-1000}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
@ -101,11 +101,12 @@ services:
start_period: 10s
backend:
image: lasuite/impress-backend:v4.4.0
image: lasuite/impress-backend:v4.5.0
networks:
- backend
- backend
environment:
<<: [*common-env, *postgres-env, *yprovider-env]
AUTO_MIGRATIONS: "${AUTO_MIGRATIONS:-true}"
healthcheck:
test: ["CMD", "/abra-entrypoint.sh", "python", "manage.py", "check"]
interval: 15s
@ -114,11 +115,15 @@ services:
start_period: 10s
user: "${DOCKER_USER:-1000}"
command: ["gunicorn", "-c", "/usr/local/etc/gunicorn/impress.py", "impress.wsgi:application"]
entrypoint: ["/abra-entrypoint.sh", "/usr/local/bin/entrypoint"]
entrypoint: >
sh -c "if [ \"$$AUTO_MIGRATIONS\" = \"true\" ]; then /migrate.sh; fi && exec /abra-entrypoint.sh /usr/local/bin/entrypoint \"$$@\"" --
configs:
- source: abra_entrypoint
target: /abra-entrypoint.sh
mode: 0555
- source: migrate
target: /migrate.sh
mode: 0555
secrets:
- django_sk
- django_sp
@ -131,7 +136,7 @@ services:
- email_pass
celery:
image: lasuite/impress-backend:v4.4.0
image: lasuite/impress-backend:v4.5.0
networks:
- backend
user: "${DOCKER_USER:-1000}"
@ -155,7 +160,7 @@ services:
y-provider:
image: lasuite/impress-y-provider:v4.4.0
image: lasuite/impress-y-provider:v4.5.0
networks:
- backend
environment: *yprovider-env
@ -168,7 +173,7 @@ services:
- y_api_key
db:
image: postgres:16
image: pgautoupgrade/pgautoupgrade:18-debian
networks:
- backend
healthcheck:
@ -178,7 +183,7 @@ services:
retries: 300
environment:
<<: *postgres-env
PGDATA: var/lib/postgresql/data/pgdata
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- postgres:/var/lib/postgresql/data/pgdata
deploy:
@ -199,29 +204,6 @@ services:
networks:
- backend
minio-bootstrap:
# NOTE: Not started by default, only run with a manual `abra app restart` / `docker service scale`
image: minio/mc:RELEASE.2025-05-21T01-59-54Z
environment: *minio-env
networks:
- backend
entrypoint: >
sh -c "
MINIO_ROOT_USER=\"\$$(cat /run/secrets/minio_ru)\" &&
MINIO_ROOT_PASSWORD=\"\$$(cat /run/secrets/minio_rp)\" &&
/usr/bin/mc alias set docs http://minio:9000 \$${MINIO_ROOT_USER} \"\$${MINIO_ROOT_PASSWORD}\" &&
/usr/bin/mc mb --ignore-existing docs/docs-media-storage &&
/usr/bin/mc version enable docs/docs-media-storage &&
exit 0"
deploy:
mode: replicated
replicas: 0
restart_policy:
condition: none
secrets:
- minio_rp
- minio_ru
minio:
image: minio/minio:RELEASE.2025-05-24T17-08-30Z
environment: *minio-env
@ -233,7 +215,8 @@ services:
networks:
- backend
command: minio server /data
entrypoint: ["/usr/bin/docker-entrypoint.sh"]
entrypoint: >
sh -c "/minio-initialize.sh & exec /usr/bin/docker-entrypoint.sh \"$$@\"" --
volumes:
- minio:/data
deploy:
@ -244,6 +227,9 @@ services:
- source: abra_entrypoint
target: /abra-entrypoint.sh
mode: 0555
- source: minio_initialize
target: /minio-initialize.sh
mode: 0555
secrets:
- minio_rp
- minio_ru
@ -291,6 +277,12 @@ configs:
abra_entrypoint:
name: ${STACK_NAME}_entrypoint_${ABRA_ENTRYPOINT_VERSION}
file: abra-entrypoint.sh
minio_initialize:
name: ${STACK_NAME}_minio_initialize_${MINIO_INITIALIZE_VERSION}
file: minio-initialize.sh
migrate:
name: ${STACK_NAME}_migrate_${MIGRATE_VERSION}
file: migrate.sh
secrets:
django_sk:

26
migrate.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/sh
set -e
# Load secrets into environment
source /abra-entrypoint.sh -e
# Wait for database to be ready (up to 30 seconds)
i=0
while ! python manage.py check --database default 2>/dev/null; do
i=$((i+1))
if [ "$i" -ge 30 ]; then
echo "migrate: timed out waiting for database" >&2
exit 1
fi
sleep 1
done
# Idempotent: skip if no pending migrations
if python manage.py migrate --check > /dev/null 2>&1; then
echo "migrate: no pending migrations, skipping"
exit 0
fi
echo "migrate: applying pending migrations..."
python manage.py migrate --noinput
echo "migrate: done"

29
minio-initialize.sh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/sh
set -e
# Wait for minio to be ready (up to 60 seconds)
i=0
while ! mc ready local 2>/dev/null; do
i=$((i+1))
if [ "$i" -ge 60 ]; then
echo "minio-initialize: timed out waiting for minio to be ready" >&2
exit 1
fi
sleep 1
done
MINIO_ROOT_USER="$(cat /run/secrets/minio_ru)"
MINIO_ROOT_PASSWORD="$(cat /run/secrets/minio_rp)"
mc alias set docs http://localhost:9000 "${MINIO_ROOT_USER}" "${MINIO_ROOT_PASSWORD}"
# Idempotent: skip if bucket already exists
if mc ls docs/docs-media-storage > /dev/null 2>&1; then
echo "minio-initialize: bucket 'docs-media-storage' already exists, skipping"
exit 0
fi
echo "minio-initialize: creating bucket 'docs-media-storage'..."
mc mb docs/docs-media-storage
mc version enable docs/docs-media-storage
echo "minio-initialize: done"

View File

@ -10,7 +10,7 @@ function backup {
}
function restore {
cd /var/lib/postgresql/data/
cd /var/lib/postgresql/data/pgdata/
restore_config(){
# Restore allowed connections
cat pg_hba.conf.bak > pg_hba.conf

4
release/0.2.6+v4.5.0 Normal file
View File

@ -0,0 +1,4 @@
upgraded to v4.5.0, and also switched from postgres:16 to pgautoupgrade/pgautoupgrade:18-bookworm
for automatic major version upgrades
no actions by operator should be necessary