If you need a self hosted password manager then Bitwarden is a good choice. In this post I will show how to install Bitwarden with Let's Encrypt certificate using DNS challenge with Cloudflare (by default it is HTTP challenge).
OS used: Debian 12 Software used: Docker 27.4.0, Bitwarden 2024.12.1
Podman is a Docker alternative with distinction that it is a daemonless container engine and containers created with Podman can be run by regular users without root privileges. This enhances security because if a process escapes container, it won't run on the host with root privileges but with user privileges running the container. If it's so secure, why is Docker still popular? The answer is that the daemonless architecture of Podman makes it more complex to manage, especially set up containers to run with every system start. Also there is less documentation available for Podman compared to Docker, so this post will try to summarize how to create functioning Podman host.
This guide demonstrates how to create nginx container in K3s Kubernetes distribution with valid Let's Encrypt certificate for HTTPS. Let's Encrypt certificate will be obtained using DNS challenge method with a domain registered on Cloudflare.
K3s is a lighter variant of Kubernetes distribution than RKE2, which was discussed in previous posts. It is well-suited for single node homelab environments or IoT deployments where resource efficiency is important. Based on my testing, K3s consumed less CPU in an idle state than RKE2. In this blog post I will show how to install K3s.
Having Git repository in your homelab is a good idea for storing code for various projects. For a lightweight option similar to GitHub, consider the Gitea project. GitLab is another option, offering a more feature rich experience, though it is more resource intensive. This post will concentrate on installing GitLab Community Edition.
UPDATE 2026-04-26: Added instruction how to automatically reload nginx configuration after obtaining new SSL certificate.
OS used: Debian 12 Software used: GitLab Community Edition 17.4.2
HTTPS is the current standard for secure access to webpages, even in your homelab environment. However, most self-hosted applications by default use HTTP. To enable HTTPS you can use self-signed certificates, but then when accessing application, you will be prompted to trust self-signed certificate. On some devices like Android, this can be very troublesome because you need to trust self-signed certificate every time you open webpage. To solve this problem you need to add RootCA certificate to the system, which is also a troublesome process. Less troublesome solution is to use Let's Encrypt certificates. In this post, I will show you how to obtain such certificate for single host in your homelab.
UPDATE 2025-11-15: Added paragraph "Bonus - Copying certificates" at the end of article describing how to auto copy certificates to other directories.
In homelab environment it's nice to have a host which can run containerized apps. For running containers on such host you can use Docker, Podman or Kubernetes. In this post I will show how to install RKE2 Kubernetes distribution.
Virtual machine deployment in Proxmox can be achieved faster by creating virtual machine template with desired settings and then cloning this machine. This new virtual machine requires some changes after cloning so to speed-up this process Ansible can be used. Example how to do this will be shown in this article.
This post demonstrates how to quickly create and afterwards clone virtual machine in Proxmox using Debian cloud image. When not using cloud image, more time must be spent after cloning virtual machine: you need to recreate SSH keys (cloning virtual machine doesn't change host SSH keys and that can cause problems with SSH connection to VMs cloned from same template machine), create new user with SSH access, change partition size when you resize disk in Proxmox, set hostname. All of this can be easily achieved with Debian cloud image because it is using cloud-init and Proxmox has built in support for it. This instruction is for creating virtual machine from cloud image on Proxmox with ZFS filesystem.