101ffe19649530fd6c1597b99feaefb9a3d2bcef
The postgres major-version migration in the db entrypoint was not safe to
re-run. If the container was killed mid-migration it could crash-loop forever
("mkdir: cannot create directory .../old_data: File exists") or silently initdb
a fresh empty cluster over the live data once PG_VERSION had been moved out of
$PGDATA but before the in-progress marker was written.
Replace the marker file with a state-driven guard keyed on the scratch dirs:
empty old_data/new_data means the run was interrupted before any data moved, so
discard and retry (idempotent); non-empty means data may only live there, so
stop for manual recovery. Bump DB_ENTRYPOINT_VERSION v1->v2 so swarm picks up
the new (immutable) config.
Discourse
A platform for community discussion
- Category: Apps
- Status:
- Image:
bitnami/discourse - Healthcheck: yes
- Backups: no
- Email: yes
- Tests: no
- SSO: no
Basic usage
- Set up Docker Swarm and
abra - Deploy
coop-cloud/traefik abra app new discourse --secrets(optionally with--passif you'd like to save secrets inpass)abra app config YOURAPPDOMAIN- be sure to change$DOMAINto something that resolves to your Docker swarm boxabra app deploy YOURAPPDOMAIN- Open the configured domain in your browser to finish set-up
To add a new admin user
- Login to the instance
abra app run APPNAME app sh cd /opt/bitnami/discourseRAILS_ENV=production bundle exec rake admin:createand follow prompts.
Install plugins
- Login to instance
abra app run APPNAME app sh cd /bitnami/discourse/plugins/git clone plugin.gitfor examplehttps://github.com/discourse/discourse-openid-connect.gitabra app restart YOURAPPDOMAIN app
Events / calendar plugin
We've had some luck running discourse-events.
Setup Notes
Until issue #1 is fixed, the default user is user and the default password is bitnami123
Postgres major version upgrades
Welcome to hell.
abra app run YOURAPPDOMAIN db pg_dumpall -U discourse | gzip > YOURAPPDOMAIN_db_DATE.sql.gzabra app volume ls YOURAPPDOMAIN, find the name of the Postgres data volumescpthe backup to your VPSabra app undeploy YOURAPPDOMAINabra app volume rm YOURAPPDOMAIN, choose the Postgres data volumeabra app deploy YOURAPPDOMAIN, thenabra app undeploy YOURAPPDOMAINsshto the VPS, run (replacing13-alpinewith the new Postgres version)docker run -v YOURDATAVOLUME:/var/lib/postgresql/data -e POSTGRES_HOST_AUTH_METHOD=trust -it postgres:13-alpine- In another SSH session on the server, run
docker psto find the ID of the new Postgres container, thendocker exec -it CONTAINERID bash - In the shell you just launched, run
dropdb -U discourse discourse, thencreatedb -U discourse discourse, then Ctrl+D or runexit - In the second SSH session, run
zcat YOURAPPDOMAIN_db_DATE.sql.gz | docker exec -it CONTAINERID psql -U discourse - Exit the second SSH session
- Back in the first SSH session, Ctrl+C to shut down the database
abra app deploy YOURAPPDOMAIN
Languages
Shell
100%