Wpis

Dockerized Tools - part 1

In the world of self-hosting and home server management, Docker has become a powerful solution for running various applications efficiently. I wanted to share some of the tools I’m using on daily basis ti make my life easier, more organized and much more pleasent.


1. OwnTone – Self-Hosted Music Server with Docker

OwnTone is a powerful DAAP (Digital Audio Access Protocol) server that enables you to stream music via AirPlay to connected devices. It’s an ideal choice for self-hosted music streaming within your network.

Key Features

Supports AirPlay, MPD, and DAAP for multi-room audio streaming.
Integrates with Spotify, MPD clients, and web interfaces.
Works with Apple devices and other compatible audio players.

How to Run OwnTone in Docker

Use the following docker-compose.yml file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
services:
  owntone:
    container_name: owntone
    image: lscr.io/linuxserver/daapd:latest
    restart: unless-stopped
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Warsaw
    volumes:
      - ./config:/config
      - ./music:/music
      - ./cache:/cache

This will start the server, and you can access the web interface at http://your-server-ip:3689.

My comment

I’m using it as my own radio device - I already added some local radio stations streams to configuration, set up Siri Shortcuts to make it work (using Owntone API), and thats it! I can listen to my favourite music via set of speakers (HomePod and JBL SoundBar so far).


2. Nginx Proxy Manager – User-Friendly Reverse Proxy

Nginx Proxy Manager (NPM) simplifies the management of reverse proxies and SSL certificates for self-hosted applications, making it easy to access services securely.

Key Features:

✅ Simple web UI to manage proxy hosts.
SSL certificate management with Let’s Encrypt integration.
✅ Easily route web applications and subdomains.

How to Deploy Nginx Proxy Manager with Docker

To deploy Nginx Proxy Manager, use this docker-compose.yml file:

1
2
3
4
5
6
7
8
9
10
11
services:
  proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Run docker-compose up -d to start the service.
Then, access the web UI via http://your-server-ip:81.

My comment

I’ve set up my custom domain to redirect to this instance. Now, I’m using this tool to configure sudomains to support all the tools I’m using, to sepcific domains (like radio for OwnTone, proxy for this, etc).


3. Portainer – Simplified Docker Container Management

Managing Docker containers via the command line can be complex. Portainer provides a web-based UI for managing Docker containers, images, networks, and volumes efficiently.

Key Features:

Graphical UI to monitor and manage containers.
✅ Supports Docker Swarm, Kubernetes, and standalone Docker instances.
User access control for security.

How to Install Portainer in Docker

Use the following docker-compose.yml file:

1
2
3
4
5
6
7
8
9
10
11
services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce:latest
    restart: unless-stopped
    ports:
      - 9000:9000
      - 8000:8000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data

Then, open http://your-server-ip:9000 in your browser to complete the setup.

My comment

One of the easiest tools to manage docker applications.


4. Home Assistant – Smart Home Automation

Home Assistant is a leading platform for home automation, allowing users to integrate various smart devices (lights, sensors, cameras) into a centralized control system.

Key Features:

Supports 1000+ smart home integrations (Zigbee, MQTT, IoT).
Automate routines across connected devices.
Privacy-first system; runs locally without cloud dependencies.

Install Home Assistant as a Docker Container

Use the following docker-compose.yml file:

1
2
3
4
5
6
7
8
services:
  homeassistant:
    container_name: homeassistant
    image: "homeassistant/home-assistant:latest"
    volumes:
      - /path/to/your/config:/config
    restart: always
    network_mode: host

Please remember to use network_mode: host to make all your smart devices to be discoverable by this application. Then, access Home Assistant at http://your-server-ip:8123.

My comment

As a huge fan of smart home and home automation, this is a dailt driver for me. I will share more information about this tools in another blog post.


5. Jellyfin – Open-Source Media Server

If you’re looking for an alternative to Plex or Emby, Jellyfin is a great choice. It’s a free, open-source media server that allows you to organize and stream your movies, TV shows, and music from any device.

Key Features:

No subscriptions – 100% free and self-hosted.
Supports transcoding and multiple clients (smart TVs, mobile apps, web).
Fast and efficient media playback.

Deploy Jellyfin in Docker

Run the following docker-compose.yml file:

1
2
3
4
5
6
7
8
9
10
11
services:
  jellyfin:
    container_name: jellyfin
    image: jellyfin/jellyfin
    ports:
      - 8096:8096
      - 8920:8920
    volumes:
      - /path/to/media:/media
      - /path/to/config:/config
    restart: unless-stopped

Once running, access Jellyfin at http://your-server-ip:8096.

My comment

Having NAS server or even external drive with photos or movies you want to have available (also only for yourself) at every time - JellyFin is here to help.


Conclusion

Using Dockerized tools like OwnTone, Nginx Proxy Manager, Portainer, Home Assistant, and Jellyfin allows you to simplify service management, enhance automation, and improve media accessibility in a reliable, scalable way. This “format” makes it really easy to manage thos tools, makes them really simple to be moved to new server, device, etc, also makes them “hardware” independent.

Ten post jest udostępniony na licencji CC BY 4.0 przez autora.