mirror of
https://github.com/unifi-utilities/unifios-utilities.git
synced 2024-08-30 18:32:21 +00:00
162d4ce478
* Corrected file path by removing /mnt * Update 20-zerotier.sh * Update README.md * removed /mnt directory as evertyhing is done in /data * Corrected URL * Update remote_install.sh * Auto check data dir * fixed adguard installation * More data fixes * Fix dns common data path * fixed haproxy readme
68 lines
3.5 KiB
Markdown
68 lines
3.5 KiB
Markdown
# Run AdguardHome on your UDM
|
|
|
|
## Features
|
|
|
|
1. Run AdguardHome on your UDM with a completely isolated network stack. This will not port conflict or be influenced by any changes on by Ubiquiti
|
|
2. Persists through reboots and firmware updates.
|
|
|
|
## Requirements
|
|
|
|
1. You have setup the on boot script described [here](https://github.com/unifi-utilities/unifios-utilities/tree/main/on-boot-script)
|
|
1. AdguardHome persists through firmware updates as it will store the configuration in a folder (you need to create this). It needs 2 folders, a Work and Configuration folder. Please create the 2 folders in "/data/". In my example I created "AdguardHome-Confdir" and "AdguardHome-Workdir"
|
|
|
|
## Customization
|
|
|
|
- Feel free to change [20-dns.conflist](../cni-plugins/20-dns.conflist) to change the IP and MAC address of the container.
|
|
- Update [10-dns.sh](../dns-common/on_boot.d/10-dns.sh) with your own values
|
|
- If you want IPv6 support use [20-dnsipv6.conflist](../cni-plugins/20-dnsipv6.conflist) and update [10-dns.sh](../dns-common/on_boot.d/10-dns.sh) with the IPv6 addresses. Also, please provide IPv6 servers to podman using --dns arguments.
|
|
|
|
## Steps
|
|
|
|
Please note if you have firmware v2 or above you have to copy all files into /data instead of /data. You can see what version you are running by running: ubnt-device-info firmware
|
|
|
|
1. Check if you have either `/mnt/data/` or `/data/` and use the correct one below.
|
|
2. Copy [05-install-cni-plugins.sh](../cni-plugins/05-install-cni-plugins.sh) to /data/on_boot.d
|
|
3. On your controller, make a Corporate network with no DHCP server and give it a VLAN. For this example we are using VLAN 5. You should confirm the bridge is created for this VLAN by running `netstat -r` otherwise the script will fail. If it is not there, initiate a provisioning of the UDM (Controller > UDM > Config > Manage Device > Force provision).
|
|
4. Copy [10-dns.sh](../dns-common/on_boot.d/10-dns.sh) to `/data/on_boot.d` and update its values to reflect your environment
|
|
5. Copy [20-dns.conflist](../cni-plugins/20-dns.conflist) to `/data/podman/cni` after generating a MAC address. This will create your podman macvlan network.
|
|
6. Execute /data/on_boot.d/05-install-cni-plugins.sh
|
|
7. Execute `/data/on_boot.d/10-dns.sh`
|
|
8. Run the AdguardHome docker container, be sure to make the directories for your persistent AdguardHome configuration. They are mounted as volumes in the command below.
|
|
|
|
```shell script
|
|
mkdir /data/AdguardHome-Confdir
|
|
mkdir /data/AdguardHome-Workdir
|
|
|
|
podman run -d --network dns --restart always \
|
|
--name adguardhome \
|
|
-v "/data/AdguardHome-Confdir/:/opt/adguardhome/conf/" \
|
|
-v "/data/AdguardHome-Workdir/:/opt/adguardhome/work/" \
|
|
--dns=127.0.0.1 --dns=1.1.1.1 \
|
|
--hostname adguardhome \
|
|
adguard/adguardhome:latest
|
|
```
|
|
|
|
9. Browse to 10.0.5.3:3000 and follow the setup wizard
|
|
10. Update your DNS Servers to 10.0.5.3 (or your custom ip) in all your DHCP configs.
|
|
11. Access the AdguardHome like you would normally.
|
|
|
|
## Troubleshooting
|
|
|
|
If you get the following error:
|
|
|
|
```
|
|
Error adding network: failed to create macvlan: cannot assign requested address
|
|
```
|
|
|
|
When starting the container then the MAC address you generated is not good. You can cheat at this point and look at the address of `br$VLAN.mac` with `ifconfig br$VLAN.mac` and use that value.
|
|
|
|
To start over you must remove the container and the macvlan device:
|
|
|
|
```
|
|
podman container rm adguardhome
|
|
podman network rm dns -f # expect an error here
|
|
ip link delete br$VLAN.mac
|
|
```
|
|
|
|
You can now run `10-dns.sh` again and start the container again.
|