tailscale script requires Debian 12 LXC but fails because the Debian 12 image does not include curl #1044

Closed
opened 2026-02-04 22:45:18 +03:00 by OVERLORD · 21 comments
Owner

Originally created by @bwinterfp on GitHub (May 31, 2025).

Have you read and understood the above guidelines?

yes

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

add-tailscale-lxc

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

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

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Debian 12

📝 Provide a clear and concise description of the issue.

The script fails to run because the LXC does not have curl installed because the Debian 12 LXC I downloaded via Proxmox CT Templates portal dis not include curl.

To fix I had to remove the bad apt source file (can't run apt update with it there):
rm /etc/apt/sources.list.d/tailscale.list
And then:
apt update && apt install -y curl
The install script then ran fine.

🔄 Steps to reproduce the issue.

Install the tailscale script as per instructions:
https://community-scripts.github.io/ProxmoxVE/scripts?id=add-tailscale-lxc

Paste the full error output (if available).

W: GPG error: https://pkgs.tailscale.com/stable/debian bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 458CA832957F5868

Only because curl wasn't available and /etc/apt/sources.list.d/tailscale.list could not be retrieved.

🖼️ Additional context (optional).

No response

Originally created by @bwinterfp on GitHub (May 31, 2025). ### ✅ Have you read and understood the above guidelines? yes ### 📜 What is the name of the script you are using? add-tailscale-lxc ### 📂 What was the exact command used to execute the script? bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/add-tailscale-lxc.sh)" ### ⚙️ What settings are you using? - [x] Default Settings - [ ] Advanced Settings ### 🖥️ Which Linux distribution are you using? Debian 12 ### 📝 Provide a clear and concise description of the issue. The script fails to run because the LXC does not have curl installed because the Debian 12 LXC I downloaded via Proxmox CT Templates portal dis not include curl. To fix I had to remove the bad apt source file (can't run apt update with it there): `rm /etc/apt/sources.list.d/tailscale.list ` And then: `apt update && apt install -y curl ` The install script then ran fine. ### 🔄 Steps to reproduce the issue. Install the tailscale script as per instructions: https://community-scripts.github.io/ProxmoxVE/scripts?id=add-tailscale-lxc ### ❌ Paste the full error output (if available). `W: GPG error: https://pkgs.tailscale.com/stable/debian bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 458CA832957F5868` Only because curl wasn't available and /etc/apt/sources.list.d/tailscale.list could not be retrieved. ### 🖼️ Additional context (optional). _No response_
OVERLORD added the bug label 2026-02-04 22:45:18 +03:00
Author
Owner

@MickLesk commented on GitHub (May 31, 2025):

All LXC include curl, its an core dependency in our Script Base

@MickLesk commented on GitHub (May 31, 2025): All LXC include curl, its an core dependency in our Script Base
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

I would have thought so but that error happened in a brand new LXC deployment using debian-12-standard_12.7-1_amd64.tar.zst

@bwinterfp commented on GitHub (May 31, 2025): I would have thought so but that error happened in a brand new LXC deployment using debian-12-standard_12.7-1_amd64.tar.zst
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

I can't make this stuff up! Here's another new LXC I just spun up to test this.

Creating filesystem with 2097152 4k blocks and 524288 inodes
Filesystem UUID: 027d0853-7a6a-475c-8e58-7caa693e885f
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
extracting archive '/var/lib/pve/local-btrfs/template/cache/debian-12-standard_12.7-1_amd64.tar.zst'
Total bytes read: 521902080 (498MiB, 398MiB/s)
Detected container architecture: amd64
Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ...
done: SHA256:eG2wN4kNpfSyb6rT6YH4A4rGTCI8g9bVhuO8ziUc5DU root@test
Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ...
done: SHA256:fYjuMz706/cMuU1uBz9Bu1zFPGBsDolYpNkNN02Pfj8 root@test
Creating SSH host key 'ssh_host_dsa_key' - this may take some time ...
done: SHA256:qzusr5RZe13tPIVECcG5Gf6rpiZoYUtVmd815ICi0Mw root@test
Creating SSH host key 'ssh_host_rsa_key' - this may take some time ...
done: SHA256:KOCMsMh+WkD3jXXL2NgdiQIAFbtxnnTBaLOwlAnxQew root@test
TASK OK
Image
root@test:~# cat /etc/debian_version 
12.7
root@test:~# 
@bwinterfp commented on GitHub (May 31, 2025): I can't make this stuff up! Here's another new LXC I just spun up to test this. ``` Creating filesystem with 2097152 4k blocks and 524288 inodes Filesystem UUID: 027d0853-7a6a-475c-8e58-7caa693e885f Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 extracting archive '/var/lib/pve/local-btrfs/template/cache/debian-12-standard_12.7-1_amd64.tar.zst' Total bytes read: 521902080 (498MiB, 398MiB/s) Detected container architecture: amd64 Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ... done: SHA256:eG2wN4kNpfSyb6rT6YH4A4rGTCI8g9bVhuO8ziUc5DU root@test Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ... done: SHA256:fYjuMz706/cMuU1uBz9Bu1zFPGBsDolYpNkNN02Pfj8 root@test Creating SSH host key 'ssh_host_dsa_key' - this may take some time ... done: SHA256:qzusr5RZe13tPIVECcG5Gf6rpiZoYUtVmd815ICi0Mw root@test Creating SSH host key 'ssh_host_rsa_key' - this may take some time ... done: SHA256:KOCMsMh+WkD3jXXL2NgdiQIAFbtxnnTBaLOwlAnxQew root@test TASK OK ``` <img width="1386" alt="Image" src="https://github.com/user-attachments/assets/1d864a7e-05c2-4b72-ae85-d03067d40732" /> ``` root@test:~# cat /etc/debian_version 12.7 root@test:~# ```
Author
Owner

@MickLesk commented on GitHub (May 31, 2025):

Which LXC do you have created? Bash call please. That Not look Like our scripts

@MickLesk commented on GitHub (May 31, 2025): Which LXC do you have created? Bash call please. That Not look Like our scripts
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

It's in the original bug report if you scroll up:

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

@bwinterfp commented on GitHub (May 31, 2025): It's in the original bug report if you scroll up: `bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/add-tailscale-lxc.sh)"`
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

LXC is a Debian 12 - your scripts don't create the LXC container for this app, it has to be added to an existing LXC which is a new Debian 12 image.

@bwinterfp commented on GitHub (May 31, 2025): LXC is a Debian 12 - your scripts don't create the LXC container for this app, it has to be added to an existing LXC which is a new Debian 12 image.
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

Your script from here:
https://community-scripts.github.io/ProxmoxVE/scripts?id=add-tailscale-lxc

@bwinterfp commented on GitHub (May 31, 2025): Your script from here: https://community-scripts.github.io/ProxmoxVE/scripts?id=add-tailscale-lxc
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

This is the line in the script:

curl -fsSL https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

@bwinterfp commented on GitHub (May 31, 2025): This is the line in the script: `curl -fsSL https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null`
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

If curl is not being included in the latest Debian 12 image downloaded from the PVE CT Templates page (which this script says it requires) then maybe a wget piped

Image

wget would work:

wget -q -O - --no-check-certificate https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

root@tailscale01:~# ID=$(grep "^ID=" /etc/os-release | cut -d"=" -f2)
root@tailscale01:~# VER=$(grep "^VERSION_CODENAME=" /etc/os-release | cut -d"=" -f2)
root@tailscale01:~# wget -q -O - --no-check-certificate https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
root@tailscale01:~# ls -la /usr/share/keyrings/tailscale-archive-keyring.gpg
-rw-r--r-- 1 root root 2288 May 31 11:10 /usr/share/keyrings/tailscale-archive-keyring.gpg
root@tailscale01:~# apt-get update
Hit:1 http://security.debian.org bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Get:4 https://pkgs.tailscale.com/stable/debian bookworm InRelease
Fetched 6581 B in 1s (4491 B/s)
Reading package lists... Done
root@tailscale01:~#
@bwinterfp commented on GitHub (May 31, 2025): If curl is not being included in the latest Debian 12 image downloaded from the PVE CT Templates page (which this script says it requires) then maybe a wget piped <img width="1095" alt="Image" src="https://github.com/user-attachments/assets/47c2bef2-a368-4e12-9891-a24ed3abc714" /> wget would work: `wget -q -O - --no-check-certificate https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null` ``` root@tailscale01:~# ID=$(grep "^ID=" /etc/os-release | cut -d"=" -f2) root@tailscale01:~# VER=$(grep "^VERSION_CODENAME=" /etc/os-release | cut -d"=" -f2) root@tailscale01:~# wget -q -O - --no-check-certificate https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null root@tailscale01:~# ls -la /usr/share/keyrings/tailscale-archive-keyring.gpg -rw-r--r-- 1 root root 2288 May 31 11:10 /usr/share/keyrings/tailscale-archive-keyring.gpg root@tailscale01:~# apt-get update Hit:1 http://security.debian.org bookworm-security InRelease Hit:2 http://deb.debian.org/debian bookworm InRelease Hit:3 http://deb.debian.org/debian bookworm-updates InRelease Get:4 https://pkgs.tailscale.com/stable/debian bookworm InRelease Fetched 6581 B in 1s (4491 B/s) Reading package lists... Done root@tailscale01:~# ```
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

PR raised: https://github.com/community-scripts/ProxmoxVE/pull/4864

@bwinterfp commented on GitHub (May 31, 2025): PR raised: https://github.com/community-scripts/ProxmoxVE/pull/4864
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

Just installed the backrest LXC and it does create a new Debian LXC and again, no curl:

root@backrest01:~# curl
-bash: curl: command not found
root@backrest01:~# cat /etc/debian_version 
12.11
root@backrest01:~# 
@bwinterfp commented on GitHub (May 31, 2025): Just installed the backrest LXC and it _does_ create a new Debian LXC and again, no curl: ``` root@backrest01:~# curl -bash: curl: command not found root@backrest01:~# cat /etc/debian_version 12.11 root@backrest01:~# ```
Author
Owner

@MickLesk commented on GitHub (May 31, 2025):

No, we dont Support wget in this Case. The LXC is not from us, the maximum is, when we add to Website "curl is needed" all other are not a Bug

@MickLesk commented on GitHub (May 31, 2025): No, we dont Support wget in this Case. The LXC is not from us, the maximum is, when we add to Website "curl is needed" all other are not a Bug
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

The LXC is not from us, the maximum is

Sorry, I don't understand. What is 'the maximum'?

I am well aware the LXC is not yours, the script is. Your script does not work with the required Debian 12 LXC template because that template does not ship with curl. How do you expect your script to work? My PR fixes it by using the ubiquitous wget binary.

@bwinterfp commented on GitHub (May 31, 2025): > The LXC is not from us, the maximum is Sorry, I don't understand. What is 'the maximum'? I am well aware the LXC is not yours, the script is. Your script does not work with the required Debian 12 LXC template because that template does not ship with curl. How do you expect your script to work? My PR fixes it by using the ubiquitous wget binary.
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

Can you go to your PVE 8.4.1, create a Debian 12 LXC from the standard supplied template:

Image

And then run your tailscale script:

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

And tell me what happens.

And then tell me who needs to fix it please?

@bwinterfp commented on GitHub (May 31, 2025): Can you go to your PVE 8.4.1, create a Debian 12 LXC from the standard supplied template: <img width="1138" alt="Image" src="https://github.com/user-attachments/assets/6d13cc20-19c8-43f9-97de-9b5e0ad9ce20" /> And then run your tailscale script: `bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/add-tailscale-lxc.sh)"` And tell me what happens. And then tell me who needs to fix it please?
Author
Owner

@MickLesk commented on GitHub (May 31, 2025):

At Website "curl is required" or in the Script himself

if ! command -v jq &>/dev/null; then
apt-get update &>/dev/null
apt-get install -y curl &>/dev/null
fi

@MickLesk commented on GitHub (May 31, 2025): At Website "curl is required" or in the Script himself if ! command -v jq &>/dev/null; then apt-get update &>/dev/null apt-get install -y curl &>/dev/null fi
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

At Website "curl is required" or in the Script himself

if ! command -v jq &>/dev/null; then apt-get update &>/dev/null apt-get install -y curl &>/dev/null fi

That code does not appear in the script. I don't understand what you're getting at? Do you want a PR with your code block above that installs curl if it's not on the system? Should the code block above have been in the Tailscale install script?

Just acknowledge theres a bug and lets fix it.

@bwinterfp commented on GitHub (May 31, 2025): > At Website "curl is required" or in the Script himself > > if ! command -v jq &>/dev/null; then apt-get update &>/dev/null apt-get install -y curl &>/dev/null fi That code does not appear in the script. I don't understand what you're getting at? Do you want a PR with your code block above that installs curl if it's not on the system? Should the code block above have been in the Tailscale install script? Just acknowledge theres a bug and lets fix it.
Author
Owner

@MickLesk commented on GitHub (May 31, 2025):

You should set/enter this Code into the Script and done. Dont discuss. Its not an bug, this Scripts are developed to Work with our Scripts.

@MickLesk commented on GitHub (May 31, 2025): You should set/enter this Code into the Script and done. Dont discuss. Its not an bug, this Scripts are developed to Work with our Scripts.
Author
Owner

@bwinterfp commented on GitHub (May 31, 2025):

Sorry, I can't understand your English. This is going nowhere. Your script is broken. Good luck fixing it.

@bwinterfp commented on GitHub (May 31, 2025): Sorry, I can't understand your English. This is going nowhere. Your script is broken. Good luck fixing it.
Author
Owner

@tremor021 commented on GitHub (May 31, 2025):

Imagine writing all these posts for not wanting to do apt install curl... Instead argues that script is broken :)

just... imagine :)

@tremor021 commented on GitHub (May 31, 2025): Imagine writing all these posts for not wanting to do `apt install curl`... Instead argues that script is broken :) just... imagine :)
Author
Owner

@ilium007 commented on GitHub (Jun 1, 2025):

Imagine writing all these posts for not wanting to do apt install curl... Instead argues that script is broken :)

just... imagine :)

Yeah. Imagine trying to help others. just.... imagine.

@ilium007 commented on GitHub (Jun 1, 2025): > Imagine writing all these posts for not wanting to do `apt install curl`... Instead argues that script is broken :) > > just... imagine :) Yeah. Imagine trying to help others. just.... imagine.
Author
Owner

@tremor021 commented on GitHub (Jun 1, 2025):

@ilium007
Help how?

  1. He installed bare LXC that is not ours
  2. Uses our script that is designed to work ONLY with OUR LXC's (because we preinstall curl in all our containers).
  3. If the script fails because he has curl missing, just apt install curl and you've solved all your problems.

I'm failing to understand whats all this discussion and "fixing the script" while script is not broken (https://github.com/community-scripts/ProxmoxVE/issues/4863#issuecomment-2925282164), it works as we intended it to work.
He created his own problem, but tries to fix it by adding code to a script that is not designed to work on his use case, which is easily fixed just by installing curl before running the script.

I'm not sure if its just trolling at this point or what. Anyway locking this because its pointless

@tremor021 commented on GitHub (Jun 1, 2025): @ilium007 Help how? 1. He installed bare LXC that is not ours 2. Uses our script that is designed to work ONLY with OUR LXC's (because we preinstall curl in all our containers). 3. If the script fails because he has curl missing, just `apt install curl` and you've solved all your problems. I'm failing to understand whats all this discussion and "fixing the script" while script is not broken (https://github.com/community-scripts/ProxmoxVE/issues/4863#issuecomment-2925282164), it works as we intended it to work. He created his own problem, but tries to fix it by adding code to a script that is not designed to work on his use case, which is easily fixed just by installing curl before running the script. I'm not sure if its just trolling at this point or what. Anyway locking this because its pointless
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#1044