Homelab DNS/VPN/SSL setup

Abstract:

You have a server at home and want to access it from afar. Look no further, here is your answer.

After this tutorial you will be able to connect from anywhere in the world to your homeserver and acces your apps with a normal DNS and SSL route like:

https://nextcloud.example.com

neat.



Step 1.)

you need a VPN connection to your local LAN.

In my case I have a Fritzbox and can just add a Wireguard connection to it and add it in Ubuntu.


Step 2.)

you need a domain or a sub-domain. In my case I registered a cheap domain, but you can also use a sub-domain.

example.com

or

myhomelab.example.com

You then create an DNS A record wildcard for your local IP like so:


*.example.com
192.168.178.42 (homelab server local ip)


Step 3.)

Setup a (wildcard) SSL self signed certificate with your reverse proxy.

*.example.com


Step 4.)

add your apps to your reverse proxy:

e.g. nextcloud.example.com (fallback to wildcard SSL certificate)


Step 5.)

download the wildcard SSL certificate and import to your browser:


Et voilá, you now can connect to your local stack via SSL and DNS and not getting any “this is not safe” messages from your browser.

And you don’t need to remember the IP and all the ports of your apps! Enjoy!

Docker Tip – Delete all

⚠️ Warning: These commands permanently delete all Docker data. Ensure you have backed up any important data before running them.

  • Stop all running containers:
docker stop $(docker ps -aq)
  • Remove all containers:
docker rm $(docker ps -aq)
  • Remove all images:
docker rmi -f $(docker images -aq)
  • Remove all volumes:
docker volume rm $(docker volume ls -q)

⚠️ For a faster, all-in-one cleanup (networks and build also): ⚠️

docker system prune -a --volumes --force

Linux Tip #1 – neofetch / fastfetch

If you want to have all details of your server/pc, you can use fastfetch. Neofetch is no longer actively maintained and therefore removed from debian 12 and more recent versions.

sudo apt update && 
sudo apt upgrade -y && 
sudo apt install fastfetch -y && 
fastfetch

example output for my laptop:

keahi@xpsdeb
------------
OS: Debian GNU/Linux 13 (trixie) x86_64
Host: XPS 13 9305
Kernel: Linux 6.12.63+deb13-amd64
Uptime: 8 hours, 24 mins
Packages: 1886 (dpkg), 27 (flatpak)
Shell: bash 5.2.37
Display (SHP14AE): 1920x1080 @ 60 Hz (as 1536x864) in 13" [Built-in] *
Display (PHL 275E1): 2560x1440 @ 60 Hz in 27" [External]
DE: GNOME 48.7
WM: Mutter (Wayland)
WM Theme: Adwaita
Theme: Adwaita [GTK2/3/4]
Icons: Adwaita [GTK2/3/4]
Font: Cantarell (11pt) [GTK2/3/4]
Cursor: Adwaita (24px)
Terminal: GNOME Terminal 3.56.2
Terminal Font: Monospace (11pt)
CPU: 11th Gen Intel(R) Core(TM) i7-1165G7 (8)
GPU: Intel Iris Xe Graphics @ 1.30 GHz [Integrated]
Memory: 6.86 GiB / 15.36 GiB (45%)
Swap: 0 B / 15.73 GiB (0%)
Disk (/): 230.30 GiB / 451.96 GiB (51%) - ext4
Local IP (tun0): 10.19.18.166/24
Battery (DELL G8VCF6C): 100% [AC Connected]
Locale: en_US.UTF-8

The source can be found at github:

https://github.com/fastfetch-cli/fastfetch

Homelab Tales 2026 #1 – Nextcloud – one for all

So the first thing I did this year was to see what I can do more with my Nextcloud instance.

Turns out there are some more useful apps to use.


I ditched all other Bookmark apps which I tried in the previous months (Linkwarden (1GB RAM when Idle? no thank you), Linkace etc.) and installed the Bookmark app in Nextcloud.

You can even Sync your Nextcloud Bookmarks to your Browser (Chromium based) and Android Devices via floccus which is kinda nice.

So my current Nextcloud Essentials setup looks like this:


Nextcloud Server Apps:

  • Mail
    • (you can add multiple email accounts from different providers)
  • Notes
  • Tasks
  • Bookmarks
  • Contacts
  • Calendar
  • Files/Photos

Desktop:

Browser:


Android Apps:

🏡 Homelab setup for 2026


So I ditched UmbrelOS because it is not for me and it is not really FOSS.

I bought a new Geekom A8 Mini PC with 32GB/2TB and an external 5TB HDD. I like it a lot. It is really small and also very quiet. So perfect to put it somewhere in your home.

I installed Debian 13 without any problems.

Currently running the following setup:

Docker + Arcane ✅ (https://github.com/getarcaneapp/arcane)

I installed Pocket-Id ✅ and Zoraxy ✅ (reverse proxy) via Arcane, so I now can connect to my local apps via Passkey (Bitwarden) and have HTTPS/SSL also working.


I installed a Bitcoin Node ✅ and Electrum Server (Electrs ✅) via CLI.

Then I installed mempool via Arcane, and now I have my own Blockchain Explorer locally.


Next will be to install BtcPayServer.


Other Self-Hosted Apps which I’m currently using:

Linkace ✅

Nextcloud ✅

  • file sync / photos, documents, backups etc.
  • mail
  • tasks webapp
  • notes webapp
  • calendar
  • contacts

CardDav/CalDav

DAVx5 ✅ – Sync between Android Client and Nextcloud Server

  • Nextcloud Notes Android App
  • Fossify Calendar Android App
  • Tasks Android App


Merry Christmas and a happy new Year 2026 🏡🎄🎅

Homelab #1 – Setup Zoraxy to connect local services to your domain via SSL

currently I’m running umbrelOS on my RaspberryPi 5 locally on my home server.

My goal was to access installed apps from the internet with SSL and a valid (sub-)domain like so:

https://wordpress.example.com

routing to local umbrel IP and Port of wordpress or any other app you want to install ->

http://192.168.1.25:8567

Here is how to do it:

⚙️ Prerequisites

  • umbrelOS installed and running (e.g., on Raspberry Pi or Debian server)
  • Zoraxy installed as an Umbrel app (via Umbrel App Store)
  • A domain or dynamic DNS address (e.g., example.com or umbrel.example.com)
  • Access to your router for port forwarding
  • Basic understanding of local IPs and ports

Small warning before you start:

⚠️ Security Risks

Opening your home server to the internet can expose it to constant scanning and automated attacks. Hackers often target weak passwords, outdated apps, and misconfigured reverse proxies. A single exposed port or forgotten app could give attackers access to your entire system.

🔐 Privacy Concerns

Self-hosting gives you control, but also full responsibility. Any mistake in network or DNS configuration could accidentally leak private information or make internal services publicly visible.

If you don’t know what you are doing then please first get comfortable with network security.

Funny story:

I set this up yesterday, and when i checked Zoraxy this morning I already saw multiple unknown IP addresses from various countries which where trying to scan my local setup.


If you want to be on the safe side you can check out Cloudfare Tunnel.


🔌 Step 1: Configure Router Port Forwarding

To make Zoraxy reachable from the internet, you’ll need to forward two ports in your router:

External PortInternal PortTarget DeviceDescription
80 (HTTP)41080 (Zoraxy)Umbrel IPRedirects to HTTPS
443 (HTTPS)41443 (Zoraxy)Umbrel IPSecure access

⚠️ Important:
Don’t forward any other ports (like 8567 or 22). Zoraxy will handle the routing internally.


⚙️ Step 2: Access Zoraxy Dashboard

  1. On your local network, open http://umbrel.local:8000
    (or by local IP, e.g. http://192.168.1.42:8000)
  2. Login with your Zoraxy admin credentials.
  3. Go to Create Proxy Rules.

Step 3: Add the domain for your App


Example of domain matching keyword:
aroz.org
Any acess requesting aroz.org will be proxy to the IP address below


 Subdomain
Example of subdomain matching keyword:
s1.aroz.org
Any request starting with s1.aroz.org will be proxy to the IP address below

  • Enter your Umbrel IP as Target IP with the Port assigned to the App you want to access e.g.:
    • 192.168.1.42:8567

Step 4: Add SSL Certificate

Go to:

HTTP Proxy -> your site -> TLS / SSL -> Get Certificate

Enabled ACME Auto-Renewer


🧱 Step 5: Keep Umbrel Private

Zoraxy should be the only service exposed to the internet.
Umbrel’s web dashboard (port 80) must not be publicly accessible.

If you notice your example.com points directly to Umbrel’s login page, update your router’s port forwarding to send port 80/443 to Zoraxy, not Umbrel directly.


🛡️ Step 6: Secure and Monitor

To keep your setup safe:

  • Use strong admin passwords (Umbrel + Zoraxy + WordPress)
  • Keep Umbrel and Zoraxy updated
  • Enable Zoraxy’s built-in rate limiting and auth protection
  • Consider using Fail2Ban or UFW firewall on the host OS

🥳 Step 7: Enjoy!

You can now access your WordPress installation at:

https://wordpress.example.com