TrueNAS-Compose | Your Docker Stacks for TrueNAS Scale

I use it with MQTT and HA.

Oh, sorry I just remembered, if not a problem there is one last thing you could add - Nebula Synq for synchronizising settings between two or more Pi-Holes.

1 Like

No problem… I’ll add it to DNS-DHCP stack! :wink:

EDIT: I’ve added Nebula-Sync as requested, can you test it please? :roll_eyes:

EDIT2: I’ve disabled the full sync… just in case! :roll_eyes:

Best regards,
PapaGigas

1 Like

Nebula Service doesn’t start:

2025-04-19T16:22:04Z FTL Failed to initialize service error=“parse url: parse "\"https://172.17.6.2:8082": first path segment in URL cannot contain colon”

Hummm… I’ve removed the port, can you check again? :roll_eyes:

EDIT: I’ve also changed Pi-hole’s ports to 80 and 443!

EDIT2: I’ve also updated the ports for Kali, Wireshark, and NetAlertX to use 80/443… now you can access them without needing to specify ports! :wink:

Best regards,
PapaGigas

1 Like

Unfortunately, I still get the same error.

Pi-Hole, Kali, Wireshark and NetalertX all work fine after changes were applied.

Thanks.

1 Like

I’ve changed the IP address of the primary Pi-hole… can you check again? :roll_eyes:

Best regards,
PapaGigas

1 Like

Sorry, no change, still spamming the same error in the logs.

Are you sure it’s always the same “URL cannot contain colon” error?

Delete the Nebula-Sync container/data in Portainer, then redeploy the stack! :roll_eyes:

Best regards,
PapaGigas

Yes:

2025-04-20T12:38:04Z FTL Failed to initialize service error="parse url: parse \"\\\"https://172.17.6.2\": first path segment in URL cannot contain colon"
2025-04-20T12:39:05Z FTL Failed to initialize service error="parse url: parse \"\\\"https://172.17.6.2\": first path segment in URL cannot contain colon"

Use CTRL+F5 to refresh the guide, you’re still using the internal IP address… :confused:

Best regards,
PapaGigas

Hmm, strange I thought I refreshed the window before… :man_facepalming: Anyway, the service works now.

Still getting some errors but I think this is due to my second Pi-hole that runs on RPi, need to fix that, it has nothing to do with this config.

EDIT2: I’ve also updated the ports for Kali, Wireshark, and NetAlertX to use 80/443… now you can access them without needing to specify ports!

Quick question, after I changed the ports I just noticed I can only access Netalertx through its local ip.

1 Like

Restart Traefik’'s container in Portainer! :wink:

PS: Your secondary Pi-hole should be running version 6… that’s probably why your getting those errors… I’ll put a warning regarding that fact on the guide! :roll_eyes:

18 - If you don't have a secondary Pi-hole, delete the "nebula-sync" container. # Just like you did for the "nginx" container

# WARNING: If you have a secondary Pi-hole, make sure you upgrade to Pi-hole version 6 before deploying this stack or Nebula-Sync will fail!

Best regards,
PapaGigas

Both of my Pi-Holes run version 6 now. Anyway…

Restart of Traefik didn’t help.

I can access Netalertx through:

http://10.0.1.212

but:

https://netalertx.int.local/ - returns 404

When I looked at the docker config, NetalertX only has port 80 assigned, there is no entry for 443. Is this correct?

EDIT: It took a while for tailscale but I can now access it over ther. Not locally though, except for local ip address without the port.

hummm… that’s because I’ve changed the domains:

PS: You can update all of your stacks and DNS entries… or… you can just change traefik’s labels for now in NetAlertX service (to use the int subdomain)! :wink:

Best regards,
PapaGigas

OK, thank you again for all your hard work and all the help.

1 Like

You’re welcome… and also thank you for all your feedback! :slight_smile:

EDIT: Btw, I’ve added this step to DEV stack:

18 - If you only need "node-red" for managing Home Assistant, delete the rest of the containers in this stack. # Just like you did for the "nginx" container

EDIT2: I’ve also added this steps to HOME stack:

24 - If you didn't install the "LOCAL AI" stack (to use Ollama LLM's in your Home Assistant), remove the ollama network from "networks" at the end of the stack:

  ollama:
    external: true

25 - If you didn't install the "LOCAL AI" stack (to use Ollama LLM's in your Home Assistant), remove the ollama network from "homeassistant" service:

      ollama:
        ipv4_address: 172.17.18.4

26 - If you didn't install the "DEV" stack (to use Node-RED for managing Home Assistant), remove the dev network from "networks" at the end of the stack:

  dev:
    external: true

27 - If you didn't install the "DEV" stack (to use Node-RED for managing Home Assistant), remove the dev network from "mosquitto" and "homeassistant" services:

      dev:
        ipv4_address: 172.17.25.x

Best regards,
PapaGigas

1 Like

I’ve changed the WordPress stack from WEBSITE to CMS… and created a WEBSITE stack for Nginx! :wink:

Best regards,
PapaGigas

One suggestion I have, it would be wise to add the information about changing some setting in slave machines running Pi-Hole, I had some authentication issues which I resolved by:

From the Pi-hole web UI, go to Settings → All Settings. Toggle the “Modified settings / All settings” slider in the upper right to show “All settings”. Choose the “Webserver and API” section. Check the “Enabled” box under webserver.api.app_sudo and then click “Save & Apply”. Repeat for each replica.

I re-installed the whole Pi-Hole system on my sdcard on my RPi because I could’t authenticate Nebulasync on it. Having said that, this might only apply to if someone uses app paswords. On my clean Pi-Hole I didn’t try regular passwords, nonethless I think this info might come handy, it’s from the project’s github.

I am yet to test the Node Red, need to find some free time and I will come back with the feedback, thanks again.

1 Like

I’ll put a warning regarding that, thanks! :slight_smile:

Btw, I’ve added DOCKER IMAGE UPDATE NOTIFIER to the NOTIFICATIONS stack! :wink:

EDIT: I’ve added this steps to the DNS-DHCP installation instructions:

20 - If you don't have a secondary Pi-hole, ignore steps 21-24 and delete the "nebula-sync" container. # Just like you did for the "nginx" container

# WARNING: Make sure you upgrade your secondary Pi-hole to Pi-hole version 6 before deploying this stack or Nebula-Sync will fail!

21 - Open your secondary Pi-hole Web interface and navigate to "Settings > All Settings".

22 - Toggle the "Modified settings / All settings" slider in the upper right to show "All settings".

23 - Choose the "Webserver and API" section and check the "Enabled" box under "webserver.api.app_sudo".

24 - Click "Save & Apply" to allow Nebula-Sync to make changes to your secondary Pi-hole.

25 - Go back to Dockge's Web interface and click "Deploy" to install.

Best regards,
PapaGigas

1 Like

I decided to test the whole DEV stack in order to provide you with feedback.

The .env is missing underscore here:

CODE_SERVER_SUDO PASSWORD=admin

In general there is something wrong in the Docker compose config of this stack, when I copy everything I get this:

Error response from daemon: invalid reference format

By elimination I found it must be Gitlab, only after its removal remaining containers are getting pulled.

Node Red doesn’t want to start, because it needs additional permissions:

node-red  | /usr/src/node-red/node_modules/fs-extra/lib/util/stat.js:30
node-red  |     throw err
node-red  |     ^
node-red  | 
node-red  | Error: EACCES: permission denied, lstat '/data/settings.js'
node-red  |     at Object.lstatSync (node:fs:1642:25)
node-red  |     at Object.lstatSync (/usr/src/node-red/node_modules/graceful-fs/polyfills.js:318:34)
node-red  |     at statFunc (/usr/src/node-red/node_modules/fs-extra/lib/util/stat.js:24:20)
node-red  |     at getStatsSync (/usr/src/node-red/node_modules/fs-extra/lib/util/stat.js:27:16)
node-red  |     at Object.checkPathsSync (/usr/src/node-red/node_modules/fs-extra/lib/util/stat.js:64:33)
node-red  |     at Object.copySync (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:27:38)
node-red  |     at Object.<anonymous> (/usr/src/node-red/node_modules/node-red/red.js:148:20)
node-red  |     at Module._compile (node:internal/modules/cjs/loader:1529:14)
node-red  |     at Module._extensions..js (node:internal/modules/cjs/loader:1613:10)
node-red  |     at Module.load (node:internal/modules/cjs/loader:1275:32) {
node-red  |   errno: -13,
node-red  |   code: 'EACCES',
node-red  |   syscall: 'lstat',
node-red  |   path: '/data/settings.js'
node-red  | }
node-red  | 
node-red  | Node.js v20.19.0
node-red exited with code 0

Node-postgress complains about dependancies:

dependency failed to start: container node-postgres is unhealthy

Only Coder runs without any issues.

1 Like