Following last week’s blog — Getting Started with Self-Hosting Your First Home Server — we’ll take things a step further and explore a few more services you can run on your server.
These are beginner-friendly tools that don’t require much configuration but still provide meaningful functionality:
- Portainer - Container Management
- Homarr - A Sleek Dashboard
- Netdata - Server Monitoring
All three will be deployed using Docker Compose for simplicity and easy management.
What is Docker compose?
If you have never heard of it then you can think of it as a overpowered feature of docker that allows you manage containers state and what not with just a 1 line of command. It consist of a YAML file which are basically configuration files that tell compose what containers to run with what all settings.
To install docker compose on you machine you can follow the official documentation here.
Once installed, we’ll set up a clean directory structure to organize our Compose files.
Setting up the directory structure
SSH into your server and run:
cd $HOME
mkdir -p docker/{portainer,netdata,homarr}
cd docker
This will create a docker
folder in your home directory, with subfolders for each service. Keeping things organized now will save you headaches later when you add more services.
1. Deploying Portainer
Portainer provides a web-based interface to manage your Docker environment — images, containers, volumes, and networks — without touching the command line.
More details: portainer.io
Navigate to the Portainer directory and create a docker-compose.yml
:
cd $HOME/docker/portainer
sudo nano docker-compose.yml
Paste the following:
services:
portainer:
image: portainer/portainer-ce:latest
ports:
- 9443:9443
volumes:
- data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
volumes:
data:
Start Portainer:
sudo docker compose up -d
Access it in your browser:
https://<server-ip>:9443
You’ll be prompted to create your admin account.
Tip: If port 9443 is already in use, change it in the ports
section.
2. Deploying Homarr
Homarr is a beautiful, customizable dashboard that puts all your apps and services in one place. It can even integrate with certain apps to display live stats.
More details: homarr.dev
Navigate to the Homarr directory:
cd $HOME/docker/homarr
sudo nano docker-compose.yml
Paste the following:
services:
homarr:
container_name: homarr
image: ghcr.io/homarr-labs/homarr:latest
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./homarr/appdata:/appdata
environment:
- SECRET_ENCRYPTION_KEY=<your_encryption_key>
ports:
- '7575:7575'
You can generate a 32-byte encryption key with:
openssl rand -hex 32
Or use the key generator in Homarr’s installation docs.
Start Homarr:
sudo docker compose up -d
Access it at:
http://<server-ip>:7575
From there, you can start customizing your dashboard.
Setup guide: Homarr post-install docs
3. Deploying Netdata
Netdata gives you real-time performance and health monitoring for your server — CPU usage, RAM, disk activity, network stats, and much more.
More details: netdata.cloud
Navigate to the Netdata directory:
cd $HOME/docker/netdata
sudo nano docker-compose.yml
Paste the following:
services:
netdata:
image: netdata/netdata
container_name: netdata
ports:
- 19999:19999
restart: unless-stopped
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
Start Netdata:
sudo docker compose up -d
Access it in your browser:
http://<server-ip>:19999
You can skip account creation and use the dashboard anonymously if you prefer.
Wrapping up
With Portainer, Homarr, and Netdata running, you now have:
- An easy way to manage containers (Portainer)
- A sleek dashboard for quick access (Homarr)
- Real-time server analytics (Netdata)
All deployed using Docker Compose, making them easy to start, stop, or upgrade later.
If you found this guide helpful, consider subscribing or following for more self-hosting tutorials. Feel free to leave your thoughts or questions in the comments.
Cheers,
Sarthak
Top comments (0)