{
    "schema": "eupdate-package-specification-v1",
    "author": "PB <pavel.bartos.pb@gmail.com>",
    "project_id": "016eff0ebb83789e",
    "software_id": "eweb-server",
    "software": "eWeb",
    "module": null,
    "release_id": "a6cf5d864ceb278743854d5c0bea9ffb",
    "version": "0.8.37",
    "release_date": "2026-09-15",
    "published_at": "2026-09-15T06:48:24+00:00",
    "bytes": 3757198,
    "sha256": "260d56242c7bee4083277e9762049bd779d0f0ebbff5e4ca53cba92ffd6a96d2",
    "file_count": 751,
    "languages": {
        "Python": {
            "bytes": 1539247,
            "files": 148
        },
        "JavaScript": {
            "bytes": 1242565,
            "files": 29
        },
        "PHP": {
            "bytes": 1110780,
            "files": 50
        },
        "Shell": {
            "bytes": 304803,
            "files": 66
        },
        "CSS": {
            "bytes": 93659,
            "files": 2
        },
        "Java": {
            "bytes": 1918,
            "files": 1
        },
        "Rust": {
            "bytes": 1036,
            "files": 1
        },
        "Go": {
            "bytes": 540,
            "files": 1
        },
        "C#": {
            "bytes": 365,
            "files": 1
        }
    },
    "installation_url": "https://update.estudium.eu/package.php?software_id=eweb-server&version=0.8.37",
    "update_url": "https://update.estudium.eu/package.php?software_id=eweb-server",
    "install_json": {
        "schema": "eweb-install-manifest-v1",
        "schema_version": 1,
        "software": "eWeb",
        "software_id": "eweb-server",
        "version": "0.8.37",
        "package_revision": 1,
        "package_type": "zip",
        "description": {
            "cs": "Automatická obnova certifikátů domén, trvalá evidence termínů a ověřený fallback Let’s Encrypt → ZeroSSL.",
            "en": "Automatic domain certificate renewal, persistent certificate dates and validated Let’s Encrypt to ZeroSSL fallback."
        },
        "compatibility": {
            "os_types": [
                "linux"
            ],
            "distribution_ids": [
                "debian",
                "ubuntu"
            ],
            "os_versions": [
                "12",
                "24.04",
                "26.04"
            ],
            "distributions": [
                {
                    "id": "debian",
                    "name": "Debian",
                    "versions": [
                        "12"
                    ]
                },
                {
                    "id": "ubuntu",
                    "name": "Ubuntu",
                    "versions": [
                        "24.04",
                        "26.04"
                    ]
                }
            ],
            "detection": {
                "file": "/etc/os-release",
                "distribution_field": "ID",
                "version_field": "VERSION_ID"
            },
            "matching": "Match distribution ID and version together using distributions; os_versions is only an aggregate list.",
            "compatibility_basis": "OS combinations allowed by install.sh; this declaration is not a certification of every hardware/deployment combination.",
            "init_system": "systemd",
            "package_manager": "apt",
            "native_windows_supported": false,
            "native_macos_supported": false,
            "any_linux_distribution": false
        },
        "installation": {
            "working_directory": ".",
            "package_directory": "eweb-server-0.8.37",
            "entrypoint": "./eweb-server-0.8.37/install.sh",
            "shell": "bash",
            "requires_root": true,
            "requires_internet": true,
            "interactive": true,
            "languages": [
                "cs",
                "en"
            ],
            "commands": {
                "linux": {
                    "supported": true,
                    "command": "sudo bash ./eweb-server-0.8.37/install.sh",
                    "command_as_root": "bash ./eweb-server-0.8.37/install.sh",
                    "command_from_package_directory": "sudo bash ./install.sh",
                    "mode": "automatic"
                },
                "windows": {
                    "supported": false,
                    "command": null,
                    "reason": {
                        "cs": "Nativní instalace ve Windows není podporována. Instalujte na server s uvedenou podporovanou distribucí Linuxu.",
                        "en": "Native Windows installation is not supported. Install on a server running a listed supported Linux distribution."
                    },
                    "mode": "unsupported"
                },
                "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": 2,
                "ram_mib": 2048,
                "free_disk_gib": 10,
                "note": "Installer preflight recommendations; hosted data and log retention need additional capacity."
            },
            "reboot": "No unconditional reboot is requested by install.sh; OS package updates may independently require one.",
            "web_root": "."
        },
        "upgrade": {
            "supported": true,
            "command": "sudo bash ./eweb-server-0.8.37/install.sh",
            "working_directory": ".",
            "documentation": "eweb-server-0.8.37/UPGRADE-0.8.37.md",
            "cluster_order": "one_node_at_a_time",
            "automatic": {
                "supported": true,
                "command": "sudo eweb-release apply",
                "check_command": "sudo eweb-release check",
                "interval_seconds": 3600,
                "protocol": 1
            },
            "gui": {
                "path": "/?page=updates",
                "module_installation": true,
                "individual_modules": true
            },
            "database_wait_seconds": 300
        },
        "installed_paths": {
            "application": "/opt/eweb",
            "version_file": "/opt/eweb/VERSION",
            "configuration": "/etc/eweb",
            "logs": "/var/log/eweb",
            "websites": "/var/www",
            "backups": "/var/www/backup",
            "release_date_file": "/opt/eweb/RELEASE_DATE",
            "installation_history": "/var/lib/eweb/installation.json"
        },
        "dependencies": {
            "required_packages_file": "eweb-server-0.8.37/packages.txt",
            "optional_packages_file": "eweb-server-0.8.37/packages-optional.txt",
            "hosting_packages_helper": "eweb-server-0.8.37/bin/eweb-hosting-packages.sh"
        },
        "documentation": {
            "readme": "eweb-server-0.8.37/README.md",
            "changelog": "eweb-server-0.8.37/CHANGELOG-0.8.37.md",
            "validation": "eweb-server-0.8.37/VALIDATION-0.8.37.md",
            "audit": "eweb-server-0.8.37/AUDIT-0.8.37.md",
            "manual_cs": "eweb-server-0.8.37/docs/MANUAL-CS.md",
            "manual_en": "eweb-server-0.8.37/docs/MANUAL-EN.md"
        },
        "integrity": {
            "algorithm": "sha256",
            "installer_sha256": "50977bf89224d1adbf102501680475e12e52b91bbeafcdbe971613765dce0651",
            "payload_checksums_file": "eweb-server-0.8.37/SHA256SUMS",
            "payload_checksums_base_directory": "eweb-server-0.8.37",
            "payload_checksums_sha256": "c5c1298a3ab0c4b67653a9645625cb3f497f624f7484dea1f2e6cb166840679e",
            "note": "Payload checksums cover files inside the package directory. This root manifest is outside that inventory. Hashes verify consistency, not publisher authenticity."
        },
        "release_date": "2026-09-15",
        "homepage": "https://www.estudium.eu",
        "author": {
            "name": "PB",
            "email": "pavel.bartos.pb@gmail.com",
            "website": "https://www.estudium.eu"
        },
        "project": {
            "name": "eWeb",
            "website": "https://www.estudium.eu",
            "updates_url": "https://update.estudium.eu/project.php?software_id=eweb-server"
        },
        "archive_metadata": {
            "working_directory": ".",
            "publisher": "dcf6d41fbcdf0e16",
            "updated_at": "2026-09-15T06:48:24+00:00",
            "application_author": "PB <pavel.bartos.pb@gmail.com>"
        },
        "package": {
            "type": "release",
            "visibility": "public",
            "modules_included": false,
            "target": "software"
        },
        "modules": {
            "distribution": "separate",
            "automatic_requires_license": true,
            "module_ids": [
                "cluster",
                "ips",
                "loganalyzer",
                "serverdiag",
                "snapshots",
                "staging"
            ],
            "free_module_initial_installation": "manual",
            "free_installed_module_updates": true,
            "access_source": "current-eupdate-catalog-and-checkin",
            "package_os_types": [
                "source"
            ]
        },
        "requirements": [],
        "license": "MIT",
        "license_custom": ""
    },
    "readme": "# eWeb 0.8.37 — automatické certifikáty domén\n\nLet’s Encrypt → při neúspěchu ZeroSSL. U každého veřejného certifikátu se eviduje vydání, získání, expirace a plánovaná obnova. Navazuje na kompletní 0.8.36 včetně oprav Syncthingu, Cloudflare DNS a hostingových limitů.\n\n## Aktualizace\n\nRozbalte komplet, přejděte do jeho složky a spusťte:\n\n```bash\nsudo bash aktualizovat.sh\n```\n\nV clusteru postupně aktualizujte všechny uzly. Pro eUpdate použijte vnitřní `eweb-server-0.8.37.zip` s manifestem `install.json`. Vnější ZIP obsahuje také šest modulů, dokumentaci a podklady ověření.\n\n## Vystavení a obnova\n\n- Každý nový nebo splatný doménový požadavek nejprve použije Let’s Encrypt, poté při selhání ZeroSSL. Časové omezení Let’s Encrypt neblokuje pokus u ZeroSSL.\n- ZeroSSL automaticky získá EAB údaje pomocí již nastaveného kontaktního e-mailu ACME; uložené údaje znovu používá. Selhání registrace je viditelné v logu a následný timer pokus opakuje.\n- Úspěšný návrat Certbotu nestačí: certifikát musí být platný, odpovídat privátnímu klíči a všem požadovaným názvům. Při splatné obnově musí jít o nový certifikát. Teprve potom proběhne dosavadní atomické nasazení a ověření místního HTTPS/SNI.\n- Termín eWeb obnovy je dřívější z hodnot `datum získání + 3 kalendářní měsíce − 1 den` a `expirace − 1 den`. Měsíce tedy nejsou pevně nahrazené 90 dny.\n- Kontrola běží existujícím časovačem přibližně po 15 minutách. Standardní systémová obnova Certbotu zůstává aktivní a může certifikát obnovit dříve. Termín eWebu je nejzazší plánovaný začátek jeho vlastní obnovy, nikoli zákaz dřívější obnovy.\n- Datum získání se u stejného certifikátu neposouvá při kontrole, reloadu Nginxu, neúspěšném pokusu ani převzetí v clusteru. Pro starší certifikáty bez historie se jako odhad převezme začátek jejich platnosti a tato skutečnost se označí.\n- V clusteru vydává certifikát vlastník domény; ostatní uzly převezmou certifikát, klíč i časové údaje ze stávajícího SSL bundle.\n\nPříklad: získání 15. 9. 2026 dává kalendářní termín 14. 12. 2026. Když certifikát končí již 14. 12., eWeb zahájí obnovu 13. 12. v odpovídajícím čase.\n\nStav lze zobrazit v diagnostice nebo příkazem:\n\n```bash\nsudo eweb-ssl domain-status loader.estudium.eu\n```\n\nSekce `renewal` obsahuje `provider`, `issued_at`, `acquired_at`, `expires_at` a `renew_at`. Stav se ukládá do `/var/lib/eweb/domain-ssl/<doména>-renewal.json` a časové údaje se vypisují také do úspěšného instalačního logu certifikátu.\n\nŽádná CA nedokáže obejít chybnou validaci domény. Veřejné DNS, HTTP-01 nebo Cloudflare DNS-01 a CAA musí povolovat odpovídající autoritu. Pokud CAA ZeroSSL nepovoluje, eWeb nepovolený požadavek neodešle. Neúspěšná obnova zachová dosavadní nasazený certifikát a pokus se opakuje.\n\nPodrobnosti: UPGRADE-0.8.37.md, AUDIT-0.8.37.md a VALIDATION-0.8.37.md. Balíček je připravený a lokálně ověřený; z tohoto prostředí nebyl nasazen na produkční server ani nebylo provedeno skutečné vydání certifikátu u CA.",
    "download_url": "https://update.estudium.eu/download.php?project=016eff0ebb83789e&release=a6cf5d864ceb278743854d5c0bea9ffb",
    "package_target": "software",
    "requirements": [],
    "license": {
        "id": "MIT",
        "name": "MIT",
        "custom_text": ""
    },
    "deployment": {
        "archive_root": ".",
        "web_root": "."
    },
    "project_type": "application",
    "hosting": null
}