Unattended Upgrades only checks and updates programs in repos it knows about. As you found out, you'll need to add the custom repository to the Origins pattern in 50unattended-upgrades.
You can find a list of all repositories and their data using apt policy
Here are the custom repositories I have on one of my servers:
500 https://repo.zabbix.com/zabbix/7.0/debian bookworm/main all Packages
release v=12,o=Zabbix,a=zabbix,n=bookworm,l=zabbix,c=main,b=all
origin repo.zabbix.com
500 https://repo.zabbix.com/zabbix/7.0/debian bookworm/main amd64 Packages
release v=12,o=Zabbix,a=zabbix,n=bookworm,l=zabbix,c=main,b=amd64
origin repo.zabbix.com
500 https://pkgs.tailscale.com/stable/debian bookworm/main all Packages
release o=Tailscale,n=bookworm,l=Tailscale,c=main,b=all
origin pkgs.tailscale.com
500 https://pkgs.tailscale.com/stable/debian bookworm/main amd64 Packages
release o=Tailscale,n=bookworm,l=Tailscale,c=main,b=amd64
origin pkgs.tailscale.com
500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
release o=. nodistro,a=nodistro,n=nodistro,l=. nodistro,c=main,b=amd64
origin deb.nodesource.com
Look at the line starting with release
and search for a combination that uniquely identifies the Caddy repository.
The output above is using the short form keywords, while the examples in 50unattended-upgrades use the long form. It's fine to use either.
One special case is the site
keyword. This is the URL coming after origin
in the output above and might be confusing.
Keywords
// a,archive,suite (eg, "stable")
// c,component (eg, "main", "contrib", "non-free")
// l,label (eg, "Debian", "Debian-Security")
// o,origin (eg, "Debian", "Unofficial Multimedia Packages")
// n,codename (eg, "jessie", "jessie-updates")
// site (eg, "http.debian.net")
Based on the apt policy
output above, here's what I use to enable automatic updates for these repositories.
Using origin
and codename
follows the standard Debian repos and I'd recommend using that if possible.
Node doesn't provide a reasonable repo file, so I had to set site
based on the URL behind origin
in apt policy
"site=deb.nodesource.com"; //Nodesource repository
"origin=Zabbix,codename=${distro_codename}"; //Zabbix Agent repository
"origin=Tailscale,codename=${distro_codename}"; //Tailscale repository
You're right with the origin.
codename
orn
in short form isany-version
.${distro_codename}
won't match that, as it contains the codename for your distro release, likebookworm
for Debian 12.With
any-version
the repo owner's basically saying you can install this regardless of your distro version or they handle it on their end somehow.Try just using the origin instead, like this.