[GH-ISSUE #12337] adguardhome-sync script not working as expected #2570

Closed
opened 2026-02-26 12:52:52 +03:00 by kerem · 11 comments
Owner

Originally created by @Darkangeel-hd on GitHub (Feb 25, 2026).
Original GitHub issue: https://github.com/community-scripts/ProxmoxVE/issues/12337

Have you read and understood the above guidelines?

yes

🔎 Did you run the script with verbose mode enabled?

No, It wasn't an option given by the script

📜 What is the name of the script you are using?

AdGuardHome-Sync

📂 What was the exact command used to execute the script?

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)"

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Alpine

📈 Which Proxmox version are you on?

pve-manager/9.1.5/80cf92a64bef6889 (running kernel: 6.17.9-1-pve)

📝 Provide a clear and concise description of the issue.

As per the web, this script can either be run on the Adguard Home LXC or in the proxmox host.

As an alternative option, you can use Alpine Linux and the AdGuardHome-Sync package to create a AdGuardHome-Sync container with faster creation time and minimal system resource usage. You are also obliged to adhere to updates provided by the package maintainer.

To create a new Proxmox VE Alpine-AdGuardHome-Sync , run the command below in the Proxmox VE Shell.

When run into the PVE host, it tries to install adguard-sync onto the proxmox host itself, instead of making a new Alpine LXC container.
No vm config options given.
The script fails anyway while trying to create /usr/local/bin/update_adguardhome-sync: as /usr/local/bin doesn't exist

When it runs on an alpine host, be it either a new clean one or one that was created using the alpine version of the AdGuard Home community script, it also fails, complaining about apt not existing:

/dev/fd/63: line 521: apt: command not found
[2026-02-25 19:42:33] [ERROR] in line 708: exit code 127 (Command not found)
[2026-02-25 19:42:33] apt update

Only when it's run on an actual Debian LXC it success.

Either the webpage shouldbe changed to reflect that it can only be run on the Debian version of Adguard Home, or an standalone Debian LXC.
Or the script fixed to do what it suppose to do.

BTW, both the Default and Alpine Linux scripts point to the same url.
i searched the code and found no other script to do this, so its not a web issue.

I find the option of having a standalone sync LXC very appealing.

Thanks you su much in advance

🔄 Steps to reproduce the issue.

Run the provided script bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)" on either the PVE host or any alpine lxc

Paste the full error output (if available).

when run on PVE Host:

⠋ Creating update scriptenvironment: line 272: /usr/local/bin/update_adguardhome-sync: No such file or directory
  ✖️   in line 272: exit code 1 (General error / Operation not permitted): while executing command cat <<'UPDATEEOF' > /usr/local/bin/update_adguardhome-sync
#!/usr/bin/env bash
# AdGuardHome-Sync Update Script
type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)"
UPDATEEOF

When run on any alpine LXC:

  ✖️   in line 708: exit code 127 (Command not found)
 → apt update

  --- Last 20 lines of log ---
/dev/fd/63: line 521: apt: command not found
[2026-02-25 19:52:09] [ERROR] in line 708: exit code 127 (Command not found)
[2026-02-25 19:52:09] apt update
  -----------------------------------
  📋 Full log: /tmp/build-20260225_195209.log

build-20260225_195209.log:

/dev/fd/63: line 521: apt: command not found
[2026-02-25 19:52:09] [ERROR] in line 708: exit code 127 (Command not found)
[2026-02-25 19:52:09] apt update

🖼️ Additional context (optional).

No response

Originally created by @Darkangeel-hd on GitHub (Feb 25, 2026). Original GitHub issue: https://github.com/community-scripts/ProxmoxVE/issues/12337 ### ✅ Have you read and understood the above guidelines? yes ### 🔎 Did you run the script with verbose mode enabled? No, It wasn't an option given by the script ### 📜 What is the name of the script you are using? AdGuardHome-Sync ### 📂 What was the exact command used to execute the script? bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)" ### ⚙️ What settings are you using? - [x] Default Settings - [ ] Advanced Settings ### 🖥️ Which Linux distribution are you using? Alpine ### 📈 Which Proxmox version are you on? pve-manager/9.1.5/80cf92a64bef6889 (running kernel: 6.17.9-1-pve) ### 📝 Provide a clear and concise description of the issue. As per the web, this script can either be run on the Adguard Home LXC or in the proxmox host. > As an alternative option, you can use Alpine Linux and the AdGuardHome-Sync package to create a AdGuardHome-Sync container with faster creation time and minimal system resource usage. You are also obliged to adhere to updates provided by the package maintainer. > > To create a new Proxmox VE Alpine-AdGuardHome-Sync , run the command below in the Proxmox VE Shell. When run into the PVE host, it tries to install adguard-sync onto the proxmox host itself, instead of making a new Alpine LXC container. No vm config options given. The script fails anyway while trying to create `/usr/local/bin/update_adguardhome-sync:` as `/usr/local/bin` doesn't exist When it runs on an alpine host, be it either a new clean one or one that was created using the alpine version of the AdGuard Home community script, it also fails, complaining about apt not existing: ``` /dev/fd/63: line 521: apt: command not found [2026-02-25 19:42:33] [ERROR] in line 708: exit code 127 (Command not found) [2026-02-25 19:42:33] apt update ``` Only when it's run on an actual Debian LXC it success. Either the webpage shouldbe changed to reflect that it can only be run on the Debian version of Adguard Home, or an standalone Debian LXC. Or the script fixed to do what it suppose to do. BTW, both the Default and Alpine Linux scripts point to the same url. i searched the code and found no other script to do this, so its not a web issue. I find the option of having a standalone sync LXC very appealing. Thanks you su much in advance ### 🔄 Steps to reproduce the issue. Run the provided script `bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)"` on either the PVE host or any alpine lxc ### ❌ Paste the full error output (if available). when run on PVE Host: ``` ⠋ Creating update scriptenvironment: line 272: /usr/local/bin/update_adguardhome-sync: No such file or directory ✖️ in line 272: exit code 1 (General error / Operation not permitted): while executing command cat <<'UPDATEEOF' > /usr/local/bin/update_adguardhome-sync #!/usr/bin/env bash # AdGuardHome-Sync Update Script type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)" UPDATEEOF ``` When run on any alpine LXC: ``` ✖️ in line 708: exit code 127 (Command not found) → apt update --- Last 20 lines of log --- /dev/fd/63: line 521: apt: command not found [2026-02-25 19:52:09] [ERROR] in line 708: exit code 127 (Command not found) [2026-02-25 19:52:09] apt update ----------------------------------- 📋 Full log: /tmp/build-20260225_195209.log ``` build-20260225_195209.log: ``` /dev/fd/63: line 521: apt: command not found [2026-02-25 19:52:09] [ERROR] in line 708: exit code 127 (Command not found) [2026-02-25 19:52:09] apt update ``` ### 🖼️ Additional context (optional). _No response_
kerem 2026-02-26 12:52:52 +03:00
Author
Owner

@MickLesk commented on GitHub (Feb 25, 2026):

Addons should Run in LXC Not in the Host!

Script Work absolutely fine. Ive tested it on Debian and alpine

The Website isnt optimized for this, but all of our addons are executable in the LXC. Always

<!-- gh-comment-id:3961678339 --> @MickLesk commented on GitHub (Feb 25, 2026): Addons should Run in LXC Not in the Host! Script Work absolutely fine. Ive tested it on Debian and alpine The Website isnt optimized for this, but all of our addons are executable in the LXC. Always
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 25, 2026):

Addons should Run in LXC Not in the Host!

Script Work absolutely fine. Ive tested it on Debian and alpine

I thought so too
but the web page clearly states otherwise:

You can use it inside a running LXC container or directly on the Proxmox VE host

and

To create a new Proxmox VE Alpine-AdGuardHome-Sync , run the command below in the Proxmox VE Shell.

In which version of alpine have you tested it?
Cause the "logs" provided were of test run just now.

Re tested again:

adguard-sync:~# cat /etc/alpine-release 
3.23.3

adguard-sync:~# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)"

    ___       __                          ____  __                        _____
   /   | ____/ /___ ___  ______ __________/ / / / /___  ____ ___  ___     / ___/__  ______  _____
  / /| |/ __  / __ `/ / / / __ `/ ___/ __  / /_/ / __ \/ __ `__ \/ _ \    \__ \/ / / / __ \/ ___/
 / ___ / /_/ / /_/ / /_/ / /_/ / /  / /_/ / __  / /_/ / / / / / /  __/   ___/ / /_/ / / / / /__
/_/  |_\__,_/\__, /\__,_/\__,_/_/   \__,_/_/ /_/\____/_/ /_/ /_/\___/   /____/\__, /_/ /_/\___/
            /____/                                                           /____/
  💡   AdGuardHome-Sync is not installed.

    💡   This will install:
    - AdGuardHome-Sync (Go binary)
    - Systemd/OpenRC service
    - Web UI on port 8080

  Install AdGuardHome-Sync? (y/N): y
  ✖️   in line 708: exit code 127 (Command not found)
 → apt update

  --- Last 20 lines of log ---
/dev/fd/63: line 521: apt: command not found
[2026-02-25 20:01:47] [ERROR] in line 708: exit code 127 (Command not found)
[2026-02-25 20:01:47] apt update
  -----------------------------------
  📋 Full log: /tmp/build-20260225_200147.log

adguard-sync:~#

Same error

<!-- gh-comment-id:3961704099 --> @Darkangeel-hd commented on GitHub (Feb 25, 2026): > Addons should Run in LXC Not in the Host! > > Script Work absolutely fine. Ive tested it on Debian and alpine I thought so too but the web page clearly states otherwise: >You can use it inside a running LXC container or directly on the Proxmox VE host and >To create a new Proxmox VE Alpine-AdGuardHome-Sync , run the command below in the Proxmox VE Shell. In which version of alpine have you tested it? Cause the "logs" provided were of test run just now. Re tested again: ``` adguard-sync:~# cat /etc/alpine-release 3.23.3 adguard-sync:~# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/adguardhome-sync.sh)" ___ __ ____ __ _____ / | ____/ /___ ___ ______ __________/ / / / /___ ____ ___ ___ / ___/__ ______ _____ / /| |/ __ / __ `/ / / / __ `/ ___/ __ / /_/ / __ \/ __ `__ \/ _ \ \__ \/ / / / __ \/ ___/ / ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ / __ / /_/ / / / / / / __/ ___/ / /_/ / / / / /__ /_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/_/ /_/\____/_/ /_/ /_/\___/ /____/\__, /_/ /_/\___/ /____/ /____/ 💡 AdGuardHome-Sync is not installed. 💡 This will install: - AdGuardHome-Sync (Go binary) - Systemd/OpenRC service - Web UI on port 8080 Install AdGuardHome-Sync? (y/N): y ✖️ in line 708: exit code 127 (Command not found) → apt update --- Last 20 lines of log --- /dev/fd/63: line 521: apt: command not found [2026-02-25 20:01:47] [ERROR] in line 708: exit code 127 (Command not found) [2026-02-25 20:01:47] apt update ----------------------------------- 📋 Full log: /tmp/build-20260225_200147.log adguard-sync:~# ``` Same error
Author
Owner

@MickLesk commented on GitHub (Feb 25, 2026):

Latest package.

Idk why you get apt Instead of APK. Then use an Debian or Ubuntu LXC.

Maybe i take a look in next days, i dont see this Line affected in alpine

<!-- gh-comment-id:3961736415 --> @MickLesk commented on GitHub (Feb 25, 2026): Latest package. Idk why you get apt Instead of APK. Then use an Debian or Ubuntu LXC. Maybe i take a look in next days, i dont see this Line affected in alpine
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 25, 2026):

Latest package.

u mean latest release?

Idk why you get apt Instead of APK. Then use an Debian or Ubuntu LXC.

The OS is checked here https://github.com/community-scripts/ProxmoxVE/blob/main/tools/addon/adguardhome-sync.sh#L60

But it gets to lines 333-345 apparently fine, cause the prompt is shown

But on the install function, it never reaches the fetch function (github.com/community-scripts/ProxmoxVE@98792e9394/tools/addon/adguardhome-sync.sh (L133C3-L133C31))

So it doesn't make sense to me either...

Maybe i take a look in next days, i don't see this Line affected in alpine

Thank you

Let me know if I can be of help, or test something or if I can look at other parts.
I'm not very familiar with how the repo and scripts are structured (lotta dependencies and calls), but I'm by no means new to bash scripting, I'll try my best.

<!-- gh-comment-id:3961792405 --> @Darkangeel-hd commented on GitHub (Feb 25, 2026): > Latest package. u mean latest release? > Idk why you get apt Instead of APK. Then use an Debian or Ubuntu LXC. The OS is checked here https://github.com/community-scripts/ProxmoxVE/blob/main/tools/addon/adguardhome-sync.sh#L60 But it gets to lines [333-345](https://github.com/community-scripts/ProxmoxVE/blob/main/tools/addon/adguardhome-sync.sh#L333-L345) apparently fine, cause the prompt is shown But on the install function, it never reaches the fetch function (https://github.com/community-scripts/ProxmoxVE/blob/98792e9394c0d995062c8df16d54497afe095ef2/tools/addon/adguardhome-sync.sh#L133C3-L133C31) So it doesn't make sense to me either... > Maybe i take a look in next days, i don't see this Line affected in alpine Thank you Let me know if I can be of help, or test something or if I can look at other parts. I'm not very familiar with how the repo and scripts are structured (lotta dependencies and calls), but I'm by no means new to bash scripting, I'll try my best.
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 25, 2026):

curl check code link should provably go after the OS detection, as it assumes its running on Debian
that way it could be dealt correctly.

But i guess if you're piping code through curl, curl is installed...

Anyway, i've confirmed that that ain't the line failing.

Also noticed that function get_ip
doesn't work on alpine as hostname -I doens't work, -I is not a valid option:

adguard-sync:~# hostname -I
hostname: unrecognized option: I
BusyBox v1.37.0 (2025-12-16 14:19:28 UTC) multi-call binary.

Usage: hostname [-sidf] [HOSTNAME | -F FILE]

Show or set hostname or DNS domain name

        -s      Short
        -i      Addresses for the hostname
        -d      DNS domain name
        -f      Fully qualified domain name
        -F FILE Use FILE's content as hostname
<!-- gh-comment-id:3961936603 --> @Darkangeel-hd commented on GitHub (Feb 25, 2026): curl check [code link](https://github.com/community-scripts/ProxmoxVE/blob/98792e9394c0d995062c8df16d54497afe095ef2/tools/addon/adguardhome-sync.sh#L8-L12) should provably go after the OS detection, as it assumes its running on Debian that way it could be dealt correctly. But i guess if you're piping code through curl, curl is installed... Anyway, i've confirmed that that ain't the line failing. Also noticed that function [get_ip](https://github.com/community-scripts/ProxmoxVE/blob/98792e9394c0d995062c8df16d54497afe095ef2/tools/addon/adguardhome-sync.sh#L53-L55) doesn't work on alpine as `hostname -I` doens't work, `-I` is not a valid option: ``` adguard-sync:~# hostname -I hostname: unrecognized option: I BusyBox v1.37.0 (2025-12-16 14:19:28 UTC) multi-call binary. Usage: hostname [-sidf] [HOSTNAME | -F FILE] Show or set hostname or DNS domain name -s Short -i Addresses for the hostname -d DNS domain name -f Fully qualified domain name -F FILE Use FILE's content as hostname ```
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 25, 2026):

WAIT, i think i found it
fetch_and_deploy_gh_release link
defined here
calls ensure_dependencies here
defined here

Which looks very Debian specific

@MickLesk do you have jq installed in the alpine LXC you tested this in?
Cause I didnt

Will test now

EDIT1:
yes, if jq is installed, the script downloads the gh release just fine and continues
and finishes successfully

So a check should be in place in the addon/adguardhome-sync.sh main script ??

EDIT2:
That is also provably why the Alpine version of AdGuard Home dosen't use fetch_and_deploy_gh_release and instead it uses plain curl

EDIT3: seems that the standard function to create a new alpine container installs a bunch of things that are missing on a plain clean Alpine LXC container
So I guess you tested on an LXC created with https://community-scripts.github.io/ProxmoxVE/scripts?id=alpine
and not a plain proxmox one, as i did.

<!-- gh-comment-id:3961937225 --> @Darkangeel-hd commented on GitHub (Feb 25, 2026): WAIT, i think i found it `fetch_and_deploy_gh_release` [link](https://github.com/community-scripts/ProxmoxVE/blob/98792e9394c0d995062c8df16d54497afe095ef2/tools/addon/adguardhome-sync.sh#L133C3-L133C31) defined [here](fetch_and_deploy_from_url) calls `ensure_dependencies` [here](https://github.com/community-scripts/ProxmoxVE/blob/34343bc61c6af59c5fc2f65c38a2062672da996a/misc/tools.func#L2576C3-L2576C23) defined [here](https://github.com/community-scripts/ProxmoxVE/blob/80132b033228669e0dc433df627a9f1eb196205f/misc/tools.func#L684) Which looks very Debian specific @MickLesk do you have `jq` installed in the alpine LXC you tested this in? Cause I didnt Will test now EDIT1: yes, if ` jq` is installed, the script downloads the gh release just fine and continues and finishes successfully So a check should be in place in the `addon/adguardhome-sync.sh` main script ?? EDIT2: That is also provably why the [Alpine version](https://github.com/community-scripts/ProxmoxVE/blob/main/install/alpine-adguard-install.sh) of AdGuard Home dosen't use `fetch_and_deploy_gh_release` and instead [it uses plain curl](https://github.com/community-scripts/ProxmoxVE/blob/34343bc61c6af59c5fc2f65c38a2062672da996a/install/alpine-adguard-install.sh#L17-L19) EDIT3: seems that the standard function to create a new alpine container [installs a bunch of things](https://github.com/community-scripts/ProxmoxVE/blob/80132b033228669e0dc433df627a9f1eb196205f/misc/build.func#L4014) that are missing on a plain clean Alpine LXC container So I guess you tested on an LXC created with https://community-scripts.github.io/ProxmoxVE/scripts?id=alpine and not a plain proxmox one, as i did.
Author
Owner

@MickLesk commented on GitHub (Feb 26, 2026):

New Created Alpine LXC (2 Mins ago):

  • Nothing Changed.
Image
<!-- gh-comment-id:3964790944 --> @MickLesk commented on GitHub (Feb 26, 2026): New Created Alpine LXC (2 Mins ago): - Nothing Changed. <img width="1037" height="723" alt="Image" src="https://github.com/user-attachments/assets/d77c03d0-16a9-49a4-b806-2163ac561237" />
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 26, 2026):

New Created Alpine LXC (2 Mins ago):

  • Nothing Changed.

[img]

You created that LXC using the community scripts, didn't you?

<!-- gh-comment-id:3964981457 --> @Darkangeel-hd commented on GitHub (Feb 26, 2026): > New Created Alpine LXC (2 Mins ago): > > * Nothing Changed. > > [img] You created that LXC using the community scripts, didn't you?
Author
Owner

@MickLesk commented on GitHub (Feb 26, 2026):

https://community-scripts.github.io/ProxmoxVE/scripts?id=alpine

=> Copy Bash -> Execute in Proxmox -> Switch in Alpine LXC, copy & paste adguardhome-sync script, done

<!-- gh-comment-id:3964992443 --> @MickLesk commented on GitHub (Feb 26, 2026): https://community-scripts.github.io/ProxmoxVE/scripts?id=alpine => Copy Bash -> Execute in Proxmox -> Switch in Alpine LXC, copy & paste adguardhome-sync script, done
Author
Owner

@Darkangeel-hd commented on GitHub (Feb 26, 2026):

As per EDIT3 on here,
problem identified, if the LXC doesnt have jq installed, it fails,
the community script for installing an alpine LXC DOES install jq along with other stuff,
but the normal PVE image for alpine doesn't have it installed, so the adguard-sync script does fail in that specific case.

So kinda an edge case

I'm not sure if the adguard-sync script should cover it, cause it makes no sense to me to change the base functions.
(it does cover curl not being installed tho)
I can make a PR if you fancy it. :3

Maybe I'll just assume that any addon script is only supported on containers created using other community scripts.

<!-- gh-comment-id:3965011028 --> @Darkangeel-hd commented on GitHub (Feb 26, 2026): As per EDIT3 on [here](https://github.com/community-scripts/ProxmoxVE/issues/12337#issuecomment-3961937225), problem identified, if the LXC doesnt have `jq` installed, it fails, the community script for installing an alpine LXC DOES install `jq` along with other stuff, but the normal PVE image for alpine doesn't have it installed, so the adguard-sync script does fail in that specific case. So kinda an edge case I'm not sure if the adguard-sync script should cover it, cause it makes no sense to me to change the base functions. (it does cover `curl` not being installed tho) I can make a PR if you fancy it. :3 Maybe I'll just assume that any addon script is **only** supported on containers created using other community scripts.
Author
Owner

@MickLesk commented on GitHub (Feb 26, 2026):

Basically, yes, but you are welcome to create a PR that will be supplemented with jq via apk. We did something similar two weeks ago for a few add-ons that don't have curl, for example (some base images don't have curl).

<!-- gh-comment-id:3965063682 --> @MickLesk commented on GitHub (Feb 26, 2026): Basically, yes, but you are welcome to create a PR that will be supplemented with jq via apk. We did something similar two weeks ago for a few add-ons that don't have curl, for example (some base images don't have curl).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ProxmoxVE#2570
No description provided.