Compare commits
2
Commits
698e915df2
...
7b88ba59b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b88ba59b2 | ||
|
|
b12d1d3826 |
@@ -52,13 +52,13 @@
|
|||||||
{
|
{
|
||||||
"id": "btcpay-server",
|
"id": "btcpay-server",
|
||||||
"title": "BTCPay Server",
|
"title": "BTCPay Server",
|
||||||
"version": "2.4.2",
|
"version": "2.4.3",
|
||||||
"description": "Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.",
|
"description": "Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.",
|
||||||
"icon": "/assets/img/app-icons/btcpay-server.png",
|
"icon": "/assets/img/app-icons/btcpay-server.png",
|
||||||
"author": "BTCPay Server Foundation",
|
"author": "BTCPay Server Foundation",
|
||||||
"category": "commerce",
|
"category": "commerce",
|
||||||
"tier": "core",
|
"tier": "core",
|
||||||
"dockerImage": "docker.io/btcpayserver/btcpayserver:2.4.2",
|
"dockerImage": "docker.io/btcpayserver/btcpayserver:2.4.3",
|
||||||
"repoUrl": "https://github.com/btcpayserver/btcpayserver",
|
"repoUrl": "https://github.com/btcpayserver/btcpayserver",
|
||||||
"requires": [
|
"requires": [
|
||||||
"bitcoin-knots"
|
"bitcoin-knots"
|
||||||
@@ -378,7 +378,7 @@
|
|||||||
"icon": "/assets/img/app-icons/pine.svg",
|
"icon": "/assets/img/app-icons/pine.svg",
|
||||||
"author": "Archipelago",
|
"author": "Archipelago",
|
||||||
"category": "home",
|
"category": "home",
|
||||||
"dockerImage": "docker.io/library/nginx:1.31.3-alpine",
|
"dockerImage": "docker.io/library/nginx:1.31.4-alpine",
|
||||||
"repoUrl": "https://github.com/rhasspy/wyoming"
|
"repoUrl": "https://github.com/rhasspy/wyoming"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
"author": "NetBird",
|
"author": "NetBird",
|
||||||
"category": "networking",
|
"category": "networking",
|
||||||
"tier": "recommended",
|
"tier": "recommended",
|
||||||
"dockerImage": "docker.io/library/nginx:1.31.3-alpine",
|
"dockerImage": "docker.io/library/nginx:1.31.4-alpine",
|
||||||
"repoUrl": "https://github.com/netbirdio/netbird",
|
"repoUrl": "https://github.com/netbirdio/netbird",
|
||||||
"containerConfig": {
|
"containerConfig": {
|
||||||
"ports": [
|
"ports": [
|
||||||
@@ -571,6 +571,18 @@
|
|||||||
"tier": "optional",
|
"tier": "optional",
|
||||||
"dockerImage": "source.archipelago-foundation.org/lfg2025/phoenixd:0.9.0",
|
"dockerImage": "source.archipelago-foundation.org/lfg2025/phoenixd:0.9.0",
|
||||||
"repoUrl": "https://github.com/ACINQ/phoenixd"
|
"repoUrl": "https://github.com/ACINQ/phoenixd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cuprate",
|
||||||
|
"title": "Cuprate",
|
||||||
|
"version": "0.1.0-preview",
|
||||||
|
"description": "Alternative Monero node implementation in Rust. Independently validates Monero consensus rules, providing a layer of security and redundancy for the network.",
|
||||||
|
"icon": "/assets/img/app-icons/cuprate.svg",
|
||||||
|
"author": "Cuprate contributors",
|
||||||
|
"category": "money",
|
||||||
|
"tier": "optional",
|
||||||
|
"dockerImage": "source.archipelago-foundation.org/lfg2025/cuprate:0.1.0-preview-18-g618ff14",
|
||||||
|
"repoUrl": "https://github.com/Cuprate/cuprate"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,14 @@ app:
|
|||||||
id: barkd
|
id: barkd
|
||||||
name: Ark Wallet
|
name: Ark Wallet
|
||||||
version: 0.3.0
|
version: 0.3.0
|
||||||
|
# Where this app comes from, so scripts/check-upstream-releases.py can
|
||||||
|
# tell us when the pin below has fallen behind. bark ships on GitLab only
|
||||||
|
# (no GitHub mirror), so the gitlab fetcher is the one that can see it.
|
||||||
|
# NOTE: a version bump is code work, not a pin move — the REST shapes are
|
||||||
|
# coded in core/archipelago/src/wallet/ark_client.rs (see Dockerfile note).
|
||||||
|
upstream:
|
||||||
|
kind: gitlab
|
||||||
|
repo: ark-bitcoin/bark
|
||||||
description: Ark protocol wallet daemon (barkd). Lets the node hold self-custodial off-chain bitcoin via an Ark server; the wallet talks to it over a local REST API. Signet by default while Ark matures.
|
description: Ark protocol wallet daemon (barkd). Lets the node hold self-custodial off-chain bitcoin via an Ark server; the wallet talks to it over a local REST API. Signet by default while Ark matures.
|
||||||
|
|
||||||
container:
|
container:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
app:
|
app:
|
||||||
id: btcpay-server
|
id: btcpay-server
|
||||||
name: BTCPay Server
|
name: BTCPay Server
|
||||||
version: 2.4.2
|
version: 2.4.3
|
||||||
# Where this app comes from, so scripts/check-upstream-releases.py can
|
# Where this app comes from, so scripts/check-upstream-releases.py can
|
||||||
# tell us when the pin below has fallen behind. Without it nothing can:
|
# tell us when the pin below has fallen behind. Without it nothing can:
|
||||||
# container.image names our mirror, not the project it was mirrored from.
|
# container.image names our mirror, not the project it was mirrored from.
|
||||||
@@ -11,7 +11,7 @@ app:
|
|||||||
description: Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.
|
description: Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: docker.io/btcpayserver/btcpayserver:2.4.2
|
image: docker.io/btcpayserver/btcpayserver:2.4.3
|
||||||
pull_policy: if-not-present
|
pull_policy: if-not-present
|
||||||
network: archy-net
|
network: archy-net
|
||||||
secret_env:
|
secret_env:
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ app:
|
|||||||
kind: github
|
kind: github
|
||||||
repo: Cuprate/cuprate
|
repo: Cuprate/cuprate
|
||||||
description: Alternative Monero node implementation in Rust. Independently validates Monero consensus rules, providing a layer of security and redundancy for the network.
|
description: Alternative Monero node implementation in Rust. Independently validates Monero consensus rules, providing a layer of security and redundancy for the network.
|
||||||
|
category: money
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
icon: /assets/img/app-icons/cuprate.svg
|
||||||
|
repo: https://github.com/Cuprate/cuprate
|
||||||
|
tier: optional
|
||||||
|
|
||||||
container:
|
container:
|
||||||
# Built from the upstream Dockerfile at the tip of main, 18 commits past
|
# Built from the upstream Dockerfile at the tip of main, 18 commits past
|
||||||
|
|||||||
@@ -2,6 +2,12 @@ app:
|
|||||||
id: immich-postgres
|
id: immich-postgres
|
||||||
name: Immich Postgres
|
name: Immich Postgres
|
||||||
version: "14-vectorchord0.4.3-pgvectors0.2.0"
|
version: "14-vectorchord0.4.3-pgvectors0.2.0"
|
||||||
|
# Upstream is the Immich-built Postgres image, published only on ghcr.io
|
||||||
|
# (no GitHub release tags, no Docker Hub repo) — the ghcr fetcher in
|
||||||
|
# scripts/check-upstream-releases.py is the only one that can see it.
|
||||||
|
upstream:
|
||||||
|
kind: ghcr
|
||||||
|
repo: immich-app/postgres
|
||||||
description: Postgres (pgvecto.rs / vectorchord) backend for Immich.
|
description: Postgres (pgvecto.rs / vectorchord) backend for Immich.
|
||||||
|
|
||||||
# Container named immich_postgres (underscore) to match the runtime's existing
|
# Container named immich_postgres (underscore) to match the runtime's existing
|
||||||
|
|||||||
@@ -2,6 +2,12 @@ app:
|
|||||||
id: indeedhub-minio
|
id: indeedhub-minio
|
||||||
name: IndeedHub MinIO
|
name: IndeedHub MinIO
|
||||||
version: "RELEASE.2024-11-07T00-52-20Z"
|
version: "RELEASE.2024-11-07T00-52-20Z"
|
||||||
|
# MinIO's release tags are date-opaque (RELEASE.YYYY-MM-DD…), so the
|
||||||
|
# checker reports them as UNCOMPARABLE rather than ordering them — the
|
||||||
|
# latest tag is still shown for hand comparison, which is the point.
|
||||||
|
upstream:
|
||||||
|
kind: github
|
||||||
|
repo: minio/minio
|
||||||
description: MinIO S3-compatible object storage for IndeedHub media.
|
description: MinIO S3-compatible object storage for IndeedHub media.
|
||||||
category: community
|
category: community
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,12 @@ app:
|
|||||||
id: lightning-stack
|
id: lightning-stack
|
||||||
name: Lightning Stack
|
name: Lightning Stack
|
||||||
version: 0.12.0
|
version: 0.12.0
|
||||||
|
# No public listing exists for lightninglabs/lightning-stack (checked
|
||||||
|
# docker.io, ghcr.io and github.com) — nothing can be queried automatically,
|
||||||
|
# so this one is tracked by hand.
|
||||||
|
upstream:
|
||||||
|
kind: manual
|
||||||
|
url: no public listing for lightninglabs/lightning-stack — verify by hand
|
||||||
description: Complete Lightning Network implementation. Includes LND, CLN, and management tools.
|
description: Complete Lightning Network implementation. Includes LND, CLN, and management tools.
|
||||||
|
|
||||||
container:
|
container:
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ app:
|
|||||||
container_name: netbird
|
container_name: netbird
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: docker.io/library/nginx:1.31.3-alpine
|
image: docker.io/library/nginx:1.31.4-alpine
|
||||||
pull_policy: if-not-present
|
pull_policy: if-not-present
|
||||||
network: netbird-net
|
network: netbird-net
|
||||||
# Self-signed TLS cert materialised before create — the dashboard needs a
|
# Self-signed TLS cert materialised before create — the dashboard needs a
|
||||||
|
|||||||
@@ -6,6 +6,14 @@ app:
|
|||||||
# pick up the args change; the pre-release form "3.4.1-1" would compare
|
# pick up the args change; the pre-release form "3.4.1-1" would compare
|
||||||
# LOWER than 3.4.1 under semver and never roll out.
|
# LOWER than 3.4.1 under semver and never roll out.
|
||||||
version: "3.4.2"
|
version: "3.4.2"
|
||||||
|
# Tracks the rhasspy/wyoming-whisper image we pin (Docker Hub — the
|
||||||
|
# project's GitHub tags are not the image tags). NOTE: this manifest
|
||||||
|
# deliberately ships an args-tuned revision AHEAD of the image tag (see
|
||||||
|
# comment above) — BEHIND here means the image tag moved and the tuned
|
||||||
|
# revision needs re-basing onto it, not just a pin bump.
|
||||||
|
upstream:
|
||||||
|
kind: dockerhub
|
||||||
|
repo: rhasspy/wyoming-whisper
|
||||||
description: Wyoming-protocol faster-whisper speech-to-text engine. Internal Pine voice-assistant stack member — turns speech captured by a PineVoice satellite into text for Home Assistant Assist.
|
description: Wyoming-protocol faster-whisper speech-to-text engine. Internal Pine voice-assistant stack member — turns speech captured by a PineVoice satellite into text for Home Assistant Assist.
|
||||||
category: home
|
category: home
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ app:
|
|||||||
container_name: pine
|
container_name: pine
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: docker.io/library/nginx:1.31.3-alpine
|
image: docker.io/library/nginx:1.31.4-alpine
|
||||||
pull_policy: if-not-present
|
pull_policy: if-not-present
|
||||||
network: archy-net
|
network: archy-net
|
||||||
network_aliases: [pine]
|
network_aliases: [pine]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
app:
|
app:
|
||||||
id: strfry
|
id: strfry
|
||||||
name: Strfry Nostr Relay
|
name: Strfry Nostr Relay
|
||||||
version: 1.1.1
|
version: 1.1.2
|
||||||
# Where this app comes from, so scripts/check-upstream-releases.py can
|
# Where this app comes from, so scripts/check-upstream-releases.py can
|
||||||
# tell us when the pin below has fallen behind. Without it nothing can:
|
# tell us when the pin below has fallen behind. Without it nothing can:
|
||||||
# container.image names our mirror, not the project it was mirrored from.
|
# container.image names our mirror, not the project it was mirrored from.
|
||||||
@@ -11,7 +11,7 @@ app:
|
|||||||
description: Lightweight Nostr relay written in C++. Alternative to nostr-rs-relay with lower resource usage.
|
description: Lightweight Nostr relay written in C++. Alternative to nostr-rs-relay with lower resource usage.
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: dockurr/strfry:1.1.1
|
image: dockurr/strfry:1.1.2
|
||||||
image_signature: cosign://...
|
image_signature: cosign://...
|
||||||
pull_policy: verify-signature
|
pull_policy: verify-signature
|
||||||
|
|
||||||
|
|||||||
@@ -52,13 +52,13 @@
|
|||||||
{
|
{
|
||||||
"id": "btcpay-server",
|
"id": "btcpay-server",
|
||||||
"title": "BTCPay Server",
|
"title": "BTCPay Server",
|
||||||
"version": "2.4.2",
|
"version": "2.4.3",
|
||||||
"description": "Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.",
|
"description": "Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries.",
|
||||||
"icon": "/assets/img/app-icons/btcpay-server.png",
|
"icon": "/assets/img/app-icons/btcpay-server.png",
|
||||||
"author": "BTCPay Server Foundation",
|
"author": "BTCPay Server Foundation",
|
||||||
"category": "commerce",
|
"category": "commerce",
|
||||||
"tier": "core",
|
"tier": "core",
|
||||||
"dockerImage": "docker.io/btcpayserver/btcpayserver:2.4.2",
|
"dockerImage": "docker.io/btcpayserver/btcpayserver:2.4.3",
|
||||||
"repoUrl": "https://github.com/btcpayserver/btcpayserver",
|
"repoUrl": "https://github.com/btcpayserver/btcpayserver",
|
||||||
"requires": [
|
"requires": [
|
||||||
"bitcoin-knots"
|
"bitcoin-knots"
|
||||||
@@ -378,7 +378,7 @@
|
|||||||
"icon": "/assets/img/app-icons/pine.svg",
|
"icon": "/assets/img/app-icons/pine.svg",
|
||||||
"author": "Archipelago",
|
"author": "Archipelago",
|
||||||
"category": "home",
|
"category": "home",
|
||||||
"dockerImage": "docker.io/library/nginx:1.31.3-alpine",
|
"dockerImage": "docker.io/library/nginx:1.31.4-alpine",
|
||||||
"repoUrl": "https://github.com/rhasspy/wyoming"
|
"repoUrl": "https://github.com/rhasspy/wyoming"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
"author": "NetBird",
|
"author": "NetBird",
|
||||||
"category": "networking",
|
"category": "networking",
|
||||||
"tier": "recommended",
|
"tier": "recommended",
|
||||||
"dockerImage": "docker.io/library/nginx:1.31.3-alpine",
|
"dockerImage": "docker.io/library/nginx:1.31.4-alpine",
|
||||||
"repoUrl": "https://github.com/netbirdio/netbird",
|
"repoUrl": "https://github.com/netbirdio/netbird",
|
||||||
"containerConfig": {
|
"containerConfig": {
|
||||||
"ports": [
|
"ports": [
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ export const GENERATED_APP_TITLES: Record<string, string> = {
|
|||||||
"botfights": "BotFights",
|
"botfights": "BotFights",
|
||||||
"btcpay-server": "BTCPay Server",
|
"btcpay-server": "BTCPay Server",
|
||||||
"core-lightning": "Core Lightning (CLN)",
|
"core-lightning": "Core Lightning (CLN)",
|
||||||
|
"cuprate": "Cuprate",
|
||||||
"did-wallet": "Web5 DID Wallet",
|
"did-wallet": "Web5 DID Wallet",
|
||||||
"electrs-ui": "Electrs UI",
|
"electrs-ui": "Electrs UI",
|
||||||
"electrumx": "ElectrumX",
|
"electrumx": "ElectrumX",
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import urllib.error
|
import urllib.error
|
||||||
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -191,7 +192,50 @@ def _highest(tags: list[str], current: str = "") -> str:
|
|||||||
return max(ranked)[1]
|
return max(ranked)[1]
|
||||||
|
|
||||||
|
|
||||||
FETCHERS = {"github": latest_github, "dockerhub": latest_dockerhub}
|
def latest_gitlab(project: str, current: str = "") -> str:
|
||||||
|
"""Newest release tag for a GitLab `group/project`.
|
||||||
|
|
||||||
|
Some projects publish releases only on GitLab with no GitHub mirror
|
||||||
|
(bark lives at ark-bitcoin/bark and nowhere else). GitLab release tags
|
||||||
|
sometimes carry the project name as a prefix (`bark-0.6.2`); strip it so
|
||||||
|
version ordering can see the number.
|
||||||
|
"""
|
||||||
|
esc = urllib.parse.quote(project, safe="")
|
||||||
|
releases = http_json(
|
||||||
|
f"https://gitlab.com/api/v4/projects/{esc}/releases?per_page=100"
|
||||||
|
)
|
||||||
|
tags = [str(r["tag_name"]) for r in releases]
|
||||||
|
prefix = project.rsplit("/", 1)[-1].lower() + "-"
|
||||||
|
tags = [t[len(prefix):] if t.lower().startswith(prefix) else t for t in tags]
|
||||||
|
return _highest(tags, current)
|
||||||
|
|
||||||
|
|
||||||
|
def latest_ghcr(repo: str, current: str = "") -> str:
|
||||||
|
"""Newest version-like tag on GitHub's container registry.
|
||||||
|
|
||||||
|
Some images exist only on ghcr.io (immich-app/postgres publishes there
|
||||||
|
and nowhere else), so neither the GitHub-release nor the Docker Hub
|
||||||
|
fetcher can see them. Anonymous pull token first, then the tag list —
|
||||||
|
the same handshake any `docker pull ghcr.io/...` performs.
|
||||||
|
"""
|
||||||
|
token = http_json(
|
||||||
|
f"https://ghcr.io/token?scope=repository:{repo}:pull&service=ghcr.io"
|
||||||
|
)["token"]
|
||||||
|
req = urllib.request.Request(
|
||||||
|
f"https://ghcr.io/v2/{repo}/tags/list",
|
||||||
|
headers={"User-Agent": USER_AGENT, "Authorization": f"Bearer {token}"},
|
||||||
|
)
|
||||||
|
with urllib.request.urlopen(req, timeout=TIMEOUT) as res: # noqa: S310
|
||||||
|
tags = [str(t) for t in json.loads(res.read().decode()).get("tags", [])]
|
||||||
|
return _highest(tags, current)
|
||||||
|
|
||||||
|
|
||||||
|
FETCHERS = {
|
||||||
|
"github": latest_github,
|
||||||
|
"dockerhub": latest_dockerhub,
|
||||||
|
"gitlab": latest_gitlab,
|
||||||
|
"ghcr": latest_ghcr,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# ── Manifest reading ───────────────────────────────────────────────────────
|
# ── Manifest reading ───────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ MEMPOOL_WEB_IMAGE="$ARCHY_REGISTRY/mempool-frontend:v3.3.1"
|
|||||||
MARIADB_IMAGE="$ARCHY_REGISTRY/mariadb:11.4.10"
|
MARIADB_IMAGE="$ARCHY_REGISTRY/mariadb:11.4.10"
|
||||||
|
|
||||||
# BTCPay
|
# BTCPay
|
||||||
BTCPAY_IMAGE="docker.io/btcpayserver/btcpayserver:2.4.2"
|
BTCPAY_IMAGE="docker.io/btcpayserver/btcpayserver:2.4.3"
|
||||||
NBXPLORER_IMAGE="$ARCHY_REGISTRY/nbxplorer:2.6.0"
|
NBXPLORER_IMAGE="$ARCHY_REGISTRY/nbxplorer:2.6.0"
|
||||||
POSTGRES_IMAGE="$ARCHY_REGISTRY/postgres:15.17"
|
POSTGRES_IMAGE="$ARCHY_REGISTRY/postgres:15.17"
|
||||||
BTCPAY_POSTGRES_IMAGE="$ARCHY_REGISTRY/postgres:15.17"
|
BTCPAY_POSTGRES_IMAGE="$ARCHY_REGISTRY/postgres:15.17"
|
||||||
|
|||||||
Reference in New Issue
Block a user