Stop Memorising Port Numbers: Set Up Homepage as Your Home Server Dashboard with Docker

Pull every service on your home server into one page. A complete walkthrough for installing Homepage — a fast, good-looking dashboard with real-time system status — using Docker.

Share
Stop Memorising Port Numbers: Set Up Homepage as Your Home Server Dashboard with Docker

Once you get into self-hosting, your home server fills up quickly: Nextcloud for files, Vaultwarden for passwords, Immich for photos, Paperless-ngx for documents.

Then comes the problem everyone hits — you cannot remember which port belongs to which service.

Typing 192.168.1.100:8080 for passwords and 192.168.1.100:2283 for photos gets old fast. Browser bookmarks help, until you switch to a different machine or reach for your phone, and none of them follow you.

The usual fix in the self-hosting community is a personal dashboard, and the one worth your time is Homepage.

Why Homepage

Homepage is an open-source dashboard built to be the front door to everything on your server. What sets it apart:

  • Fast and light. Built with Go and React. It loads instantly and uses only a few tens of megabytes of RAM per container.
  • Genuinely good-looking. Clean, responsive on any screen size, with light and dark themes built in.
  • Docker aware. It reads container status straight from the Docker socket and shows running/stopped state on each card.
  • Real-time system widgets. CPU, RAM, disk usage and network throughput for the server itself.
  • Service APIs. It can pull live data from the services themselves — ads blocked by Pi-hole, free space in Nextcloud — and show it on that service's card.

Before you start

1. A home server with Docker and Docker Compose already installed

2. SSH access to a terminal on that server

Step 1: Folder structure and Docker Compose

SSH into the server and create a folder for Homepage's configuration:


mkdir -p ~/homepage/config
cd ~/homepage

Then write docker-compose.yml:


version: '3.8'

services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    ports:
      - "3000:3000"
    volumes:
      - ./config:/app/config
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

Mounting the Docker socket is what lets Homepage read container status.

Step 2: The configuration files

Homepage is configured entirely through YAML, which keeps things tidy. You need five files in ~/homepage/config.

docker.yaml — lets Homepage talk to the Docker daemon:


kubernetes:
  role: ""
docker:
  - name: my-home-server
    socket: /var/run/docker.sock

settings.yaml — page title, header style and layout:


title: Private Brain OS
headerStyle: clean
layout:
  Personal Cloud:
    columns: 2
  Security & Tools:
    columns: 2

widgets.yaml — clock, search box and system resources:


- datetime:
    text_size: l
    format:
      timeStyle: short
      dateStyle: long
      hour12: false

- search:
    provider: duckduckgo
    target: _blank

- system:
    showHost: true
    cpu: true
    memory: true
    disk: /

services.yaml — the important one. This is where your services and their live status come from (assuming your server is at 192.168.1.100):


- Personal Cloud:
    - Nextcloud:
        - icon: nextcloud
          href: http://192.168.1.100:8000
          description: Private file storage and cloud
          server: my-home-server
          container: nextcloud

    - Immich:
        - icon: immich
          href: http://192.168.1.100:2283
          description: Photo and video library at home
          server: my-home-server
          container: immich

- Security & Tools:
    - Vaultwarden:
        - icon: vaultwarden
          href: http://192.168.1.100:8080
          description: Password and secrets manager
          server: my-home-server
          container: vaultwarden

    - Linkwarden:
        - icon: linkwarden
          href: http://192.168.1.100:3000
          description: Bookmark manager
          server: my-home-server
          container: linkwarden

Tip: Homepage ships with hundreds of icons and fetches more automatically. Just write the service name in lowercase — nextcloud, vaultwarden, immich — and the right logo appears.

bookmarks.yaml — external sites you open often:


- Developer Tools:
    - GitHub:
        - icon: github
          href: https://github.com/

Step 3: Start it


docker compose up -d

Open http://:3000. You should see cards for each service with a green or red dot showing live container status, and CPU, RAM and disk gauges across the top.

Where to go next

Two additions make this a genuinely useful front door:

1. Tailscale — reach the dashboard securely from anywhere, over a private network, without opening a single port to the internet.

2. A reverse proxy with a real hostname — so you stop typing IP addresses entirely and use something like home.yourdomain.com.

At that point the port numbers you started with are gone for good.

Read more

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

เรียนรู้วิธีใช้ AI Agent ช่วยบันทึกและวิเคราะห์การตัดสินใจสำคัญในชีวิตประจำวัน เพื่อเปลี่ยนทุกทางเลือกให้กลายเป็นฐานข้อมูลบทเรียนที่มีค่าสำหรับอนาคต

By Linn
คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

Graph View ใน Obsidian ไม่ใช่แค่ภาพกราฟสวยๆ ไว้ดูเล่น มาเรียนรู้วิธีปรับแต่ง Local Graph, Color Groups และฟิลเตอร์ เพื่อเปลี่ยนเครือข่ายความรู้ให้กลายเป็นเครื่องมือนำทางความคิดจริง

By Linn
สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

เปลี่ยนข้อความ โค้ด ลิงก์ และไอเดียที่คุณคัดลอกระหว่างวันให้กลายเป็นบันทึกความรู้ที่มีบริบทใน Second Brain โดยอัตโนมัติ ด้วยสคริปต์ Python คอยมอนิเตอร์คลิปบอร์ดคู่กับ Local LLM บน Ollama แบบออฟไลน์ 100%

By Linn
บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

ยกระดับการจัดการคอนเทนเนอร์บน Home Server ให้ง่ายและเป็นระเบียบ ด้วย Dockge ตัวจัดการ Docker Compose สไตล์มินิมอลที่เน้นความโปร่งใส ควบคุมไฟล์ .yml ได้โดยตรง 100%

By Linn