This is a small utility for TrueNAS SCALE 24.10 (Electric Eel) which configures the Docker networking for TrueNAS-managed apps to allow them to communicate with each other, as was in 24.04 (Dragonfish). It will also add a DNS alias in the format {service}.ix-{app-name}.svc.cluster.local
for each service to ensure backward-compatibility with the old Kubernetes-based apps system.
It's a stop-gap until inter-app networking is properly implemented in Fangtooth.
Warning
Dragonify introduces functionality that is unsupported by iXsystems. If you are having problems with your TrueNAS installation or its apps, please try stopping Dragonify and restarting all apps to see if the problem persists.
- Go to "Apps" in the TrueNAS SCALE web UI.
- Click "Discover Apps".
- Click ⋮ in the top-right corner, then "Install via YAML".
- Set the name to
dragonify
, and paste the following YAML into the text box.
services:
dragonify:
image: ghcr.io/tjhorner/dragonify:main
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Once started, all of your apps will now be connected on the same Docker network with DNS aliases for each service.
To facilitate inter-app communication, Dragonify creates a new Docker bridge network called apps-internal
. It connects all existing TrueNAS-managed containers to the network, then starts listening for new containers to be started. When a new container is started, Dragonify will automatically connect it to the apps-internal
network.
It is essentially running this command automatically for you (using postgres as an example):
docker network connect apps-internal --alias postgres.ix-postgres.svc.cluster.local ix-postgres-postgres-1
MIT