Install and Configure Homer on Ubuntu 24.04

By Anurag Singh

Updated on Nov 06, 2025

Install and Configure Homer on Ubuntu 24.04

In this tutorial we'll learn how to install and configure Homer on Ubuntu 24.04 server.

What is Homer?

Homer is a lightweight, customizable homepage dashboard designed for teams and self-hosters who want a clean way to organize and access their services, tools, and applications from one central place. It runs as a static web application and can be hosted easily on any server, including a VPS or home lab setup.

Homer uses a single config.yml file for configuration, making it simple for us to add services, group them, apply themes, add icons, and personalize the interface without writing any code. It supports search, service grouping, custom logos, themes, bookmarks, and status indicators for services.

Prerequisites

Before we begin, ensure we have the following:

  • An Ubuntu 24.04 dedicate server or KVM VPS.
  • Basic Linux Command Line Knowledge.
  • A domain name, pointing A record to server IP.

How to Install and Configure Homer on Ubuntu 24.04

Run these commands first to prepare the server:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git

If this is a fresh server, allow firewall for web access:

sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable

Step 1: Install Docker on Ubuntu 24.04

Add Docker's official GPG key:

sudo apt-get install ca-certificates curl
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 "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Install Docker

sudo apt-get install docker-ce -y

Verify

docker --version
docker compose version

Log out and log back in so docker works without sudo.

Step 2: Create Homer Folder Structure

sudo mkdir -p /opt/homer/assets
sudo chown -R $USER:$USER /opt/homer

Step 3: Create Docker Compose File

Create Docker compose file:

nano /opt/homer/docker-compose.yml

Paste the following:

services:
  homer:
    image: b4bz/homer:latest
    container_name: homer
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - /opt/homer/assets:/www/assets

Save the file (CTRL+O, ENTER, CTRL+X).

Start Homer

cd /opt/homer
docker compose up -d

Step 4: Create Default Config File

We need the config file to customize the dashboard.

mkdir assets
nano /opt/homer/assets/config.yml

Example section to add a service card:

title: "Home"
subtitle: "Welcome"
logo: "logo.png"
theme: "default"

links:
  - name: "Github"
    icon: "fab fa-github"
    url: "https://github.com/"

services:
  - name: "General"
    icon: "fas fa-server"
    items:
      - name: "Homer"
        logo: "https://raw.githubusercontent.com/bastienwirtz/homer/main/public/logo.png"
        subtitle: "Dashboard"
        tag: "app"
        url: "http://localhost:8080"
        target: "_self"

  - name: "Our Tools"
    items:
      - name: "Portainer"
        url: "http://SERVER-IP:9000"
        logo: "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/portainer.png"
        subtitle: "Docker Management"
        target: "_self"

Save and refresh your dashboard page. No restart needed.

Step 5: Access Homer with Domain + HTTPS

If we want a domain like home.example.com, use Nginx Reverse Proxy:

Install Nginx:

sudo apt install -y nginx

Add Basic Auth with Host Nginx

Install htpasswd tool

sudo apt install -y apache2-utils

Create the password file

sudo htpasswd -c /etc/nginx/.htpasswd admin

Enter password when asked.

To add more users later (without overwriting):

sudo htpasswd /etc/nginx/.htpasswd anotheruser

Create config:

sudo nano /etc/nginx/sites-available/homer

Add:

server {
    server_name home.example.com;

    location / {
        proxy_pass         http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Replace home.example.com with your domain name.

Enable:

sudo ln -s /etc/nginx/sites-available/homer /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Install SSL:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d home.example.com

Step 6: Access Homer

Navigate to your browser and access:

https://home.example.com

You will see sample dashboard that we have added in config.yml file.

Step 7: Managing Homer

Stop container:

docker-compose down

Update to latest version:

docker-compose pull
docker-compose up -d

View logs:

docker logs -f homer

Conclusion

Setting up Homer on Ubuntu 24.04 is a smart way to build a clean and organized dashboard for our services. With Docker, the installation and updates remain simple, and the configuration stays fully under our control. Once configured, Homer makes our workflow faster by placing all important tools and apps in one beautifully designed interface.