I would like to put a very simple DNS server on TrueNAS Scale 25.04.2.3. I have a list of hostnames I would like to resolve to IP addresses.
In a perfect world, for lookup failures this server would delegate to whatever the local DHCP server recommends, but I could live without that.
I see an app for Pi-Hole is listed in the “stable” category. It seems like overkill but is reputed to have what I want. However, installation failed for me. I’m letting that failure be enough to listen to my instinct not to install overkill.
I see there is another ad-blocker app in a non-stable category which might let me do what I want. I’m letting its category be enough to listen to my instinct not to install overkill.
incus was supposed to replace the libvirt backend to run vms and lxc container. But iX scapped the idea and incus will be removed (i believe in the next update in october) so if you do not run any incus based vms or lxc it doesnt matter if you mess around with it.
Is 25.04.2.3 somehow earlier than 25.04.2? I’m not super-familiar with how TrueNAS structures version numbers, but for most systems 25.04.2.3 is later than 25.04.2, yeah?
The good news is that I fresh-installed 25.10.0.1 on unrelated hardware and noticed it could install PiHole. So I upgraded my first server to 25.10.0.1 and tried to install PiHole with hope in my heart! But noooooooo.
[EFAULT] Failed to render compose templates: Traceback (most recent call last): File "/usr/bin/apps_render_app", line 33, in sys.exit(load_entry_point('apps-validation==0.1', 'console_scripts', 'apps_render_app')()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py", line 48, in main render_templates_from_path(args.path, args.values) File "/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py", line 19, in render_templates_from_path rendered_data = render_templates( ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/catalog_templating/render.py", line 31, in render_templates rendered_templates[i.name] = env.get_template(i.name).render( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render self.environment.handle_exception() File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception raise rewrite_traceback_stack(source=source) File "/mnt/.ix-apps/app_configs/pihole/versions/1.3.25/templates/docker-compose.yaml", line 50, in top-level template code {% do c1.add_port(values.network.dns_port, {"container_port": 53}) %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/.ix-apps/app_configs/pihole/versions/1.3.25/templates/library/base_v2_1_65/container.py", line 290, in add_port self.ports._add_port( File "/mnt/.ix-apps/app_configs/pihole/versions/1.3.25/templates/library/base_v2_1_65/ports.py", line 119, in _add_port self._render_instance.client.validate_ip_port_combo(host_ip, host_port) File "/mnt/.ix-apps/app_configs/pihole/versions/1.3.25/templates/library/base_v2_1_65/client.py", line 68, in validate_ip_port_combo raise RenderError(err_str) from None base_v2_1_65.error.RenderError: [EINVAL] render.pihole.schema: The port is being used by following services: 1) "10.102.141.1:53" used by Virt Service
I sure don’t know who 10.102.141.1 is, but there’s an HTTP server there that wants to redirect to the https port (443). There’s an SSH server there as well.
I assign individual IP addresses to each App For this reason. Add a bridge to your NAS (see @Stux YouTube video re same) then add additional IP addresses via the network pane.
Then you can assign these individual IP to each app, which is also beneficial re: password managers, and so on. You do that in the App Setup / edit page.
For example, if you have an app that runs on a FQDN, you can even have TrueNAS pull a SSL certificate and install it for you. That makes it far easier to get a UniFi cloud key replacement to run on a SSL Than even a bonafide cloud key 2