Categories

Tools

How to upgrade Karakeep to 0.34 with Docker without getting locked out

Before upgrading Karakeep to 0.34, look for accounts whose email differs only in case: the migration lowercases every email except those, and they become unreachable with Incorrect email or password. One UPDATE in SQLite fixes it. On top of that, everyone signs in again and the Chrome container moves to a new image.

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.

How to Install

How to install Pinchflat-ngx with Docker and migrate from Pinchflat

Pinchflat-ngx is a community fork of Pinchflat, the self-hosted YouTube downloader whose repository has had no commits since December 2025. On 7 October 2026 I installed it with Docker Compose, pointed the old Pinchflat volume at the new image and downloaded two Creative Commons videos into a Jellyfin-ready folder, NFO files included.

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 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.

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 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.

How to Install

How to install Talos Linux in your homelab, from Docker to Proxmox

To install Talos Linux without touching hardware, talosctl cluster create docker brings up a two-node Kubernetes cluster in containers. On real machines or Proxmox three things change: you boot an Image Factory ISO, push the configuration with apply-config and run bootstrap exactly once. Everything is operated through an API, with no SSH.

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 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

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.

Tools

How to install Gatus with Docker Compose, monitoring as code vs Uptime Kuma

Gatus is an uptime monitor you configure with YAML files instead of a web interface. With Docker Compose, the v5.37.0 image and a volume for SQLite, it checks HTTP, TCP, certificates and DNS TXT records, and alerts through a webhook. In my test it alerted on an nginx outage after 30 seconds, the time three 10-second checks take.

Tools

How to fix pull access denied for minio/minio in Docker

The pull access denied for minio/minio error appears because MinIO removed its Docker Hub images in September 2026, and quay.io has required an account since the 24th. Point your compose file at cgr.dev/chainguard/minio, at the pgsty/silo fork or at an image built from source: your existing data keeps working.

Tools

How to migrate from MinIO to RustFS 1.0 with Docker

To migrate from MinIO to RustFS 1.0 with Docker, run RustFS next to MinIO, import the users with mc admin cluster iam, copy the buckets with rclone sync --metadata and compare them with rclone check --download. In my test 4,012 objects arrived identical; versions, tags and public access had to be redone by hand.

How to Install

How to install OpenBao with Docker and Raft storage

To install OpenBao with Docker, run the openbao/openbao:2.6.2 image with Raft storage on a volume, initialise it with bao operator init and unseal it with three of the five keys. OpenBao is the MPL 2.0 fork of HashiCorp Vault and keeps its API, so your applications read secrets the same way.

AI Agents

How to migrate self-hosted Langfuse from v3 to v4

To migrate Langfuse v3 to v4 with Docker Compose, first upgrade ClickHouse to 26.4 while still on v3, back up PostgreSQL and ClickHouse, start v4 in dual write mode, backfill the history and cut over to events_only once every SDK is compatible. I tested it with 45,931 traces and three Python SDK versions.

Tools

File Browser alternatives now that the project is archived

File Browser was archived on 31 August 2026 and its v2.63.23 carries at least 8 published vulnerabilities that will never be patched. After testing the alternatives in Docker on the same folder, FileBrowser Quantum is the drop-in replacement, copyparty the lightweight pick for sharing large files, and Filestash the right one when your data lives in S3, SFTP or SMB.

Tools

How to prepare your self-hosted n8n for n8n 3.0

n8n 3.0 is not out yet: n8n plans it for October 2026 and the stable release is 2.39.6. To prepare a Docker install, open Settings > Migration Report, replace the removed nodes, pin the defaults that change, move binaryData to storage and try the v3-nightly image on a copy.

How to Install

How to upgrade Jellyfin 12 with Docker and keep a way back

Jellyfin 12.0 came out on 8 September 2026 and rewrites the database on startup, so there is no way back without a backup. In Docker, the safe path is to stop the container, copy /config, remove third-party plugins, change the tag to 12.0, migrate and run a full library scan.

How to Install

How to migrate from MinIO to Garage with Docker

MinIO images no longer pull from Docker Hub, and the quay.io copy is frozen in 2025. To migrate from MinIO to Garage with Docker, run Garage v2.5.0 next to MinIO, copy the buckets with rclone sync, verify them with rclone check, and switch endpoint, keys and region in your clients.

How to Install

How to install Forgejo with Docker, Caddy and Forgejo Runner

To install Forgejo with Docker, use the codeberg.org/forgejo/forgejo:16.0 image, which since 10 September 2026 is 16.0.4 and fixes a critical remote code execution flaw. Put it behind Caddy with REVERSE_PROXY_TRUSTED_PROXIES set to the proxy's IP, and register Forgejo Runner 13 against the instance's public URL.

Tools

Activepieces and Windmill against n8n: which self-hosted automation to choose

n8n is not open source: its Sustainable Use License limits you to your own internal business purposes and forbids charging people to access a hosted instance. Activepieces publishes its core under MIT but keeps agents, projects and API access outside it. Windmill compiles to AGPLv3 from source, yet the distributed Community Edition is not open.

How to Install

How to install Jellyfin with Docker

Jellyfin is a GPL-2.0 media server that asks for no account and no subscription. You install it from the official compose file, which publishes port 8096 and mounts three separate volumes for configuration, cache and media. The stable release in August 2026 is 10.11.11, and hardware transcoding is included.

Tools

k3s vs k0s vs Talos Linux: which lightweight Kubernetes to choose

k3s and k0s are Kubernetes distributions you install on a conventional Linux host you keep administering; Talos Linux is an immutable operating system with no shell and no package manager, driven by an API, running upstream Kubernetes. They are not layers: you pick one, and node count decides which.

How to Install

How to install k3s in your homelab

k3s is a conformant Kubernetes distribution that fits in a 68 MiB binary and installs with one command. It ships containerd, Flannel, CoreDNS, Traefik, ServiceLB and local storage already wired, keeps its state in SQLite, and has a node serving in three seconds.

How to Install

How to install Karakeep, your bookmark manager with AI tagging

Karakeep is a self-hosted bookmark manager that stores links, notes, images and PDFs, archives the whole page with monolith and videos with yt-dlp, and tags everything with a language model. It installs from a three-container compose file, and tagging works with either a hosted model or a local Ollama.

How to Install

How to install Pocket ID and get passkey SSO on your homelab

Pocket ID is an OpenID Connect provider that accepts passkeys and nothing else, so it stores no passwords at all. You deploy it with one container, one port and one env file, it demands HTTPS because WebAuthn needs a secure context, and it puts your self-hosted apps behind single sign-on.