Tipi home server manager

Control Center

© Photo by LinkedIn Sales Navigator on Unsplash

© Photo by LinkedIn Sales Navigator on Unsplash

Author(s):

Tipi gives you complete control of more than 100 applications and services. A mouse click is all it takes to install the apps.

To keep your data under your control, instead of outsourcing to unknown servers, the typical approach is to simply host the services yourself. It is becoming increasingly easy for less technically inclined users to operate a small home server. Not least, the Raspberry Pi has contributed significantly to this by encouraging many users to experiment. The choice of suitable hardware is naturally far greater: from devices such as laptops or PCs that have already been replaced by newer gear to virtual machines to rented VPS servers on the Internet.

To save you from having to package and configure every service as a container yourself, the number of home server managers have increased recently. Examples include DietPi, YunoHost, Mistborn, or NethServer. The summer of 2022 saw the release of another alternative in the form of Tipi [1] by Swiss developer Nicolas Meienberger [2].

Management Interface

Tipi is essentially a management interface for the applications and services that you want to run on your home server, without requiring in-depth expertise of the setup and management tasks for the home server operating system. Tipi currently offers more than 100 apps for installation in a click-and-forget process [3]. You don't have to worry about setting up the network or configuring the apps initially and can instead adjust the settings of each app later.

Tipi sets up four containers (Figure 1): The apps all end up in their own Docker containers. (You can try out a demo [4] on the Tipi GitHub page.)

Figure 1: At the end of a short installation process, Tipi sets up the four required containers.

Before installing, you need to decide whether you want to limit the scope of applications and services to your home network or if you additionally want access from the outside. If you want outside access, you need to share both port 80 and port 443 for the corresponding device using port forwarding on your router. Instructions for port forwarding for all popular routers can be found online [5].

Installation

Installing the tool is very simple. As the basis, Meienberger recommends a recent Ubuntu, starting with version 18.04 and preferably the server variant, but other distributions should work just as well. Beyond that, you simply need to download and run an installation script. After a few moments, you will see a URL for the user interface (Figure 2). If you already have Docker and Docker Compose installed, the script will use your defaults. Otherwise, both applications are retrieved during the Tipi install. Tipi runs on port 80 by default.

Figure 2: Tipi reveals the URL where you can access the user interface.

If you want to choose a different port, run the start-up script with the additional --port argument. You can download and run the script simultaneously with a single command:

curl -L https://setup.runtipi.com | bash

If you want to change the port, the first step is to get the script:

clone https://github.com/meienberger/runtipi.git

Then start it manually by typing something like

sudo ./scripts/start.sh --port 8001

(or some other unused port) in the runtipi directory. You will then also need to share this port on your router via port forwarding. To learn how to bind your domain to the Tipi Dashboard before the install, see the "Adding a Domain for the Tipi Dashboard" box.

Adding a Domain for the Tipi Dashboard

First, download the installation script:

git clone https://github.com/meienberger/runtipi.git

Then create a configuration file

sudo nano /runtipi/state/  settings.json

and add the following lines:

{
"domain": "yourdomain.com"
}

Of course, you need your own domain in the final quotes instead of the placeholder. To create a valid JSON file, the text line must be exactly one tab stop away from the margin. Finally, save the file, in nano, for example, by pressing Ctrl+O, and close the configuration file by pressing Ctrl+X.

Next, working in the runtipi directory, type

sudo ./scripts/start.sh

to start the installation.

Before you start installing, make sure your distribution already has the cURL package in place. This is not the case with, say, Ubuntu. I used an LXC container in Proxmox with the server version of Ubuntu 22.04 for testing. During the installation, which takes about two minutes, Tipi creates four containers for the Tipi database, Redis, the reverse proxy for SSL encryption, and the Tipi Dashboard. When done, you will see a URL and, after registering, you will be taken to the Tipi user interface.

Web Interface

Dashboard is the first tab: It tells you about the available space on the hard disk, the CPU load, and the amount of RAM used (Figure 3). The second tab My Apps is still empty at this point and points you to the third tab, the App Store. The fourth and last tab, Settings, is divided into Actions for updating and restarting and the actual Settings (Figure 4). Source code on the right takes you to the project's GitHub page, while Sponsors gives you the ability to support the project financially. The half moon next to Sponsors lets you toggle to Dark Mode, and you can log out with the icon on the far right.

Figure 3: After logging in to the interface, you will see the Dashboard with indicators for the storage utilization level, the CPU load, and the RAM usage.
Figure 4: The most important settings for Domain, DNS, IP, and Repository are grouped in Settings. This is also where you can assign a different storage path for apps and any data generated by them.

The first thing you need to do is visit the App Store to add some applications and services. Tipi lists the apps with their icons, a short description, and a category. Above the list there is a search mask, along with a drop-down Category list to filter the apps shown into one of 14 categories.

Applications

Tipi offers numerous well-known applications such as DokuWiki, Home Assistant, Joplin, Jellyfin, Nextcloud, Pi-hole, Plex, Syncthing, or WireGuard. Click on one of the icons to open an info page about the app. In addition to the version, you will find links to the homepage and the license. Click Install and then use the Expose app switch to choose whether you want Tipi to be accessible outside of your own network. For this, the domain you use (either static or DynDNS-based) must have an A record. You can make this decision later on in the application Settings (Figure 4).

In my case, I first installed the File Browser app to be able to access the files on my home server. This was followed by the Mealie recipe database, into which I imported some of my recipes as a test (Figure 5). To see which containers are installed, I also added Portainer (Figure 6). Depending on the app, the installation took between a few seconds and a few minutes and involved just two mouse clicks. The configuration files of the installed apps are stored in the runtipi folder below app-data in the app.env file in your home directory.

Figure 5: Mealie lets you import recipes from popular blogs quite easily. You can also create meal plans and generate shopping lists from the recipes.
Figure 6: If you install a large number of apps in Tipi, it makes sense to use Portainer to manage them.

Tailscale is another app worthy of mention. This is a VPN service that you can install on any device without having to configure any settings (Figure 7). Tailscale sets up WireGuard as a VPN and connects all participating devices in a mesh.

Figure 7: The Tailscale VPN service can be installed on any device without any configuration; it uses WireGuard as a VPN and connects the participating devices in a mesh.

Update

In the main menu under Settings, Tipi lets you know when a new version becomes available. In this case, a single click on Update is all you need; the tool does all the work. It automatically stops, updates, and restarts the containers in the background. Pressing Restart triggers a restart of the Tipi server. The sudo ./scripts/stop.sh command in the runtipi folder stops the application. To remove Tipi completely, you also need to delete the runtipi file. The file contains information about the containers used in the docker-compose.yml file.

Tipi's documentation, while not yet complete, provides support for topics such as customizing apps [6]. A section on sharing apps outside of your home network was missing at the time of publication, but the process does not cause any problems. If you want to share several apps, it makes sense to create subdomains in advance if your domain does not have a wildcard function. During the installation of an app, flip the Expose app switch to share the app, and enter your subdomain name.

Meienberger describes in detail in the documentation how to share Tipi's web server for free via a tunnel courtesy of the Cloudflare CDN provider. This eliminates the need for router-based sharing and for changing DNS records provider-side. Another section explains how to include Tipi in systemd and how to start it at computer boot time.

Conclusions

Tipi is the fastest home server manager I have heard of, thus far. This is true for home network use, where Tipi is up and running after just a few minutes without requiring further expertise to install apps. When it comes to access from outside the home network, basic knowledge of networks and domains is absolutely essential. After all, the security of your server is at stake. The preparations for this are already in place due to the availability of a reverse proxy. You only need to provide your own domain, and subdomains if needed. A DynDNS service is fine for this, and preferably one that has a wildcard function, so that you can simply specify subdomains during the app installation without having to create them up front.

During testing, Tipi worked flawlessly. The project is under constant development, with new apps being added regularly. Besides reading the documentation, support is available on Telegram [7] or Discord [8]. You can also put forward new apps for inclusion in the package.

The Author

Ferdinand Thommes lives and works as a Linux developer, freelance writer, and tour guide in Berlin.