Categories

Tools

Host and Container Metrics with Node Exporter and cAdvisor

Node Exporter and cAdvisor are the two exporters that feed Prometheus: the first collects host metrics (CPU, RAM, disk and network) on port 9100, and the second collects per-container metrics on port 8080. This guide brings both up with a single docker-compose.yml, connects them to Prometheus and explains which metrics to watch.

Tools

How to Install Prometheus with Docker

Prometheus is the most widely adopted open-source monitoring and alerting system for self-hosted infrastructure, and with Docker you bring it up with a single docker-compose.yml and a prometheus.yml. It collects metrics using a pull model, stores them in its time-series database and exposes them on port 9090, ready to query with PromQL and visualise in Grafana.

Tools

How to Install Duplicati with Docker

Duplicati is a free backup tool that encrypts your data with AES-256 before sending it and only uploads the blocks that have changed. With Docker you bring it up from a single docker-compose.yml, mount your folders read-only and schedule encrypted backups to S3, MinIO, B2 or SFTP. This guide covers installation, encryption, retention and restore.

Tools

How to Install Seafile with Docker

Seafile is an open-source file sync and storage platform that keeps data in blocks, Git style, which makes it very fast when you handle lots of files. With Docker it comes up in four containers (server, a MariaDB database, a Redis cache and a Caddy proxy) from a single docker-compose.yml file.

Tools

How to Install Syncthing with Docker

Syncthing is a free peer-to-peer file synchronisation tool: it keeps folders identical across your devices without going through the cloud and with all traffic encrypted. With Docker you bring it up from a single docker-compose.yml using host networking, PUID/PGID for permissions and a persistent volume. This guide covers the installation, device pairing and the ports you need.

Tools

How to Install MinIO with Docker

MinIO is an object storage server compatible with the Amazon S3 API that you can self-host with Docker. With a single docker-compose.yml you bring up the API on port 9000 and the console on 9001, create buckets and access keys with the mc client, and use it as an S3 backend for backups, attachments and photos.

Tools

How to Manage Databases with Adminer and pgweb in Docker

Adminer and pgweb are two web-based database managers that run in Docker with a single container each. Adminer is one PHP file that handles MySQL, PostgreSQL and six other engines; pgweb is a Go explorer dedicated to PostgreSQL. This guide brings a ready-to-copy docker-compose.yml and explains how to secure them properly.

Tools

How to Install Redis with Docker

Redis is an in-memory key-value data store used as a cache, a job queue and a session manager. With Docker you bring it up from a single docker-compose.yml file, with persistence on a volume, a mandatory password and a healthcheck. This guide covers the installation, how to secure it and how it differs from Valkey.

Tools

How to Install MariaDB with Docker

MariaDB is an open-source relational database, a fork of MySQL and compatible with it, that in Docker runs as a single container with a persistent volume. With this docker-compose.yml you set the root password, the database and the initial user through environment variables, and you keep your data even if you recreate the container.

Tools

How to Install PostgreSQL with Docker

PostgreSQL, which its own project calls the most advanced open-source relational database, comes up in Docker with a single docker-compose.yml file. You define a persistent volume at the path version 18 expects, the superuser password and a pg_isready healthcheck, and within seconds you have a server on port 5432 ready for other containers to connect to it by the service name.

Tools

How to Install Firefly III with Docker

Firefly III is an open-source personal finance manager you self-host with Docker. With one docker-compose.yml file you bring up the application, a MariaDB database and the data importer, which connects to more than 6,000 banks through GoCardless. You generate the 32-character APP_KEY and keep control of all your money on your own server.

Tools

How to Install Stirling-PDF with Docker

Stirling-PDF is a web-based Swiss Army knife for PDFs that you self-host with Docker in a single container. With one docker-compose.yml file you bring up more than fifty tools to merge, split, compress, convert, sign and OCR your documents, all processed on your own server and without sending anything to the cloud.

Tools

How to Install Vikunja with Docker

Vikunja is an open-source task manager that you self-host with Docker in a single image. With one docker-compose.yml file you bring up the application alongside a PostgreSQL database and organize your projects in list, kanban board, Gantt and table views, with all your data stored on your own server.

Tools

How to Install Outline with Docker

Outline is a source-available team wiki and knowledge base that in Docker needs three pieces: PostgreSQL, Redis and a login provider, because it ships with no local username and password. With one docker-compose.yml file you bring up the service, connect it to Authentik over OIDC and store attachments in MinIO.

Tools

How to Install Docmost with Docker

Docmost is an open-source wiki and knowledge base, a self-hosted alternative to Confluence and Notion. On Docker it runs as three containers: the application, a PostgreSQL database and a Redis cache. A single docker-compose.yml file gives you workspaces, real-time collaborative editing and full control over your documents.

Tools

How to Install Wiki.js with Docker

Wiki.js is an open-source wiki engine written in Node.js that, in Docker, runs as two containers: the application and a PostgreSQL database. With a single docker-compose.yml file you get your own wiki with a Markdown editor, version control and more than forty authentication methods, and your pages stored in a volume that you control.

Tools

How to Install BookStack with Docker

BookStack is an open-source documentation wiki platform, written in PHP with Laravel, that organises content into shelves, books, chapters and pages. With Docker it installs in minutes using the LinuxServer image alongside a MariaDB database, and you only need to set APP_URL and APP_KEY in a single docker-compose.yml file.

Tools

How to Install Paperless-ngx with Docker

Paperless-ngx is an open-source document manager that digitises and archives your papers with full-text search. In Docker it runs as five containers (application, PostgreSQL database, Valkey queue, Gotenberg and Tika) through a single docker-compose.yml, and it performs OCR and automatic tagging on every document you drop into its consume folder.

Tools

How to Install Nextcloud with Docker

Nextcloud is an open-source private cloud platform that, in Docker, runs as three containers: the application, a MariaDB database and a Redis cache. With a single docker-compose.yml file you get your own self-hosted Drive, calendar and contacts in minutes, with your data stored in a volume that you control.

Tools

Watchtower: Automatically Update Docker Containers

Watchtower is a container that watches your Docker registries, detects when a newer image is available, pulls it and recreates your container with the same options. You configure it with a small docker-compose.yml, it polls every 24 hours by default, and you can restrict it with labels or keep it in notify-only mode.

Tools

How to Run a Private Docker Image Registry

A private Docker registry is your own image store: the official registry image listens on port 5000, keeps layers in a volume and, with htpasswd authentication in bcrypt format and HTTPS behind a reverse proxy, lets you push and pull images without depending on Docker Hub or its pull-rate limits.

Tools

Resource Limits (CPU and RAM) and Logging in Docker

By default Docker limits neither the CPU nor the RAM of a container: a single one can exhaust the whole server. In Compose you bound them with deploy.resources.limits (cpus, memory) or the mem_limit and cpus shortcuts, and you control logs with the local driver, which rotates at 20 MB and 5 files by default.

Tools

Profiles in Docker Compose

Docker Compose profiles tag services so they only start when you enable their profile with --profile or COMPOSE_PROFILES. Services without a profile always run; tagged ones stay idle until you ask for them. That lets a single file hold the core stack, debugging tools and optional extras without duplicate compose files.

Tools

Healthchecks and Restart Policies in Docker Compose

A healthcheck is a command Docker runs periodically inside the container to decide whether the service is healthy; its state moves from starting to healthy or unhealthy. Combined with a restart policy (no, always, on-failure or unless-stopped) and with depends_on and the service_healthy condition, it stops an application from starting before its database.

Tools

Environment Variables and Secrets in Docker Compose

Docker Compose gives you three ways to pass configuration into a container: the environment key, the env_file attribute and the .env file for interpolation. For sensitive data, do not use environment variables; Docker Compose secrets are mounted as read-only files under /run/secrets/, away from logs and the process environment.

Tools

Docker Volumes and Bind Mounts: Persisting Data

A container loses its data the moment you delete it, unless you store that data outside. Docker gives you two ways: named volumes, which it manages itself under /var/lib/docker/volumes, and bind mounts, which link a host folder. Here you will see when to use each, how to mount them in Compose and how to back them up.

Tools

Docker networking: bridge, host and custom networks

Docker ships six network drivers: bridge, host, none, overlay, macvlan and ipvlan. The default bridge network connects containers by IP but without name resolution. A user-defined bridge adds an internal DNS server so services find each other by name, and it is the recommended choice for almost any deployment.

How to Install

How to install Coolify on Docker (2026 step-by-step guide)

Coolify is a self-hosted deployment platform that runs on top of Docker: it manages Git applications, databases, and SSL certificates from its own web panel. It installs with an official script that brings up Docker and the Coolify containers in 2 to 5 minutes on Ubuntu 24.04 or Debian 13, with no additional manual steps.

How to Install

How to install Portainer with Docker Compose v2

You install Portainer with Docker Compose by writing a single compose.yaml file and running two commands. Portainer CE 2.40 STS supports Docker Compose v2 natively, enables HTTPS on port 9443 out of the box, and manages Docker Engine, Swarm, Kubernetes and ACI from one panel. It runs on Ubuntu 24.04 or Debian 13.

How to Install

How to install Uptime Kuma for basic monitoring

Uptime Kuma installs with Docker Compose and the louislam/uptime-kuma:2.5.5 image (not latest, which still points to 1.x), with a persistent volume at /app/data and port 3001. Bring the container up with docker compose up -d, pick SQLite on the first screen, then create the admin account.

Tools

Dokku: the small PaaS that never dies

Dokku is a single-server open-source PaaS that reproduces Heroku's git push deploy flow using Docker, buildpacks and an automatic SSL reverse proxy. Jeff Lindsay started it in 2013 and it is still actively maintained: release 0.35, from mid-2025, added Cloud Native Buildpack improvements and Caddy as an alternative to nginx.

Architecture

Coolify: a self-hosted Vercel on your own infrastructure

Coolify delivers a Vercel- or Heroku-like experience on your own servers: automatic HTTPS, managed databases, and branch previews without per-build or bandwidth fees. After several months using it on production VPS, here is where it shines, where it still has rough edges, and which teams will genuinely benefit from it.

Tools

Home lab: self-hosted lab as a testing ground

A home lab is a self-hosted services lab, at home or on a VPS, where you practice real system administration: reverse proxy, centralized authentication, monitoring with Prometheus and Grafana, and backups verified with Restic. A second-hand mini PC with 16 GB of RAM is enough for thirty or forty containers, and what you learn transfers directly to professional work.

Technology

Chainguard Images: Minimal and Signed Images

Chainguard Images are minimal Docker containers from the company behind Sigstore, with zero known CVEs, Cosign-signed SBOMs and daily rebuilds on top of Wolfi, its own glibc-based distribution. They pay off over official images when strict compliance, supply chain audits or sensitive production workloads are at stake.

How to Install

How to Install Docker on Debian 13 Step by Step

Installing Docker on Debian 13 means replacing Debian's docker.io package (26.1.5) with the official repository: store the key in /etc/apt/keyrings/docker.asc, declare the repository in docker.sources, install docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin and docker-compose-plugin, then set log rotation and live-restore in daemon.json before exposing the server to production.

Architecture

containerd: The Runtime Underpinning Kubernetes

containerd is the runtime that runs containers in most modern Kubernetes clusters, and almost nobody notices. It manages the full container lifecycle: pulling the image, starting it, networking, and mounting the filesystem. It became the default runtime after Kubernetes 1.24 removed dockershim in May 2022.

Tools

Podman: Containers Without a Daemon or Root

Podman is the Docker alternative with no central daemon and no root privileges required. Each container runs as a direct child process of the launching user, with rootless support since version 1.0 in 2019. If a container escapes, it does not gain host root. When Podman makes sense and what real differences to expect.

Technology

nerdctl: A Lightweight Docker Alternative Over containerd

nerdctl is a Docker-compatible CLI that talks directly to containerd, the standard Kubernetes runtime since dockershim was removed in 2022. It adds rootless support by default, encrypted images with ocicrypt, lazy-pulling, and native CNI. It fits best where containerd already runs, though Docker Engine still wins on advanced Compose and Swarm.

Architecture

From Monolith to Microservices: Transforming the Architecture

Migrating from monolith to microservices means splitting a single system into independent services that deploy and scale on their own. It gains granular scalability and team autonomy, but adds real operational complexity: stable interfaces, Kubernetes orchestration, and a mature DevOps culture are conditions, not optional extras, for the migration to pay off.

How to Install

How to Install Docker on Ubuntu 24.04

To install Docker on Ubuntu 24.04 LTS, add Docker's official repository instead of using Ubuntu's packages, then install Docker Engine: the dockerd daemon, the command-line client, and the Compose and Buildx plugins. The repository line needs a GPG key stored under /etc/apt/keyrings, because apt-key add is retired on 24.04, and it carries the noble codename from /etc/os-release.

How to Install

How to Install Docker Compose on Ubuntu 20.04

Docker Compose is Docker's official tool for defining and running multi-container applications with a YAML file: one command spins up every service, network, and volume it describes. On Ubuntu 20.04 it is installed by downloading the standalone binary from GitHub, though Docker recommends moving to the v2 CLI plugin, since v1 is no longer maintained.

How to Install

How to Install Docker on Ubuntu 20.04

To install Docker on Ubuntu 20.04, add Docker's own repository (not Ubuntu's, which tends to lag behind), import its GPG key, install the docker-ce package, and add your user to the docker group so you can run containers without sudo. Running docker run hello-world at the end confirms the daemon works.