5 Simple Apps for Beginners to Self-Host in Docker


Self-Hosting applications is a good way to enhance the security of your data. In most cases, by using self-hosted alternatives to many popular services you are ensuring that your data can’t be sold to a third party for marketing purposes. This is a list of applications that you can self-host at home.

To make things easy, all of these applications are installed in a Docker container that you can run on your home Docker setup. If you don’t have Docker installed, you can view the Quick and Easy Steps to Install Docker. It should only take a few minutes to get it up and running.

1. Block Advertisements and Trackers at the DNS Level

Self-Host Pi-hole

Internet advertisements and trackers suck. Advertisements bog down web sites and are always in your face. Pi-hole makes getting rid of them as easy as running a Docker container that serves as your network DNS server and setting it as the DNS server for the devices on your network. You can learn more about installing Pi-hole by visiting this post. Pi-Hole is fast, lightweight, and can even serve as your network DHCP server.

If you want to quickly get it up and running, use the docker run command below. Replace WEBPASSWORD with the password you want to use for the admin interface, and SERVERIP with the IP of your Docker Host. Volumes are not required but are recommended to bind to /etc/pihole and /etc/dnsmasq.d

docker run \
--name=pihole \
-e TZ=America/New_York \
-v pihole:/etc/pihole \
-v dnsmasq:/etc/dnsmasq.d \
-p 80:80 \
-p 53:53/tcp \
-p 53:53/udp \
--restart=unless-stopped \

After you Pi-hole installed, you can use the shortcuts app on your iOS device to quickly enable and disable ad blocking on your network.

2. Store Your Passwords Securely

Bitwarden WebVault

If you spend a lot of time browsing the internet, then you probably have accrued a lot of different passwords. Keeping track of those password can be a pain. You can use an online cloud service, or you could host an application locally on your network to manage your passwords.

Bitwarden is one of the easiest and most secure ways to manage your passwords at home. In addition to the fully featured web vault, it offers phone applications and browser extensions that are comparable with all major platforms.

The guide on how to install Bitwarden on Docker can be found here and you can read the review here. A simple run code is provided below. Remember to create a volume for the /config folder.

docker run \
-p 8005:80 \
-v bitwarden:/config \
--name bitwarden \
--restart always \ 

3. Install a Wiki to Keep Track of your Brain

5 Simple Apps for Beginners to Self-Host in Docker 1

Before installing a wiki, I kept notes everywhere. Evernote, the iOS Notes app, Microsoft One Note to name a few. When it was time to consolidate those notes into one place, Dokuwiki was the obvious choice. Dokuwiki is easy to maintain and backup. The application stores all of your pages as individual markdown files within it’s file structure. It supports various plugins and be customized via it’s various templates. It is a great way to manage your brain.

Dokuwiki can be easily installed via this link from the docker hub thanks to the folks at Linuxserver.io. Below is a Docker Run command that you can use to get it up and running quickly. Make sure to create a volume to bind to the /config folder.

docker run \
  --name=dokuwiki \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e APP_URL=/dokuwiki `#optional` \
  -p 80:80 \
  -p 443:443 `#optional` \
  -v </path/to/appdata/config>:/config \
  --restart unless-stopped \

4. Use a Visual Interface to Manage your Docker Containers

Portainer Containers Screen

Docker is an amazing. No doubt about it. But, some people are not comfortable with working with the command line interface whenever they want to run or change a container. This is where Portainer comes in.

Portainer creates a web based interface and dashboard to manage your docker containers. After you get Portainer installed and configured on Docker, you can checkout the Huge Guide to Portainer for Beginners to learn how to use it effectively. A simple run command for Portainer is below. Make sure you create a volume to bind to the /data folder.

docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name=portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \

5. Create a Dashboard to view it all

Heimdall Screenshot

So now you have all of these amazing services running on your Docker host. Wouldn’t it be nice to have a dashboard that you can use that links to all of your internal services? That is where Heimdall comes in. With this application you can add buttons that contain links and logos for all of your internal services. You can even add external websites as well.

Heimdall is a great application to set as your browser start page so you can easily get to any of your serves as soon as you fire up your browser. To learn about how to run Heimdall in docker, you can view this post. A simple docker command is provided below. Make sure you create a volume to bind to the /config folder within the container.

docker run \
--name=heimdall \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=america/new_york \
-p 8006:80 \
-p 406:443 \
-v heimdall:/config \
--restart unless-stopped \


These applications are incredibly useful for any self-hosted setup. Docker makes hosting at home very easily. If you are looking for more resources relating to Docker you can check out 25 Basic Docker Commands for Beginners and 5 Simple Commands to Clean up Docker.

If you have questions or suggestions for applications to self-host, please leave a comment below.

The post, 5 Simple Apps for Beginners to Self-Host in Docker, appeared first on Codeopolis.


  1. Any thoughts on selfhosted application installers like sandstorm, cloudron and yunohost cloudron that make it easy to run these apps?

    • I haven’t experimented with any of those just yet. Sandstorm is on my list to try out first. I’m sure I’ll do a post about it when I get it up and running.

Comments are closed.