{
    "schema": "eupdate-package-specification-v1",
    "author": "PB <pavel.bartos.pb@gmail.com>",
    "project_id": "18b00bc838c7679f",
    "software_id": "eair-server",
    "software": "eAir",
    "module": null,
    "release_id": "bdf9e644c2a0c8a8a7ddccd7f12b43a2",
    "version": "0.2.12",
    "release_date": "2026-10-23",
    "published_at": "2026-10-23T09:43:44+00:00",
    "bytes": 761497,
    "sha256": "fe61b48ab9105fc087d3c2a7343e3be79016b1f4c438e65c0d93f621e169115a",
    "file_count": 188,
    "languages": {
        "Python": {
            "bytes": 528156,
            "files": 92
        },
        "JavaScript": {
            "bytes": 230075,
            "files": 19
        },
        "CSS": {
            "bytes": 123941,
            "files": 6
        },
        "HTML": {
            "bytes": 14945,
            "files": 5
        },
        "Shell": {
            "bytes": 13175,
            "files": 3
        }
    },
    "installation_url": "https://update.estudium.eu/package.php?software_id=eair-server&version=0.2.12",
    "update_url": "https://update.estudium.eu/package.php?software_id=eair-server",
    "install_json": {
        "schema": "eair-install-manifest-v1",
        "schema_version": 1,
        "software": "eAir",
        "software_id": "eair-server",
        "version": "0.2.12",
        "package_revision": 1,
        "package_type": "zip",
        "package_target": "software",
        "description": {
            "cs": "Studiová ON AIR časomíra pro Raspberry Pi 5: GPIO, HDMI kiosk, počasí, RSS, eCast a webová správa.",
            "en": "Studio ON AIR clock for Raspberry Pi 5 with GPIO, HDMI kiosk, weather, RSS, eCast and web administration."
        },
        "compatibility": {
            "os_types": [
                "linux"
            ],
            "distribution_ids": [
                "ubuntu"
            ],
            "os_versions": [
                "24.04",
                "26.04"
            ],
            "distributions": [
                {
                    "id": "ubuntu",
                    "name": "Ubuntu",
                    "versions": [
                        "24.04",
                        "26.04"
                    ]
                }
            ],
            "architectures": [
                "arm64",
                "amd64"
            ],
            "init_system": "systemd",
            "package_manager": "apt",
            "primary_target": "Ubuntu Server 26.04 ARM64 / Raspberry Pi 5",
            "compatibility_basis": "Installer targets; physical Pi hardware acceptance test is still required.",
            "native_windows_supported": false,
            "native_macos_supported": false,
            "any_linux_distribution": false
        },
        "installation": {
            "working_directory": ".",
            "package_directory": "eair-server-0.2.12",
            "entrypoint": "./eair-server-0.2.12/install.sh",
            "shell": "bash",
            "requires_root": true,
            "requires_internet": true,
            "interactive": true,
            "languages": [
                "cs"
            ],
            "commands": {
                "linux": {
                    "supported": true,
                    "command": "sudo bash ./eair-server-0.2.12/install.sh",
                    "command_as_root": "bash ./eair-server-0.2.12/install.sh",
                    "command_from_package_directory": "sudo bash ./install.sh",
                    "mode": "automatic"
                },
                "windows": {
                    "supported": false,
                    "command": null,
                    "mode": "unsupported",
                    "reason": {
                        "cs": "Instalace na Ubuntu Server; Windows může otevřít webové rozhraní."
                    }
                },
                "macos": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                },
                "other": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                },
                "source": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                }
            },
            "extraction_required": true,
            "extract_entire_archive": true,
            "recommended_resources": {
                "cpu_cores": 4,
                "ram_mib": 2048,
                "free_disk_gib": 8
            },
            "web_root": "."
        },
        "upgrade": {
            "supported": true,
            "command": "sudo bash ./eair-server-0.2.12/install.sh --update",
            "working_directory": ".",
            "documentation": "eair-server-0.2.12/docs/MANUAL-CS.md",
            "automatic": {
                "supported": true,
                "command": "sudo eair-admin update-install",
                "check_command": "sudo eair-admin update-check",
                "ui": "Údržba a eUpdate"
            }
        },
        "installed_paths": {
            "application": "/opt/eair",
            "version_file": "/opt/eair/VERSION",
            "configuration": "/var/lib/eair/config.json",
            "configuration_backups": "/var/lib/eair/backups",
            "ssh_public_keys": "/etc/ssh/eair-keys",
            "state": "/var/lib/eair",
            "backups": "/var/backups/eair",
            "logs": "/var/log/eair"
        },
        "documentation": {
            "readme": "eair-server-0.2.12/README.md",
            "manual_cs": "eair-server-0.2.12/docs/MANUAL-CS.md",
            "validation": "eair-server-0.2.12/docs/VALIDATION.md"
        },
        "integrity": {
            "algorithm": "sha256",
            "installer_sha256": "588c174992b2f33f3771c48953f0eaf6fbf243a90b60f30265ba8a65e14462a7",
            "payload_checksums_file": "eair-server-0.2.12/SHA256SUMS",
            "payload_checksums_base_directory": "eair-server-0.2.12",
            "payload_checksums_sha256": "dc2e6960a5825ac2e4a423be96a1c190438eac8f2d0cc6a8fc6ace948066aa5d",
            "note": "Hashes verify integrity, not publisher authenticity."
        },
        "release_date": "2026-10-23",
        "creation_date": "10/2026",
        "homepage": "https://estudium.eu",
        "license": "MIT",
        "author": {
            "name": "PB",
            "email": "pavel.bartos.pb@gmail.com",
            "website": "https://estudium.eu"
        },
        "project": {
            "name": "eAir",
            "website": "https://estudium.eu"
        },
        "archive_metadata": {
            "working_directory": ".",
            "publisher": "dcf6d41fbcdf0e16",
            "updated_at": "2026-10-23T09:43:44+00:00",
            "application_author": "PB <pavel.bartos.pb@gmail.com>"
        },
        "package": {
            "type": "release",
            "target": "software",
            "visibility": "public",
            "modules_included": false
        },
        "requirements": [],
        "license_custom": ""
    },
    "readme": "# eAir 0.2.12\n\nNově: přetahování symbolů a hodnot samostatně pro Dnes/Zítra, ukládání pozic a teploty ve formátu nyní / maximum s modrou noční teplotou. [Změny 0.2.12](docs/RELEASE-0.2.12.md).\n\nStudiové hodiny a ON AIR časomíra pro Raspberry Pi 5 / Ubuntu Server ARM64.\nAutor **PB**, pavel.bartos.pb@gmail.com, https://estudium.eu. Vytvořeno **10/2026**, licence **MIT**.\n\n## Instalace\n\nRozbalte celý ZIP a v adresáři `eair-server-0.2.12` spusťte:\n\n```bash\nsudo bash install.sh\n```\n\nTUI nabízí hostname, HTTP port a lokální HDMI kiosk. Výchozí port je **8080**.\nInstalátor používá ASCII rámečky; nepotřebuje funkční vykreslování UTF‑8 rámečků.\nPro jednoduchý textový režim přidejte `--plain`. Práva spustitelnosti v ZIPu jsou\nnastavená; spuštění přes `bash` funguje i při rozbalení nástrojem, který je nezachová.\n\nVerze **0.1.10** mění kameru na plánované **MP4 záznamy**. Nabízí zvuk z\nIcecastu/mikrofonu/ticho, AI, natočení a náklon kamery, periodický obrázek ve\nStavu systému a odesílání dokončených videí na **NFS, SMB a YouTube**, i současně.\nPo potvrzeném odeslání do všech vybraných cílů se místní video smaže; neodeslané záznamy se uchovávají\njen poslední tři. YouTube vyžaduje OAuth; přiložen je autorizační nástroj.\nMigrace starého RTMP nastavení nahrávání sama nezapíná.\nNastavení je v **Nastavení → Kamera a záznamy**, CZ/EN.\nKalendář významných dnů je přiložen lokálně, včetně zdrojů a licence dat; viz [původ databáze](data/README.md).\nPodrobnosti: [kamera a úložiště](docs/CAMERA.md), [rozbor logů](docs/DIAGNOSTICS-0.1.10.md).\n\nOprava progressbaru z 0.1.9 zůstává: 87 % vyplní 87 % pruhu. Velikosti prvků\ndispleje nadále podporují 500 %. Na kamerové služby se doplnila podrobná diagnostika.\n\nVerze **0.1.8** opravuje černou HDMI obrazovku způsobenou zámkem profilu Chromium\npo změně hostname. Každý start prohlížeče má nový dočasný profil. Výchozí výstup\nje **Všechny připojené monitory** se stejným obrazem. Rozlišení jsou rozbalovací\nseznam načtený ze systému; pro všechny monitory se nabízejí společné režimy.\nPři prvním spuštění 0.1.8 se jednorázově nastaví všechny monitory a automatické\nrozlišení; další vlastní volby se zachovávají. Ostatní nastavení se nemění.\nOpravená je také příprava boot loga na Ubuntu 26.04 s A/B bootem Raspberry Pi.\nPodrobnosti a příčina z logu: [oprava HDMI 0.1.8](docs/DIAGNOSTICS-0.1.8.md).\n\nVerze **0.1.7** přidala start Ubuntu „eAir booting ...“ s logem rádia,\nživou diagnostiku ve vzhledu dodaného EDU Rádia 5.11.3, podmenu Nastavení\n a Wi-Fi survey, connect a reconnect v CZ/EN. Po aktualizaci počítač restartujte,\naby se načetlo nové startovací téma a grafická relace. První část Raspberry Pi\nfirmwaru probíhá před Plymouth; tato část není měněna.\n\nPodrobnosti: [start a Wi-Fi](docs/STARTUP-WIFI.md). Logo nahrané přes administraci\nse automaticky připravuje i pro příští start. Příprava initramfs může trvat minuty.\nVzhled displeje a dosavadní data zůstávají zachována. Wi-Fi hesla jsou systémové\nprofily NetworkManageru a nejsou součástí JSON zálohy konfigurace eAir.\n\nVerze **0.1.6** přidává sedmisegmentové hodiny, samostatné barvy časovačů,\nvelikosti až 500 %, vlastní pozici ON AIR, nastavení monitoru a rozlišení v CZ/EN,\ndoménový hostname a SSH klíče pro root. Check-in obsahuje studio a celkový čas\nvstupů. V údržbě jsou dva samostatné přepínače automatických aktualizací:\nsystémové balíčky a nové vydání eAir z eUpdate. Výchozí stav je vypnuto.\n\nAktualizace: `sudo bash install.sh --update`. Instalátor zachová ostatní nastavení,\nheslo, logo a historii. **Po dokončení mimo vysílání spusťte `sudo reboot`**, aby\nse načetlo nové spouštění HDMI relace a správce výstupů. Opravy HTTP přihlášení,\nGPIO, denního check-inu a nativního API eCast 1.0.7 zůstávají zachovány.\nBackend používá **nginx + HTTP**, výchozí port je 8080.\n\n- Administrace: `http://IP_SERVERU:8080/`\n- Displej: `http://IP_SERVERU:8080/display`\n- První přihlášení: **admin / admin**. Heslo změníte v Údržba a eUpdate.\n- Raspberry Pi napájejte USB‑C zdrojem 5 V / 5 A; připojte monitor přes micro-HDMI.\n- Výchozí vstup: **GPIO17 / pin 11**, přes **1 kΩ** a beznapěťový kontakt na **GND / pin 9**.\n  Sepnutí = ON AIR, rozepnutí = logo. Nepřipojujte cizí napětí.\n\n## Funkce\n\n- Skutečný Flask/Waitress backend a SQLite, služba systemd, HTTP nginx.\n- Přihlášení a levé menu převzaté z eWeb 0.8.43 včetně původního loga eStudium\n  a animace trojúhelníků. Vlastní logo stanice se nahrává samostatně.\n- GPIO přes `lgpio`, detekce RP1, softwarový debounce a ruční AUTO / ON / OFF.\n- Hodiny podle času OS/NTP, digitální, kompaktní, analogový a sedmisegmentový vzhled.\n- Stopky z monotónních hodin, poslední vstup, součet dne, historie a CSV.\n- Počasí dnes/zítra: volba Open-Meteo / MET Norway; souřadnice a popis místa.\n- RSS/Atom pouze z aktuálního dne v nastavené časové zóně, popup v přehledu a ticker i při ON AIR.\n- Volitelný JSON výstup na až 8 eCast přijímačů; nativní přijímač eCast 1.0.7.\n- Přehled posledních 30 záloh konfigurace a loga, obnova, stažení a mazání.\n- Upload loga a zálohy přes výběr souboru nebo drag & drop s progress barem.\n- CZ/EN administrace a displej; 27 nastavitelných polí, enable/disable a velikost 50–500 %.\n- Správa veřejných SSH klíčů běžných systémových účtů a roota; přidání, otisk a odebrání.\n- V prvním kroku instalace: mc, pv, links, git, net-tools a openssh-server.\n- Kiosk Chromium/Openbox/LightDM s automatickým přihlášením vyhrazeného účtu.\n- eUpdate: kontrola a instalace nového vydání z backendu, průběh na pozadí.\n- Diagnostický ZIP: logy aplikace, instalace, aktualizátoru, GPIO, HDMI a systému.\n\nPočasí a RSS se zapínají v administraci. Výchozí lokalita je Praha, souřadnice\nzměňte podle skutečného studia. Při první instalaci bez GPIO je stav zobrazen jako\nneznámý; k vyzkoušení použijte ruční režim.\n\n## Aktualizace\n\nZ adresáře nového rozbaleného vydání:\n\n```bash\nsudo bash install.sh --update\n```\n\nInstalátor zachovává heslo, nastavení, logo a databázi ve `/var/lib/eair`.\nPřed aktualizací vytvoří zálohu; aktivní kód mění atomickým odkazem. Při zachycené\nchybě po přepnutí vrátí předchozí kód. Balíčky operačního systému se nevracejí.\nNeaktualizujte při živém vstupu: zastavení služby vstup ukončí jako přerušený.\n\n## eUpdate\n\n**Nahrajte tento ZIP beze změny**, nikoli pouze složku programu. V kořeni ZIPu je\n`install.json` a `eupdate-upload.json` s údaji projektu `eAir`, `software_id=eair-server`,\nverzí, autorem a licencí. Struktura instalačních metadat vychází z balíčku eWeb 0.8.43.\nV administraci otevřete **Údržba a eUpdate → Zkontrolovat aktualizace → Instalovat\nnovou verzi**. Výchozí zdroj je `https://update.estudium.eu`. Projekt musí být veřejný\ns identitou `eair-server` a cílem **software** (obecný software, nikoli hostovaná PHP\naplikace). Klient ověřuje HTTPS původ, SHA-256, identitu a obsah ZIPu. Instalace běží\nsamostatnou službou, takže přežije restart backendu. Spouští se ručně tlačítkem\nnebo po výslovném zapnutí automatických aktualizací v nočním okně 03:00–05:00.\nAutomatický start se odloží při ON AIR i neznámém vstupu. Skutečný upload do vašeho eUpdate nebyl proveden.\n\nV téže sekci je **Stáhnout logy a diagnostiku (ZIP)**. Pro další vývoj přiložte tento\nZIP; obsahuje konce logů, stav služeb a konfiguraci s odstraněnými API klíči.\n\nPodrobný návod: [docs/MANUAL-CS.md](docs/MANUAL-CS.md).\nRozsah ověření: [docs/VALIDATION.md](docs/VALIDATION.md).\nNapojení eCast: [integrations/README.md](integrations/README.md).\n\n## Lokální vývoj\n\n```bash\npython3 -m venv .venv\n.venv/bin/pip install -r requirements.txt pytest\n.venv/bin/python -m eair --state .dev-state --port 8780\n```\n\nVývojové HTTP: `http://127.0.0.1:8780`. `lgpio` je potřeba jen pro fyzický GPIO vstup;\nchybějící hardware neblokuje web ani ruční časomíru. Aplikace musí běžet jako jediný\nproces (jediný vlastník GPIO/časomíry). Testy: `.venv/bin/pytest -q tests`.",
    "download_url": "https://update.estudium.eu/download.php?project=18b00bc838c7679f&release=bdf9e644c2a0c8a8a7ddccd7f12b43a2",
    "package_target": "software",
    "requirements": [],
    "license": {
        "id": "MIT",
        "name": "MIT",
        "custom_text": ""
    },
    "deployment": {
        "archive_root": ".",
        "web_root": "."
    },
    "project_type": "application",
    "hosting": null
}