The Plugin 'mysql_native_password' is not loaded error appears because MySQL 8.4 disables that authentication method and 9.x removes it, and mysql:lts is now 9.7.4. Start 8.4 with --mysql-native-password=ON, convert every account to caching_sha2_password with ALTER USER, then move to 9.7.
Wallos 5.8.3 is a subscription and expense tracker you host yourself. I installed it with Docker, loaded 7 subscriptions in euros (EUR 104.14 a month), connected a local ntfy for alerts and restored a backup. Here is the setup, plus the block I hit when alerting an internal server.
The unknown storage type file error appears because OpenBao 2.7 removed the file backend, and the server stops as soon as it reads that configuration. Stop the container, back up the volume, migrate the data to PebbleDB with the 2.7.2 bao operator migrate and change the storage block: your unseal keys and token stay the same.
Infisical is an open-source secrets management platform you install with Docker Compose (Postgres, Redis and a backend) and whose CLI hands each secret to your containers. I installed v0.166.2, created a project with three environments, and an app read its key through infisical run. On an unlicensed instance, only 4 of the 57 plan flags are on.
NetBird 0.82 removed the MySQL engine, and the server stops with the error the MySQL store engine is no longer supported. Roll back to the 0.81.5 image, move the data to PostgreSQL with the netbird-mysql-migrate tool from that same version, because 0.82 no longer ships it, and only then upgrade by pinning the 0.82.0 tag.
Vaultwarden 1.37.5 stops with Error loading config if your .env sets a rate limit or a database timeout to 0, or if a purge schedule is not a valid cron. Fix each variable the log names; out-of-range numbers do not stop it, but they are silently replaced by defaults.
Moving from Grafana 12.4.12 to 13.2.3 in Docker, my two dashboards kept working, but a script that queried Prometheus by numeric id started returning 404. Grafana 13 disables the by-id data source APIs by default, and the fix is to call by uid. Here is the procedure, with a grafana.db backup and a rollback.
Paperclip is an open-source platform, under the MIT licence, that runs teams of AI agents like a company: tasks, budgets and heartbeats. You self-host it with one Docker Compose file on port 3100, but the first-run wizard asks for a Claude or OpenAI subscription. I tried an agent on a local 0.8B model and it answered wrongly.
Dockhand is a web interface for managing Docker with Compose stacks, Git deploys, vulnerability scanning and SQLite. This guide installs version 1.0.51 with Docker Compose and a socket proxy, deploys a stack and scans an image with Grype. Its BSL 1.1 licence is free at home but paid inside a company.
To upgrade Uptime Kuma 1.23 to version 2 with Docker, stop the container, archive the data directory and switch the image to louislam/uptime-kuma:2.5.9, because latest still points to 1.23.17. The first start aggregates the history into new tables and deletes the raw heartbeats: do not interrupt it, and keep the backup to roll back.
The docker.io/bitnami/postgresql:16: not found error appears because Bitnami removed its versioned tags from Docker Hub and only keeps latest. As a stop-gap, switch to bitnamilegacy/postgresql. The real fix is the official postgres image, pointing PGDATA at the Bitnami directory, creating postgresql.conf and pg_hba.conf and refreshing the collation version.
Valkey 9.1.2 used 62.9 bytes per key with 5 million short-value keys, against 70.9 for Valkey 9.0.6 and 81.5 for Redis 8.10.2. The saving disappears with values of 100 bytes or more. And Valkey 9.1 refuses the RDB files of Redis 7.4 and Redis 8.
The No vector extension found error appears when Immich v3 starts on the old tensorchord/pgvecto-rs image, because version 3 no longer supports pgvecto.rs. Switch the Postgres image to ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0, let Immich migrate to VectorChord, and you keep smart search and faces.
The quay.io/minio/minio 401 UNAUTHORIZED error is not a credentials problem: MinIO took public access away from that repository in September 2026 and it fails for every tag. Switch the image to cgr.dev/chainguard/minio or pgsty/silo in Compose, Kubernetes or Helm; the AIStor image on Quay still pulls, but without a license it refuses every request.
To install Docker on Ubuntu 26.04 LTS, add Docker's official repository with its GPG key and a docker.sources file, then install docker-ce, containerd.io and the Buildx and Compose plugins. On 7 October 2026 that gave Docker 29.8.2 and Compose 5.6.0, against Docker 29.1.3 and Compose 2.40.3 from Ubuntu's docker.io package.
Node.js 26 becomes active LTS on 28 October 2026 and Node 24 enters maintenance on 20 October. Moving a Docker image takes swapping node:24-slim for node:26-slim, but check three things first: the removed internal _stream_* modules, the removed writeHeader() and native modules, which target ABI 147.
Traefik logged plugin integrity check failed because its plugin catalog served one zip and validated another. It hit Pangolin's Badger v1.8.0 and Sablier v1.3.1. Traefik fixed it on 30 October 2026: if you pinned the zip hash, remove that line or pin the new hash.
Authentik 2026.8 only accepts X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-For when the connection comes from a network listed in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS. If your reverse proxy sits outside the default private ranges, Authentik treats the request as HTTP and login breaks. Add the proxy's IP or network to that variable and restart.
Ollama prints this model requires MLX support, but the MLX runtime is not available when you pull a tag that only exists as MLX safetensors, such as embeddinggemma-2:740m-bf16 or phonon, on a machine without MLX: Linux arm64, Linux without an NVIDIA GPU, or Windows. Pull the GGUF variant (q8_0) with Ollama 0.40.4 or later.
PostgreSQL 19 adds REPACK, which replaces VACUUM FULL and CLUSTER and, with CONCURRENTLY, compacts a table without blocking writes, plus WAIT FOR LSN for replicas and logical replication of sequences. On Beta 4, a 1895 MB table shrank to 474 MB, and pg_upgrade from 18 required rebuilding a GiST index first.
Grafana Tempo 3.1 stores distributed traces and queries them with TraceQL. In Docker Compose one container in monolithic mode is enough, with no Kafka, using Alloy as the OpenTelemetry collector and Grafana to explore them. Since 3.1 it writes vParquet5 blocks and supports arithmetic in TraceQL metrics; coming from 2.x, the config has to be migrated.
The UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document error appears because mongo:latest has pointed at MongoDB 9.0 since 1 October 2026, and 9.0 only opens data at FCV 8.0 or 8.3. Go back to your previous image, move to mongo:8.3, set the FCV to 8.3 and only then switch to 9.0.
The Jellyfin 12 dashboard error r.map is not a function appears when /web/ConfigurationPages returns HTML or an empty body instead of JSON, and the web client keeps that answer in IndexedDB for 24 hours. Fix the reverse proxy, then delete the jellyfin-query-cache key and the browser's cached files.
The gitea/act_runner image has been frozen at v0.6.1 since 30 April 2026; the runner now lives in gitea/runner and is at 5.2.4. The jump keeps your registration, but three changes break jobs: ${VAR} in config.yaml, the valid_volumes wildcard and jobs without runs-on.
The unexpected argument '--frozen-lockfile' found error appears because npm install -g pnpm now installs pnpm 12, rewritten in Rust, and its CLI no longer takes a space-separated value. Replace --frozen-lockfile false with --no-frozen-lockfile, and pin pnpm in your Dockerfile and in packageManager so the next major does not surprise you.
Since Caddy 2.11.6, request headers are capped at 16 KiB and anything larger gets 431 Request Header Fields Too Large. Raise the cap with max_header_size in the servers block. The same release silently drops headers that contain a dot, cuts stalled uploads after 60 s and stops inheriting client_auth from a wildcard site.
You upgrade Nginx Proxy Manager to 2.16.0 by changing the image tag and recreating the container. It ships no database migrations, and in my test it kept every host, certificate and access list. Back up data and letsencrypt first: rolling back to 2.15 by swapping only the image leaves any path you protect with the new feature unprotected.
Gitea 28 shows You cannot import from disallowed hosts when you migrate or mirror from a private IP, such as another container on your Docker network. A hostname is no longer enough: add the source IP or subnet with its port to [migrations] ALLOWED_HOST_LIST, for example 172.31.105.0/24:3000, and the migration goes through.
Promtail lost support on 2 March 2026 and its replacement is Grafana Alloy. The alloy convert command translates the configuration and inherits the positions file, but it silently changes multiline and rereads the history of Docker containers. Here I migrate a real setup and check with LogQL that no line is lost or duplicated.
Docker Desktop 4.94, released on 5 October 2026, uses the local logging driver for new Linux containers: it rotates and compresses with no setup. In my test, 3 million lines took 454.5 MB with json-file and 15.5 MB with local. Docker Engine on Linux still defaults to json-file, so on a server you have to change it yourself.
The pull access denied for minio/mc error appears because MinIO deleted that image from Docker Hub in September 2026, and it stops the whole compose stack even though only the bucket-creation container uses it. Swap it for pgsty/silo, the Chainguard image or aws-cli, or drop the service if your buckets already exist.
On an arm64 CPU with no GPU, llama.cpp 0.5.0 served Qwen3-1.7B as a Q8_0 GGUF at 72.7 tokens/s per request and 236.9 tokens/s with 8 concurrent requests. vLLM 0.30 in BF16 reached 10.1 and 68.3 tokens/s and used 11.4 GiB of RAM against 7.0 GiB.
The Error loading configuration file: /config/config/encoding.xml message in Jellyfin 12.0 and 12.1 comes from the EncoderPreset xsi:nil line that 10.11 writes by default. The server starts, but transcoding falls back to defaults and QSV is gone. Jump to 12.2 before migrating, or change that line to auto.
To upgrade Nextcloud 34 to 35 in Docker, back up the database and the volume, switch the image to nextcloud:35 and let the container start run occ upgrade. You can only move one major version at a time. What breaks are apps with no release for 35, and going back to 34 means restoring the backup.
CVE-2026-109618 and CVE-2026-109619 are two critical PHP flaws (CVSS 9.2) that allow unauthenticated remote code execution. They affect PHP 8.2, 8.3, 8.4 and 8.5 below 8.2.35, 8.3.36, 8.4.27 and 8.5.12, released on 21 October 2026. The only complete fix is to update and restart every PHP worker.
The cannot import name streamablehttp_client error appears because the Python mcp package 2.x deleted that function, and McpError was renamed MCPError. To get unblocked, pin mcp
Lightpanda 0.4.1 and Obscura 0.2.3 speak CDP and open the same sites as headless Chrome, but they do not pass the same tests. On arm64, driven by Playwright, Chrome passed 17 of 17 and Lightpanda and Obscura 10 each. With 8 sessions, Lightpanda loaded 5.6 times as many pages per second as Chrome, and Obscura 4 times as many.
Vaultwarden 1.37.3 supports single sign-on over OpenID Connect through SSO_ENABLED, SSO_AUTHORITY and a client registered in your provider. With Pocket ID you sign in with a passkey, but the master password is still required because it is what encrypts the vault. SSO_SIGNUPS_ALLOWED decides whether SSO may create new accounts.
llama-server prints error: invalid argument: --mlock because build b10875, from 9 September 2026, deleted --mmap, --no-mmap, --mlock and --direct-io. Replace them with --load-mode: --mlock becomes mmap+mlock, --no-mmap becomes none and --direct-io becomes dio. The LLAMA_ARG_MLOCK and LLAMA_ARG_MMAP variables now do nothing, with no warning.
MariaDB 13.0.2, stable since 15 September 2026, is a rolling release with community support until Q4 2026, not an LTS. It adds redo log archiving, UPDATE with RETURNING and implicit query block names for hints. I upgraded in Docker from 12.3 and 11.8: the server starts, but mariadb-upgrade misses broken stored routines.
Keycloak 26.7.4 can act as the authorization server for an MCP server: it publishes its metadata, supports dynamic client registration and issues JWTs that FastMCP validates. It does not implement RFC 8707, so the token audience comes from a client scope and a mapper, and the MCP server must always check it.
WSL containers is the WSL 3.0.1 feature that ships wslc.exe, a CLI with Docker syntax to build and run Linux containers on Windows without installing another engine. It has been stable since 29 September 2026, but it does not read compose.yaml yet, so Docker Desktop is still needed for Compose projects.
I built the same Go and Python app on Wolfi, Alpine, distroless and Debian slim. For Go, chainguard/static and distroless/static leave 3.1 and 3.3 MB compressed with zero CVEs. For Python, Alpine gives the smallest image (24.2 MB) if every dependency ships a musl wheel; Debian slim weighs twice as much and Trivy reports 204 findings.
Python 3.15 adds lazy imports through the lazy keyword, the frozendict and sentinel builtins, UTF-8 as the default encoding, unpacking in comprehensions and Tachyon, a sampling profiler. In Docker, marking six imports as lazy cut a CLI's startup from 73.5 ms to 9.8 ms and the modules it loaded from 342 to 62.
Home Assistant 2026.10 turns its MCP server on in one click from Settings > System > AI and gives you the URL for your agent. I tested it with the Python SDK and Claude Code: 28 tools, 45 of 122 entities exposed, locks left out by default and admin accounts only.
OpenObserve 1.0 is a single binary that stores logs, metrics and traces, and its AGPL edition ships SLOs with burn-rate alerts. With Docker Compose, Vector and the v1.0.4 image I had it ingesting nginx logs within minutes; the SLO and its alert worked after four traps that this guide explains.
llama-server, the llama.cpp server, exposes /v1/chat/completions, /v1/completions, /v1/embeddings and /v1/models in OpenAI's format, so the official SDK works by changing base_url. I tested v0.5.0 in Docker: tools, schema-constrained JSON and Open WebUI work, but the context is split across slots and a named tool_choice is ignored.
Stirling-PDF 3.0.0 upgrades in Docker by changing the image tag: users, settings, API keys and watched folders survive. But 3.0 adds a 1,000 PDFs per month meter for the API and automations, which answers with a 402 error once it runs out, and it needs a new volume for /storage.
14 min74
We use first- and third-party cookies to analyze site traffic. You can accept them, reject them, or configure your choice.
Learn more about cookies
Cookie preferences
NecessaryEssential for the site to work. Always on.
AnalyticsHelp us understand how the site is used (Google Analytics).