I’m having the same issue as the OP – I tried to upgrade via the UI, but it failed and knocked the site offline.
I’ve let it run overnight, but no joy. In fact, it seems to lock the instance and I have to restart it through the AWS console to even be able to connect again.
I thought maybe I didn’t have enough room to rebuild, but doubling the the EBS didn’t seem to help.
Summary
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1031-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Thu Jul 10 14:26:49 UTC 2025
System load: 0.13 Processes: 111
Usage of /: 56.9% of 47.39GB Users logged in: 0
Memory usage: 24% IPv4 address for enX0: 172.31.60.182
Swap usage: 0%
Expanded Security Maintenance for Applications is not enabled.
173 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
Last login: Thu Jul 10 12:14:09 2025 from 18.206.107.28
ubuntu@ip-172-31-60-182:~$ cd /var/discourse/
ubuntu@ip-172-31-60-182:/var/discourse$ launcher stop app
launcher: command not found
ubuntu@ip-172-31-60-182:/var/discourse$ /launcher stop app
-bash: /launcher: No such file or directory
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher stop app
Cannot connect to the docker daemon - verify it is running and you have access
ubuntu@ip-172-31-60-182:/var/discourse$ docker status
docker: 'status' is not a docker command.
See 'docker --help'
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher update app
Cannot connect to the docker daemon - verify it is running and you have access
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher rebuild app
Cannot connect to the docker daemon - verify it is running and you have access
ubuntu@ip-172-31-60-182:/var/discourse$ docker version
Client: Docker Engine - Community
Version: 27.1.2
API version: 1.46
Go version: go1.21.13
Git commit: d01f264
Built: Mon Aug 12 11:50:54 2024
OS/Arch: linux/amd64
Context: default
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.46/version": dial unix /var/run/docker.sock: connect: permission denied
ubuntu@ip-172-31-60-182:/var/discourse$ sudo docker version
Client: Docker Engine - Community
Version: 27.1.2
API version: 1.46
Go version: go1.21.13
Git commit: d01f264
Built: Mon Aug 12 11:50:54 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 27.1.2
API version: 1.46 (minimum version 1.24)
Go version: go1.21.13
Git commit: f9522e5
Built: Mon Aug 12 11:50:54 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.20
GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353
runc:
Version: 1.1.13
GitCommit: v1.1.13-0-g58aa920
docker-init:
Version: 0.19.0
GitCommit: de40ad0
ubuntu@ip-172-31-60-182:/var/discourse$ sudo su -
root@ip-172-31-60-182:~# cd /var/discourse
root@ip-172-31-60-182:/var/discourse# ./launcher update app
x86_64 arch detected.
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
start: Start/initialize a container
stop: Stop a running container
restart: Restart a container
destroy: Stop and remove a container
enter: Open a shell to run commands inside the container
logs: View the Docker logs for a container
bootstrap: Bootstrap a container for the config based on a template
run: Run the given command with the config in the context of the last bootstrapped image
rebuild: Rebuild a container (destroy old, bootstrap, start new)
cleanup: Remove all containers that have stopped for > 24 hours
start-cmd: Generate docker command used to start container
Options:
--skip-prereqs Don't check launcher prerequisites
--docker-args Extra arguments to pass when running docker
--skip-mac-address Don't assign a mac address
--run-image Override the image used for running the container
root@ip-172-31-60-182:/var/discourse# ./launcher run app
x86_64 arch detected.
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
root@ip-172-31-60-182:/var/discourse# sudo ./launcher run app
x86_64 arch detected.
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
root@ip-172-31-60-182:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
2.0.20250710-0019: Pulling from discourse/base
Digest: sha256:9f9e69653b83259d951b2bc63393a9200a6a260db0a0b55bf85ab567f596c9a3
Status: Image is up to date for discourse/base:2.0.20250710-0019
docker.io/discourse/base:2.0.20250710-0019
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-07-10T14:34:06.749840 #1] INFO -- : Reading from stdin
I, [2025-07-10T14:34:06.783263 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2025-07-10T14:34:06.787190 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2025-07-10T14:34:06.794555 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2025-07-10T14:34:06.800229 #1] INFO -- : File > /root/install_postgres chmod: +x chown:
I, [2025-07-10T14:34:06.804200 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2025-07-10T14:34:06.808529 #1] INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.816873 #1] INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.817572 #1] INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.821784 #1] INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.822781 #1] INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.824081 #1] INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.825023 #1] INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.826225 #1] INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.827143 #1] INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-07-10T14:34:06.829174 #1] INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-07-10T14:34:06.831036 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-07-10T14:34:06.831299 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-07-10T14:34:06.832342 #1] INFO -- : > if [ -f /root/install_postgres ]; then
/root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
2025/07/10 14:34:09 socat[33] E connect(, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Connection refused
I, [2025-07-10T14:34:09.325619 #1] INFO -- : Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
I, [2025-07-10T14:34:09.326466 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-07-10T14:34:09.336782 #1] INFO -- : File > /usr/local/bin/create_db chmod: +x chown:
I, [2025-07-10T14:34:09.356777 #1] INFO -- : File > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2025-07-10T14:34:09.369678 #1] INFO -- : File > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2025-07-10T14:34:09.370276 #1] INFO -- : > sleep 5
2025-07-10 14:34:09.616 UTC [38] LOG: starting PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-07-10 14:34:09.618 UTC [38] LOG: listening on IPv4 address "0.0.0.0", port 5432
2025-07-10 14:34:09.618 UTC [38] LOG: listening on IPv6 address "::", port 5432
2025-07-10 14:34:09.624 UTC [38] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-07-10 14:34:09.651 UTC [49] LOG: database system was interrupted; last known up at 2025-07-10 12:26:43 UTC
2025-07-10 14:34:09.723 UTC [49] LOG: database system was not properly shut down; automatic recovery in progress
2025-07-10 14:34:09.732 UTC [49] LOG: redo starts at B/E8A9AB18
2025-07-10 14:34:09.732 UTC [49] LOG: invalid record length at B/E8A9AC00: wanted 24, got 0
2025-07-10 14:34:09.732 UTC [49] LOG: redo done at B/E8A9ABC8 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
2025-07-10 14:34:09.741 UTC [47] LOG: checkpoint starting: end-of-recovery immediate wait
2025-07-10 14:34:09.758 UTC [47] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.005 s, sync=0.002 s, total=0.020 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB
2025-07-10 14:34:09.780 UTC [38] LOG: database system is ready to accept connections
I, [2025-07-10T14:34:14.374060 #1] INFO -- :
I, [2025-07-10T14:34:14.374950 #1] INFO -- : > /usr/local/bin/create_db
2025-07-10 14:34:14.556 UTC [56] postgres@postgres ERROR: database "discourse" already exists
2025-07-10 14:34:14.556 UTC [56] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR: database "discourse" already exists
2025-07-10 14:34:14.653 UTC [59] postgres@discourse ERROR: role "discourse" already exists
2025-07-10 14:34:14.653 UTC [59] postgres@discourse STATEMENT: create user discourse;
ERROR: role "discourse" already exists
NOTICE: extension "hstore" already exists, skipping
NOTICE: extension "pg_trgm" already exists, skipping
NOTICE: extension "vector" already exists, skipping
NOTICE: version "0.8.0" of extension "vector" is already installed
NOTICE: extension "hstore" already exists, skipping
NOTICE: extension "pg_trgm" already exists, skipping
NOTICE: extension "vector" already exists, skipping
NOTICE: version "0.8.0" of extension "vector" is already installed
I, [2025-07-10T14:34:15.375245 #1] INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0
I, [2025-07-10T14:34:15.375613 #1] INFO -- : > echo postgres installed!
I, [2025-07-10T14:34:15.380090 #1] INFO -- : postgres installed!
I, [2025-07-10T14:34:15.384491 #1] INFO -- : File > /etc/service/redis/run chmod: +x chown:
I, [2025-07-10T14:34:15.388524 #1] INFO -- : File > /etc/service/redis/log/run chmod: +x chown:
I, [2025-07-10T14:34:15.392347 #1] INFO -- : File > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2025-07-10T14:34:15.394875 #1] INFO -- : Replacing daemonize yes with in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.400010 #1] INFO -- : Replacing (?-mix:^pidfile.*$) with in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.400706 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-07-10T14:34:15.407363 #1] INFO -- :
I, [2025-07-10T14:34:15.407683 #1] INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.408567 #1] INFO -- : Replacing (?-mix:^bind .*$) with in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.409953 #1] INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.411380 #1] INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.412629 #1] INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2025-07-10T14:34:15.413828 #1] INFO -- : > echo redis installed
I, [2025-07-10T14:34:15.415894 #1] INFO -- : redis installed
I, [2025-07-10T14:34:15.416407 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-07-10T14:34:15.422899 #1] INFO -- : logfile ""
I, [2025-07-10T14:34:15.423444 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-07-10T14:34:15.426194 #1] INFO -- : > sleep 10
105:C 10 Jul 2025 14:34:15.460 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
105:C 10 Jul 2025 14:34:15.460 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=105, just started
105:C 10 Jul 2025 14:34:15.460 # Configuration loaded
105:M 10 Jul 2025 14:34:15.460 * monotonic clock: POSIX clock_gettime
105:M 10 Jul 2025 14:34:15.464 * Running mode=standalone, port=6379.
105:M 10 Jul 2025 14:34:15.465 # Server initialized
105:M 10 Jul 2025 14:34:15.465 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
105:M 10 Jul 2025 14:34:15.465 # WARNING Your system is configured to use the 'xen' clocksource which might lead to degraded performance. Check the result of the [slow-clocksource] system check: run 'redis-server --check-system' to check if the system's clocksource isn't degrading performance.
105:M 10 Jul 2025 14:34:15.471 * Loading RDB produced by version 7.0.15
105:M 10 Jul 2025 14:34:15.471 * RDB age 7659 seconds
105:M 10 Jul 2025 14:34:15.471 * RDB memory usage when created 7.58 Mb
105:M 10 Jul 2025 14:34:15.505 * Done loading RDB, keys loaded: 1240, keys expired: 18.
105:M 10 Jul 2025 14:34:15.505 * DB loaded from disk: 0.036 seconds
105:M 10 Jul 2025 14:34:15.505 * Ready to accept connections
I, [2025-07-10T14:34:25.428346 #1] INFO -- :
I, [2025-07-10T14:34:25.428571 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-07-10T14:34:25.433266 #1] INFO -- : thpoff is installed!
I, [2025-07-10T14:34:25.434051 #1] INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2025-07-10T14:34:25.623161 #1] INFO -- :
I, [2025-07-10T14:34:25.623817 #1] INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-07-10T14:34:25.707792 #1] INFO -- :
I, [2025-07-10T14:34:25.708514 #1] INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2025-07-10T14:34:25.792429 #1] INFO -- :
I, [2025-07-10T14:34:25.793174 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-07-10T14:34:25.798896 #1] INFO -- :
I, [2025-07-10T14:34:25.801342 #1] INFO -- : File > /etc/cron.d/anacron chmod: chown:
I, [2025-07-10T14:34:25.808492 #1] INFO -- : File > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2025-07-10T14:34:25.812525 #1] INFO -- : File > /etc/service/unicorn/run chmod: +x chown:
I, [2025-07-10T14:34:25.816576 #1] INFO -- : File > /etc/service/nginx/run chmod: +x chown:
I, [2025-07-10T14:34:25.820635 #1] INFO -- : File > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2025-07-10T14:34:25.824561 #1] INFO -- : File > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2025-07-10T14:34:25.825004 #1] INFO -- : Replacing # postgres with if [ -f /root/install_postgres ]; then
/root/install_postgres
rm /root/install_postgres
fi
sv start postgres || exit 1
in /etc/service/unicorn/run
I, [2025-07-10T14:34:25.826554 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-07-10T14:34:26.964358 #1] INFO -- :
I, [2025-07-10T14:34:26.964998 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
git remote set-branches --add origin main
git remote set-branches origin tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/0-a-reactions
- [deleted] (none) -> origin/dev/gravatar-toggle-setting
- [deleted] (none) -> origin/dev/load-admin-bundles-for-staff-only
- [deleted] (none) -> origin/fix-composer-dmenu-tablets
- [deleted] (none) -> origin/fix-readonly-take-2
- [deleted] (none) -> origin/fix/mt/upload-optimization
63df79592..2e11eb20b main -> origin/main
+ 37e2eed7b...e8ef2f73b dev-floatkit-autocomplete-d-editor -> origin/dev-floatkit-autocomplete-d-editor (forced update)
a42149b9f..5f1148cc8 dev-lock-alias -> origin/dev-lock-alias
* [new branch] dev/remove-automatic-backups-enabled -> origin/dev/remove-automatic-backups-enabled
* [new branch] edit-category-description-layout-fix -> origin/edit-category-description-layout-fix
4ebd596a2..75d289b97 feature/composer-toolbar-heading-list -> origin/feature/composer-toolbar-heading-list
44fb1a213..f07b9cbab feature/theme-site-settings -> origin/feature/theme-site-settings
7faaab65c..6043ede0a load-post-draft-from-reply-btn -> origin/load-post-draft-from-reply-btn
+ dcaa1a5cf...cae266b62 loic-upgrade-rails-8.0 -> origin/loic-upgrade-rails-8.0 (forced update)
b1e0591e3..e8ef2f73b sandbox/dev-xp-1 -> origin/sandbox/dev-xp-1
876dbe662..530fbe111 sandbox/dev-xp-2 -> origin/sandbox/dev-xp-2
daabd040e..75d289b97 sandbox/member-xp-4 -> origin/sandbox/member-xp-4
* [new branch] send-email-when-signing-up-via-external-auth -> origin/send-email-when-signing-up-via-external-auth
* [new branch] skipped-address-filter -> origin/skipped-address-filter
f70640f77..a83bd0f67 stable -> origin/stable
6e03440b0..2e11eb20b tests-passed -> origin/tests-passed
* [new branch] translations-from-crowdin-main -> origin/translations-from-crowdin-main
* [new branch] translations-from-crowdin-stable -> origin/translations-from-crowdin-stable
I, [2025-07-10T14:34:28.010715 #1] INFO -- :
I, [2025-07-10T14:34:28.011023 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
Switched to a new branch 'tests-passed'
I, [2025-07-10T14:34:40.617744 #1] INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.
I, [2025-07-10T14:34:40.618255 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2025-07-10T14:34:40.629799 #1] INFO -- :
I, [2025-07-10T14:34:40.630226 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-07-10T14:34:40.633195 #1] INFO -- :
I, [2025-07-10T14:34:40.633585 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-07-10T14:34:40.636417 #1] INFO -- :
I, [2025-07-10T14:34:40.636731 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-07-10T14:34:40.639770 #1] INFO -- :
I, [2025-07-10T14:34:40.640244 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-07-10T14:34:40.643048 #1] INFO -- :
I, [2025-07-10T14:34:40.643395 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-07-10T14:34:40.648782 #1] INFO -- :
I, [2025-07-10T14:34:40.649284 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2025-07-10T14:34:40.653705 #1] INFO -- :
I, [2025-07-10T14:34:40.654203 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-07-10T14:34:40.660408 #1] INFO -- :
I, [2025-07-10T14:34:40.660856 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-07-10T14:34:40.669796 #1] INFO -- :
I, [2025-07-10T14:34:40.670284 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2025-07-10T14:34:40.674466 #1] INFO -- :
I, [2025-07-10T14:34:40.674928 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-07-10T14:34:40.680307 #1] INFO -- :
I, [2025-07-10T14:34:40.680774 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2025-07-10T14:34:40.686442 #1] INFO -- :
I, [2025-07-10T14:34:40.686862 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-07-10T14:34:40.691052 #1] INFO -- :
I, [2025-07-10T14:34:40.691529 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-07-10T14:34:40.943384 #1] INFO -- :
I, [2025-07-10T14:34:40.943501 #1] INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-07-10T14:34:40.946212 #1] INFO -- :
I, [2025-07-10T14:34:40.946735 #1] INFO -- : Replacing # redis with if [ ! -d /shared/redis_data ]; then
install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-07-10T14:34:40.947772 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2025-07-10T14:34:41.920020 #1] INFO -- :
I, [2025-07-10T14:34:41.920542 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-yearly-review
Cloning into 'discourse-yearly-review'...
I, [2025-07-10T14:34:42.189827 #1] INFO -- :
I, [2025-07-10T14:34:42.190570 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-cakeday
Cloning into 'discourse-cakeday'...
I, [2025-07-10T14:34:42.489411 #1] INFO -- :
I, [2025-07-10T14:34:42.489888 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/angusmcleod/discourse-ratings.git
Cloning into 'discourse-ratings'...
I, [2025-07-10T14:34:42.792033 #1] INFO -- :
I, [2025-07-10T14:34:42.792683 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-calendar
Cloning into 'discourse-calendar'...
I, [2025-07-10T14:34:43.546091 #1] INFO -- :
I, [2025-07-10T14:34:43.547502 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-07-10T14:34:43.561409 #1] INFO -- :
I, [2025-07-10T14:34:43.561632 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-07-10T14:34:43.566037 #1] INFO -- :
I, [2025-07-10T14:34:43.566244 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2025-07-10T14:34:43.568477 #1] INFO -- :
I, [2025-07-10T14:34:43.569068 #1] INFO -- : > grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.571902 #1] INFO -- :
I, [2025-07-10T14:34:43.572250 #1] INFO -- : > grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.575152 #1] INFO -- :
I, [2025-07-10T14:34:43.575592 #1] INFO -- : > grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "discourse" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.578518 #1] INFO -- :
I, [2025-07-10T14:34:43.578955 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/before-server
I, [2025-07-10T14:34:43.581226 #1] INFO -- :
I, [2025-07-10T14:34:43.581753 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
I, [2025-07-10T14:34:43.583621 #1] INFO -- :
I, [2025-07-10T14:34:43.583900 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf
I, [2025-07-10T14:34:43.586013 #1] INFO -- :
I, [2025-07-10T14:34:43.586181 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/server
I, [2025-07-10T14:34:43.588522 #1] INFO -- :
I, [2025-07-10T14:34:43.589108 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/10-http.conf
I, [2025-07-10T14:34:43.591027 #1] INFO -- :
I, [2025-07-10T14:34:43.591377 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/20-https.conf
I, [2025-07-10T14:34:43.593154 #1] INFO -- :
I, [2025-07-10T14:34:43.593653 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf
I, [2025-07-10T14:34:43.595616 #1] INFO -- :
I, [2025-07-10T14:34:43.595991 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/discourse
I, [2025-07-10T14:34:43.598072 #1] INFO -- :
I, [2025-07-10T14:34:43.598471 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/20-https.conf
I, [2025-07-10T14:34:43.600421 #1] INFO -- :
I, [2025-07-10T14:34:43.601002 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf
I, [2025-07-10T14:34:43.602883 #1] INFO -- :
I, [2025-07-10T14:34:43.604077 #1] INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2025-07-10T14:34:43.606485 #1] INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections; in /etc/nginx/nginx.conf
I, [2025-07-10T14:34:43.606808 #1] INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size; in /etc/nginx/conf.d/discourse.conf
I, [2025-07-10T14:34:43.607501 #1] INFO -- : > sed -i 's#listen 80;##g' /etc/nginx/conf.d/discourse.conf
I, [2025-07-10T14:34:43.611686 #1] INFO -- :
I, [2025-07-10T14:34:43.612254 #1] INFO -- : > if [ -f "/proc/net/if_inet6" ]; then
echo "listen 80;\nlisten [::]:80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
else
echo "listen 80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
fi
I, [2025-07-10T14:34:43.614205 #1] INFO -- :
I, [2025-07-10T14:34:43.614712 #1] INFO -- : > echo "done configuring web"
I, [2025-07-10T14:34:43.616568 #1] INFO -- : done configuring web
I, [2025-07-10T14:34:43.617121 #1] INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-07-10T14:34:44.144672 #1] INFO -- :
I, [2025-07-10T14:34:44.145379 #1] INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2025-07-10T14:34:58.288175 #1] INFO -- :
I, [2025-07-10T14:34:58.298580 #1] INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
if [ -d node_modules/.pnpm ]; then
echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
fi
su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-07-10T14:35:07.928627 #1] INFO -- : Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date
Done in 5.4s using pnpm v9.15.9
Lockfile is up to date, resolution step is skipped
Already up to date
I, [2025-07-10T14:35:07.934991 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
I, [2025-07-10T14:35:09.407430 #1] INFO -- : Bundle complete! 143 Gemfile dependencies, 190 gems now installed.
Gems in the groups 'test' and 'development' were not installed.
Bundled gems are installed into `./vendor/bundle`
3 installed gems you directly depend on are looking for funding.
Run `bundle fund` for details
I, [2025-07-10T14:35:09.407945 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle clean'
I, [2025-07-10T14:35:09.843516 #1] INFO -- :
I, [2025-07-10T14:35:09.844596 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name cache -not -path "*/gems/*" -type d -exec rm -rf {} +'
I, [2025-07-10T14:35:13.000166 #1] INFO -- :
I, [2025-07-10T14:35:13.000275 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} +'
I, [2025-07-10T14:35:13.145199 #1] INFO -- :
I, [2025-07-10T14:35:13.150515 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2025-07-10T14:35:19.066578 #1] INFO -- : discourse-cakeday is already at latest compatible version
discourse-calendar is already at latest compatible version
discourse-ratings is already at latest compatible version
discourse-yearly-review is already at latest compatible version
docker_manager is already at latest compatible version
I, [2025-07-10T14:35:19.068741 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-07-10T14:35:19.083032 #1] INFO -- : > sleep 10
399:C 10 Jul 2025 14:35:19.103 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
399:C 10 Jul 2025 14:35:19.103 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=399, just started
399:C 10 Jul 2025 14:35:19.104 # Configuration loaded
399:M 10 Jul 2025 14:35:19.105 * monotonic clock: POSIX clock_gettime
399:M 10 Jul 2025 14:35:19.105 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
399:M 10 Jul 2025 14:35:19.105 # Failed listening on port 6379 (TCP), aborting.
I, [2025-07-10T14:35:29.088163 #1] INFO -- :
I, [2025-07-10T14:35:29.089838 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2025-07-10T14:35:58.643957 #1] INFO -- :
I, [2025-07-10T14:35:58.671217 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile:build'
Node.js heap_size_limit is less than 2048MB. Setting --max-old-space-size=2048 and CHEAP_SOURCE_MAPS=1
No existing build info file found.
Running full core build...
...[ConfigLoader]
...[Babel: @embroider/macros > applyPatches]
...[Babel: pretty-text > applyPatches]
...[Babel: @ember/legacy-built-in-components > applyPatches]
...[Babel: ember-source > applyPatches]
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js as it exceeds the max of 500KB.
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js as it exceeds the max of 500KB.
...[Babel: @glimmer/component > applyPatches]
...[Babel: @ember/render-modifiers > applyPatches]
...[Babel: dialog-holder > applyPatches]
...[Babel: ember-this-fallback > applyPatches]
...[Babel: ember-cached-decorator-polyfill > applyPatches]
...[Babel: float-kit > applyPatches]
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
2025-07-10 14:39:10.537 UTC [47] LOG: checkpoint starting: time
2025-07-10 14:39:15.479 UTC [47] LOG: checkpoint complete: wrote 32 buffers (0.2%); 0 WAL file(s) added, 0 removed, 0 recycled; write=4.708 s, sync=0.009 s, total=5.522 s; sync files=23, longest=0.007 s, average=0.001 s; distance=134 kB, estimate=134 kB
105:M 10 Jul 2025 14:39:16.016 * 100 changes in 300 seconds. Saving...
105:M 10 Jul 2025 14:39:16.063 * Background saving started by pid 676
676:C 10 Jul 2025 14:39:17.341 * DB saved on disk
676:C 10 Jul 2025 14:39:17.341 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
105:M 10 Jul 2025 14:39:17.368 * Background saving terminated with success
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[SourceMapConcat]
[WARN] (broccoli-terser-sourcemap) Minifying "assets/admin.js" took: 331711ms (more than 20,000ms)
...[Babel: discourse > applyPatches]
...[SourceMapConcat]
...[Babel: discourse-plugins > applyPatches]
...[SourceMapConcat]