Skip to content

Latest Posts


Seafile in Docker with self-signed certificate

Introduction

Seafile is an open-source file-hosting and file-syncing software. It can be used to sync files across different devices in your possession. In comparison to other solutions like NextCloud, Seafile is very efficient in syncing large number of files (especially small files). I have used it in my homelab for a very long time so today, I will demonstrate how to install Seafile Community Edition with self-signed certificate using Docker.

OS used: Debian 13
Software used: Seafile 13

Upgrading Debian 12 to Debian 13

Introduction

Debian 13 was released in August 2025. I don't upgrade my servers right away to new version. I wait a few months and in the meantime tinker with new Debian in virtual machine on my desktop. This helps me to identify, if there are any major bugs in the software that I use in my homelab. In this post I will demonstrate how to upgrade Debian 12 "Bookworm" to Debian 13 "Trixie".

OS used: Debian 12, Debian 13

Zram swap

Introduction

When creating a virtual machine you can utilize swapfile on a disk as a precaution in case the VM runs low on RAM. In such configuration Linux system will use disk space as extra RAM. However, this has an undesirable effect that when disk is used as RAM the whole system can slow down. Generally if your VM is using swap then it's a good indicator to increase RAM. But if you don't have a possibility to increase RAM, then a method to prevent system slow down is to use zram as swap. Zram in this case can be treated as swap partition kept in RAM that will contain compressed data. This compression has some small performance penalty but allows to utilize more RAM than VM physically have. This post will show how to create swap using zram.

OS used: Debian 12
Software used: zram-tools 0.3.3.1

Self-hosted GitLab runner for CI/CD pipelines

Introduction

In this post I will continue explaining how to get more functionality out of GitLab. One way to automate homelab is to use CI/CD pipelines, and GitLab provides good tools for that. To utilize these CI/CD pipelines we need a GitLab Runner - a program that can be run on a server or even your own computer. However for security reasons, it's best to create a new virtual machine specifically for this task. This post will go into detail how to prepare VM with GitLab Runner.

OS used: Debian 12
Software used: GitLab Community Edition 17.11.1

Self-hosted GitLab container registry

Introduction

When we expand homelab infrastructure we often get to the point when custom solutions are necessary. A common example is creating custom Docker images to run containers. To develop images on one machine and then deploy them to others container registry is needed. In this post I will show how to run self-hosted container registry using GitLab.

OS used: Debian 12
Software used: GitLab Community Edition 17.11.1

Self hosted Vaultwarden password manager with Podman

Introduction

In the last blog post I described how to install Bitwarden with Docker. There is a lighter alternative to Bitwarden server called Vaultwarden and it's compatible with official Bitwarden client. Other differences between those two can be easily found online, so I won't go into details here. To make things more interesting, this instruction will show how to install Vaultwarden with Podman.

OS used: Debian 12
Software used: Podman 4.3.1, Vaultwarden 1.32.7

Traefik reverse proxy with Podman

Introduction

If you are running many containers with Podman and want to have HTTPS connection to every one it can be tedious to manually obtain SSL certificate for every service. A simpler solution is to run a reverse proxy in front of your containers and configure it to handle the certificates. Traefik is a popular choice for a reverse proxy. In this post I will show how to set up a configuration where Traefik runs in a container and acts as reverse proxy to other containers running on the same machine, and all managed with Podman.

OS used: Debian 12
Software used: Podman 4.3.1, Traefik 3.2.3