#!/bin/env bash # Upstream doc: https://adguard-dns.io/kb/adguard-home/getting-started/ set -euxo pipefail IMAGE="ubuntu/24.04" DIST="${IMAGE%%/*}" VER="${IMAGE#*/}" VER="${VER%/*}" VER="${VER//./-}" UPSTREAM_VER="0.107.56" UPSTREAM_VER_DASH="${UPSTREAM_VER//./-}" UPSTREAM_NAME="adguard" SERIAL="1benoitjpnet" CNAME="$UPSTREAM_NAME-$UPSTREAM_VER_DASH-$SERIAL-$DIST-$VER" ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL" cd "$WORKSPACE" incus launch images:$IMAGE "$CNAME" --quiet wait_network "$CNAME" incus config set "$CNAME" environment.DEBIAN_FRONTEND=noninteractive incus config set "$CNAME" environment.DEBCONF_NONINTERACTIVE_SEEN=true incus config set "$CNAME" environment.LC_ALL=C incus exec "$CNAME" -- apt-get update incus exec "$CNAME" -- apt-get upgrade -y incus exec "$CNAME" -- apt-get install -y --no-install-recommends wget incus exec "$CNAME" -- adduser \ --shell /bin/bash \ --gecos "AdGuard Home DNS Server" \ --group \ --disabled-password \ --home /opt/adguard \ adguard incus exec "$CNAME" -- wget --quiet \ https://github.com/AdguardTeam/AdGuardHome/releases/download/v"$UPSTREAM_VER"/AdGuardHome_linux_amd64.tar.gz \ -O /tmp/AdGuardHome_linux_amd64.tar.gz incus exec "$CNAME" -- tar -xzf \ /tmp/AdGuardHome_linux_amd64.tar.gz \ -C /opt/adguard --strip-components=2 incus exec "$CNAME" -- setcap "CAP_NET_BIND_SERVICE=+eip CAP_NET_RAW=+eip" /opt/adguard/AdGuardHome incus exec "$CNAME" -- mkdir -p /etc/systemd/resolved.conf.d incus exec "$CNAME" -- bash -c 'cat << EOT > /etc/systemd/resolved.conf.d/adguardhome.conf [Resolve] DNS=127.0.0.1 DNSStubListener=no EOT' incus exec "$CNAME" -- /opt/adguard/AdGuardHome -s install laminarc run incus_publish \ CNAME="$CNAME" \ UPSTREAM_NAME=$UPSTREAM_NAME \ UPSTREAM_VER=$UPSTREAM_VER \ IMAGE=$IMAGE \ SERIAL=$SERIAL \ ALIAS=$ALIAS