Selfhosting

Services

Once you have your server running some form of Linux, you can start hosting your own services. Most people use Docker to do this. Docker is a tool that lets you run software inside small containers that are isolated from each other, which makes it much easier to install, manage, and update your services.

On Unraid or TrueNAS, they're even one click installs via a docker appstore, that configure most of the setup for you. If you went with a basic Linux install, you'll have to install Docker wirh your package manager, and then either use Docker-run or Docker-compose to manage and configure your containers. It may look daunting, but when dealing with pre-made images it is significantly easier, and all you have to do is set your variables.

Docker Overview

Docker containers are like lightweight virtual machines. You can run multiple services (containers) on the same server without them interfering with each other or your OS. For example, you could run one container for a website, one to host a minecraft server, and another for a media server.

Popular Self-Hosted Services

  • Immich – Selfhost your photos and sync them between your devices
  • Any game server – Selfhost a game server for you and some friends (Ex: Minecraft)
  • Pi-hole – A network-wide ad blocker, using DNS level filtering.
  • SearXNG – Selfhost your browser
  • Home Assistant – Control smart home devices privately.
  • 2FAuth - Generate your own TOTP codes
  • Joplin or Obsidian - Host your own notes app
  • Ollama + OpenWebUI – Run basic local AI (2B-8B)

Minecraft Server Example

A great beginner project is hosting your own Minecraft server. You can do this in a Docker container using an image like itzg/minecraft-server or hexparrot/mineos. You can easily control the server's version, world files, and memory limits.

Running your own game server lets you control who joins, install your own plugins or mods, and learn about port forwarding/tunneling, which are valuable things to know.

Docker logo

Minecraft logo