Version history

From Canasta Wiki

Canasta

Canasta version history:

  • 1.0.0 - April 14, 2022 - Initial version
  • 1.0.1 - April 14, 2022 - Update MediaWiki version to 1.35.6
  • 1.1.0 - April 29, 2022 - Rename /user-extensions and /user-skins directories to /extensions and /skins
  • 1.1.1 - June 16, 2022 - Disable sitemap generator by default; update CommentStreams extension; remove Favorites and MobileDetect extensions; add iputils-ping package
  • 1.1.2 - July 12, 2022 - Update MediaWiki version to 1.35.7; add default setting of $wgServer; add CookieWarning extension; update CommentStreams, Echo and EmbedVideo extensions; remove HeadScript extension; add poppler-utils package for PDF rendering
  • 1.2.0 - October 2, 2022 - Update MediaWiki version to 1.35.8; remove cfLoadExtension() and cfLoadSkin() functionality in favor of symlink-based approach; add displayWikiInfo.php script; make use of gateway.docker.internal to detect host address
  • 1.2.1 - November 25, 2022 - Add AArch64 support; update SimpleBatchUpload extension
  • 1.2.2 - December 22, 2022 - Fix installation of EmailAuthorization extension; fix web installer to also install Boostrap extension if Chameleon skin gets installed; add MW_MAP_DOMAIN_TO_DOCKER_GATEWAY as an environment variable (set to true by default); remove patches made unnecessary by cfLoad... removal
  • 1.3.0 - February 17, 2023 - Update MediaWiki version to 1.39.0; update all extensions to a compatible version (in most cases, using the REL1_39 Git branch); add the extensions AbuseFilter, DeleteBatch, MediaUploader, Mermaid, SemanticDependencyUpdater, TemplateWizard, Title Icon, UserPageViewTracker, WatchAnalytics, WhosOnline; remove the extensions DiscussionTools, LocalisationUpdate; add the skin Vector 2022; add header warning to email-related special pages if $wgSMTP is not set
  • 2.0.0 - December 11, 2023 - Add wiki farm support; add maintenance-scripts/ directory; add automated symlinking of local versions of extensions and skins; add AWS, EditAccount, GTag, JWTAuth, TemplateSandbox, Semantic Tasks and Semantic Watchlist extensions
  • 2.0.1 - April 14, 2024 - Update MediaWiki version to 1.39.7; move extension installation settings from Dockerfile into extensions.yaml; rename run-apache.sh to run-all.sh; remove WikiForum extension
  • 3.0.0 - June 23, 2025 - Move most functionality into CanastaBase repository (which currently uses MediaWiki 1.43), leaving only extension- and skin-specific code; place all extension and skin installation settings into a single file, contents.yaml, which in turn inherits from "Recommended Revisions" page; add the DiscussionTools, InlineComments, LoginNotify, OAuth, Page Schemas, QuickInstantCommons and Paragraph-based Edit Conflict Interface ("TwoColConflict") extensions; remove the Graph, RenameUser, Semantic Breadcrumb Links, Semantic Forms Select, Semantic Tasks and TinyMCE extensions
  • 3.0.1 - June 30, 2025 - Update to CanastaBase 1.0.1, which uses MediaWiki 1.43.2
  • 3.0.2 - July 1, 2025 - Update to CanastaBase 1.0.2, which uses MediaWiki 1.43.3; update Contribution Scores and WhosOnline extensions
  • 3.0.3 - September 3, 2025 - Update to CanastaBase 1.0.3; get MediaWiki version from CanastaBase instead of hardcoding it; add Babel, CLDR, CreateRedirect, RandomSelection, RegexFunctions, RelatedArticles, RSS, TemplateStylesExtender and VariablesLua extensions; update Cargo, JWTAuth, Maps and WatchAnalytics extensions
  • 3.0.4 - October 3, 2025 - Update to CanastaBase 1.0.4, which uses MediaWiki 1.43.4; update Admin Links, Cargo, EmbedVideo and Page Forms extensions
  • 3.0.5 - October 8, 2025 - Update to CanastaBase 1.0.5, which uses MediaWiki 1.43.5
  • 3.0.6 - December 2, 2025 - Update to CanastaBase 1.0.6; fix Chameleon skin error; update Approved Revs, Cargo, UserPageViewTracker and WatchAnalytics extensions
  • 3.0.7 - December 17, 2025 - Update to CanastaBase 1.0.7, which uses MediaWiki 1.43.6; update Contribution Scores and WhosOnline extensions
  • 3.1.0 - February 10, 2026 - Update to CanastaBase 1.1.0; update Approved Revs, Cargo, External Data, Flex Diagrams and WhosOnline extensions
  • 3.2.0 - February 18, 2026 - Update to CanastaBase 1.2.0; remove special handling for Semantic MediaWiki
  • 3.2.1 - February 24, 2026 - Update to CanastaBase 1.2.1; stabilize Canasta version tag to always point to the actual version commit; update SimpleMathJax and SubPageList extensions
  • 3.3.1 - March 1, 2026 - Show Canasta version on Special:Version
  • 3.3.2 - March 2, 2026 - Update to CanastaBase 1.3.1
  • 3.4.0 - March 4, 2026 - Version alignment with Canasta-CLI 3.4.0
  • 3.5.0 - March 8, 2026 - Version alignment with Canasta-CLI 3.5.0
  • 3.5.1 - March 9, 2026 - Version alignment with Canasta-CLI 3.5.1
  • 3.5.2 - March 22, 2026 - Update to CanastaBase 1.3.2; update WSOAuth extension
  • 3.5.3 - April 7, 2026 - Update to CanastaBase 1.3.3, which uses MediaWiki 1.43.8; add the CrawlerProtection extension
  • 3.5.4 - April 10, 2026 - Update to CanastaBase 1.3.4
  • 3.5.5 - April 15, 2026 - Update to CanastaBase 1.3.5
  • 3.5.6 - April 16, 2026 - Update to CanastaBase 1.3.6; fixes broken skin rendering and API access on wiki farms with sub-path wikis
  • 3.5.7 - April 21, 2026 - Update to CanastaBase 1.3.7
  • 3.5.8 - May 15, 2026 - Add DynamicSidebar extension; update Cargo and Mermaid extensions
  • 3.5.9 - June 7, 2026 - Accidental release; no change
  • 3.5.10 - June 8, 2026 - Update to CanastaBase 1.3.9; update PageForms extension
  • 3.5.11 - June 29, 2026 - Update to CanastaBase 1.3.10, which uses MediaWiki 1.43.9 (security release); add the CreateUserPage extension; update the Cargo extension
  • 3.5.12 - June 30, 2026 - Update to CanastaBase 1.3.11; update the TemplateStyles extension for css-sanitizer 6 compatibility, fixing the broken Composer build in 3.5.11
  • 3.5.13 - July 1, 2026 - Update to CanastaBase 1.3.12; fix errors in downloading the EmbedVideo, WhosOnline and WSOAuth extensions (the latest code was accidentally downloaded); remove no-longer-used persistent directory for Semantic MediaWiki
  • 3.5.14 - July 2, 2026 - Update to CanastaBase 1.3.14; remove dead CirrusSearch and SMW maintenance scripts (#652); remove a no-op CI test job (#654)
  • 3.5.15 - July 3, 2026 - Update the Maps and OAuth extensions (security updates) and the Page Forms extension
  • 3.5.16 - July 14, 2026 - Update the Cargo extension
  • 3.5.17 - July 25, 2026 - Update to CanastaBase 1.3.16; update the Data Transfer extension
  • 3.5.18 - July 27, 2026 - Update to CanastaBase 1.3.17; image rescan reporting (#675, #677)
  • 3.5.19 - July 28, 2026 - Update to CanastaBase 1.3.18; update the Data Transfer, Display Title, CrawlerProtection and Page Forms extensions; rescan reporting (#680, #682, #684)
  • 3.5.20 - August 1, 2026 - Update to CanastaBase 1.3.19; update the CrawlerProtection extension
  • 3.5.21 - August 24, 2026 - Update to CanastaBase 1.3.20 (#696); update the Cargo extension (#694)
  • 3.5.22 - September 24, 2026 - Update the External Data and Page Forms extensions
  • 3.5.23 - September 24, 2026 - Update to CanastaBase 1.3.21
  • 3.5.24 - September 28, 2026 - Update to CanastaBase 1.3.22 (#705)
  • 3.5.25 - October 2, 2026 - Update to CanastaBase 1.3.23 (#711); extension and skin security updates (#712)
  • 3.5.26 - October 5, 2026 - Update to CanastaBase 1.3.24 (#717)
  • 3.5.27 - October 12, 2026 - Update to CanastaBase 1.3.25 (#731)
  • 3.5.28 - October 14, 2026 - Update to CanastaBase 1.3.26 (#737); composer dependencies for OAuth, JWTAuth and CheckUser, JWTAuth 2.1.1, archived GoogleAnalyticsMetrics removed (#735)


CanastaBase

CanastaBase version history:

  • 1.0.0 - June 18, 2025 - Initial version. Based on version 2.0.1 of Canasta, but with the following changes: MediaWiki upgraded to 1.43.0; extension and skin download and handling removed; Postfix added; Debian upgraded to 12.8; USE_EXTERNAL_DB handling fixed; MW_VOLUME mountpoint check removed
  • 1.0.1 - June 30, 2025 - Upgrade to MediaWiki 1.43.2
  • 1.0.2 - July 1, 2025 - Upgrade to MediaWiki 1.43.3
  • 1.0.3 - September 3, 2025 - Fixes for the creation of extension/skin symlinks; removed the setting of $wgJobRunRate to 0; added 404 response for nonexistent URLs; renamed mail variables for consistency; added X-Forwarded-For information to log files
  • 1.0.4 - October 3, 2025 - Upgrade to MediaWiki 1.43.4
  • 1.0.5 - October 8, 2025 - Upgrade to MediaWiki 1.43.5
  • 1.0.6 - November 27, 2025 - Added OCI labels exposing the bundled MediaWiki version and branch for easier image introspection
  • 1.0.7 - December 16, 2025 - Upgrade to MediaWiki 1.43.6
  • 1.0.8 - February 2, 2026 - Changed to new configuration directory structure; added MW_SECRET_KEY and DISABLE_DIRECTORY_MONITOR environment variables; fixes for extension and skin symlink generation; fixed job runner in non-farm mode; fixed handling of DB access in wait-for-it.sh; fixed handling of non-standard web server port; added php8.1-bcmath extension
  • 1.1.0 - February 10, 2026 - Upgraded PHP version from 8.1 to 8.2, enabling the use of LuaSandbox for Scribunto; added public_assets/ directory for publicly accessible wiki files; moved Vector skin loading out of CanastaDefaultSettings.php; fixed MediaWiki purging to also purge Varnish cache; fixed running of maintenance scripts for wiki farm setup; added gitinfo.json files to restore correct Special:Version display, after removal of .git directories; changed health check to access /server-status instead of MediaWiki API
  • 1.2.0 - February 18, 2026 - Replaced individual Composer installs with a single install (via composer.local.json) for all relevant extensions and skins; moved sitemap storage to public_assets/ directory; removed CanastaUtils.php; removed generated installedExtensions.txt and installedSkins.txt files; removed automatic call to Semantic MediaWiki's rebuildData.php; re-added warning if $wgSMTP is not set; fix for $wgMetaNamespace for wiki names containing spaces; permission fix for writing to log
  • 1.2.1 - February 24, 2026 - Moved .composer-deps-hash and .smw.json to config/persistent/ directory
  • 1.3.0 - March 1, 2026 - Removed Postfix; added YAML settings file loading for extensions/skins; added styled 404 page and optional wiki directory for wiki farms; derived $wgServer scheme from MW_SITE_SERVER instead of hardcoding HTTPS; added default MediaWiki error logging and log rotation
  • 1.3.1 - March 1, 2026 - Show distribution version on Special:Version via SoftwareInfo hook
  • 1.3.2 - March 22, 2026 - Removed default.vcl (now managed by CLI installation template); switched FarmConfigLoader from PECL yaml to Symfony YAML parser; fixed composer hash check to account for require and repositories sections; skip Varnish CDN settings when CANASTA_ENABLE_VARNISH is explicitly disabled (backward compatible: Varnish remains enabled by default)
  • 1.3.3 - April 7, 2026 - Upgrade to MediaWiki 1.43.8; GitHub actions upgrades
  • 1.3.4 - April 10, 2026 - Removed canasta_img.php in favor of upstream img_auth.php; removed public_assets.php so files are served directly from the filesystem; fixed composer hash mismatch and sourced-entry-point bugs at container startup; added opt-in CANASTA_ENABLE_VERY_SHORT_URLS env variable for root-relative short URLs
  • 1.3.5 - April 15, 2026 - Fixed img_auth.php and rest.php for private wiki farms with sub-path wikis; subdirectory .htaccess no longer prefixes passthrough rules with wiki path and uses [END] flag to prevent catch-all re-entry
  • 1.3.6 - April 16, 2026 - Fixed .htaccess to route sub-path wiki entry points (load.php, api.php, rest.php, index.php, img_auth.php) to the real PHP files instead of falling through to the catch-all rewrite; fixes broken skin rendering and API access on wiki farms with sub-path wikis
  • 1.3.7 - April 20, 2026 - Added external database support: $wgDBserver, $wgDBuser, and $wgDBpassword now read from MYSQL_HOST, MYSQL_USER, and MYSQL_PASSWORD environment variables; non-standard database ports are appended to $wgDBserver as host:port; version tag publishing workflow now only fires on VERSION changes, making the published tag immutable
  • 1.3.8 - June 7, 2026 - Added Ghostscript and Xpdfutils to support PDF rendering and thumbnailing
  • 1.3.9 - June 8, 2026 - Removed (unnecessary) addition of Xpdfutils
  • 1.3.10 - June 29, 2026 - Upgrade to MediaWiki 1.43.9 (security release); MW_VERSION and MW_CORE_VERSION are now build-time ARGs (overridable with docker build --build-arg) so a non-default MediaWiki version or branch can be built without editing the Dockerfile (#185); wait for LocalSettings.php with an external database to prevent startup exit 123 (#176); guard PHP-FPM log directory setup against an unset PHP_LOG_DIR (#177); detect host-side directory events without the inotify ISDIR flag so host-added extensions and skins are picked up (#179); heal config/persistent ownership before run_autoupdate (#180); guard canastaLoadConfigYaml against a null $wgSettings (#181)
  • 1.3.11 - June 30, 2026 - Fail the image build when the unified Composer update fails to resolve or leaves a bundled extension's dependencies uninstalled, instead of silently shipping an image with an incomplete vendor/; added a build-time dependency self-test that aborts the build if any merged-in extension's required package is missing from vendor/ (#187)
  • 1.3.12 - July 1, 2026 - Fail the image build if there are Git errors during extension and skin setup (#190)
  • 1.3.13 - July 2, 2026 - Idempotent Apache/.htaccess generation (#197); fail the build on Composer and Git errors (#195); maintenance-script fixes (#194); Dockerfile hardening (#198)
  • 1.3.14 - July 2, 2026 - Fix public_assets file serving (logo, favicon) for wikis.yaml with indented entries (#202)
  • 1.3.15 - July 23, 2026 - Rebuild with current Debian 12 packages to remediate fixable HIGH/CRITICAL vulnerabilities in the 1.3.14 image (#208)
  • 1.3.16 - July 25, 2026 - Removed the unused MediaWiki web installer (mw-config) from the image (#213)
  • 1.3.17 - July 27, 2026 - Apt-layer cache-bust (#217); Debian security package refresh (#208); version-tag-only image rescan (#219)
  • 1.3.18 - July 27, 2026 - robots.txt User-agent line and load.php allow restored (#224); scan tracker per cycle (#222)
  • 1.3.19 - August 1, 2026 - /server-status served to loopback over IPv6; healthcheck addresses it numerically (#227)
  • 1.3.20 - August 24, 2026 - Wiki directory logos on private wikis (#231); Debian security package refresh (#229); upstream composer pin patching removed (#233)
  • 1.3.21 - September 24, 2026 - Debian security update and other package updates
  • 1.3.22 - September 28, 2026 - No PHP in web-writable dirs (#239); exec logging (#240); code and config/ read-only to web user (#242)
  • 1.3.23 - October 2, 2026 - Upgrade to MediaWiki 1.43.10 (#246); Debian security package refresh (#229)
  • 1.3.24 - October 5, 2026 - Upgrade to MediaWiki 1.43.11 (#251); Debian security package refresh (#249)
  • 1.3.25 - October 12, 2026 - Per-host /sitemap.xml index (#275); per-wiki farm startup settings (#261); persistent update fingerprints (#271); startup update continuing past failures (#273), running once and honoring MW_AUTOUPDATE=false (#280), skipping uninstalled wikis (#281); stale robots.txt, sitemap and farm pages in Varnish (#279); Debian security package refresh (#256)
  • 1.3.26 - October 14, 2026 - Bundled composer list moved into the image, config/composer.local.json holding operator additions only, failed startup composer updates recorded (#286)


Canasta CLI

Canasta CLI version history:

  • 0.1.0-alpha - July 22, 2022 - initial version
  • 1.0.0 - August 3, 2022 - add "skin" and "extension" commands; add restic "unlock", "list", "check" and "diff" commands; add ability to enable/disable multiple extensions or skins at the same time; many bug fixes
  • 1.2.0 - October 25, 2022 - add install.sh and build.sh scripts; add "version" command; change default behavior from "keep" to "delete" on import error
  • 3.3.1 - March 1, 2026 - Major rewrite. CLI version now aligned with Canasta image version via a single VERSION file. Added Kubernetes orchestrator support alongside Docker Compose; embedded all stack files and templates into the CLI binary; added wiki farm management (canasta add, canasta remove); added canasta config get/set/unset commands; added canasta devmode enable/disable for xdebug support; added canasta upgrade with --dry-run flag and self-update; added canasta export command; added canasta maintenance exec command; added canasta backup/canasta restore with Restic (including Kubernetes support and restic schedule); added optional Elasticsearch/CirrusSearch deployment; added OpenSearch observability support; switched extension/skin enable/disable to YAML-based config; added auto-generated CLI documentation via MkDocs; added database import support during canasta create; removed Postfix references; numerous bug fixes, security improvements (ShellQuote for shell commands), and code quality improvements
  • 3.4.0 - March 4, 2026 - Reject empty string in ValidateWikiID; add Special:Random cache bypass to Varnish config; fix install.sh directory collision on case-insensitive filesystems; backfill CANASTA_IMAGE in .env during upgrade; resolve installations from subdirectories; support CANASTA_CONFIG_DIR environment variable; add integration testing infrastructure; many new unit tests
  • 3.5.0 - March 8, 2026 - Add canasta gitops command for git-based configuration management (init, join, push, pull, status, diff); add canasta backup purge command for retention-based cleanup with --older-than, --keep-last, and --dry-run flags; add --purge-older-than flag to canasta backup schedule set for automatic post-backup purge
  • 3.5.1 - March 9, 2026 - Fix gitops init to preserve extension/skin commit hashes during submodule conversion; fail early if extensions/skins have uncommitted changes; auto-detect backup credentials (RESTIC_, AWS_, AZURE_, B2_, etc.) as encrypted placeholders; remove legacy .gitignore files from extensions/, skins/, config/, and config/settings/ that blocked gitops tracking
  • 3.6.0 - March 13, 2026 - Add wikis.yaml templating for gitops (host-specific wiki URLs are extracted into wikis.yaml.template with placeholders, rendered per-host on join/pull); add gitops add and gitops rm commands for managing tracked files; add --repair flag to gitops init for fixing broken gitlink detection; fix gitops status truncating modified file paths; fix backup restore failing when files exist with different ownership; drop --user from backup restore to preserve file ownership; check git user.name and user.email before gitops operations; gitignore config/backup/ in gitops default template; fix canasta upgrade to update outdated CANASTA_IMAGE in .env (previously only backfilled when missing); decouple CLI and Canasta image version numbers (new CANASTA_VERSION file pins image tag independently from CLI VERSION); many new integration and unit tests
  • 3.6.1 - March 18, 2026 - Fix Varnish caching: remove 48h TTL override that ignored MediaWiki's s-maxage setting, add no-store header to prevent browser bfcache from serving stale content; mark default.vcl as non-user-editable so upgrades can update it; detect and report template file changes during upgrade with --dry-run support; move --wiki flag to maintenance subcommands and iterate over all wikis in maintenance script; move documentation to wiki and add CI workflow for publishing CLI reference pages
  • 3.6.2 - March 22, 2026 - Make Varnish optional via CANASTA_ENABLE_VARNISH environment variable using Docker Compose profiles; fix upgrade removing .git directory used by gitops; make informational template files (READMEs, docker-compose.override.yml.example) no-clobber during upgrade; remove unused _initdb volume mount; add canasta gitops fix-submodules command for converting extensions/skins to proper git submodules after gitops init; improve canasta gitops diff to show local vs remote changes separately with conflict detection; add DefaultSettings.php to instance template for private-by-default wiki farms; fix canasta add/canasta remove to sync wikis.yaml.template when gitops is active; update default Canasta image to 3.5.2; standardize terminology: rename "installation" to "instance" across CLI and documentation
  • 3.6.3 - April 15, 2026 - Update default Canasta image to 3.5.5
  • 3.7.0 - April 25, 2026 - End-of-life release of the Canasta-Go (legacy Go) CLI. Adds a deprecation warning printed to stderr from every command (suppressible with CANASTA_SUPPRESS_DEPRECATION_WARNING=1), directing users to the Python/Ansible reimplementation now hosted at <a href="https://github.com/CanastaWiki/Canasta-CLI">https://github.com/CanastaWiki/Canasta-CLI</a>. Release artifacts are mirrored to CanastaWiki/Canasta-CLI so legacy canasta upgrade clients continue to self-update successfully. No other functional changes since 3.6.3. See <a href="https://canasta.wiki/wiki/Help:Upgrading" rel="nofollow">https://canasta.wiki/wiki/Help:Upgrading</a> for the migration path; further releases of this repo are not planned.



Canasta CLI version history (Ansible-based, 4.0.0+):

For earlier versions (0.1.0-alpha through 3.7.0, Go-based), see <a href="https://github.com/CanastaWiki/Canasta-Go/blob/main/RELEASE_NOTES.md">https://github.com/CanastaWiki/Canasta-Go/blob/main/RELEASE_NOTES.md</a>

  • 4.0.0 - May 9, 2026 - Complete rewrite from Go to Ansible; replaces Canasta-Go 3.x (end-of-life as of 3.7.0). Existing conf.json registries and instance directories continue to work without modification; installer replaces the Go binary in place via get-canasta.sh. New capabilities: SSH-based multi-host management (--host flag, canasta host add/remove/list); multi-node Kubernetes with ReadWriteMany PVCs for multi-replica web pods; canasta doctor, canasta install/uninstall, canasta storage setup nfs/efs; auto-generated CLI reference on canasta.wiki. Feature parity otherwise with 3.6.3.
  • 4.0.1 - May 9, 2026 - Fix CANASTA_ENABLE_OBSERVABILITY=true: declare bcrypt in requirements.txt so the OpenSearch Dashboards basicauth password hash gets generated.
  • 4.0.2 - May 15, 2026 - Bump target Canasta version to 3.5.8. Operational improvements: canasta doctor warns when rootless Docker can't bind privileged ports below ip_unprivileged_port_start (#557); the web and varnish services declare user: root in the bundled compose stack so podman-compose runs them correctly under rootless Podman (#558); canasta maintenance script and canasta maintenance extension invoke through MediaWiki's run.php so the .php suffix is optional and extension scripts use the ExtName:scriptName prefix syntax (#559); canasta create refuses to enter a non-empty target directory and no longer deletes pre-existing directories on rescue cleanup, preventing operator-data loss (#561); canasta upgrade rebuilds buildable services on any image change rather than only the pull-skipped path, and detects buildable services dynamically from the merged compose config (#563); new canasta rebuild command for standalone custom-image rebuilds without going through upgrade (#564).
  • 4.0.3 - June 8, 2026 - Bump target Canasta version to 3.5.10. Backup: align canasta backup purge with restic's native retention flags and drop the canasta-specific --older-than, fixing scheduled-purge failures on Compose (#601); validate RESTIC settings on Compose and warn on quoted/CRLF .env values (#587); preflight a runnable canasta on the host and use an absolute path in the scheduled-backup cron (#591). Gitops: keep domain/port/scheme changes durable across pulls (#577); block port changes on Kubernetes (#581); ignore generated sitemaps, backup.log, and editor .bak files (#599). Reliability and fixes: status/doctor detect the instance from any subdirectory (#597); fix a canasta install crash resolving the operator user without facts (#589); list subcommands for bare nested groups instead of erroring (#586); fall back to certifi when the interpreter has no usable system CA store (#584); canasta doctor reports whether a runnable canasta is on the host (#593); fix Ansible callback signature warnings (#573).
  • 4.0.4 - June 8, 2026 - Re-exec after self-update, fixing intermittent canasta upgrade failures (#607).
  • 4.1.0 - June 11, 2026 - Optional CrowdSec support for Docker Compose (opt-in via CANASTA_ENABLE_CROWDSEC=true): a CrowdSec engine and Caddy bouncer with trusted-proxy handling, managed by the new canasta crowdsec command group, with CAPI and the bouncer auto-enrolled so the community blocklist works out of the box (#603, #620, #633, #637, #639, #641, #643, #646, #647). Also includes backup and canasta upgrade improvements (#611, #615, #617, #627, #629, #631), canasta-group membership hardening (#612), gitops diff patch output (#622), and quieter ignored-failure output (#624, #625). See #650 for the full changelog.
  • 4.1.1 - June 12, 2026 - Bug fixes: canasta upgrade no longer aborts on a stopped Compose instance during the MySQL-to-MariaDB probe (#655); canasta config set CANASTA_ENABLE_CROWDSEC=true no longer loops forever auto-enrolling the Caddy bouncer (#653).
  • 4.2.0 - June 18, 2026 - CrowdSec support for Kubernetes (opt-in via CANASTA_ENABLE_CROWDSEC=true): the CrowdSec engine and Caddy bouncer (a sidecar in the Caddy pod) now run on Kubernetes with CAPI and Console auto-enrollment, plus new canasta crowdsec scenarios/alerts/metrics inspection and reload --purge-blocklist(s) (#604, #659, #660, #662, #700, #709). Multi-node Kubernetes hardening: real client IP via Traefik externalTrafficPolicy=Local (#688), reliable worker joins (#690), pinned k3s/helm versions (#721), and long remote operations (install, deploy, backup, restore, delete, maintenance) now survive transient SSH resets (#743, #751, #752, #754, #756, #763). Backup/restore correctness: K8s restore fails loudly instead of silently when restic fails (#748), local-path restic repos pin to the control plane on multi-node (#749), and delete no longer orphans the Compose backup staging volume (#761). Also a large internal orchestrator-dispatch refactor (#696) and many gitops, create, and config fixes. See #765 for the full changelog.
  • 4.3.0 - June 22, 2026 - Orchestrator-agnostic application sidecars: the new canasta sidecar command group (add/list/remove/migrate) declares companion services in config/sidecars.yaml and renders them to both Docker Compose and Kubernetes, including build: image delivery and a web-to-sidecar environment bridge (#810, #814, #817, #819, #820, #823, #824, #827, #831, #832). Kubernetes backups now capture the full config/ directory, with orchestrator-agnostic host-crontab scheduling (#826, #813, #834). canasta create --build-from works on Kubernetes via an in-cluster registry, with a disk-space preflight (#791, #801, #795). New canasta config refresh-template adopts updated template-seeded config files (#859, #861, #863). GitOps gains non-interactive Kubernetes init/join, self-hosted Argo CD repo trust, and richer gitops status/add/upgrade handling (#846, #849, #851, #852, #853, #855, #867, #868, #869, #871, #873, #875, #877, #879). Plus maintenance exec --stdin-file (#768, #771) and many Kubernetes, backup, and gitops fixes. See #856 for the full changelog.
  • 4.4.0 - June 29, 2026 - Bump target Canasta version to 3.5.11 (MediaWiki 1.43.9 security release). New capabilities: override the Elasticsearch image on both orchestrators via CANASTA_ELASTICSEARCH_IMAGE (#888); Kubernetes secrets now come from a per-instance Secret, with envSecret for sidecars, envPrivate to withhold sidecar keys from the web bridge, and appSecretEnv for the web and jobrunner pods (#890, #892, #894). Fixes: maintenance exec falls back to sh when a container has no bash (#896); the generated CLI: wiki reference uses MediaWiki list markup, unwraps hard-wrapped descriptions, and retries rate-limited edits (#898, #901, #902). Also dead-code removal, canasta install-package docs, full sidecar teardown on restart and delete, and added test coverage (#883, #884, #885, #886).
  • 4.4.1 - June 30, 2026 - Bump target Canasta version to 3.5.12, which fixes the broken Composer build in 3.5.11 that left bundled extension dependencies (Elastica, Semantic MediaWiki, and others) uninstalled.
  • 4.5.0 - July 1, 2026 - Bump target Canasta version to 3.5.13. New canasta reconcile command and canasta doctor config/runtime drift checks (#920, #924, #931, #937, #944); upgrade and GitOps durability fixes (#909, #914, #915, #917, #922, #925, #927, #930, #933, #935, #939, #954); atomic conf.json writes (#945); a CrowdSec auto-enroll loop fix (#919); a canasta sidecar migrate crash fix (#943); and test, CI, and docs hardening (#946, #947, #948, #949, #950, #952, #953). See #957 for the full changelog.
  • 4.5.1 - July 1, 2026 - Bug fixes: canasta upgrade now migrates a MySQL 8.0 instance to MariaDB instead of skipping the migration and leaving the database unable to start (#960).
  • 4.5.2 - July 2, 2026 - Bump target Canasta version to 3.5.14. canasta create --build-from forwards --build-arg to the image build (#982); plus bug fixes and hardening across upgrade, gitops, sidecars, Kubernetes, and validation (#968, #969, #970, #971, #972, #973, #974, #975, #976, #977, #978, #979, #980, #981, #985, #987, #988, #990, #992, #994).
  • 4.5.3 - July 3, 2026 - Bump target Canasta version to 3.5.15, which updates the Maps and OAuth extensions (security updates) and the Page Forms extension.
  • 4.6.0 - July 3, 2026 - New --images option on canasta create and canasta add to restore a wiki's uploaded media alongside --database (#1003). Kubernetes backup/restore fixes: canasta backup restore now brings back uploaded media and custom extensions, skins, and public assets that were previously dropped (#1002, #1005); public_assets now syncs into its PVC on start (#1000); canasta create and canasta add create the per-wiki public_assets/<wiki-id>/ directory (#1008).
  • 4.7.0 - July 4, 2026 - New --skip-install option on canasta create and canasta add connects a wiki to a pre-provisioned external database without running install.php (#1014). Kubernetes fixes: canasta doctor detects un-applied config set edits on non-GitOps instances (#1018); NFS-backed PVCs reclaim their storage on delete by defaulting the StorageClass to Delete (#1017); GitOps push prunes deleted settings files from the rendered config (#1016). Also points users to canasta reconcile for applying config changes without a full restart (#1013).
  • 4.8.0 - July 4, 2026 - New canasta image push and canasta image prune commands for the Kubernetes in-cluster image registry (#1022, #1028, #1029); Kubernetes Elasticsearch no longer crash-loops on slow starts (#1030); CI YAML lint matches make lint (#1024).
  • 4.8.1 - July 4, 2026 - Kubernetes Elasticsearch pins 7.10.2, matching Docker Compose and the version CirrusSearch supports (#1034).
  • 4.9.0 - July 4, 2026 - canasta image push supports --build-arg KEY=VALUE, enabling web overlay images to be pushed to the in-cluster registry (#1038).
  • 4.9.1 - July 4, 2026 - Bug fixes: enabling Elasticsearch on Kubernetes pulls its image again (#1042); the Kubernetes jobrunner runs localisation-dependent jobs such as CirrusSearch indexing (#1045); canasta maintenance commands reach remote Kubernetes instances (#1046, #1048).
  • 4.10.0 - July 7, 2026 - New canasta wiki-check command reports which wikis are reachable (#570, #1076); Kubernetes GitOps encrypts committed secrets with SOPS+age (#1064). Bug fixes: canasta restore -w restores a single wiki (#1056); ignore_errors honored on included restore/remove tasks (#1058); Compose restore file ownership (#1059); restore clears its staging volume (#1060); safety backup skips absent databases (#1062); gitops status marks non-GitOps instances unmanaged (#1066); unpushed GitOps commit retried (#1068); backup schedule crontab entries deduplicated (#1070); Kubernetes jobrunner runs as www-data (#1072); gitops init failure message printed once (#1074).
  • 4.11.0 - July 7, 2026 - New canasta upgrade --purge reclaims disk by removing the images an upgrade supersedes (#1081). Bug fixes: canasta version no longer reports Kubernetes instances as not running (#1084); canasta gitops init --encrypt-secrets --reinit no longer strands the Argo CD Application with two source types (#1085); Kubernetes canasta gitops status surfaces uncommitted and untracked changes (#1087); the untracked wikis.yaml.template advisory points to canasta gitops add config/wikis.yaml (#1089).
  • 4.12.0 - July 8, 2026 - Kubernetes Ingress domains auto-derived from the farm's wiki URLs, with an extraDomains escape hatch (#1099). Bug fixes: Caddy renders http-only behind the Kubernetes Ingress (#1093); canasta config set CADDY_AUTO_HTTPS blocked on Kubernetes (#1095); full Kubernetes restore exactly matches the snapshot (#1097).
  • 4.12.1 - July 10, 2026 - Kubernetes GitOps source-directory tracking (#1113); special characters in maintenance script/extension arguments (#1115); gitops status deletion labeling (#1111); gitops status managed-file handling (#1110); config set env.template staging (#1109); upgrade hosts.yaml staging (#1108).
  • 4.13.0 - July 25, 2026 - New: extension set-version (#1197), config set maintenance-script env-var forwarding (#1192), profile-aware host memory floor (#1186). Bump target Canasta version to 3.5.17. Bug fixes across create/add/upgrade/list/maintenance/DB import (#1121, #1146, #1159, #1167, #1184, #1185, #1188, #1189, #1190, #1199) and GitOps/git-crypt/SOPS-age (#1127, #1128, #1132, #1133, #1134, #1136, #1140, #1141, #1168, #1169, #1170, #1171, #1172, #1173, #1175, #1176, #1178, #1193, #1194, #1203).
  • 4.14.0 - July 28, 2026 - New: Podman as a container runtime (#1224, #1225, #1226, #1227); backup purge --dry-run (#1249); wiki liveness in canasta list (#1217); host-local settings overrides on gitops Compose (#1216). Bump target Canasta version to 3.5.19. Bug fixes across Podman/runtime (#1233, #1236, #1266, #1269, #1272, #1277, #1278), GitOps (#1213, #1214, #1215, #1228, #1229), backup/restore (#1205, #1238, #1245), lifecycle (#1219, #1237, #1263, #1268), secrets and packaging (#1223, #1244, #1253) and docs publishing (#1251, #1258, #1260, #1261).
  • 4.14.1 - July 29, 2026 - Encrypted gitops host vars merging across hosts (#1326, #1328); gitops shared-key deferral and per-host restic credentials (#1319, #1320, #1321); Podman and rootless-runtime fixes across create, start, rebuild, backup and image references (#1283, #1285, #1294, #1295, #1297, #1298, #1302, #1316, #1317, #1318, #1325); Compose port preflight honoring HTTP_PORT/HTTPS_PORT (#1332); install/uninstall package-name validation (#1289, #1303, #1310); test, CI, and install-dispatch hardening (#1291, #1292, #1301, #1305, #1311).
  • 4.15.0 - August 2, 2026 - New: doctor origin-certificate check (#1367, #1402), CrowdSec trusted-proxy warning (#1366, #1383). Bump target Canasta version to 3.5.20. Bug fixes across Podman and runtime detection (#1345, #1351, #1352, #1359, #1377, #1386, #1393, #1399, #1400, #1403), CrowdSec and Caddy trusted proxies and status (#1365, #1369), create/upgrade/install/registry/Compose config (#1344, #1346, #1347, #1361, #1371, #1373, #1398, #1401, #1421, #1423, #1425, #1427), remote status (#1395), and canasta-docker update reporting and Podman refusal (#1404, #1430). Static analysis across Python, Ansible, shell, workflows and Dockerfiles (#1410, #1411, #1412, #1416, #1422), plus CI, test and docs hardening (#1335, #1336, #1340, #1353, #1355, #1407).
  • 4.16.0 - August 21, 2026 - New: backup databases add/list/remove with extra databases captured in the wiki's dump transaction and DB passwords off the process table (#1460); install uv/uv:<tool> (#1437); config get credential masking with --show-secrets (#1466); doctor buffer-pool and my.cnf reporting (#1475) and podman-compose 1.3.0 warning (#1436). Silent-failure fixes across backup, Caddy and profiles (#1442, #1461, #1462, #1463, #1465), Kubernetes rollout and db config (#1469, #1470), GitOps key export and orphan gitlinks (#1480, #1486), and doctor/install targeting (#1439, #1473).
  • 4.17.0 - August 24, 2026 - New: config unset --secret; config set --secret refusing recognized .env keys (#1494). Bump target Canasta version to 3.5.21.
  • 4.18.0 - August 26, 2026 - New: image prune on Compose hosts with in-use image pinning and doctor disk reporting (#1505, #1509, #1511); full restic retention policy in backup schedule set (#1526); backup and restore progress output (#1527). Owner-only .env permissions (#1540). Bug fixes across backup staging and restore (#1524, #1528), restored-instance ownership (#1523), list --check-wikis TLS SNI (#1522), CDN client-IP forwarding (#1513), start exit status on an uncreated service (#1545), Kubernetes create against stubbed collection modules (#1544), rebuild with a missing build source (#1501), image-build download retries (#1521) and command output rendering (#1539, #1543), plus docs publishing and test hardening (#1525, #1530).
  • 4.19.0 - August 28, 2026 - New: per-host my.cnf rendering on gitops, with the migration completing on upgrade (#1553, #1556). gitops pull re-render after an unfinished pull (#1557).
  • 4.20.0 - August 31, 2026 - New: CADDY_TLS_MODE for internal and custom origin certificates (#1568); object-storage media hosts from a declaration (#1569); CANASTA_CONTAINER_RUNTIME runtime selection, with Docker probed before Podman (#1574, #1582); an interrupted restore recorded and surfaced by list and status (#1577). Bug fixes: MariaDB startup failures reaching docker logs and the start failure capture (#1575); cross-host restore identity and my.cnf (#1576); the destination's database password across an interrupted restore (#1583); gitops empty shared keys (#1572), committed per-host vars on join (#1573), and one .env render (#1580).
  • 4.20.1 - September 25, 2026 - Bump target Canasta version to 3.5.23; Podman 4 start service check (#1594).
  • 4.21.0 - September 30, 2026 - New: extension add/skin add (#1492, #1632, #1674); git-crypt GPG mode for GitOps (#1564). Bump target Canasta version to 3.5.24. Security hardening: NFS exports limited to cluster nodes (#1609, #1689), k3s agent join token (#1672), secrets off command lines and logs (#1618, #1621, #1628, #1673, #1682), client PURGE refused (#1623), credential and kubeconfig file modes (#1620, #1670), GitOps key handling and staging (#1619, #1671, #1684). Bug fixes across config/backup/restore/upgrade (#1491, #1566, #1616, #1622, #1625, #1629, #1664, #1666, #1667, #1668, #1669, #1676, #1680, #1683) and GitOps (#1600, #1617, #1633, #1663, #1665).
  • 4.22.0 - October 2, 2026 - New: MediaWiki's own database account on Compose, with migration on upgrade (#1740, #1743, #1744). Security hardening: --branch/--ref option injection (#1735), config set token echo (#1734), symlinked submodule removal (#1730). Bug fixes across backup/restore (#1717, #1721, #1725, #1732, #1736, #1737, #1738, #1745), delete (#1716, #1727, #1729), concurrent lifecycle operations (#1739), backup schedule validation (#1733) and GitOps (#1718, #1719, #1726, #1731, #1746).
  • 4.22.1 - October 2, 2026 - Bump target Canasta version to 3.5.25.
  • 4.23.0 - October 5, 2026 - New: config set --secret [--web] on Compose (#1815); CANASTA_FORWARD_AGENT=no (#1814); shared SSH connections per host (#1767). maintenance script/extension run on every wiki by default (#1822); maintenance exec --wiki removed (#1824). Security hardening: gitops encryption rules enforced (#1820), secrets off command lines (#1758, #1810, #1811). Bug fixes across extensions and skins (#1786, #1794, #1806, #1826), remote hosts (#1754, #1755, #1759, #1763, #1792, #1808, #1809, #1812), Podman (#1756, #1784, #1785), GitOps (#1762, #1764, #1766, #1779, #1790, #1813, #1821, #1829), observability (#1778, #1791, #1807), sidecars (#1765, #1789, #1819) and other commands (#1757, #1760, #1761, #1780, #1787, #1788, #1805).
  • 4.23.1 - October 6, 2026 - Bump target Canasta version to 3.5.26.
  • 4.23.2 - October 8, 2026 - crowdsec status community-blocklist pull health (#1837); CrowdSec startup-failure hold on Compose (#1838); image prune of unused locally built images (#1840); CrowdSec status help (#1841); sitemap generate index URLs (#1843).
  • 4.24.0 - October 12, 2026 - New: create -d/add -d import a wiki's extra databases (#1976); config refresh-template --apply (#1969); missing-database warning after gitops pull (#1956); Kubernetes jobrunner Deployment removed (#1849); config regenerate replaced by reconcile (#1873). Security hardening: private gitops vars and restore dumps (#1929), NFS export sync (#1974), restic argument quoting (#1931). Bug fixes across backup/restore (#1877, #1878, #1886, #1887, #1893, #1924, #1933, #1935, #1936), GitOps (#1857, #1872, #1879, #1881, #1884, #1888, #1897, #1921, #1922, #1944, #1949, #1955, #1958, #1968), Kubernetes (#1848, #1866, #1870, #1871, #1880, #1885, #1889, #1890, #1895, #1900, #1901, #1923, #1925, #1926, #1953, #1957, #1962, #1964, #1965), external databases (#1928, #1932, #1947) and other commands (#1847, #1861, #1864, #1867, #1868, #1869, #1875, #1930, #1954, #1959, #1960, #1963, #1966, #1973, #1975).
  • 4.24.1 - October 12, 2026 - Bump target Canasta version to 3.5.27. update.php for a wiki re-added under a removed ID (#2001).
  • 4.25.0 - October 15, 2026 - Bump target Canasta version to 3.5.28. Composer: config/composer.local.json holds only operator additions, tidied on upgrade; failed startup updates reported; extension add/remove keep bundled packages (#2062, #2065, #2066). upgrade continues past a failed instance (#2097) and names an unhealthy container's cause (#2098). Docker Compose and general fixes: CrowdSec (#2019, #2025, #2037, #2057), backup/export (#2012, #2016, #2050) and other commands (#2013, #2017, #2018, #2026, #2030, #2032, #2033, #2034, #2035, #2036, #2038, #2039, #2041, #2051, #2079, #2096). Kubernetes: gitops upgrade, add/remove and config set/unset stage changes for gitops push + gitops sync (#2046, #2069, #2093); per-instance Argo CD projects (#2058); fixes (#2014, #2015, #2023, #2024, #2027, #2028, #2029, #2040, #2042, #2052, #2078, #2087, #2088, #2094, #2095).
  • 4.25.1 - October 15, 2026 - list and doctor report an unhealthy web container (#2115); --clone falls back to Wikimedia's GitHub mirror when Gerrit does not answer (#2110). Kubernetes: CrowdSec local API in its own pod so Caddy rolls without downtime (#2123); graceful web, Varnish and Caddy shutdown during rollouts (#2119, #2123); on gitops, extension/skin enable/disable staged (#2116), a warning before deploying unpushed changes (#2117) and accurate CrowdSec enrollment and bouncer status (#2118); Argo CD chart pinned with Redis from a mirror (#2126) and install-failure diagnostics (#2120).
  • 4.25.2 - October 16, 2026 - Descriptive user agent for Gerrit clones and lookups (#2147); upgrade re-run finishing a failed restart (#2131); extension/skin commands on a stopped instance (#2145); quieter extension add/remove and my.cnf note (#2132, #2130); start hint after config set --no-restart on a stopped instance (#2133); add -u port (#2134); installer --prefix summary (#2135); gitops status/add after local commits (#2136); CrowdSec refused Central API reporting and status wording (#2137, #2146). Kubernetes: MediaWiki's own database account, staged on gitops upgrade (#2070); exec skipping draining pods (#2142); Argo CD install with a stale Helm index (#2143); root-account create keeping a separate password (#2151).
  • 4.26.0 - October 18, 2026 - New: HAProxy edge in front of every Docker Compose instance, with TLS (Let's Encrypt by HTTP or Cloudflare DNS validation), hostname routing, scraper rate limits, deny lists, CrowdSec bans and CDN client addresses; upgrade moves existing instances behind it, keeping their URLs and certificates, and --dry-run shows the plan (#2059, #2168, #2179). TLS settings renamed to TLS_MODE (off for plain HTTP), TRUSTED_PROXIES, TLS_CERT and TLS_KEY (#2197). Rootless Podman records real visitor addresses (#2182); rootless Docker supported with a warning (#2187). Fixes: IPv6 visitors (#2173, #2178), Caddyfile.global sites (#2170, #2192), canasta-docker (#2174, #2175), the host's own requests not rate-limited (#2207), edge logs capped (#2203).
  • 4.26.1 - October 18, 2026 - The HAProxy edge waits for HAProxy to start before installing certificates, so certificates moved from Caddy renew and newly issued ones are served (#2210).
  • 4.26.2 - October 19, 2026 - delete --keep-data removes an instance from the registry only, leaving its containers or namespace, volumes and files in place (#2060). The edge's warning for a certificate Let's Encrypt did not issue gives Let's Encrypt's reason (#2215). Fixes: static files no longer rate-limited as dynamic for visitors with a session cookie (#2219), the port check under canasta-docker (#2212), the edge's hostnames and keys removed when its last instance leaves (#2209), a stale comment in haproxy-backend.cfg (#2220).