mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-01 10:22:08 +00:00
Merge pull request #546 from jcastro/feature/scrypted-oci-20261027
Add Scrypted to the OCI app catalog
This commit is contained in:
@@ -6002,6 +6002,7 @@
|
||||
"Script Information": "Skriptinformationen",
|
||||
"Script not found:": "Skript nicht gefunden:",
|
||||
"Scripts in": "Skripte in",
|
||||
"Scrypted Web UI": "Scrypted-Weboberfläche",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM ist ein Programm, mit dem Sie bestimmte klassische grafische Abenteuer- und Rollenspiele ausführen können, sofern Sie bereits über deren Datendateien verfügen. Der clevere Teil dabei: ScummVM ersetzt nur die ausführbaren Dateien, die mit den Spielen ausgeliefert werden, so dass Sie sie auf Systemen spielen können, für die sie nie entwickelt wurden! ScummVM ist ein komplettes Umschreiben der ausführbaren Dateien dieser Spiele und kein Emulator.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (Legacy)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin ist eine selbst gehostete Client-Server-Plattform, mit der Benutzer leistungsstarke, containerisierte Desktop-Anwendungen ausführen können, die direkt in einen Webbrowser gestreamt werden. Es verwendet eine Browsererweiterung, um Benutzeraktionen abzufangen - wie das Klicken auf einen Link oder das Herunterladen einer Datei und leitet sie in eine sichere, isolierte Anwendungsumgebung um, die auf einem entfernten Server ausgeführt wird.",
|
||||
@@ -6246,6 +6247,7 @@
|
||||
"Self-hosted remote device management.": "Selbst gehostete Fernverwaltung von Geräten.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Selbst gehostete Terminplanungs- und Buchungsanwendung mit integrierter Administrationsoberfläche und SQLite-Datenbank.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Selbst gehostete Verwaltung gemeinsamer Ausgaben und Gruppenbudgets, um Käufe zu erfassen und abzurechnen, wer wem etwas schuldet.",
|
||||
"Self-hosted smart home video platform.": "Selbst gehostete Video-Plattform für das Smart Home.",
|
||||
"Self-hosted software development service": "Entwicklung von selbst gehosteter Software",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Selbst gehosteter Krafttrainings-Tracker mit Trainingsprotokollen, Programmen, Fortschrittsfotos und mobiler PWA.",
|
||||
"Self-hosted task and project management.": "Selbst gehostete Aufgaben- und Projektverwaltung.",
|
||||
|
||||
@@ -5986,6 +5986,7 @@
|
||||
"Script Information": "Información del script",
|
||||
"Script not found:": "Script no encontrado:",
|
||||
"Scripts in": "Scripts en",
|
||||
"Scrypted Web UI": "Interfaz web de Scrypted",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM es un programa que permite ejecutar ciertas aventuras gráficas y juegos de rol clásicos, siempre que ya tengas sus archivos de datos. Lo ingenioso es que ScummVM sustituye los ejecutables de los juegos, de modo que puedes jugarlos en sistemas para los que nunca se diseñaron. ScummVM es una reescritura completa de esos ejecutables y no es un emulador.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (heredado)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin es una plataforma cliente-servidor autoalojada que permite ejecutar potentes aplicaciones de escritorio en contenedores transmitidas directamente al navegador. Usa una extensión del navegador para interceptar acciones del usuario, como hacer clic en un enlace o descargar un archivo, y redirigirlas a un entorno de aplicación seguro y aislado en un servidor remoto.",
|
||||
@@ -6230,6 +6231,7 @@
|
||||
"Self-hosted remote device management.": "Gestión remota de dispositivos autoalojada.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Aplicación autoalojada de programación y reservas, con interfaz de administración integrada y base de datos SQLite.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gestor autoalojado de gastos compartidos y presupuestos de grupo para registrar compras y saldar deudas entre sus miembros.",
|
||||
"Self-hosted smart home video platform.": "Plataforma de vídeo para el hogar inteligente alojada en tu propio servidor.",
|
||||
"Self-hosted software development service": "Servicio autoalojado de desarrollo de software",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Seguimiento autoalojado de entrenamiento de fuerza, con registros de sesiones, programas, fotos de progreso y una PWA para móviles.",
|
||||
"Self-hosted task and project management.": "Gestión autoalojada de tareas y proyectos.",
|
||||
|
||||
@@ -6002,6 +6002,7 @@
|
||||
"Script Information": "Informations sur le script",
|
||||
"Script not found:": "Script introuvable :",
|
||||
"Scripts in": "Scripts dans",
|
||||
"Scrypted Web UI": "Interface web de Scrypted",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM est un programme qui vous permet d'exécuter certaines aventures graphiques classiques et jeux de rôle, à condition que vous ayez déjà leurs fichiers de données. La partie intelligente à ce sujet: ScummVM remplace les exécutables livrés avec les jeux, vous permettant de les jouer sur des systèmes pour lesquels ils n'ont jamais été conçus! ScummVM est une réécriture complète des exécutables de ces jeux et n'est pas un émulateur.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (hérité)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin est une plate-forme client-serveur auto-organisé qui permet aux utilisateurs d'exécuter des applications de bureau puissantes et containerizzato diffusées directement sur un navigateur Web. Il utilise une extension de navigateur pour intercepter les actions de l'utilisateur – comme cliquer sur un lien ou télécharger un fichier et les rediriger vers un environnement d'application sécurisé et isolé fonctionnant sur un serveur distant.",
|
||||
@@ -6246,6 +6247,7 @@
|
||||
"Self-hosted remote device management.": "Outil auto-hébergé de gestion à distance des appareils.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Application auto-hébergée de planification et de réservation avec interface d'administration intégrée et base de données SQLite.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gestionnaire auto-hébergé des dépenses partagées et des budgets de groupe pour suivre les achats et calculer les remboursements entre participants.",
|
||||
"Self-hosted smart home video platform.": "Plateforme vidéo domotique auto-hébergée.",
|
||||
"Self-hosted software development service": "Service de développement de logiciels autonomes",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Suivi auto-hébergé de la musculation avec journaux d'entraînement, programmes, photos de progression et PWA mobile.",
|
||||
"Self-hosted task and project management.": "Gestion des tâches et des projets auto-hébergée.",
|
||||
|
||||
@@ -6002,6 +6002,7 @@
|
||||
"Script Information": "Informazioni script",
|
||||
"Script not found:": "Script non trovato:",
|
||||
"Scripts in": "Script in",
|
||||
"Scrypted Web UI": "Interfaccia web di Scrypted",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM consente di eseguire alcuni classici giochi di avventura grafica e di ruolo, purché tu ne abbia già i file di dati. Sostituisce gli eseguibili originali dei giochi, così puoi usarli su sistemi per i quali non erano stati progettati. Gli eseguibili vengono riscritti completamente: ScummVM non è un emulatore.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (Legacy)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin è una piattaforma client-server self-hosted che consente di eseguire applicazioni desktop containerizzate e trasmetterle direttamente a un browser web. Usa un'estensione del browser per intercettare le azioni degli utenti, come cliccare su un link o scaricare un file, e reindirizzarle verso un ambiente applicativo sicuro e isolato su un server remoto.",
|
||||
@@ -6246,6 +6247,7 @@
|
||||
"Self-hosted remote device management.": "Gestione self-hosted dei dispositivi remoti.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "App di pianificazione e prenotazione da ospitare sul proprio server, con interfaccia di amministrazione integrata e database SQLite.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gestore di spese condivise e budget di gruppo da ospitare sul proprio server, per registrare gli acquisti e calcolare chi deve cosa a chi.",
|
||||
"Self-hosted smart home video platform.": "Piattaforma video per la smart home ospitata in autonomia.",
|
||||
"Self-hosted software development service": "Servizio di sviluppo software ospitabile sul proprio server",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Tracker per l'allenamento della forza da ospitare sul proprio server, con registri degli allenamenti, programmi, foto dei progressi e PWA per dispositivi mobili.",
|
||||
"Self-hosted task and project management.": "Gestione di attività e progetti sul proprio server.",
|
||||
|
||||
@@ -6002,6 +6002,7 @@
|
||||
"Script Information": "Informações do roteiro",
|
||||
"Script not found:": "Script não encontrado:",
|
||||
"Scripts in": "Scripts em",
|
||||
"Scrypted Web UI": "Interface web do Scrypted",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM é um programa que permite que você execute certos jogos clássicos de aventura gráfica e RPG, desde que você já tenha seus arquivos de dados. A parte inteligente sobre isso: ScummVM apenas substitui os executáveis enviados com os jogos, permitindo que você jogá-los em sistemas para os quais eles nunca foram projetados! ScummVM é uma reescrita completa dos executáveis desses jogos e não é um emulador.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (Legado)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin é uma plataforma auto-hospedada, cliente-servidor que permite aos usuários executar aplicativos de desktop poderosos e containerizados transmitidos diretamente para um navegador web. Ele usa uma extensão do navegador para interceptar ações do usuário, como clicar em um link ou baixar um arquivo e redirecioná-los para um ambiente de aplicação seguro e isolado rodando em um servidor remoto.",
|
||||
@@ -6246,6 +6247,7 @@
|
||||
"Self-hosted remote device management.": "Gerenciamento remoto de dispositivos self-hosted.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Aplicativo auto-hospedado de agendamento e reservas, com painel administrativo integrado e banco de dados SQLite.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gerenciador auto-hospedado de despesas compartilhadas e orçamentos em grupo para registrar compras e acertar quem deve a quem.",
|
||||
"Self-hosted smart home video platform.": "Plataforma de vídeo para casa inteligente autoalojada.",
|
||||
"Self-hosted software development service": "Serviço de desenvolvimento de software self-hosted",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Rastreador auto-hospedado de treinamento de força, com registros de exercícios, programas, fotos de progresso e um PWA para dispositivos móveis.",
|
||||
"Self-hosted task and project management.": "Gestão de tarefas e projetos autoalojada.",
|
||||
|
||||
@@ -6004,6 +6004,7 @@
|
||||
"Script Information": "Informácie o skripte",
|
||||
"Script not found:": "Skript sa nenašiel:",
|
||||
"Scripts in": "Skripty v kategórii",
|
||||
"Scrypted Web UI": "Webové rozhranie Scrypted",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM umožňuje spúšťať vybrané klasické grafické adventúry a hry na hrdinov, ak už máte ich dátové súbory. Nahrádza pôvodné spustiteľné súbory hier, takže ich možno hrať aj na systémoch, pre ktoré neboli navrhnuté. Je úplným prepisom ich herných programov, nie emulátorom.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (starší režim BIOS)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin je self-hosted, klient-server platforma, ktorá umožňuje užívateľom spustiť výkonné, kontajnerové desktopové aplikácie streamované priamo do webového prehliadača. Používa rozšírenie prehliadača na zachytenie užívateľských akcií, ako je kliknutie na odkaz alebo stiahnutie súboru a presmeruje ich na bezpečné, izolované aplikačné prostredie bežiace na vzdialenom serveri.",
|
||||
@@ -6248,6 +6249,7 @@
|
||||
"Self-hosted remote device management.": "Vlastná služba na vzdialenú správu zariadení.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Aplikácia na plánovanie a rezervácie prevádzkovaná na vlastnom serveri so vstavaným rozhraním správcu a databázou SQLite.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Správca spoločných výdavkov a skupinových rozpočtov prevádzkovaný na vlastnom serveri na evidenciu nákupov a vyrovnanie dlhov medzi členmi skupiny.",
|
||||
"Self-hosted smart home video platform.": "Samohostovaná video platforma pre inteligentnú domácnosť.",
|
||||
"Self-hosted software development service": "Služba na vývoj softvéru s vlastným hostovaním",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Prehľad silového tréningu prevádzkovaný na vlastnom serveri so záznamami tréningov, programami, fotografiami pokroku a mobilnou PWA.",
|
||||
"Self-hosted task and project management.": "Správa úloh a projektov na vlastnom serveri.",
|
||||
|
||||
@@ -6002,6 +6002,7 @@
|
||||
"Script Information": "Skriptinformation",
|
||||
"Script not found:": "Skriptet hittades inte:",
|
||||
"Scripts in": "Skript i",
|
||||
"Scrypted Web UI": "Scrypted webbgränssnitt",
|
||||
"ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator.": "ScummVM är ett program som låter dig köra vissa klassiska grafiska äventyr och rollspel, förutsatt att du redan har sina datafiler. Den smarta delen om detta: ScummVM ersätter just de körbara som levereras med spelen, så att du kan spela dem på system för vilka de aldrig designades! ScummVM är en komplett omskrivning av dessa spel körbara och är inte en emulator.",
|
||||
"SeaBIOS (Legacy)": "SeaBIOS (Legacy)",
|
||||
"Sealskin is a self-hosted, client-server platform that enables users to run powerful, containerized desktop applications streamed directly to a web browser. It uses a browser extension to intercept user actions—such as clicking a link or downloading a file and redirects them to a secure, isolated application environment running on a remote server.": "Sealskin är en självhäftad, klient-server plattform som gör det möjligt för användare att köra kraftfulla, containeriserade stationära program strömmade direkt till en webbläsare. Den använder en webbläsartillägg för att avlyssna användaråtgärder - till exempel att klicka på en länk eller ladda ner en fil och omdirigerar dem till en säker, isolerad applikationsmiljö som körs på en fjärrserver.",
|
||||
@@ -6246,6 +6247,7 @@
|
||||
"Self-hosted remote device management.": "Självhostad fjärrhantering av enheter.",
|
||||
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "Självhostad app för schemaläggning och bokning med inbyggt administratörsgränssnitt och SQLite-databas.",
|
||||
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Självhostad hantering av gemensamma utgifter och gruppbudgetar för att registrera köp och reda ut vem som är skyldig vem.",
|
||||
"Self-hosted smart home video platform.": "Självhostad videoplattform för det smarta hemmet.",
|
||||
"Self-hosted software development service": "Självvärd programvara utvecklingstjänst",
|
||||
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Självhostad styrketräningslogg med träningspass, program, framstegsbilder och en mobil PWA.",
|
||||
"Self-hosted task and project management.": "Självhostad hantering av uppgifter och projekt.",
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Generated from oci/catalog/verification.json by .github/scripts/oci_validation.py. Do not edit by hand. -->
|
||||
|
||||
43 of 526 applications in the OCI catalog have been tested for real: 41 in the ProxMenux lab and 2 by the community. The OCI installer shows them as verified, with a ✓ in the lists.
|
||||
43 of 527 applications in the OCI catalog have been tested for real: 41 in the ProxMenux lab and 2 by the community. The OCI installer shows them as verified, with a ✓ in the lists.
|
||||
|
||||
Each test describes the scenario that was run and names the image it ran on. It does not cover every possible configuration of the application, and a newer image has not been tested until someone reports it.
|
||||
|
||||
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"schema_version": "0.5.0",
|
||||
"kind": "proxmenux.oci-template",
|
||||
"id": "image-scrypted",
|
||||
"status": "generated-unvalidated",
|
||||
"catalog_ui": {
|
||||
"title": {
|
||||
"en_US": "Scrypted"
|
||||
},
|
||||
"tagline": {
|
||||
"en_US": "Self-hosted smart home video platform."
|
||||
},
|
||||
"description": {
|
||||
"en_US": "Manage cameras and integrate video devices with Apple HomeKit, Google Home, Alexa and Home Assistant from one self-hosted platform."
|
||||
},
|
||||
"category": "smarthome",
|
||||
"category_label": "IoT & Smart Home",
|
||||
"author": "Scrypted",
|
||||
"developer": "Scrypted",
|
||||
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/scrypted.webp",
|
||||
"thumbnail": null,
|
||||
"screenshots": [],
|
||||
"architectures": [
|
||||
"amd64",
|
||||
"arm64"
|
||||
],
|
||||
"launch": {
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/"
|
||||
},
|
||||
"website": "https://scrypted.app/",
|
||||
"documentation": "https://docs.scrypted.app/install/linux-docker.html",
|
||||
"repository": "https://github.com/koush/scrypted",
|
||||
"tips": [
|
||||
"This profile uses the official single-service image and persists Scrypted state in /server/volume.",
|
||||
"The official Compose file includes an optional Watchtower service for Docker Engine updates. It is omitted because ProxMenux manages OCI image updates.",
|
||||
"Camera, NVR, mDNS/Avahi, GPU and USB integrations are not configured by this minimal profile; add required devices and storage separately."
|
||||
],
|
||||
"mini_changelog": [],
|
||||
"display_version": null,
|
||||
"updated_at": null
|
||||
},
|
||||
"source": {
|
||||
"provider": "official",
|
||||
"repository": "https://github.com/koush/scrypted",
|
||||
"revision": "78320e94ad977a77fa2bb201346b98630b8b1d47",
|
||||
"image_repository_url": "https://github.com/koush/scrypted/pkgs/container/scrypted",
|
||||
"readme_pushed_at": "2026-10-18T02:15:15Z",
|
||||
"compose_sha256": "a34bc5941c67a43e0e328f216c82f3dcf31c213c046b6920e08500af17d91727",
|
||||
"generated_at": "2026-10-27T20:07:09+00:00"
|
||||
},
|
||||
"container_contract": {
|
||||
"service_name": "scrypted",
|
||||
"container_name": "scrypted",
|
||||
"image": {
|
||||
"reference": "ghcr.io/koush/scrypted:latest",
|
||||
"registry": "ghcr.io",
|
||||
"repository": "ghcr.io/koush/scrypted",
|
||||
"tag": "latest",
|
||||
"digest": null,
|
||||
"pull_policy": "resolve-selected-tag-to-architecture-digest-at-install"
|
||||
},
|
||||
"environment": [],
|
||||
"volumes": [
|
||||
{
|
||||
"id": "volume-0",
|
||||
"container_path": "/server/volume",
|
||||
"compose_source_example": "./volume",
|
||||
"read_only": false,
|
||||
"required": true,
|
||||
"installation_choice": [
|
||||
"managed-volume",
|
||||
"host-bind"
|
||||
],
|
||||
"default": "managed-volume",
|
||||
"managed_volume": {
|
||||
"backup": true,
|
||||
"default_size_gb": 8
|
||||
}
|
||||
}
|
||||
],
|
||||
"ports": [
|
||||
{
|
||||
"container_port": 10443,
|
||||
"published_example": 10443,
|
||||
"protocol": "tcp",
|
||||
"required": true,
|
||||
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
|
||||
}
|
||||
],
|
||||
"related_services": [],
|
||||
"restart": "unless-stopped",
|
||||
"stop_grace_period": null,
|
||||
"original_compose": "name: scrypted\nservices:\n scrypted:\n image: ghcr.io/koush/scrypted:latest\n restart: unless-stopped\n network_mode: host\n volumes:\n - ./volume:/server/volume\n"
|
||||
},
|
||||
"compose_stack": {
|
||||
"project_name": "scrypted",
|
||||
"deployment_model": "one-native-oci-lxc-per-compose-service",
|
||||
"user_experience": "single-application-install",
|
||||
"main_service": "scrypted",
|
||||
"service_count": 1,
|
||||
"services": [
|
||||
{
|
||||
"name": "scrypted",
|
||||
"image": "ghcr.io/koush/scrypted:latest",
|
||||
"is_main": true,
|
||||
"role": "frontend",
|
||||
"vmid_offset": 0,
|
||||
"depends_on": [],
|
||||
"frontend_network": true,
|
||||
"private_network": false,
|
||||
"compose": {
|
||||
"image": "ghcr.io/koush/scrypted:latest",
|
||||
"restart": "unless-stopped",
|
||||
"network_mode": "host",
|
||||
"volumes": [
|
||||
"./volume:/server/volume"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"top_level": {
|
||||
"name": "scrypted"
|
||||
},
|
||||
"networking": {
|
||||
"frontend": "selected-proxmox-bridge",
|
||||
"private_required": false,
|
||||
"private_creation": "automatic-create-if-missing",
|
||||
"private_address_allocation": "automatic-static-address-per-service",
|
||||
"service_discovery": "private-addresses-with-compose-service-host-aliases",
|
||||
"dependency_external_access": "disabled-unless-service-publishes-ports",
|
||||
"prompt_user_for_private_network": false
|
||||
},
|
||||
"storage": [
|
||||
{
|
||||
"id": "scrypted-volume-0",
|
||||
"service": "scrypted",
|
||||
"container_path": "/server/volume",
|
||||
"mode": "managed-volume",
|
||||
"user_selectable": false,
|
||||
"backup": true,
|
||||
"shared_with_other_lxc": false,
|
||||
"source_path": null,
|
||||
"source_path_prompt": null
|
||||
}
|
||||
],
|
||||
"orchestration": {
|
||||
"reserve_vmids_atomically": 1,
|
||||
"start_order": [
|
||||
"scrypted"
|
||||
],
|
||||
"stop_order": [
|
||||
"scrypted"
|
||||
],
|
||||
"dependency_readiness": "compose-healthcheck-then-port-or-process-fallback",
|
||||
"rollback_on_failure": "remove-new-rootfs-preserve-created-persistent-volumes"
|
||||
},
|
||||
"installer_inputs": {
|
||||
"prompted": [
|
||||
"stack_name",
|
||||
"base_vmid",
|
||||
"rootfs_storage",
|
||||
"persistent_data_destinations",
|
||||
"frontend_bridge",
|
||||
"frontend_ipv4_mode"
|
||||
],
|
||||
"automatic": [
|
||||
"dependent_vmids",
|
||||
"private_bridge",
|
||||
"private_subnet",
|
||||
"private_service_addresses",
|
||||
"compose_service_aliases",
|
||||
"generated_secrets",
|
||||
"dependency_start_and_stop_order"
|
||||
],
|
||||
"generated_secrets": []
|
||||
}
|
||||
},
|
||||
"first_run": {
|
||||
"endpoints": [
|
||||
{
|
||||
"label": "Scrypted Web UI",
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/",
|
||||
"source": "official Scrypted documentation"
|
||||
}
|
||||
],
|
||||
"credentials": []
|
||||
},
|
||||
"proxmox": {
|
||||
"runtime": "native-oci-lxc",
|
||||
"technology_status": "proxmox-technology-preview",
|
||||
"defaults": {
|
||||
"unprivileged": true,
|
||||
"ostype": "auto-from-image",
|
||||
"cores": 2,
|
||||
"memory_mb": 2048,
|
||||
"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"
|
||||
},
|
||||
"installer_profile": {
|
||||
"startup_healthcheck": {
|
||||
"type": "http",
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/",
|
||||
"timeout_seconds": 300,
|
||||
"request_timeout_seconds": 10,
|
||||
"stability_seconds": 4,
|
||||
"verify_tls": false,
|
||||
"required": true,
|
||||
"source": "official Scrypted web interface"
|
||||
}
|
||||
},
|
||||
"adaptations": [
|
||||
{
|
||||
"id": "imported-compose-source",
|
||||
"upstream_behavior": "The source definition deploys the complete Docker Compose application model.",
|
||||
"native_lxc_behavior": "The source model is preserved and remains blocked until every service option has a reviewed native Proxmox mapping.",
|
||||
"reason": "Catalog import must not imply runtime compatibility.",
|
||||
"behavioral_impact": "No automatic installation before review.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "rolling-latest-image",
|
||||
"upstream_behavior": "A discovered Compose may pin a release tag or digest.",
|
||||
"native_lxc_behavior": "ProxMenux selects the same image repository with the latest tag for catalog installations.",
|
||||
"reason": "The automatic catalog intentionally offers rolling latest images; pinned versions belong to the future manual installer.",
|
||||
"behavioral_impact": "The installed release can be newer than the discovered Compose revision.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "dedicated-lxc-network",
|
||||
"upstream_behavior": "Docker publishes selected container ports on the Docker host.",
|
||||
"native_lxc_behavior": "A reviewed native application will listen on its original container ports at a dedicated LXC address.",
|
||||
"reason": "A native LXC has its own address and does not require Docker port NAT.",
|
||||
"behavioral_impact": "Published ports are metadata; ProxMenux URLs use the matching container target port.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "compose-shm-size",
|
||||
"upstream_behavior": "Compose sets the size of the container /dev/shm tmpfs.",
|
||||
"native_lxc_behavior": "ProxMenux mounts a native LXC tmpfs at /dev/shm with the same requested capacity.",
|
||||
"reason": "The OCI image runs directly as an LXC and therefore needs the equivalent Proxmox mount entry.",
|
||||
"behavioral_impact": "None expected.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-command",
|
||||
"upstream_behavior": "Compose replaces the image Cmd while retaining its Entrypoint.",
|
||||
"native_lxc_behavior": "ProxMenux reads the official OCI Entrypoint and combines it with the Compose command as the native LXC init command.",
|
||||
"reason": "Proxmox stores the effective OCI process as one entrypoint string.",
|
||||
"behavioral_impact": "None expected.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-privileged-mode",
|
||||
"upstream_behavior": "Compose selects whether the container runs in privileged mode.",
|
||||
"native_lxc_behavior": "ProxMenux keeps the LXC unprivileged by default and exposes the broad Compose privilege request only as an explicit compatibility option.",
|
||||
"reason": "A Compose privilege request is source metadata, not proof that the image technically requires a privileged LXC.",
|
||||
"behavioral_impact": "A privileged LXC has weaker isolation from the Proxmox host.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-process-runtime",
|
||||
"upstream_behavior": "Compose can replace Entrypoint, User and WorkingDir and request an init process or interactive terminal.",
|
||||
"native_lxc_behavior": "ProxMenux applies the process overrides through native LXC init directives; lxc-init provides PID 1 supervision and the CT console provides terminal access.",
|
||||
"reason": "The OCI process must start with the same identity, command and working directory without Docker.",
|
||||
"behavioral_impact": "Compose stdin_open and tty become access through the Proxmox LXC console.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-healthcheck",
|
||||
"upstream_behavior": "Docker periodically executes the declared container healthcheck.",
|
||||
"native_lxc_behavior": "For a single-service LXC, ProxMenux translates HTTP localhost checks into a mandatory first-start service check.",
|
||||
"reason": "Proxmox has no persistent Docker health state, while the installer still must detect a failed first boot.",
|
||||
"behavioral_impact": "The check runs during installation rather than continuously after installation.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-cpu-priority",
|
||||
"upstream_behavior": "Docker cpu_shares sets a relative scheduling weight with 1024 as its neutral value.",
|
||||
"native_lxc_behavior": "ProxMenux converts the relative weight to Proxmox cpuunits with 100 as its neutral value and lets the user review it.",
|
||||
"reason": "Both settings express relative CPU priority on different scales.",
|
||||
"behavioral_impact": "Rounding and Proxmox minimum limits can slightly change very low weights.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-resource-limits",
|
||||
"upstream_behavior": "mem_limit sets the memory ceiling; ulimits sets process soft/hard resource limits.",
|
||||
"native_lxc_behavior": "mem_limit supplies the editable Proxmox memory default, rounded up to MiB; ulimits maps to lxc.prlimit with -1 represented as unlimited.",
|
||||
"reason": "Use native Proxmox memory and LXC prlimits, without a wrapper or changing the host kernel configuration.",
|
||||
"behavioral_impact": "User-selected memory overrides Compose. Swap is a separate choice. Kernel restrictions still apply; nproc counts processes by real UID, not by container.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-network-identity",
|
||||
"upstream_behavior": "Compose can set hostname, MAC address, extra hosts and attach a service to Docker networks.",
|
||||
"native_lxc_behavior": "ProxMenux applies hostname and MAC to net0, writes additional host aliases into the LXC and uses its dedicated bridge connection for single-service networks.",
|
||||
"reason": "A dedicated LXC has its own network namespace and does not need a Docker bridge per service.",
|
||||
"behavioral_impact": "host-gateway resolves to the IPv4 address of the selected Proxmox bridge.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-network-mode",
|
||||
"upstream_behavior": "Docker host mode removes Docker network isolation; bridge and default use a Docker-managed network.",
|
||||
"native_lxc_behavior": "The OCI process uses the dedicated LXC network namespace directly, so host, bridge and default all listen on the LXC address without Docker NAT.",
|
||||
"reason": "The LXC is the application host and already has its own address and port namespace.",
|
||||
"behavioral_impact": "host means the LXC host, never the Proxmox host; this preserves Proxmox network isolation.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-capabilities-and-sysctls",
|
||||
"upstream_behavior": "Compose can add Linux capabilities and set kernel parameters in the container network namespace.",
|
||||
"native_lxc_behavior": "ProxMenux validates requested capabilities against the native LXC capability set and writes namespaced network settings as lxc.sysctl directives.",
|
||||
"reason": "A native OCI-LXC already starts with the namespaced capability set; lxc.cap.keep would incorrectly discard unrelated required capabilities.",
|
||||
"behavioral_impact": "Host-global capabilities such as SYS_MODULE remain blocked until their host prerequisite is explicitly adapted.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "docker-engine-metadata",
|
||||
"upstream_behavior": "Compose labels annotate Docker objects and the json-file logging driver rotates Docker-managed logs.",
|
||||
"native_lxc_behavior": "Labels remain source metadata; Docker json-file settings are not applied because the OCI process runs directly under LXC.",
|
||||
"reason": "There is no Docker object or Docker json-file log behind a native OCI-LXC application.",
|
||||
"behavioral_impact": "Docker-only label consumers and Docker log-driver rotation do not exist in the native deployment.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-device-passthrough",
|
||||
"upstream_behavior": "Compose passes host character devices or requests an NVIDIA runtime GPU.",
|
||||
"native_lxc_behavior": "ProxMenux converts recognized device declarations to native Proxmox dev resources; NVIDIA profiles also inject compatible host driver libraries read-only.",
|
||||
"reason": "Native OCI-LXC does not execute Docker device or NVIDIA runtime hooks.",
|
||||
"behavioral_impact": "Hardware is exposed only after explicit user confirmation and host-path validation.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-host-ipc",
|
||||
"upstream_behavior": "ipc: host shares the Docker host IPC namespace, commonly to avoid Docker's small default shared-memory allocation.",
|
||||
"native_lxc_behavior": "The application keeps the LXC IPC namespace and receives a configurable 1 GiB /dev/shm instead of sharing Proxmox host IPC.",
|
||||
"reason": "Processes in a single native LXC already share one IPC namespace; retaining isolation is safer than exposing host IPC.",
|
||||
"behavioral_impact": "The application cannot exchange IPC objects with processes on the Proxmox host.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-watchtower",
|
||||
"upstream_behavior": "The official Compose file offers a Watchtower sidecar to trigger Docker Engine image updates.",
|
||||
"native_lxc_behavior": "The sidecar and Docker socket mount are omitted; ProxMenux performs native OCI image updates from Manage.",
|
||||
"reason": "The native OCI deployment has no Docker daemon or Docker socket.",
|
||||
"behavioral_impact": "Use Manage installed OCI applications to check and apply image updates.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-dns",
|
||||
"upstream_behavior": "The official Compose file can use public DNS resolvers for the application container.",
|
||||
"native_lxc_behavior": "The OCI service uses the resolver configured in its dedicated LXC.",
|
||||
"reason": "The native OCI process runs in the LXC network namespace.",
|
||||
"behavioral_impact": "DNS follows the selected LXC network configuration.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "scrypted-optional-hardware-and-nvr",
|
||||
"upstream_behavior": "The official Compose file documents optional camera storage, mDNS/Avahi, GPU and USB/serial device configuration.",
|
||||
"native_lxc_behavior": "This single-image profile leaves optional storage and device access disabled; ProxMenux OCI Modify can add supported devices and mounts.",
|
||||
"reason": "The minimal profile is intended to verify the core service without assuming the user has a camera, NVR volume or specific accelerator.",
|
||||
"behavioral_impact": "Camera discovery, plugins, NVR recording, mDNS/Avahi and hardware acceleration require separate setup and are not checked by the initial health test.",
|
||||
"validation": "not-configured-by-profile"
|
||||
}
|
||||
]
|
||||
},
|
||||
"compatibility": {
|
||||
"automatic_install_candidate": true,
|
||||
"validated": false,
|
||||
"supported_compose_keys": [
|
||||
"cap_add",
|
||||
"command",
|
||||
"container_name",
|
||||
"cpu_shares",
|
||||
"deploy",
|
||||
"devices",
|
||||
"entrypoint",
|
||||
"environment",
|
||||
"extra_hosts",
|
||||
"group_add",
|
||||
"healthcheck",
|
||||
"hostname",
|
||||
"image",
|
||||
"init",
|
||||
"ipc",
|
||||
"labels",
|
||||
"logging",
|
||||
"mac_address",
|
||||
"mem_limit",
|
||||
"network_mode",
|
||||
"networks",
|
||||
"ports",
|
||||
"privileged",
|
||||
"restart",
|
||||
"runtime",
|
||||
"security_opt",
|
||||
"shm_size",
|
||||
"stdin_open",
|
||||
"stop_grace_period",
|
||||
"sysctls",
|
||||
"tty",
|
||||
"ulimits",
|
||||
"user",
|
||||
"volumes",
|
||||
"working_dir"
|
||||
],
|
||||
"untranslated_blockers": [],
|
||||
"policy": "Single-image definitions are installable when every declared Compose option has a native Proxmox translation. Multi-image and unsupported runtime features remain blocked until their orchestrator or mapping is available."
|
||||
},
|
||||
"validation": {
|
||||
"schema": "passed-at-generation",
|
||||
"clean_install": "pending",
|
||||
"service_health": "pending",
|
||||
"restart_persistence": "pending",
|
||||
"backup_restore": "pending",
|
||||
"update_preserves_data": "pending"
|
||||
},
|
||||
"lifecycle": {
|
||||
"update_strategy": "resolve-latest-image-then-apply-reviewed-native-lxc-update",
|
||||
"registry_state": {
|
||||
"resolved_architecture": null,
|
||||
"resolved_digest": null,
|
||||
"image_version_label": null,
|
||||
"image_created": null
|
||||
},
|
||||
"change_detection": "compare-compose-sha256-and-resolved-latest-image-digest",
|
||||
"automatic_unattended_updates": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"schema_version": "0.5.0",
|
||||
"kind": "proxmenux.oci-template",
|
||||
"id": "image-scrypted",
|
||||
"status": "generated-unvalidated",
|
||||
"catalog_ui": {
|
||||
"title": {
|
||||
"en_US": "Scrypted"
|
||||
},
|
||||
"tagline": {
|
||||
"en_US": "Self-hosted smart home video platform."
|
||||
},
|
||||
"description": {
|
||||
"en_US": "Manage cameras and integrate video devices with Apple HomeKit, Google Home, Alexa and Home Assistant from one self-hosted platform."
|
||||
},
|
||||
"category": "smarthome",
|
||||
"category_label": "IoT & Smart Home",
|
||||
"author": "Scrypted",
|
||||
"developer": "Scrypted",
|
||||
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/scrypted.webp",
|
||||
"thumbnail": null,
|
||||
"screenshots": [],
|
||||
"architectures": [
|
||||
"amd64",
|
||||
"arm64"
|
||||
],
|
||||
"launch": {
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/"
|
||||
},
|
||||
"website": "https://scrypted.app/",
|
||||
"documentation": "https://docs.scrypted.app/install/linux-docker.html",
|
||||
"repository": "https://github.com/koush/scrypted",
|
||||
"tips": [
|
||||
"This profile uses the official single-service image and persists Scrypted state in /server/volume.",
|
||||
"The official Compose file includes an optional Watchtower service for Docker Engine updates. It is omitted because ProxMenux manages OCI image updates.",
|
||||
"Camera, NVR, mDNS/Avahi, GPU and USB integrations are not configured by this minimal profile; add required devices and storage separately."
|
||||
],
|
||||
"mini_changelog": [],
|
||||
"display_version": null,
|
||||
"updated_at": null
|
||||
},
|
||||
"source": {
|
||||
"provider": "official",
|
||||
"repository": "https://github.com/koush/scrypted",
|
||||
"revision": "78320e94ad977a77fa2bb201346b98630b8b1d47",
|
||||
"image_repository_url": "https://github.com/koush/scrypted/pkgs/container/scrypted",
|
||||
"readme_pushed_at": "2026-10-18T02:15:15Z",
|
||||
"compose_sha256": "a34bc5941c67a43e0e328f216c82f3dcf31c213c046b6920e08500af17d91727",
|
||||
"generated_at": "2026-10-27T20:07:09+00:00"
|
||||
},
|
||||
"container_contract": {
|
||||
"service_name": "scrypted",
|
||||
"container_name": "scrypted",
|
||||
"image": {
|
||||
"reference": "ghcr.io/koush/scrypted:latest",
|
||||
"registry": "ghcr.io",
|
||||
"repository": "ghcr.io/koush/scrypted",
|
||||
"tag": "latest",
|
||||
"digest": null,
|
||||
"pull_policy": "resolve-selected-tag-to-architecture-digest-at-install"
|
||||
},
|
||||
"environment": [],
|
||||
"volumes": [
|
||||
{
|
||||
"id": "volume-0",
|
||||
"container_path": "/server/volume",
|
||||
"compose_source_example": "./volume",
|
||||
"read_only": false,
|
||||
"required": true,
|
||||
"installation_choice": [
|
||||
"managed-volume",
|
||||
"host-bind"
|
||||
],
|
||||
"default": "managed-volume",
|
||||
"managed_volume": {
|
||||
"backup": true,
|
||||
"default_size_gb": 8
|
||||
}
|
||||
}
|
||||
],
|
||||
"ports": [
|
||||
{
|
||||
"container_port": 10443,
|
||||
"published_example": 10443,
|
||||
"protocol": "tcp",
|
||||
"required": true,
|
||||
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
|
||||
}
|
||||
],
|
||||
"related_services": [],
|
||||
"restart": "unless-stopped",
|
||||
"stop_grace_period": null,
|
||||
"original_compose": "name: scrypted\nservices:\n scrypted:\n image: ghcr.io/koush/scrypted:latest\n restart: unless-stopped\n network_mode: host\n volumes:\n - ./volume:/server/volume\n"
|
||||
},
|
||||
"compose_stack": {
|
||||
"project_name": "scrypted",
|
||||
"deployment_model": "one-native-oci-lxc-per-compose-service",
|
||||
"user_experience": "single-application-install",
|
||||
"main_service": "scrypted",
|
||||
"service_count": 1,
|
||||
"services": [
|
||||
{
|
||||
"name": "scrypted",
|
||||
"image": "ghcr.io/koush/scrypted:latest",
|
||||
"is_main": true,
|
||||
"role": "frontend",
|
||||
"vmid_offset": 0,
|
||||
"depends_on": [],
|
||||
"frontend_network": true,
|
||||
"private_network": false,
|
||||
"compose": {
|
||||
"image": "ghcr.io/koush/scrypted:latest",
|
||||
"restart": "unless-stopped",
|
||||
"network_mode": "host",
|
||||
"volumes": [
|
||||
"./volume:/server/volume"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"top_level": {
|
||||
"name": "scrypted"
|
||||
},
|
||||
"networking": {
|
||||
"frontend": "selected-proxmox-bridge",
|
||||
"private_required": false,
|
||||
"private_creation": "automatic-create-if-missing",
|
||||
"private_address_allocation": "automatic-static-address-per-service",
|
||||
"service_discovery": "private-addresses-with-compose-service-host-aliases",
|
||||
"dependency_external_access": "disabled-unless-service-publishes-ports",
|
||||
"prompt_user_for_private_network": false
|
||||
},
|
||||
"storage": [
|
||||
{
|
||||
"id": "scrypted-volume-0",
|
||||
"service": "scrypted",
|
||||
"container_path": "/server/volume",
|
||||
"mode": "managed-volume",
|
||||
"user_selectable": false,
|
||||
"backup": true,
|
||||
"shared_with_other_lxc": false,
|
||||
"source_path": null,
|
||||
"source_path_prompt": null
|
||||
}
|
||||
],
|
||||
"orchestration": {
|
||||
"reserve_vmids_atomically": 1,
|
||||
"start_order": [
|
||||
"scrypted"
|
||||
],
|
||||
"stop_order": [
|
||||
"scrypted"
|
||||
],
|
||||
"dependency_readiness": "compose-healthcheck-then-port-or-process-fallback",
|
||||
"rollback_on_failure": "remove-new-rootfs-preserve-created-persistent-volumes"
|
||||
},
|
||||
"installer_inputs": {
|
||||
"prompted": [
|
||||
"stack_name",
|
||||
"base_vmid",
|
||||
"rootfs_storage",
|
||||
"persistent_data_destinations",
|
||||
"frontend_bridge",
|
||||
"frontend_ipv4_mode"
|
||||
],
|
||||
"automatic": [
|
||||
"dependent_vmids",
|
||||
"private_bridge",
|
||||
"private_subnet",
|
||||
"private_service_addresses",
|
||||
"compose_service_aliases",
|
||||
"generated_secrets",
|
||||
"dependency_start_and_stop_order"
|
||||
],
|
||||
"generated_secrets": []
|
||||
}
|
||||
},
|
||||
"first_run": {
|
||||
"endpoints": [
|
||||
{
|
||||
"label": "Scrypted Web UI",
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/",
|
||||
"source": "official Scrypted documentation"
|
||||
}
|
||||
],
|
||||
"credentials": []
|
||||
},
|
||||
"proxmox": {
|
||||
"runtime": "native-oci-lxc",
|
||||
"technology_status": "proxmox-technology-preview",
|
||||
"defaults": {
|
||||
"unprivileged": true,
|
||||
"ostype": "auto-from-image",
|
||||
"cores": 2,
|
||||
"memory_mb": 2048,
|
||||
"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"
|
||||
},
|
||||
"installer_profile": {
|
||||
"startup_healthcheck": {
|
||||
"type": "http",
|
||||
"scheme": "https",
|
||||
"port": 10443,
|
||||
"path": "/",
|
||||
"timeout_seconds": 300,
|
||||
"request_timeout_seconds": 10,
|
||||
"stability_seconds": 4,
|
||||
"verify_tls": false,
|
||||
"required": true,
|
||||
"source": "official Scrypted web interface"
|
||||
}
|
||||
},
|
||||
"adaptations": [
|
||||
{
|
||||
"id": "imported-compose-source",
|
||||
"upstream_behavior": "The source definition deploys the complete Docker Compose application model.",
|
||||
"native_lxc_behavior": "The source model is preserved and remains blocked until every service option has a reviewed native Proxmox mapping.",
|
||||
"reason": "Catalog import must not imply runtime compatibility.",
|
||||
"behavioral_impact": "No automatic installation before review.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "rolling-latest-image",
|
||||
"upstream_behavior": "A discovered Compose may pin a release tag or digest.",
|
||||
"native_lxc_behavior": "ProxMenux selects the same image repository with the latest tag for catalog installations.",
|
||||
"reason": "The automatic catalog intentionally offers rolling latest images; pinned versions belong to the future manual installer.",
|
||||
"behavioral_impact": "The installed release can be newer than the discovered Compose revision.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "dedicated-lxc-network",
|
||||
"upstream_behavior": "Docker publishes selected container ports on the Docker host.",
|
||||
"native_lxc_behavior": "A reviewed native application will listen on its original container ports at a dedicated LXC address.",
|
||||
"reason": "A native LXC has its own address and does not require Docker port NAT.",
|
||||
"behavioral_impact": "Published ports are metadata; ProxMenux URLs use the matching container target port.",
|
||||
"validation": "pending-per-application"
|
||||
},
|
||||
{
|
||||
"id": "compose-shm-size",
|
||||
"upstream_behavior": "Compose sets the size of the container /dev/shm tmpfs.",
|
||||
"native_lxc_behavior": "ProxMenux mounts a native LXC tmpfs at /dev/shm with the same requested capacity.",
|
||||
"reason": "The OCI image runs directly as an LXC and therefore needs the equivalent Proxmox mount entry.",
|
||||
"behavioral_impact": "None expected.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-command",
|
||||
"upstream_behavior": "Compose replaces the image Cmd while retaining its Entrypoint.",
|
||||
"native_lxc_behavior": "ProxMenux reads the official OCI Entrypoint and combines it with the Compose command as the native LXC init command.",
|
||||
"reason": "Proxmox stores the effective OCI process as one entrypoint string.",
|
||||
"behavioral_impact": "None expected.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-privileged-mode",
|
||||
"upstream_behavior": "Compose selects whether the container runs in privileged mode.",
|
||||
"native_lxc_behavior": "ProxMenux keeps the LXC unprivileged by default and exposes the broad Compose privilege request only as an explicit compatibility option.",
|
||||
"reason": "A Compose privilege request is source metadata, not proof that the image technically requires a privileged LXC.",
|
||||
"behavioral_impact": "A privileged LXC has weaker isolation from the Proxmox host.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-process-runtime",
|
||||
"upstream_behavior": "Compose can replace Entrypoint, User and WorkingDir and request an init process or interactive terminal.",
|
||||
"native_lxc_behavior": "ProxMenux applies the process overrides through native LXC init directives; lxc-init provides PID 1 supervision and the CT console provides terminal access.",
|
||||
"reason": "The OCI process must start with the same identity, command and working directory without Docker.",
|
||||
"behavioral_impact": "Compose stdin_open and tty become access through the Proxmox LXC console.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-healthcheck",
|
||||
"upstream_behavior": "Docker periodically executes the declared container healthcheck.",
|
||||
"native_lxc_behavior": "For a single-service LXC, ProxMenux translates HTTP localhost checks into a mandatory first-start service check.",
|
||||
"reason": "Proxmox has no persistent Docker health state, while the installer still must detect a failed first boot.",
|
||||
"behavioral_impact": "The check runs during installation rather than continuously after installation.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-cpu-priority",
|
||||
"upstream_behavior": "Docker cpu_shares sets a relative scheduling weight with 1024 as its neutral value.",
|
||||
"native_lxc_behavior": "ProxMenux converts the relative weight to Proxmox cpuunits with 100 as its neutral value and lets the user review it.",
|
||||
"reason": "Both settings express relative CPU priority on different scales.",
|
||||
"behavioral_impact": "Rounding and Proxmox minimum limits can slightly change very low weights.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-resource-limits",
|
||||
"upstream_behavior": "mem_limit sets the memory ceiling; ulimits sets process soft/hard resource limits.",
|
||||
"native_lxc_behavior": "mem_limit supplies the editable Proxmox memory default, rounded up to MiB; ulimits maps to lxc.prlimit with -1 represented as unlimited.",
|
||||
"reason": "Use native Proxmox memory and LXC prlimits, without a wrapper or changing the host kernel configuration.",
|
||||
"behavioral_impact": "User-selected memory overrides Compose. Swap is a separate choice. Kernel restrictions still apply; nproc counts processes by real UID, not by container.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-network-identity",
|
||||
"upstream_behavior": "Compose can set hostname, MAC address, extra hosts and attach a service to Docker networks.",
|
||||
"native_lxc_behavior": "ProxMenux applies hostname and MAC to net0, writes additional host aliases into the LXC and uses its dedicated bridge connection for single-service networks.",
|
||||
"reason": "A dedicated LXC has its own network namespace and does not need a Docker bridge per service.",
|
||||
"behavioral_impact": "host-gateway resolves to the IPv4 address of the selected Proxmox bridge.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-network-mode",
|
||||
"upstream_behavior": "Docker host mode removes Docker network isolation; bridge and default use a Docker-managed network.",
|
||||
"native_lxc_behavior": "The OCI process uses the dedicated LXC network namespace directly, so host, bridge and default all listen on the LXC address without Docker NAT.",
|
||||
"reason": "The LXC is the application host and already has its own address and port namespace.",
|
||||
"behavioral_impact": "host means the LXC host, never the Proxmox host; this preserves Proxmox network isolation.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-capabilities-and-sysctls",
|
||||
"upstream_behavior": "Compose can add Linux capabilities and set kernel parameters in the container network namespace.",
|
||||
"native_lxc_behavior": "ProxMenux validates requested capabilities against the native LXC capability set and writes namespaced network settings as lxc.sysctl directives.",
|
||||
"reason": "A native OCI-LXC already starts with the namespaced capability set; lxc.cap.keep would incorrectly discard unrelated required capabilities.",
|
||||
"behavioral_impact": "Host-global capabilities such as SYS_MODULE remain blocked until their host prerequisite is explicitly adapted.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "docker-engine-metadata",
|
||||
"upstream_behavior": "Compose labels annotate Docker objects and the json-file logging driver rotates Docker-managed logs.",
|
||||
"native_lxc_behavior": "Labels remain source metadata; Docker json-file settings are not applied because the OCI process runs directly under LXC.",
|
||||
"reason": "There is no Docker object or Docker json-file log behind a native OCI-LXC application.",
|
||||
"behavioral_impact": "Docker-only label consumers and Docker log-driver rotation do not exist in the native deployment.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-device-passthrough",
|
||||
"upstream_behavior": "Compose passes host character devices or requests an NVIDIA runtime GPU.",
|
||||
"native_lxc_behavior": "ProxMenux converts recognized device declarations to native Proxmox dev resources; NVIDIA profiles also inject compatible host driver libraries read-only.",
|
||||
"reason": "Native OCI-LXC does not execute Docker device or NVIDIA runtime hooks.",
|
||||
"behavioral_impact": "Hardware is exposed only after explicit user confirmation and host-path validation.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-host-ipc",
|
||||
"upstream_behavior": "ipc: host shares the Docker host IPC namespace, commonly to avoid Docker's small default shared-memory allocation.",
|
||||
"native_lxc_behavior": "The application keeps the LXC IPC namespace and receives a configurable 1 GiB /dev/shm instead of sharing Proxmox host IPC.",
|
||||
"reason": "Processes in a single native LXC already share one IPC namespace; retaining isolation is safer than exposing host IPC.",
|
||||
"behavioral_impact": "The application cannot exchange IPC objects with processes on the Proxmox host.",
|
||||
"validation": "not-requested-by-compose"
|
||||
},
|
||||
{
|
||||
"id": "compose-watchtower",
|
||||
"upstream_behavior": "The official Compose file offers a Watchtower sidecar to trigger Docker Engine image updates.",
|
||||
"native_lxc_behavior": "The sidecar and Docker socket mount are omitted; ProxMenux performs native OCI image updates from Manage.",
|
||||
"reason": "The native OCI deployment has no Docker daemon or Docker socket.",
|
||||
"behavioral_impact": "Use Manage installed OCI applications to check and apply image updates.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "compose-dns",
|
||||
"upstream_behavior": "The official Compose file can use public DNS resolvers for the application container.",
|
||||
"native_lxc_behavior": "The OCI service uses the resolver configured in its dedicated LXC.",
|
||||
"reason": "The native OCI process runs in the LXC network namespace.",
|
||||
"behavioral_impact": "DNS follows the selected LXC network configuration.",
|
||||
"validation": "native-equivalent"
|
||||
},
|
||||
{
|
||||
"id": "scrypted-optional-hardware-and-nvr",
|
||||
"upstream_behavior": "The official Compose file documents optional camera storage, mDNS/Avahi, GPU and USB/serial device configuration.",
|
||||
"native_lxc_behavior": "This single-image profile leaves optional storage and device access disabled; ProxMenux OCI Modify can add supported devices and mounts.",
|
||||
"reason": "The minimal profile is intended to verify the core service without assuming the user has a camera, NVR volume or specific accelerator.",
|
||||
"behavioral_impact": "Camera discovery, plugins, NVR recording, mDNS/Avahi and hardware acceleration require separate setup and are not checked by the initial health test.",
|
||||
"validation": "not-configured-by-profile"
|
||||
}
|
||||
]
|
||||
},
|
||||
"compatibility": {
|
||||
"automatic_install_candidate": true,
|
||||
"validated": false,
|
||||
"supported_compose_keys": [
|
||||
"cap_add",
|
||||
"command",
|
||||
"container_name",
|
||||
"cpu_shares",
|
||||
"deploy",
|
||||
"devices",
|
||||
"entrypoint",
|
||||
"environment",
|
||||
"extra_hosts",
|
||||
"group_add",
|
||||
"healthcheck",
|
||||
"hostname",
|
||||
"image",
|
||||
"init",
|
||||
"ipc",
|
||||
"labels",
|
||||
"logging",
|
||||
"mac_address",
|
||||
"mem_limit",
|
||||
"network_mode",
|
||||
"networks",
|
||||
"ports",
|
||||
"privileged",
|
||||
"restart",
|
||||
"runtime",
|
||||
"security_opt",
|
||||
"shm_size",
|
||||
"stdin_open",
|
||||
"stop_grace_period",
|
||||
"sysctls",
|
||||
"tty",
|
||||
"ulimits",
|
||||
"user",
|
||||
"volumes",
|
||||
"working_dir"
|
||||
],
|
||||
"untranslated_blockers": [],
|
||||
"policy": "Single-image definitions are installable when every declared Compose option has a native Proxmox translation. Multi-image and unsupported runtime features remain blocked until their orchestrator or mapping is available."
|
||||
},
|
||||
"validation": {
|
||||
"schema": "passed-at-generation",
|
||||
"clean_install": "pending",
|
||||
"service_health": "pending",
|
||||
"restart_persistence": "pending",
|
||||
"backup_restore": "pending",
|
||||
"update_preserves_data": "pending"
|
||||
},
|
||||
"lifecycle": {
|
||||
"update_strategy": "resolve-latest-image-then-apply-reviewed-native-lxc-update",
|
||||
"registry_state": {
|
||||
"resolved_architecture": null,
|
||||
"resolved_digest": null,
|
||||
"image_version_label": null,
|
||||
"image_created": null
|
||||
},
|
||||
"change_detection": "compare-compose-sha256-and-resolved-latest-image-digest",
|
||||
"automatic_unattended_updates": false
|
||||
}
|
||||
}
|
||||
@@ -14413,6 +14413,38 @@
|
||||
"hidden": false,
|
||||
"template_id": "image-scrutiny"
|
||||
},
|
||||
{
|
||||
"id": "scrypted",
|
||||
"provider": "official",
|
||||
"template_family": "curated-profile",
|
||||
"title": "Scrypted",
|
||||
"repository": "https://github.com/koush/scrypted",
|
||||
"description": "Manage cameras and integrate video devices with Apple HomeKit, Google Home, Alexa and Home Assistant from one self-hosted platform.",
|
||||
"website": "https://scrypted.app/",
|
||||
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/scrypted.webp",
|
||||
"architectures": [
|
||||
"amd64",
|
||||
"arm64"
|
||||
],
|
||||
"updated_at": null,
|
||||
"main_image": "ghcr.io/koush/scrypted:latest",
|
||||
"category": "smarthome",
|
||||
"category_label": "IoT & Smart Home",
|
||||
"replaces_discovered_ids": [],
|
||||
"curated_path": "catalog/curated/scrypted.json",
|
||||
"template": "apps/scrypted.json",
|
||||
"template_status": "generated-unvalidated",
|
||||
"automatic_install_candidate": true,
|
||||
"untranslated_blockers": [],
|
||||
"requires_privileged_lxc": false,
|
||||
"optional_privileged_lxc": false,
|
||||
"requires_host_pid_namespace": false,
|
||||
"requires_relaxed_confinement": false,
|
||||
"optional_relaxed_confinement": false,
|
||||
"requires_security_confirmation": false,
|
||||
"hidden": false,
|
||||
"template_id": "image-scrypted"
|
||||
},
|
||||
{
|
||||
"id": "scummvm",
|
||||
"provider": "linuxserver.io",
|
||||
|
||||
Reference in New Issue
Block a user