This repository contains the configuration and reference files for my personal homelab, roxan. It is based on an Ubuntu 24.04 LTS server running Docker. The typical deployment location on the server is /opt/docker/roxan/.
Host: roxan
OS: Ubuntu 24.04.4 LTS x86_64
Host: ITX-C246
Kernel: 6.8.0-101-generic
CPU: Intel i3-8350K (4) @ 4.000GHz
GPU 1: Intel CoffeeLake-S GT2 [UHD Graphics 630]
GPU 2: NVIDIA GeForce RTX 2080 Ti Rev. A
Memory: 32 GB (31990MiB)
If you are setting up roxan on a fresh machine, follow these steps before deploying any containers:
- Install OS: Install Ubuntu 24.04 LTS on the host machine.
- Update System:
sudo apt update && sudo apt dist-upgrade -y - Install Docker (Official Guide) & Dependencies:
(Log out and log back in for the Docker group changes to take effect).
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install -y ca-certificates curl git build-essential sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update # Install Docker packages: sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Post-installation steps for Linux (manage Docker as a non-root user) sudo usermod -aG docker $USER
- Install NVIDIA Drivers & Container Toolkit:
(A system reboot may be required after installing the NVIDIA driver).
# Install the appropriate NVIDIA driver (ubuntu-drivers will auto-install the recommended one) sudo apt install -y ubuntu-drivers-common sudo ubuntu-drivers autoinstall # Add the NVIDIA Container Toolkit repository curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit # Configure Docker to use the NVIDIA runtime sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker
- Install Tailscale (VPN):
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up - Prepare the Directory Structure:
sudo mkdir -p /opt/docker sudo chown -R $USER:$USER /opt/docker cd /opt/docker
- Clone the Repository:
git clone https://github.com/leonardonels/roxan.git cd roxan
To deploy any of the containers listed below, navigate to its respective directory inside the compose/ folder and run Docker Compose.
For example, to start Pi-hole:
cd compose/pi-hole
docker compose up -dNote: Some containers may require .env files, specific directory structures in the data/ folder, or initial configuration adjustments before they can start successfully.
Below is a brief description of each container/stack managed in this repository, located in the compose/ directory.
Cloudflare Tunnel daemon, providing secure and fast connections to the local network without opening ports on the router.
- Image:
cloudflare/cloudflared:latest
A control panel for managing Minecraft servers, allowing easy deployment and administration.
- Image:
registry.gitlab.com/crafty-controller/crafty-4:latest
Docker environment configured with NVIDIA toolkit for running CUDA workloads, leveraging the RTX 2080 Ti.
- Image: Custom (
build: .) - Dockerfile contents: Built from
nvidia/cuda:12.8.0-devel-ubuntu24.04, installed with Python 3, PyTorch with GPU-optimized packages, OpenMPI, and general development tools. Setsutf-8locale explicitly.
Custom project or service.
- Image: Custom (
build: .) - Dockerfile contents: Built from
python:3.11-slim, this image clones theleonardonels/floratechrepository directly, installs Django, Daphne, pandas, numpy, scikit-learn, joblib, requests, and pyTelegramBotAPI, and then collects static files.
A self-hosted dashboard that aggregates feeds and widgets in one place.
- Image:
glanceapp/glance
A tool or dashboard for monitoring GPU temperatures, metrics, and usage.
- Image: Custom (
build: .) - Dockerfile contents: Built from
nvidia/cuda:12.2.2-runtime-ubuntu22.04, configured with Python 3 and runsapp.py. Installed with therequirements.txtincluded in the container with an HTTP health check mapped to port 1312.
A very fast, self-hosted photo and video backup solution directly from your mobile phone.
- Images:
ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}valkey:8(andpostgres:14)
A powerful creative engine for Stable Diffusion models, providing a UI for AI image generation.
- Image:
ghcr.io/invoke-ai/invokeai:latest
An extendable workflow automation tool for connecting different services and APIs.
- Image:
docker.n8n.io/n8nio/n8n
A self-hosted productivity platform for file storage, sharing, and collaboration.
- Image:
ghcr.io/nextcloud-releases/all-in-one:latest
A tool to run, manage, and interact with large language models locally.
- Image:
ollama/ollama
A network-wide DNS sinkhole that protects devices from unwanted content and tracks without installing any client-side software.
- Image:
pihole/pihole:latest
Global proxy tool allowing you to host servers without port forwarding.
- Image:
ghcr.io/playit-cloud/playit-agent:latest
A lightweight management UI to easily manage Docker environments, containers, networks, and volumes.
- Image:
portainer/portainer-ce:lts
An unofficial Bitwarden compatible server written in Rust, perfect for self-hosting a password manager.
- Image:
vaultwarden/server:latest
A fast and easy container to test Meta's SAM3 AI Model
- Image: Custom (
build: .) - Dockerfile contents: Built from
pytorch/pytorch:2.7.0-cuda12.6-cudnn9-develwith requirements from the offical SAM3 repo.