mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-09-29 18:16:43 +00:00
Adds the OCI manager: an engine that turns a Docker Compose file into an LXC definition, a catalog of 365 applications drawn from LinuxServer.io and other container image sources, and a per-instance registry recording what each container was built from. Reachable from the main menu. Catalog text is translated like every other string in the project: the taglines go through translate() and land in lang/*.json, so the entries read in all eight languages instead of only English. Translation cache builder: - a failed translation leaves the key absent rather than writing English, which previously made the string count as translated forever - a result identical to a 3+ word source is rejected, catching a provider that silently returns the text it was given - strings that are nothing but glossary terms keep their source spelling instead of being discarded as failures - no backoff between attempts when the provider is deterministic - application names are protected so "HAOS One" survives translation - argos joins the provider list, and the workflow reads the OCI sources Audit & Report: - findings that moved in the wrong direction between runs are reported alongside the ones that improved - an accepted risk can carry a review date and is flagged when it falls due - backup checks explain in plain language what they looked at and what to do next Monitor: - disks can be excluded from periodic reads, and an idle disk says so instead of showing a stale temperature - per-disk identity survives a controller or enclosure change - scheduled Borg backups resolve their SSH key from the repository entry - PVE upgrades log the package list and the resulting dpkg changes The web build no longer copies scripts/ into public/: the documentation links to GitHub, so nothing read that folder. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
261 lines
8.8 KiB
JSON
261 lines
8.8 KiB
JSON
{
|
|
"schema_version": "0.3.0",
|
|
"kind": "proxmenux.oci-template",
|
|
"id": "linuxserver-kometa",
|
|
"status": "generated-unvalidated",
|
|
"catalog_ui": {
|
|
"title": {
|
|
"en_US": "Kometa"
|
|
},
|
|
"tagline": {
|
|
"en_US": "Kometa is a powerful tool designed to give you complete control over your media libraries. With Kometa, you can take your customization to the next level, with granular control over metadata, collections, overlays, and much more."
|
|
},
|
|
"description": {
|
|
"en_US": "Kometa is a powerful tool designed to give you complete control over your media libraries. With Kometa, you can take your customization to the next level, with granular control over metadata, collections, overlays, and much more."
|
|
},
|
|
"category": "media",
|
|
"category_label": "Media & Streaming",
|
|
"author": "LinuxServer.io",
|
|
"developer": null,
|
|
"icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/kometa-icon.png",
|
|
"thumbnail": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/kometa-banner.png",
|
|
"screenshots": [],
|
|
"architectures": [
|
|
"amd64",
|
|
"arm64"
|
|
],
|
|
"launch": {
|
|
"scheme": "http",
|
|
"port": null,
|
|
"path": "/"
|
|
},
|
|
"website": "https://github.com/Kometa-Team/Kometa",
|
|
"documentation": "https://docs.linuxserver.io/images/docker-kometa/",
|
|
"repository": "https://github.com/linuxserver/docker-kometa",
|
|
"tips": [],
|
|
"mini_changelog": [
|
|
{
|
|
"date": "2026-07-05",
|
|
"note": "Rebase to Alpine 3.24."
|
|
},
|
|
{
|
|
"date": "2025-12-28",
|
|
"note": "Rebase to Alpine 3.23."
|
|
},
|
|
{
|
|
"date": "2025-07-09",
|
|
"note": "Rebase to Alpine 3.22."
|
|
},
|
|
{
|
|
"date": "2025-01-06",
|
|
"note": "Rebase to Alpine 3.21."
|
|
},
|
|
{
|
|
"date": "2024-06-24",
|
|
"note": "Rebase to Alpine 3.20."
|
|
}
|
|
],
|
|
"display_version": null,
|
|
"updated_at": "2026-07-05"
|
|
},
|
|
"source": {
|
|
"provider": "linuxserver.io",
|
|
"repository": "https://github.com/linuxserver/docker-kometa",
|
|
"default_branch": "main",
|
|
"revision": "daf08dd7ab16843c5901f3bf46499102ecffdddb",
|
|
"readme_raw_url": "https://raw.githubusercontent.com/linuxserver/docker-kometa/daf08dd7ab16843c5901f3bf46499102ecffdddb/README.md",
|
|
"readme_pushed_at": "2026-09-12T01:47:49Z",
|
|
"compose_sha256": "0860adea99372d9fcd8f0bcb1daf1c032b5cc0d93109f9736ad65170c81f269c",
|
|
"generated_at": "2026-09-12T14:37:29+00:00"
|
|
},
|
|
"container_contract": {
|
|
"service_name": "kometa",
|
|
"container_name": "kometa",
|
|
"image": {
|
|
"reference": "lscr.io/linuxserver/kometa:latest",
|
|
"registry": "lscr.io",
|
|
"repository": "lscr.io/linuxserver/kometa",
|
|
"tag": "latest",
|
|
"digest": null,
|
|
"pull_policy": "resolve-selected-tag-to-architecture-digest-at-install"
|
|
},
|
|
"environment": [
|
|
{
|
|
"name": "PUID",
|
|
"example": "1000",
|
|
"required": true,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "PGID",
|
|
"example": "1000",
|
|
"required": true,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "TZ",
|
|
"example": "Etc/UTC",
|
|
"required": true,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "KOMETA_CONFIG",
|
|
"example": "/config/config.yml",
|
|
"required": false,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "KOMETA_TIMES",
|
|
"example": "03:00",
|
|
"required": false,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "KOMETA_RUN",
|
|
"example": "False",
|
|
"required": false,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "KOMETA_TESTS",
|
|
"example": "False",
|
|
"required": false,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
},
|
|
{
|
|
"name": "KOMETA_NO_MISSING",
|
|
"example": "False",
|
|
"required": false,
|
|
"sensitive": false,
|
|
"source": "linuxserver-compose"
|
|
}
|
|
],
|
|
"volumes": [
|
|
{
|
|
"id": "volume-0",
|
|
"container_path": "/config",
|
|
"compose_source_example": "/path/to/kometa/config",
|
|
"read_only": false,
|
|
"required": true,
|
|
"installation_choice": [
|
|
"managed-volume",
|
|
"host-bind"
|
|
],
|
|
"default": "managed-volume",
|
|
"managed_volume": {
|
|
"backup": true,
|
|
"default_size_gb": 4
|
|
}
|
|
}
|
|
],
|
|
"ports": [],
|
|
"related_services": [],
|
|
"restart": "unless-stopped",
|
|
"stop_grace_period": null,
|
|
"original_compose": "---\nservices:\n kometa:\n image: lscr.io/linuxserver/kometa:latest\n container_name: kometa\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Etc/UTC\n - KOMETA_CONFIG=/config/config.yml #optional\n - KOMETA_TIMES=03:00 #optional\n - KOMETA_RUN=False #optional\n - KOMETA_TESTS=False #optional\n - KOMETA_NO_MISSING=False #optional\n volumes:\n - /path/to/kometa/config:/config\n restart: unless-stopped\n"
|
|
},
|
|
"first_run": {
|
|
"endpoints": [],
|
|
"credentials": []
|
|
},
|
|
"proxmox": {
|
|
"runtime": "native-oci-lxc",
|
|
"technology_status": "proxmox-technology-preview",
|
|
"defaults": {
|
|
"unprivileged": true,
|
|
"ostype": "auto-from-image",
|
|
"cores": 2,
|
|
"memory_mb": 1024,
|
|
"swap_mb": 512,
|
|
"rootfs_size_gb": 8,
|
|
"rootfs_storage": "local-lvm",
|
|
"volume_storage": "local-lvm",
|
|
"template_storage": "local",
|
|
"bridge": "vmbr0",
|
|
"ipv4": "dhcp",
|
|
"firewall": true,
|
|
"host_managed_network": true,
|
|
"onboot": false,
|
|
"features": [
|
|
"nesting=1"
|
|
],
|
|
"shutdown_timeout_seconds": 30
|
|
},
|
|
"image_metadata_policy": {
|
|
"entrypoint": "import-from-oci-image",
|
|
"cmd": "import-from-oci-image",
|
|
"environment": "import-image-env-then-apply-compose-overrides",
|
|
"user": "import-from-oci-image",
|
|
"working_dir": "import-from-oci-image",
|
|
"stop_signal": "import-from-oci-image"
|
|
},
|
|
"adaptations": [
|
|
{
|
|
"id": "dedicated-lxc-network",
|
|
"upstream_behavior": "Docker publishes selected container ports on the Docker host.",
|
|
"native_lxc_behavior": "The application listens on the same container ports at its dedicated LXC address.",
|
|
"reason": "A native LXC has its own address and does not require Docker port NAT.",
|
|
"behavioral_impact": "Users open the LXC address instead of the Proxmox host address.",
|
|
"validation": "pending-per-application"
|
|
},
|
|
{
|
|
"id": "compose-environment-overlay",
|
|
"upstream_behavior": "Compose environment values override OCI image environment values.",
|
|
"native_lxc_behavior": "ProxMenux merges the same values into lxc.environment.runtime while the CT is stopped.",
|
|
"reason": "PVE imports image Env automatically; Compose values still need to override it.",
|
|
"behavioral_impact": "None expected.",
|
|
"validation": "pending-per-application"
|
|
},
|
|
{
|
|
"id": "stop-grace-period",
|
|
"upstream_behavior": "Docker waits for Compose stop_grace_period before forcing termination.",
|
|
"native_lxc_behavior": "ProxMenux records the same timeout for its pct shutdown lifecycle operations.",
|
|
"reason": "Proxmox has no equivalent per-CT persistent restart-policy field; startup.down is not a shutdown timeout.",
|
|
"behavioral_impact": "Normal Proxmox node shutdown remains governed by the node-wide shutdown policy.",
|
|
"validation": "not-requested-by-compose"
|
|
}
|
|
]
|
|
},
|
|
"compatibility": {
|
|
"automatic_install_candidate": true,
|
|
"validated": false,
|
|
"supported_compose_keys": [
|
|
"container_name",
|
|
"environment",
|
|
"image",
|
|
"ports",
|
|
"restart",
|
|
"stop_grace_period",
|
|
"volumes"
|
|
],
|
|
"untranslated_blockers": [],
|
|
"policy": "A generated template is never promoted to validated without install, health, restart and persistence tests."
|
|
},
|
|
"validation": {
|
|
"schema": "passed-at-generation",
|
|
"clean_install": "pending",
|
|
"service_health": "pending",
|
|
"restart_persistence": "pending",
|
|
"backup_restore": "pending",
|
|
"update_preserves_data": "pending"
|
|
},
|
|
"lifecycle": {
|
|
"update_strategy": "replace-rootfs-from-new-oci-image-preserve-managed-volumes",
|
|
"registry_state": {
|
|
"resolved_architecture": null,
|
|
"resolved_digest": null,
|
|
"image_version_label": null,
|
|
"image_created": null
|
|
},
|
|
"change_detection": "compare-resolved-architecture-digest",
|
|
"automatic_unattended_updates": false
|
|
}
|
|
}
|