Categories

Tools

How to fix unknown storage type file when upgrading OpenBao to 2.7 with Docker

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.

AI Agents

How to self-host Paperclip with Docker and what it does for your AI agents

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.

How to Install

How to install Dockhand with Docker Compose and a socket proxy

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.

Tools

How to upgrade Uptime Kuma 1.23 to 2.x with Docker without losing your history

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.

Tools

How to fix docker.io/bitnami/postgresql not found in Docker and Helm

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.

Tools

How to fix No vector extension found when upgrading Immich to v3

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.

Tools

How to fix quay.io/minio/minio 401 UNAUTHORIZED in Docker and Kubernetes

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.

How to Install

How to install Docker on Ubuntu 26.04 LTS, step by step

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.

Tools

Node.js 26 is now LTS: how to move your Docker image from Node 24

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.

Tools

How to fix Authentik 2026.8 treating HTTPS as HTTP behind a reverse proxy

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.

Tools

How to run Grafana Tempo 3.1 with Docker Compose and Alloy

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.

Tools

How to fix r.map is not a function in the Jellyfin 12 dashboard

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.

Tools

How to fix unexpected argument ‘–frozen-lockfile’ found in pnpm 12

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.

Tools

How to upgrade to Nginx Proxy Manager 2.16 without losing hosts or certificates

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.

Tools

How to fix You cannot import from disallowed hosts in Gitea 28

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.

Tools

How to migrate from Promtail to Grafana Alloy with Docker without losing logs

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.

Tools

How to fix pull access denied for minio/mc in a createbuckets init container

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.

Tools

Jellyfin 12: fix Error loading configuration file encoding.xml

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.

Tools

How to upgrade Nextcloud to version 35 with Docker without losing data

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.

Tools

Vaultwarden SSO with OpenID Connect and Pocket ID in Docker

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.

Artificial Intelligence

How to fix error: invalid argument: –mlock in llama.cpp

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.

Technology

MariaDB 13 new features in Docker, and whether to upgrade

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.

AI Agents

How to secure your MCP server with Keycloak and OAuth in Docker

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.

Tools

WSL containers is now stable: what changes versus Docker Desktop on Windows

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.

Tools

Wolfi vs Alpine vs distroless, measured with the same Docker app

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.

Tools

How to install OpenObserve with Docker and alert on SLOs

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.

Tools

How to upgrade Stirling-PDF to 3.0 with Docker without losing data

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.