github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 3fe0010b62799cf29905cde092e25b78b8b6c834 https://github.com/dreamwidth/dreamwidth/commit/3fe0010b62799cf29905cde092e25b78b8b6c834 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/tasks/web-canary-service.json M .github/workflows/tasks/web-shop-service.json M .github/workflows/tasks/web-stable-service.json M .github/workflows/tasks/web-unauthenticated-service.json A terraform/import.sh M terraform/providers.tf M terraform/web.tf

Log Message:


Give each web service its own CloudWatch log group

Web services previously shared /dreamwidth/web, making it hard to view logs for a specific service. Each now gets /dreamwidth/web/{key} matching how workers already have /dreamwidth/worker/{name}.

  • Add per-web log groups in terraform (keep legacy group for old logs)
  • Update task definition JSONs to use per-service log groups
  • Add S3 backend config for terraform state
  • Add terraform import script for bootstrapping state

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ace801e57d9f8b5cb4fe833aacca10c6eae6a2ab https://github.com/dreamwidth/dreamwidth/commit/ace801e57d9f8b5cb4fe833aacca10c6eae6a2ab Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/ci.yml M cgi-bin/DW/Request/Apache2.pm

Log Message:


Fix Apache2::Const load-order issue in compile tests

When modules like LJ::URI load Apache2::Const with :common first, a subsequent use Apache2::Const -compile => qw/ :common :http / is a no-op because Perl skips the import for already-loaded modules. This leaves the :http constants uncompiled, failing as barewords under strict subs.

Use an explicit BEGIN { Apache2::Const->compile(...) } which works regardless of prior load state. Also revert the unnecessary PERL5LIB workaround from the CI workflow.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ef93698f49b622ae9026cee6c45b50231347da06 https://github.com/dreamwidth/dreamwidth/commit/ef93698f49b622ae9026cee6c45b50231347da06 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/ci.yml

Log Message:


Add mod_perl lib path to PERL5LIB in CI workflow

Apache2::Const and other mod_perl Perl modules are installed to a non-standard path that only Apache adds to [personal profile] inc. Dynamically find the path via dpkg so compile tests pass for all modules.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: eab03fce7e7953b512009ad9646522f1183f618d https://github.com/dreamwidth/dreamwidth/commit/eab03fce7e7953b512009ad9646522f1183f618d Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: A .github/workflows/ci.yml

Log Message:


Add CI workflow for tidy and compile checks

Runs t/02-tidy.t (code formatting) and t/00-compile.t (module compilation) on PRs and pushes to main, using the existing devcontainer image which has all dependencies pre-installed.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e90510483267365e138d4ecd15b0fe0caa4e8ece https://github.com/dreamwidth/dreamwidth/commit/e90510483267365e138d4ecd15b0fe0caa4e8ece Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R etc/kubernetes/datadog/README.md R etc/kubernetes/datadog/datadog-agent-rbac.yaml R etc/kubernetes/datadog/datadog-cluster-agent-rbac.yaml R etc/kubernetes/datadog/datadog-cluster-agent-service.yaml R etc/kubernetes/datadog/datadog-cluster-agent.yaml R etc/kubernetes/datadog/datadog-custom-metrics-server.yaml R etc/kubernetes/datadog/datadog-secret.yaml R etc/kubernetes/datadog/datadog.yaml R etc/kubernetes/datadog/rbac-hpa.yaml R etc/kubernetes/web/secrets/config-local.pl R etc/kubernetes/web/secrets/config-private.pl R etc/kubernetes/web/secrets/config.pl R etc/kubernetes/web/secrets/log4perl.conf R etc/kubernetes/web/update-secrets.sh R etc/kubernetes/web/web-ingress.yaml R etc/kubernetes/web/web-service.yaml R etc/kubernetes/web/web.yaml R etc/kubernetes/workers/generated/birthday-notify.yaml R etc/kubernetes/workers/generated/change-poster-id.yaml R etc/kubernetes/workers/generated/codebuild-notifier.yaml R etc/kubernetes/workers/generated/directory-meta.yaml R etc/kubernetes/workers/generated/distribute-invites.yaml R etc/kubernetes/workers/generated/dw-esn-cluster-subs.yaml R etc/kubernetes/workers/generated/dw-esn-filter-subs.yaml R etc/kubernetes/workers/generated/dw-esn-fired-event.yaml R etc/kubernetes/workers/generated/dw-esn-process-sub.yaml R etc/kubernetes/workers/generated/dw-send-email.yaml R etc/kubernetes/workers/generated/embeds.yaml R etc/kubernetes/workers/generated/esn-cluster-subs.yaml R etc/kubernetes/workers/generated/esn-filter-subs.yaml R etc/kubernetes/workers/generated/esn-fired-event.yaml R etc/kubernetes/workers/generated/esn-process-sub.yaml R etc/kubernetes/workers/generated/metrics-emitter.yaml R etc/kubernetes/workers/generated/resolve-extacct.yaml R etc/kubernetes/workers/generated/spellcheck-gm.yaml R etc/kubernetes/workers/generated/sphinx-copier.yaml R etc/kubernetes/workers/generated/sphinx-search-gm.yaml R etc/kubernetes/workers/generated/synsuck.yaml R etc/kubernetes/workers/hpa-cpu.yaml.template R etc/kubernetes/workers/hpa-sqs.yaml.template R etc/kubernetes/workers/regen-workers.pl R etc/kubernetes/workers/worker.yaml.template

Log Message:


Remove unused Kubernetes manifests — deployment moved to ECS

These configs (web, workers, Datadog) are left over from a previous Kubernetes deployment. All production infrastructure now runs on AWS ECS and nothing in the codebase references these files.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d8f13b74cf96b5c3e1fe4d10f27131360967f4db https://github.com/dreamwidth/dreamwidth/commit/d8f13b74cf96b5c3e1fe4d10f27131360967f4db Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R .github/workflows/tasks/worker-send-email-ses-service.json M .github/workflows/worker-deploy.yml M .github/workflows/worker22-deploy.yml M config/workers.json

Log Message:


Remove dead send-email-ses worker — replaced by dw-send-email

The send-email-ses worker script no longer exists in the repo; it was superseded by dw-send-email (DW::TaskQueue/SQS). Remove the orphaned ECS task definition, deploy workflow entries, and workers.json config.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: c6233b86ee47b0048612b74219d0424511ba8fd8 https://github.com/dreamwidth/dreamwidth/commit/c6233b86ee47b0048612b74219d0424511ba8fd8 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M cgi-bin/Plack/Middleware/DW/SubdomainFunction.pm

Log Message:


Handle __setdomsess in Plack SubdomainFunction middleware

Apache handles /setdomsess on subdomains (shop, journals) in its translation handler to set domain session cookies and redirect. The Plack middleware was missing this, causing 404s on shop.dreamwidth.org when the login flow bounced through /setdomsess.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 1d45aae01c9a5a6f56772cbd670115a16ad71c7c https://github.com/dreamwidth/dreamwidth/commit/1d45aae01c9a5a6f56772cbd670115a16ad71c7c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R .github/workflows/shop-build.yml R .github/workflows/shop-deploy.yml M .github/workflows/web22-deploy.yml R etc/docker/shop/Dockerfile R etc/docker/shop/config/.dir_scope R etc/docker/shop/config/dreamwidth-dev.conf R etc/docker/shop/config/dreamwidth-prod.conf R etc/docker/shop/config/etc/apache2/apache2.conf R etc/docker/shop/config/etc/apache2/conf-available/charset.conf R etc/docker/shop/config/etc/apache2/conf-available/localized-error-pages.conf R etc/docker/shop/config/etc/apache2/conf-available/other-vhosts-access-log.conf R etc/docker/shop/config/etc/apache2/conf-available/security.conf R etc/docker/shop/config/etc/apache2/conf-available/serve-cgi-bin.conf R etc/docker/shop/config/etc/apache2/conf-enabled/security.conf R etc/docker/shop/config/etc/apache2/envvars R etc/docker/shop/config/etc/apache2/magic R etc/docker/shop/config/etc/apache2/mods-available/access_compat.load R etc/docker/shop/config/etc/apache2/mods-available/actions.conf R etc/docker/shop/config/etc/apache2/mods-available/actions.load R etc/docker/shop/config/etc/apache2/mods-available/alias.conf R etc/docker/shop/config/etc/apache2/mods-available/alias.load R etc/docker/shop/config/etc/apache2/mods-available/allowmethods.load R etc/docker/shop/config/etc/apache2/mods-available/apreq2.load R etc/docker/shop/config/etc/apache2/mods-available/asis.load R etc/docker/shop/config/etc/apache2/mods-available/auth_basic.load R etc/docker/shop/config/etc/apache2/mods-available/auth_digest.load R etc/docker/shop/config/etc/apache2/mods-available/auth_form.load R etc/docker/shop/config/etc/apache2/mods-available/authn_anon.load R etc/docker/shop/config/etc/apache2/mods-available/authn_core.load R etc/docker/shop/config/etc/apache2/mods-available/authn_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/authn_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/authn_file.load R etc/docker/shop/config/etc/apache2/mods-available/authn_socache.load R etc/docker/shop/config/etc/apache2/mods-available/authnz_fcgi.load R etc/docker/shop/config/etc/apache2/mods-available/authnz_ldap.load R etc/docker/shop/config/etc/apache2/mods-available/authz_core.load R etc/docker/shop/config/etc/apache2/mods-available/authz_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/authz_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/authz_groupfile.load R etc/docker/shop/config/etc/apache2/mods-available/authz_host.load R etc/docker/shop/config/etc/apache2/mods-available/authz_owner.load R etc/docker/shop/config/etc/apache2/mods-available/authz_user.load R etc/docker/shop/config/etc/apache2/mods-available/autoindex.conf R etc/docker/shop/config/etc/apache2/mods-available/autoindex.load R etc/docker/shop/config/etc/apache2/mods-available/buffer.load R etc/docker/shop/config/etc/apache2/mods-available/cache.load R etc/docker/shop/config/etc/apache2/mods-available/cache_disk.conf R etc/docker/shop/config/etc/apache2/mods-available/cache_disk.load R etc/docker/shop/config/etc/apache2/mods-available/cache_socache.load R etc/docker/shop/config/etc/apache2/mods-available/cern_meta.load R etc/docker/shop/config/etc/apache2/mods-available/cgi.load R etc/docker/shop/config/etc/apache2/mods-available/cgid.conf R etc/docker/shop/config/etc/apache2/mods-available/cgid.load R etc/docker/shop/config/etc/apache2/mods-available/charset_lite.load R etc/docker/shop/config/etc/apache2/mods-available/data.load R etc/docker/shop/config/etc/apache2/mods-available/dav.load R etc/docker/shop/config/etc/apache2/mods-available/dav_fs.conf R etc/docker/shop/config/etc/apache2/mods-available/dav_fs.load R etc/docker/shop/config/etc/apache2/mods-available/dav_lock.load R etc/docker/shop/config/etc/apache2/mods-available/dbd.load R etc/docker/shop/config/etc/apache2/mods-available/deflate.conf R etc/docker/shop/config/etc/apache2/mods-available/deflate.load R etc/docker/shop/config/etc/apache2/mods-available/dialup.load R etc/docker/shop/config/etc/apache2/mods-available/dir.conf R etc/docker/shop/config/etc/apache2/mods-available/dir.load R etc/docker/shop/config/etc/apache2/mods-available/dump_io.load R etc/docker/shop/config/etc/apache2/mods-available/echo.load R etc/docker/shop/config/etc/apache2/mods-available/env.load R etc/docker/shop/config/etc/apache2/mods-available/expires.load R etc/docker/shop/config/etc/apache2/mods-available/ext_filter.load R etc/docker/shop/config/etc/apache2/mods-available/file_cache.load R etc/docker/shop/config/etc/apache2/mods-available/filter.load R etc/docker/shop/config/etc/apache2/mods-available/headers.load R etc/docker/shop/config/etc/apache2/mods-available/heartbeat.load R etc/docker/shop/config/etc/apache2/mods-available/heartmonitor.load R etc/docker/shop/config/etc/apache2/mods-available/http2.load R etc/docker/shop/config/etc/apache2/mods-available/ident.load R etc/docker/shop/config/etc/apache2/mods-available/imagemap.load R etc/docker/shop/config/etc/apache2/mods-available/include.load R etc/docker/shop/config/etc/apache2/mods-available/info.conf R etc/docker/shop/config/etc/apache2/mods-available/info.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_bybusyness.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_byrequests.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_bytraffic.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_heartbeat.load R etc/docker/shop/config/etc/apache2/mods-available/ldap.conf R etc/docker/shop/config/etc/apache2/mods-available/ldap.load R etc/docker/shop/config/etc/apache2/mods-available/log_debug.load R etc/docker/shop/config/etc/apache2/mods-available/log_forensic.load R etc/docker/shop/config/etc/apache2/mods-available/lua.load R etc/docker/shop/config/etc/apache2/mods-available/macro.load R etc/docker/shop/config/etc/apache2/mods-available/mime.conf R etc/docker/shop/config/etc/apache2/mods-available/mime.load R etc/docker/shop/config/etc/apache2/mods-available/mime_magic.conf R etc/docker/shop/config/etc/apache2/mods-available/mime_magic.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_event.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_event.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_prefork.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_prefork.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_worker.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_worker.load R etc/docker/shop/config/etc/apache2/mods-available/negotiation.conf R etc/docker/shop/config/etc/apache2/mods-available/negotiation.load R etc/docker/shop/config/etc/apache2/mods-available/perl.load R etc/docker/shop/config/etc/apache2/mods-available/proxy.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_ajp.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_balancer.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_balancer.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_connect.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_express.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_fcgi.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_fdpass.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_ftp.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_ftp.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_hcheck.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_html.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_html.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_http.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_http2.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_scgi.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_wstunnel.load R etc/docker/shop/config/etc/apache2/mods-available/ratelimit.load R etc/docker/shop/config/etc/apache2/mods-available/reflector.load R etc/docker/shop/config/etc/apache2/mods-available/remoteip.load R etc/docker/shop/config/etc/apache2/mods-available/reqtimeout.conf R etc/docker/shop/config/etc/apache2/mods-available/reqtimeout.load R etc/docker/shop/config/etc/apache2/mods-available/request.load R etc/docker/shop/config/etc/apache2/mods-available/rewrite.load R etc/docker/shop/config/etc/apache2/mods-available/sed.load R etc/docker/shop/config/etc/apache2/mods-available/session.load R etc/docker/shop/config/etc/apache2/mods-available/session_cookie.load R etc/docker/shop/config/etc/apache2/mods-available/session_crypto.load R etc/docker/shop/config/etc/apache2/mods-available/session_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/setenvif.conf R etc/docker/shop/config/etc/apache2/mods-available/setenvif.load R etc/docker/shop/config/etc/apache2/mods-available/slotmem_plain.load R etc/docker/shop/config/etc/apache2/mods-available/slotmem_shm.load R etc/docker/shop/config/etc/apache2/mods-available/socache_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/socache_memcache.load R etc/docker/shop/config/etc/apache2/mods-available/socache_shmcb.load R etc/docker/shop/config/etc/apache2/mods-available/speling.load R etc/docker/shop/config/etc/apache2/mods-available/ssl.conf R etc/docker/shop/config/etc/apache2/mods-available/ssl.load R etc/docker/shop/config/etc/apache2/mods-available/status.conf R etc/docker/shop/config/etc/apache2/mods-available/status.load R etc/docker/shop/config/etc/apache2/mods-available/substitute.load R etc/docker/shop/config/etc/apache2/mods-available/suexec.load R etc/docker/shop/config/etc/apache2/mods-available/unique_id.load R etc/docker/shop/config/etc/apache2/mods-available/userdir.conf R etc/docker/shop/config/etc/apache2/mods-available/userdir.load R etc/docker/shop/config/etc/apache2/mods-available/usertrack.load R etc/docker/shop/config/etc/apache2/mods-available/vhost_alias.load R etc/docker/shop/config/etc/apache2/mods-available/xml2enc.load R etc/docker/shop/config/etc/apache2/mods-enabled/access_compat.load R etc/docker/shop/config/etc/apache2/mods-enabled/alias.conf R etc/docker/shop/config/etc/apache2/mods-enabled/alias.load R etc/docker/shop/config/etc/apache2/mods-enabled/apreq2.load R etc/docker/shop/config/etc/apache2/mods-enabled/auth_basic.load R etc/docker/shop/config/etc/apache2/mods-enabled/authn_core.load R etc/docker/shop/config/etc/apache2/mods-enabled/authn_file.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_core.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_host.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_user.load R etc/docker/shop/config/etc/apache2/mods-enabled/autoindex.conf R etc/docker/shop/config/etc/apache2/mods-enabled/autoindex.load R etc/docker/shop/config/etc/apache2/mods-enabled/deflate.conf R etc/docker/shop/config/etc/apache2/mods-enabled/deflate.load R etc/docker/shop/config/etc/apache2/mods-enabled/dir.conf R etc/docker/shop/config/etc/apache2/mods-enabled/dir.load R etc/docker/shop/config/etc/apache2/mods-enabled/env.load R etc/docker/shop/config/etc/apache2/mods-enabled/filter.load R etc/docker/shop/config/etc/apache2/mods-enabled/mime.conf R etc/docker/shop/config/etc/apache2/mods-enabled/mime.load R etc/docker/shop/config/etc/apache2/mods-enabled/mpm_prefork.conf R etc/docker/shop/config/etc/apache2/mods-enabled/mpm_prefork.load R etc/docker/shop/config/etc/apache2/mods-enabled/negotiation.conf R etc/docker/shop/config/etc/apache2/mods-enabled/negotiation.load R etc/docker/shop/config/etc/apache2/mods-enabled/perl.load R etc/docker/shop/config/etc/apache2/mods-enabled/reqtimeout.conf R etc/docker/shop/config/etc/apache2/mods-enabled/reqtimeout.load R etc/docker/shop/config/etc/apache2/mods-enabled/setenvif.conf R etc/docker/shop/config/etc/apache2/mods-enabled/setenvif.load R etc/docker/shop/config/etc/apache2/mods-enabled/status.conf R etc/docker/shop/config/etc/apache2/mods-enabled/status.load R etc/docker/shop/config/etc/apache2/ports.conf R etc/docker/shop/config/etc/apache2/sites-available/000-default.conf R etc/docker/shop/config/etc/apache2/sites-available/default-ssl.conf R etc/docker/shop/config/etc/varnish/dreamwidth.vcl R etc/docker/shop/scripts/setup.sh R etc/docker/shop/scripts/startup-dev.sh R etc/docker/shop/scripts/startup-prod.sh

Log Message:


Consolidate shop image into web22 — they're identical

The shop and web22 Docker images were byte-for-byte identical (same base, same configs, same startup scripts). Remove the separate shop build/deploy workflows and Dockerfile, and add web-shop as a deploy target in web22-deploy.yml instead.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d7afa745f32d0482c0e8f3da2c041d92a9b5f636 https://github.com/dreamwidth/dreamwidth/commit/d7afa745f32d0482c0e8f3da2c041d92a9b5f636 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M etc/docker/base/Dockerfile A etc/docker/base/build-static-legacy.sh

Log Message:


Preserve legacy build-static.sh for Ubuntu 18.04 base image

The 18.04 image still uses Compass/YUI which the new build-static.sh no longer supports. COPY a frozen copy of the old script into the image and overwrite the repo version before running the build. Can be removed when the 18.04 images are retired.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Commit: b6ef69d4b76f3f3846f49fb62a81d3afc41bc598 https://github.com/dreamwidth/dreamwidth/commit/b6ef69d4b76f3f3846f49fb62a81d3afc41bc598 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M CLAUDE.md

Log Message:


Add never-amend rule to CLAUDE.md git workflow instructions

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/8f82b8be8ff5...b6ef69d4b76f

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e26767b2e3f02ba7ff72fb279dcdf34cb894906a https://github.com/dreamwidth/dreamwidth/commit/e26767b2e3f02ba7ff72fb279dcdf34cb894906a Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M t/bin/initialize-db

Log Message:


Make initialize-db idempotent to avoid errors on rerun

Consolidate individual mysql calls into a single statement using CREATE USER/DATABASE IF NOT EXISTS, so the script can be run repeatedly without throwing errors on an already-initialized database.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Commit: 8f82b8be8ff5db0e7e7b0ff8678a4680e7f394b7 https://github.com/dreamwidth/dreamwidth/commit/8f82b8be8ff5db0e7e7b0ff8678a4680e7f394b7 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/Dockerfile M .devcontainer/setup.sh M bin/build-static.sh R config.rb M doc/dependencies-system M etc/docker/base22/Dockerfile R ext/dw-nonfree/config.rb

Log Message:


Replace Compass/YUI with Dart Sass/esbuild for static asset builds

  • Switch SCSS compilation from deprecated Ruby Compass to Dart Sass (installed via npm), with proper --load-path for import resolution
  • Replace YUI Compressor (Java) with esbuild (Node.js) for JS minification; CSS skips minification since Dart Sass already outputs compressed CSS
  • Add --sass and --compress flags to build-static.sh for selective builds; asset sync (rsync) always runs
  • Install Node.js 20 LTS via nodesource in devcontainer and base22 Dockerfiles; remove Ruby, Compass, default-jre, and YUI
  • Symlink pre-built static assets in devcontainer setup instead of copying them
  • Delete config.rb (Compass configuration) from both repos
  • Leave Ubuntu 18.04 base image unchanged (being deprecated)

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/4d2a30581c19...8f82b8be8ff5

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 4d2a30581c19aa0bbed317e1d87d05fa887026c5 https://github.com/dreamwidth/dreamwidth/commit/4d2a30581c19aa0bbed317e1d87d05fa887026c5 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/Dockerfile M .devcontainer/setup.sh A .dockerignore

Log Message:


Pre-bake schema population and static build into devcontainer image

Move database schema setup, YUI compressor download, and static asset compilation from container creation time (setup.sh) into the Dockerfile so they're baked into the image. This makes container startup much faster since setup.sh now only runs idempotent catchup steps.

Static assets are built to /opt/dreamwidth-static/ in the image (since /workspaces/dreamwidth is overlaid by a bind mount at runtime) and fast-copied into place by setup.sh. Also fixes PERL5LIB to point to /opt/dreamwidth-extlib/lib/perl5 where cpm actually installs modules.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 3cd3d09906e985b511fcdfa0b98d2cc959e66424 https://github.com/dreamwidth/dreamwidth/commit/3cd3d09906e985b511fcdfa0b98d2cc959e66424 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/devcontainer.json A .github/workflows/devcontainer-build.yml

Log Message:


Add CI workflow to pre-build devcontainer image on GHCR

Developers now pull ghcr.io/dreamwidth/devcontainer:latest instead of building the image from scratch. The workflow triggers on dependency file changes, nightly, and manual dispatch.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 58e398d69d2464e2f8fc5786c2312b1c2dac4d7b https://github.com/dreamwidth/dreamwidth/commit/58e398d69d2464e2f8fc5786c2312b1c2dac4d7b Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/devcontainer.json

Log Message:


Remove redundant forwardPorts from devcontainer config

runArgs -p flags already handle port publishing for both VS Code and the devcontainer CLI, so forwardPorts is unnecessary.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 26cb4633dc9643410c171a560bbf82656c144252 https://github.com/dreamwidth/dreamwidth/commit/26cb4633dc9643410c171a560bbf82656c144252 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/devcontainer.json

Log Message:


Add explicit port mappings for devcontainer CLI

forwardPorts only works in VS Code; the devcontainer CLI needs -p flags in runArgs to actually publish ports to the host.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 08af0eec17bd6bcabff328014253c09d3f8ddc1b https://github.com/dreamwidth/dreamwidth/commit/08af0eec17bd6bcabff328014253c09d3f8ddc1b Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .github/workflows/tasks/worker-birthday-notify-service.json M .github/workflows/tasks/worker-change-poster-id-service.json M .github/workflows/tasks/worker-codebuild-notifier-service.json M .github/workflows/tasks/worker-content-importer-lite-service.json M .github/workflows/tasks/worker-content-importer-service.json M .github/workflows/tasks/worker-content-importer-verify-service.json M .github/workflows/tasks/worker-directory-meta-service.json M .github/workflows/tasks/worker-distribute-invites-service.json M .github/workflows/tasks/worker-dw-esn-cluster-subs-service.json M .github/workflows/tasks/worker-dw-esn-filter-subs-service.json M .github/workflows/tasks/worker-dw-esn-fired-event-service.json M .github/workflows/tasks/worker-dw-esn-process-sub-service.json M .github/workflows/tasks/worker-dw-send-email-service.json M .github/workflows/tasks/worker-dw-sphinx-copier-service.json M .github/workflows/tasks/worker-embeds-service.json M .github/workflows/tasks/worker-esn-cluster-subs-service.json M .github/workflows/tasks/worker-esn-filter-subs-service.json M .github/workflows/tasks/worker-esn-fired-event-service.json M .github/workflows/tasks/worker-esn-process-sub-service.json M .github/workflows/tasks/worker-expunge-users-service.json M .github/workflows/tasks/worker-import-eraser-service.json M .github/workflows/tasks/worker-import-scheduler-service.json M .github/workflows/tasks/worker-incoming-email-service.json M .github/workflows/tasks/worker-latest-feed-service.json M .github/workflows/tasks/worker-lazy-cleanup-service.json M .github/workflows/tasks/worker-paidstatus-service.json M .github/workflows/tasks/worker-process-privacy-service.json M .github/workflows/tasks/worker-resolve-extacct-service.json M .github/workflows/tasks/worker-schedule-synsuck-service.json M .github/workflows/tasks/worker-send-email-ses-service.json M .github/workflows/tasks/worker-shop-creditcard-charge-service.json M .github/workflows/tasks/worker-spellcheck-gm-service.json M .github/workflows/tasks/worker-sphinx-copier-service.json M .github/workflows/tasks/worker-sphinx-search-gm-service.json M .github/workflows/tasks/worker-support-notify-service.json M .github/workflows/tasks/worker-synsuck-service.json A .github/workflows/worker22-build.yml A .github/workflows/worker22-deploy.yml M config/update-workflows.py A etc/docker/worker22/Dockerfile A etc/docker/worker22/scripts/setup.sh A etc/docker/worker22/scripts/startup-dev.sh A etc/docker/worker22/scripts/startup-prod.sh

Log Message:


Add worker22 container for Ubuntu 22.04 worker migration

Create etc/docker/worker22/ (FROM base22), with parallel build and deploy workflows so workers can be migrated independently. Both worker and worker22 deploys share the same task definitions and log to the same per-worker CloudWatch log groups (/dreamwidth/worker/NAME), matching the Terraform configuration.

Also updates update-workflows.py to generate both worker-deploy.yml and worker22-deploy.yml, and fixes task definitions to use per-worker log groups instead of the shared /dreamwidth/worker group.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 6ed7244d8b66a8d3807bbac22ec1baffcc566158 https://github.com/dreamwidth/dreamwidth/commit/6ed7244d8b66a8d3807bbac22ec1baffcc566158 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M etc/docker/proxy/Dockerfile A src/proxy/go.mod

Log Message:


Move proxy container from Ubuntu 18.04 to 24.04

Add go.mod for the proxy since Go 1.22 (shipped with 24.04) requires module mode. The proxy uses only stdlib so no dependencies needed.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 8d37ec5d2b62954d591b7ce02bbcf43e2fa497fd https://github.com/dreamwidth/dreamwidth/commit/8d37ec5d2b62954d591b7ce02bbcf43e2fa497fd Author: Mark Smith mark@dreamwidth.org Date: 2026-02-06 (Fri, 06 Feb 2026)

Changed paths: M .devcontainer/devcontainer.json M .devcontainer/start.sh

Log Message:


Use port 8080 for Starman in devcontainer, forward both server ports

Move Starman from port 80 to 8080 (matching its default) and add forwardPorts for both 8080 (Starman) and 8081 (Apache) so they're accessible at predictable ports on the host.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ba0d37394abf33d74665d3583cbf76bf7230e566 https://github.com/dreamwidth/dreamwidth/commit/ba0d37394abf33d74665d3583cbf76bf7230e566 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-05 (Thu, 05 Feb 2026)

Changed paths: M bin/ecs-shell M cgi-bin/DBI/Role.pm

Log Message:


Fix DBD::mysql binary data corruption on Ubuntu 22.04

  • DBI/Role.pm: Add mysql_enable_utf8 => 0 to preserve binary gzip data stored in TEXT columns. DBD::mysql 4.050+ on Ubuntu 22.04 auto-enables UTF-8 handling, which corrupts compressed data. This option is safe on older versions where it was already the default.

  • bin/ecs-shell: Prefer 'web' container over 'cloudwatch-agent' sidecar when connecting to ECS tasks. Fixes "no such file or directory" error for /bin/bash since the cloudwatch-agent container uses a minimal image.

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 0c56d95cb6eee98db461ea2ac573c4c005441e2b https://github.com/dreamwidth/dreamwidth/commit/0c56d95cb6eee98db461ea2ac573c4c005441e2b Author: Mark Smith mark@dreamwidth.org Date: 2026-02-04 (Wed, 04 Feb 2026)

Changed paths: M terraform/load-balancing.tf M terraform/locals.tf M terraform/web.tf

Log Message:


Configure Starman (port 8080) target groups for canary and shop

  • Update ECS services to register with -2 target groups on port 8080 (Starman) instead of 6081 (Varnish) for canary and shop
  • Enable traffic to -2 target groups by setting weights to 100
  • Refactor target group references to use resource refs instead of hardcoded ARNs, allowing proper dependency tracking
  • Remove ignore_changes from shop and canary listener rules to allow Terraform to manage weights
  • Fix canary listener rule condition to match AWS (cookie-based routing)

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 74c1d9d89f13516a90c1feda8564e18a27111d6b https://github.com/dreamwidth/dreamwidth/commit/74c1d9d89f13516a90c1feda8564e18a27111d6b Author: Mark Smith mark@dreamwidth.org Date: 2026-02-04 (Wed, 04 Feb 2026)

Changed paths: M .github/workflows/tasks/web-canary-service.json A .github/workflows/web22-build.yml A .github/workflows/web22-deploy.yml A etc/docker/web22/Dockerfile A etc/docker/web22/config/.dir_scope A etc/docker/web22/config/dreamwidth-dev.conf A etc/docker/web22/config/dreamwidth-prod.conf A etc/docker/web22/config/etc/apache2/apache2.conf A etc/docker/web22/config/etc/apache2/conf-available/charset.conf A etc/docker/web22/config/etc/apache2/conf-available/localized-error-pages.conf A etc/docker/web22/config/etc/apache2/conf-available/other-vhosts-access-log.conf A etc/docker/web22/config/etc/apache2/conf-available/security.conf A etc/docker/web22/config/etc/apache2/conf-available/serve-cgi-bin.conf A etc/docker/web22/config/etc/apache2/conf-enabled/security.conf A etc/docker/web22/config/etc/apache2/envvars A etc/docker/web22/config/etc/apache2/magic A etc/docker/web22/config/etc/apache2/mods-available/access_compat.load A etc/docker/web22/config/etc/apache2/mods-available/actions.conf A etc/docker/web22/config/etc/apache2/mods-available/actions.load A etc/docker/web22/config/etc/apache2/mods-available/alias.conf A etc/docker/web22/config/etc/apache2/mods-available/alias.load A etc/docker/web22/config/etc/apache2/mods-available/allowmethods.load A etc/docker/web22/config/etc/apache2/mods-available/apreq2.load A etc/docker/web22/config/etc/apache2/mods-available/asis.load A etc/docker/web22/config/etc/apache2/mods-available/auth_basic.load A etc/docker/web22/config/etc/apache2/mods-available/auth_digest.load A etc/docker/web22/config/etc/apache2/mods-available/auth_form.load A etc/docker/web22/config/etc/apache2/mods-available/authn_anon.load A etc/docker/web22/config/etc/apache2/mods-available/authn_core.load A etc/docker/web22/config/etc/apache2/mods-available/authn_dbd.load A etc/docker/web22/config/etc/apache2/mods-available/authn_dbm.load A etc/docker/web22/config/etc/apache2/mods-available/authn_file.load A etc/docker/web22/config/etc/apache2/mods-available/authn_socache.load A etc/docker/web22/config/etc/apache2/mods-available/authnz_fcgi.load A etc/docker/web22/config/etc/apache2/mods-available/authnz_ldap.load A etc/docker/web22/config/etc/apache2/mods-available/authz_core.load A etc/docker/web22/config/etc/apache2/mods-available/authz_dbd.load A etc/docker/web22/config/etc/apache2/mods-available/authz_dbm.load A etc/docker/web22/config/etc/apache2/mods-available/authz_groupfile.load A etc/docker/web22/config/etc/apache2/mods-available/authz_host.load A etc/docker/web22/config/etc/apache2/mods-available/authz_owner.load A etc/docker/web22/config/etc/apache2/mods-available/authz_user.load A etc/docker/web22/config/etc/apache2/mods-available/autoindex.conf A etc/docker/web22/config/etc/apache2/mods-available/autoindex.load A etc/docker/web22/config/etc/apache2/mods-available/buffer.load A etc/docker/web22/config/etc/apache2/mods-available/cache.load A etc/docker/web22/config/etc/apache2/mods-available/cache_disk.conf A etc/docker/web22/config/etc/apache2/mods-available/cache_disk.load A etc/docker/web22/config/etc/apache2/mods-available/cache_socache.load A etc/docker/web22/config/etc/apache2/mods-available/cern_meta.load A etc/docker/web22/config/etc/apache2/mods-available/cgi.load A etc/docker/web22/config/etc/apache2/mods-available/cgid.conf A etc/docker/web22/config/etc/apache2/mods-available/cgid.load A etc/docker/web22/config/etc/apache2/mods-available/charset_lite.load A etc/docker/web22/config/etc/apache2/mods-available/data.load A etc/docker/web22/config/etc/apache2/mods-available/dav.load A etc/docker/web22/config/etc/apache2/mods-available/dav_fs.conf A etc/docker/web22/config/etc/apache2/mods-available/dav_fs.load A etc/docker/web22/config/etc/apache2/mods-available/dav_lock.load A etc/docker/web22/config/etc/apache2/mods-available/dbd.load A etc/docker/web22/config/etc/apache2/mods-available/deflate.conf A etc/docker/web22/config/etc/apache2/mods-available/deflate.load A etc/docker/web22/config/etc/apache2/mods-available/dialup.load A etc/docker/web22/config/etc/apache2/mods-available/dir.conf A etc/docker/web22/config/etc/apache2/mods-available/dir.load A etc/docker/web22/config/etc/apache2/mods-available/dump_io.load A etc/docker/web22/config/etc/apache2/mods-available/echo.load A etc/docker/web22/config/etc/apache2/mods-available/env.load A etc/docker/web22/config/etc/apache2/mods-available/expires.load A etc/docker/web22/config/etc/apache2/mods-available/ext_filter.load A etc/docker/web22/config/etc/apache2/mods-available/file_cache.load A etc/docker/web22/config/etc/apache2/mods-available/filter.load A etc/docker/web22/config/etc/apache2/mods-available/headers.load A etc/docker/web22/config/etc/apache2/mods-available/heartbeat.load A etc/docker/web22/config/etc/apache2/mods-available/heartmonitor.load A etc/docker/web22/config/etc/apache2/mods-available/http2.load A etc/docker/web22/config/etc/apache2/mods-available/ident.load A etc/docker/web22/config/etc/apache2/mods-available/imagemap.load A etc/docker/web22/config/etc/apache2/mods-available/include.load A etc/docker/web22/config/etc/apache2/mods-available/info.conf A etc/docker/web22/config/etc/apache2/mods-available/info.load A etc/docker/web22/config/etc/apache2/mods-available/lbmethod_bybusyness.load A etc/docker/web22/config/etc/apache2/mods-available/lbmethod_byrequests.load A etc/docker/web22/config/etc/apache2/mods-available/lbmethod_bytraffic.load A etc/docker/web22/config/etc/apache2/mods-available/lbmethod_heartbeat.load A etc/docker/web22/config/etc/apache2/mods-available/ldap.conf A etc/docker/web22/config/etc/apache2/mods-available/ldap.load A etc/docker/web22/config/etc/apache2/mods-available/log_debug.load A etc/docker/web22/config/etc/apache2/mods-available/log_forensic.load A etc/docker/web22/config/etc/apache2/mods-available/lua.load A etc/docker/web22/config/etc/apache2/mods-available/macro.load A etc/docker/web22/config/etc/apache2/mods-available/mime.conf A etc/docker/web22/config/etc/apache2/mods-available/mime.load A etc/docker/web22/config/etc/apache2/mods-available/mime_magic.conf A etc/docker/web22/config/etc/apache2/mods-available/mime_magic.load A etc/docker/web22/config/etc/apache2/mods-available/mpm_event.conf A etc/docker/web22/config/etc/apache2/mods-available/mpm_event.load A etc/docker/web22/config/etc/apache2/mods-available/mpm_prefork.conf A etc/docker/web22/config/etc/apache2/mods-available/mpm_prefork.load A etc/docker/web22/config/etc/apache2/mods-available/mpm_worker.conf A etc/docker/web22/config/etc/apache2/mods-available/mpm_worker.load A etc/docker/web22/config/etc/apache2/mods-available/negotiation.conf A etc/docker/web22/config/etc/apache2/mods-available/negotiation.load A etc/docker/web22/config/etc/apache2/mods-available/perl.load A etc/docker/web22/config/etc/apache2/mods-available/proxy.conf A etc/docker/web22/config/etc/apache2/mods-available/proxy.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_ajp.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_balancer.conf A etc/docker/web22/config/etc/apache2/mods-available/proxy_balancer.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_connect.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_express.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_fcgi.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_fdpass.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_ftp.conf A etc/docker/web22/config/etc/apache2/mods-available/proxy_ftp.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_hcheck.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_html.conf A etc/docker/web22/config/etc/apache2/mods-available/proxy_html.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_http.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_http2.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_scgi.load A etc/docker/web22/config/etc/apache2/mods-available/proxy_wstunnel.load A etc/docker/web22/config/etc/apache2/mods-available/ratelimit.load A etc/docker/web22/config/etc/apache2/mods-available/reflector.load A etc/docker/web22/config/etc/apache2/mods-available/remoteip.load A etc/docker/web22/config/etc/apache2/mods-available/reqtimeout.conf A etc/docker/web22/config/etc/apache2/mods-available/reqtimeout.load A etc/docker/web22/config/etc/apache2/mods-available/request.load A etc/docker/web22/config/etc/apache2/mods-available/rewrite.load A etc/docker/web22/config/etc/apache2/mods-available/sed.load A etc/docker/web22/config/etc/apache2/mods-available/session.load A etc/docker/web22/config/etc/apache2/mods-available/session_cookie.load A etc/docker/web22/config/etc/apache2/mods-available/session_crypto.load A etc/docker/web22/config/etc/apache2/mods-available/session_dbd.load A etc/docker/web22/config/etc/apache2/mods-available/setenvif.conf A etc/docker/web22/config/etc/apache2/mods-available/setenvif.load A etc/docker/web22/config/etc/apache2/mods-available/slotmem_plain.load A etc/docker/web22/config/etc/apache2/mods-available/slotmem_shm.load A etc/docker/web22/config/etc/apache2/mods-available/socache_dbm.load A etc/docker/web22/config/etc/apache2/mods-available/socache_memcache.load A etc/docker/web22/config/etc/apache2/mods-available/socache_shmcb.load A etc/docker/web22/config/etc/apache2/mods-available/speling.load A etc/docker/web22/config/etc/apache2/mods-available/ssl.conf A etc/docker/web22/config/etc/apache2/mods-available/ssl.load A etc/docker/web22/config/etc/apache2/mods-available/status.conf A etc/docker/web22/config/etc/apache2/mods-available/status.load A etc/docker/web22/config/etc/apache2/mods-available/substitute.load A etc/docker/web22/config/etc/apache2/mods-available/suexec.load A etc/docker/web22/config/etc/apache2/mods-available/unique_id.load A etc/docker/web22/config/etc/apache2/mods-available/userdir.conf A etc/docker/web22/config/etc/apache2/mods-available/userdir.load A etc/docker/web22/config/etc/apache2/mods-available/usertrack.load A etc/docker/web22/config/etc/apache2/mods-available/vhost_alias.load A etc/docker/web22/config/etc/apache2/mods-available/xml2enc.load A etc/docker/web22/config/etc/apache2/mods-enabled/access_compat.load A etc/docker/web22/config/etc/apache2/mods-enabled/alias.conf A etc/docker/web22/config/etc/apache2/mods-enabled/alias.load A etc/docker/web22/config/etc/apache2/mods-enabled/apreq2.load A etc/docker/web22/config/etc/apache2/mods-enabled/auth_basic.load A etc/docker/web22/config/etc/apache2/mods-enabled/authn_core.load A etc/docker/web22/config/etc/apache2/mods-enabled/authn_file.load A etc/docker/web22/config/etc/apache2/mods-enabled/authz_core.load A etc/docker/web22/config/etc/apache2/mods-enabled/authz_host.load A etc/docker/web22/config/etc/apache2/mods-enabled/authz_user.load A etc/docker/web22/config/etc/apache2/mods-enabled/autoindex.conf A etc/docker/web22/config/etc/apache2/mods-enabled/autoindex.load A etc/docker/web22/config/etc/apache2/mods-enabled/deflate.conf A etc/docker/web22/config/etc/apache2/mods-enabled/deflate.load A etc/docker/web22/config/etc/apache2/mods-enabled/dir.conf A etc/docker/web22/config/etc/apache2/mods-enabled/dir.load A etc/docker/web22/config/etc/apache2/mods-enabled/env.load A etc/docker/web22/config/etc/apache2/mods-enabled/filter.load A etc/docker/web22/config/etc/apache2/mods-enabled/mime.conf A etc/docker/web22/config/etc/apache2/mods-enabled/mime.load A etc/docker/web22/config/etc/apache2/mods-enabled/mpm_prefork.conf A etc/docker/web22/config/etc/apache2/mods-enabled/mpm_prefork.load A etc/docker/web22/config/etc/apache2/mods-enabled/negotiation.conf A etc/docker/web22/config/etc/apache2/mods-enabled/negotiation.load A etc/docker/web22/config/etc/apache2/mods-enabled/perl.load A etc/docker/web22/config/etc/apache2/mods-enabled/reqtimeout.conf A etc/docker/web22/config/etc/apache2/mods-enabled/reqtimeout.load A etc/docker/web22/config/etc/apache2/mods-enabled/setenvif.conf A etc/docker/web22/config/etc/apache2/mods-enabled/setenvif.load A etc/docker/web22/config/etc/apache2/mods-enabled/status.conf A etc/docker/web22/config/etc/apache2/mods-enabled/status.load A etc/docker/web22/config/etc/apache2/ports.conf A etc/docker/web22/config/etc/apache2/sites-available/000-default.conf A etc/docker/web22/config/etc/apache2/sites-available/default-ssl.conf A etc/docker/web22/config/etc/apache2/sites-enabled/dreamwidth.conf A etc/docker/web22/config/etc/varnish/dreamwidth.vcl A etc/docker/web22/scripts/setup.sh A etc/docker/web22/scripts/startup-dev.sh A etc/docker/web22/scripts/startup-prod.sh

Log Message:


Move canary to ubuntu 22.04

This builds canary (ONLY) on the base22 image, which we use for shop, so we can start testing and make sure that Ubuntu 22.04 works with the main service.

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

Profile

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
github

July 2012

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930 31    

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 14th, 2026 04:12 am
Powered by Dreamwidth Studios