CAR / CORE / PIVO · Organizace, odborné časopisy a API
Každá osoba získá CAR a každá organizace CORE automaticky při vytvoření účtu. Organizace přidělují PIVO článkům a dalším výstupům ve Správě PIVO nebo přes autentifikované API.
Otevřít návod identifikátorů a API pro časopisy · OpenAPI JSON · Projekty, adresy, mazání a export pro eWeb
Zobrazit fungování CAR, CORE, PIVO a napojení časopisu
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Osoby, organizace a identifikátory
Vizitky, krátké adresy a přihlášení
Veřejnou vizitku osoby otevřete přímo na adrese
https://update.estudium.eu/CAR-0000-0002, organizaci například na
https://update.estudium.eu/CORE-00001. Uvedená ID jsou příklady; použijte
identifikátor přidělený konkrétnímu účtu. Změna zobrazovaného jména ID ani adresu
vizitky nemění. Vizitka je dostupná jen u aktivního účtu se souhlasem se zveřejněním.
Článek nebo kniha s PIVO má adresu https://update.estudium.eu/PIVO-0-0000-0001.
Publikace bez PIVO používá přímo své stávající 32znakové ID za doménou. Její adresu
zkopírujete z odkazu Otevřít v katalogu nebo vizitce. Krátká adresa sama
nepřiděluje PIVO: to nadále vydává pouze organizace. Staré odkazy
/profile.php?id=…, /pivo.php?id=… a /article.php?id=… přesměrují HTTP 301.
Canonical, sitemap.xml i publikační feed.xml používají nové adresy. Software
zůstává na adrese /login/projekt, například /admin/eweb-server.
Při přihlášení zadejte login, CAR nebo CORE a běžné heslo daného účtu.
U CAR/CORE nezáleží na velikosti písmen. Identifikátor je veřejný a heslo nenahrazuje;
zablokovaný účet se nepřihlásí. Minimální délka nového hesla je 10 znaků.
V Můj účet → Moje vizitka přetáhněte fotografii nebo logo do vyznačeného pole,
nebo vyberte soubor tlačítkem. Podporován je jeden PNG, JPEG nebo WebP do 512 KiB,
rozměry nejvýše 4000 × 4000 px. Náhled se zobrazí hned, změnu dokončíte tlačítkem
Uložit vizitku. Stejně se potvrzuje odstranění fotky. Chyba souboru se zobrazí
přímo u pole; platnost obrázku ověřuje i server.
Vizitka obsahuje kompaktní hlavičku, kontakty a identifikátory, vzdělání nebo
kategorii činnosti, organizace a vyplněné CV. E-mail, telefon a další volitelné
kontakty se zobrazí pouze podle zaškrtnutých voleb zveřejnění. Logo organizace se
zobrazuje celé. Prázdné CV se nevypisuje.
V Projekty autora / Projekty organizace je společný přehled veřejného softwaru,
knih, článků a dalších publikací účtu. Tlačítka filtrují typ; pro hledání a
indexování jsou všechny karty obsažené už ve stránce bez JavaScriptu. Typ publikace
zvolíte při jejím vložení do účtu nebo do PIVO. Katalog slučuje rozpoznané duplicity.
Samotné uvedení stejného jména mezi autory nepřidá cizí publikaci do vašeho účtu:
přidejte ji do vlastních publikací, případně odkazem na existující PIVO.
Neveřejné a archivované softwarové projekty do veřejného přehledu nevstupují.
Rychlý postup pro odborné časopisy (research journals)
CAR označuje osobu, CORE vydavatele/organizaci a PIVO konkrétní publikovaný výstup.
CAR a CORE se přidělují automaticky při vytvoření účtu, při veřejné registraci
stejně jako při založení administrátorem. Osoba dostane CAR, organizace CORE,
bez ohledu na její roli admin/registrovaný nebo zveřejnění vizitky. Starším účtům
se chybějící ID doplní při prvním požadavku. Uživatel ID nezadává ani nemění.
- Vytvořte účet typu Firma / škola / organizace pro časopis nebo jeho
vydavatele. Do názvu napište veřejný název vydavatele, vyplňte logo,
registrační číslo, kategorii činnosti a případně existující ROR. Organizace
ihned získá CORE; pokud administrátor nastavil dočasné heslo, nejprve je změňte.
- Autoři si vytvoří osobní účty s CAR a mohou doplnit ORCID. V Moje organizace
mohou požádat o členství. Vydavatel žádost schválí v Členové organizace.
Členství ani přístup spolupracovníka k projektům nedává právo vydávat PIVO:
PIVO vytváří přihlášený organizační účet nebo jeho serverový API klíč.
- Po redakčním schválení článku se přihlaste pod organizací a otevřete
Správa PIVO → Registrovat PIVO. Zadejte titul, autory oddělené středníkem,
měsíc/rok vydání, anotaci, klíčová slova a veřejnou URL článku nebo vlastní PDF.
Doplňte název časopisu, ISSN, ročník, číslo, strany a licenci. Jeden vydavatel
může obsluhovat více časopisů; rozliší je metadata journal a issn.
- Potvrzení vydání přidělí další globální pořadové PIVO. CORE určuje vydavatele
v issuer_core; žádný prefix si časopis nerezervuje a číselná řada se pro každou
organizaci nerestartuje. V databázi se uloží vydavatel, ID, metadata a revize.
- Vraťte získané PIVO a jeho stabilní URL do redakčního systému. Uveďte je na
stránce článku a v PDF. Autor může existující PIVO přidat do své publikace;
tím znovu nevydává nové ID. Katalog propojí duplicitní záznamy stejného díla.
- Při stěhování PDF upravte URL v témže PIVO. Při opravě metadat odešlete aktuální
revizi a úplná metadata. Opravdu stažený článek označte akcí withdraw a důvodem;
zůstane veřejná stránka se stavem, nikoli znovu použitelné číslo.
Napojení redakčního systému přes API
V organizaci otevřete Správa PIVO → API klíče → Vytvořit API klíč. Hodnotu
uložte jen na serveru redakčního systému. Není určena do JavaScriptu návštěvníka.
Příklad níže předpokládá proměnnou prostředí PIVO_TOKEN s tímto klíčem.
curl --request POST 'https://update.estudium.eu/pivo-api.php' \
--header "Authorization: Bearer $PIVO_TOKEN" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: journal-2026-article-0042' \
--data '{"action":"create","metadata":{"title":"Example journal article","authors":"Novak, Jan; Smith, Eva","publication_date":"2026-09","abstract":"A complete public abstract of the article.","keywords":"education; research; learning analytics","type":"article","journal":"Example Research Journal","issn":"0378-5955","volume":"4","issue":"2","pages":"10-21","publisher":"Example Publisher","url":"https://journal.example.org/articles/42","language":"en","license":"CC BY 4.0"}}'Příklad úspěšné odpovědi (zkrácený; skutečné ID určí registr):
{"ok":true,"created":true,"record":{"id":"PIVO-0-0000-0001","sequence":1,"issuer_core":"CORE-00001","revision":1,"status":"published","url":"https://update.estudium.eu/pivo.php?id=PIVO-0-0000-0001"}}Do redakční databáze uložte record.id, record.url a record.revision.
Při timeoutu opakujte stejný požadavek se stejným Idempotency-Key a metadaty:
registr vrátí již přidělené ID. Nový článek musí mít jiný klíč. Detail bez hesla:
GET /pivo-api.php?id=PIVO-0-0000-0001. Změny se posílají POST na stejný endpoint
s action: update nebo action: withdraw; úplné příklady a chybové kódy jsou níže.
eUpdate automaticky nevkládá ID do cizího redakčního systému ani nemění jeho PDF.
Pro OJS nebo jiný research journal je potřeba serverová integrace, která zavolá
API po zveřejnění článku a uloží odpověď. PIVO není DOI Crossref/DataCite a samotné
vydání neznamená recenzní řízení ani zařazení časopisu do externího indexu.
Klíčová slova zadávejte jako výzkum; vzdělávání; umělá inteligence. V editoru
středník nebo Enter vytvoří samostatný štítek; vložený seznam se rozdělí ihned.
Křížek odebere štítek. Víceslovné fráze zůstávají pohromadě. API přijímá tentýž
řetězec se středníky nebo pole řetězců. Čárka uvnitř fráze se nerozděluje.
Limit je 30 klíčových slov po nejvýše 100 znacích; prázdné položky a přesné
opakované hodnoty se vynechají.
Registrace nabízí Osoba nebo Firma / škola / organizace. Organizace zadává
název, druh, kategorii činnosti, IČO nebo jiné registrační číslo, stát, právní formu
a sídlo. V profilu nahraje logo a popis. Má vlastní projekty, verze, moduly,
spolupracovníky a publikace stejně jako osobní účet. Typ účtu se po registraci
nemění; pro organizaci založte samostatný účet. Login slouží k přihlášení, název
organizace může obsahovat mezery a diakritiku. Kontaktní e-mail zůstává neveřejný,
dokud jeho zveřejnění výslovně nepovolíte. Ostatní vyplněná profilová data jsou
veřejná při souhlasu s veřejnou vizitkou.
CAR, CORE a ORCID/ROR
- CAR – Czech Academic Researcher: interní identifikátor osobního účtu,
například CAR-0000-0001.
- CORE – Czech Organization for Research Entities: identifikátor organizace,
například CORE-00001.
- PIVO – Persistent Index of Verified Outputs: identifikátor výstupu,
například PIVO-0-0000-0001.
Každá řada začíná pořadovým číslem 1 a přidává 2, 3, 4… Číslo se kóduje v base36
(0–9, A–Z) a doplní nulami: 9 → 00009, 10 → 0000A. CAR má 8 znaků, CORE 5 a PIVO
9 znaků; pomlčky pouze člení zápis. První znak za PIVO je součástí čísla, nikoli
číslo vydavatele. Kapacity včetně nulového kódu jsou 36^8 = 2 821 109 907 456,
36^5 = 60 466 176 a 36^9 = 101 559 956 668 416. Nulový identifikátor se nepřiděluje.
Číselné řady jsou globální v této instalaci, přidělování probíhá pod databázovým
zámkem v transakci. Identifikátory jsou neměnné a po smazání účtu se nepoužijí znovu.
Stávající účty obdrží CAR automaticky při prvním spuštění nové verze.
CAR a CORE lze vyhledat v komunitě. Resolver /identity.php?id=CAR-0000-0001
odkáže na veřejnou vizitku; neveřejná vizitka se neodhalí. Zaniklý účet vrátí 410.
ORCID se zadává pro osobu; u organizace jde o ORCID kontaktní osoby.
ROR označuje organizaci; osoba ho může uvést jako související instituci.
Příklady: https://orcid.org/0000-0002-1825-0097, https://ror.org/02mhbdp94.
eUpdate kontroluje formát a kontrolní součet, nové ORCID/ROR nevydává a neověřuje
vlastnictví účtu u externího registru. Zdroj specifikací:
ROR.
Členství osob v organizacích
Osoba v Moje organizace zadá login nebo e-mail organizace. Žádost čeká na
schválení. Jedna osoba může patřit do více organizací. Organizace v **Členové
organizace** vidí žádosti i přijaté členy; může člena potvrdit, odstranit nebo
samostatně povolit spolupráci. Přístup ke všem projektům organizace vznikne až
po povolení spolupráce. Odstranění člena nebo odchod osoby jej okamžitě odebere.
Samotné zadání ROR ani žádost o členství žádná projektová práva nevytváří.
Schválené členství se zobrazí na veřejné vizitce osoby, pokud je veřejná i organizace.
Publikace a PDF
Osoba i organizace mohou přidávat publikace s názvem, autory, rokem, typem,
vydavatelem, ISBN, ISSN, DOI, jazykem, licencí, abstraktem, URL, odkazem na Google
Scholar a existujícím PIVO ID. ISBN a ISSN se kontrolují včetně kontrolní číslice.
DOI se zde pouze eviduje, neregistruje. Nahrávat lze pouze PDF do 20 MiB, celkem
500 MiB na účet. Upload probíhá po částech; nedokončené a nepřipojené soubory jsou
neveřejné. Veřejně lze PDF stáhnout po uložení do aktivní veřejné vizitky nebo
publikovaného PIVO záznamu. PDF se stahuje jako příloha, nespouští se na serveru.
Kontrola formátu nenahrazuje antivirovou kontrolu.
V PDF úložiště lze uklidit nedokončené uploady a nepoužité soubory. PDF připojené
k vizitce nejprve odpojte a vizitku uložte. PDF, které je součástí PIVO, se chrání
před smazáním. Do souboru nepatří neveřejné osobní údaje; zveřejňujte pouze obsah,
ke kterému máte potřebné oprávnění.
PIVO: veřejný katalog a API
Katalog /pivo.php je veřejný, má hledání a stránkování. Každý záznam má stabilní
stránku /pivo.php?id=PIVO-0-0000-0001, JSON a položku v sitemap. Profilové stránky
používají Person/Organization a záznamy CreativeWork/ScholarlyArticle ve strukturovaných
datech. Výsledky hledání se neindexují; veřejně připojené PDF lze indexovat.
PIVO vydávají přihlášené organizace v Správa PIVO nebo přes API. Povinná jsou
metadata: název, autoři, měsíc/rok, anotace, keywords a cílová HTTP/HTTPS URL nebo vlastní nahrané PDF.
Vydavatel potvrzuje předané údaje; název registru **neznamená recenzní posudek ani
ověření vědecké kvality**. PIVO je vlastní registr eUpdate, není DOI, Crossref ani
DataCite. Dostupnost resolveru závisí na provozu update.estudium.eu.
Vydavatel může měnit metadata a cílovou adresu, ID zůstane stejné. Uchová se historie
revizí. Stažení záznamu vyžaduje důvod a je nevratné: stránka a ID zůstanou veřejné
jako záznam o stažení. PIVO nesmaže ani zánik účtu vydavatele. Po registraci proto
neuvádějte do metadat údaje, které nemají být trvale veřejné.
Čtení bez přihlášení
curl 'https://update.estudium.eu/pivo-api.php?q=research&offset=0'
curl 'https://update.estudium.eu/pivo-api.php?id=PIVO-0-0000-0001'Seznam vrací records, total, offset, limit (50); další strana má offset=50.
Detail vrací record a seznam revizí. Pole sequence je pořadové číslo v desítkové
soustavě, issuer_core identifikátor vydavatele, revision aktuální revize.
API klíč a vytvoření záznamu
Organizace vytvoří klíč v Správa PIVO → API klíče. Tajná hodnota se ukáže jen
jednou. V databázi se uchová pouze hash. Klíč platí 90 dní; lze jej ihned zneplatnit.
Organizace může mít 10 aktivních klíčů, každý s limitem 120 úspěšných změn za hodinu.
Klíč dovoluje pouze PIVO operace jménem svého vydavatele, ne správu účtů či projektů.
Blokovaný nebo odstraněný účet jej nemůže používat. Posílejte jej v Authorization,
nikdy jako parametr URL. API používá HTTPS a Content-Type: application/json.
curl -X POST 'https://update.estudium.eu/pivo-api.php' \
-H "Authorization: Bearer $PIVO_TOKEN" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: journal-2026-article-001' \
--data '{"action":"create","metadata":{"title":"Example research output","authors":"Jane Doe; John Smith","publication_date":"2026-09","keywords":["education"],"type":"article","publisher":"Example School","url":"https://example.org/article","language":"en","license":"CC BY 4.0","abstract":"An example record."}}'Úspěch: HTTP 201 a {"ok":true,"created":true,"record":{...}}.
Stejný Idempotency-Key se stejnými metadaty vrátí původní ID (HTTP 200), jiný obsah
pod stejným klíčem vrátí 409. Klíč má 1–100 znaků a–z, A–Z, 0–9, tečka, dvojtečka,
pomlčka nebo podtržítko. Lze jej předat i v JSON jako idempotency_key.
Aktualizace a stažení
POST na stejnou URL; klíč zůstává v Authorization. Před aktualizací načtěte detail.
Pro update pošlete úplná metadata, nikoli pouze změněné pole.
{"action":"update","id":"PIVO-0-0000-0001","revision":1,"metadata":{"title":"Updated title","authors":"Jane Doe","abstract":"Updated complete abstract.","publication_date":"2026-09","keywords":["education"],"url":"https://example.org/new-location"}}{"action":"withdraw","id":"PIVO-0-0000-0001","revision":2,"reason":"Duplicate publication"}Nesprávná revize vrátí 409; tím se chrání souběžné úpravy. Cizí záznam nelze měnit.
Historie je dostupná ve stránce záznamu, JSON vrací čísla a data předchozích revizí.
PDF a API
Veřejné API PIVO přijímá odkaz nebo metadata.file_id vlastního hotového uploadu.
PDF nahrajte v přihlášeném webovém formuláři; Bearer klíč nepovoluje upload souborů.
Tím je oddělena velikostní kvóta a právo publikovat soubor od registrace metadat.
Pro čistě serverovou integraci použijte veřejnou URL publikace na vlastním serveru.
Chyby a provoz
Odpovědi mají JSON ok a při chybě error. Stavy: 401 neplatný/expirující klíč,
403 cizí záznam nebo chybný typ účtu, 404 nenalezeno, 409 konflikt klíče/revize,
422 neplatná metadata, 429 limit, 503 nedostupné úložiště. Čtení je GET, změny POST.
Neznámá HTTP metoda vrací 405. JSON specifikace API:
Registr, členství, metadata PDF a hashe klíčů jsou v MySQL. PDF jsou mimo veřejný
web v private/update-data/publications. Úplná interní záloha obsahuje SQL logický
stav včetně řad a všechny PDF. Obnovujte nejnovější zálohu; starý snímek registru
nesmí nahradit novější přidělené identifikátory. Při stěhování zachovejte adresu
resolveru nebo nastavte trvalá přesměrování. Před nasazením si uložte aktuální zálohu.
Proč PIVO používat a jak začít
PIVO dává výstupu stálou adresu oddělenou od umístění PDF. Když soubor přesunete,
upravíte cílovou URL a citace se starým PIVO odkazem mohou dál vést na správný
záznam. Registr propojí článek s vydavatelem CORE, nabídne metadata, citace a
historii. Hodí se například pro školní studie, výzkumné zprávy a institucionální
publikace. PIVO samo nevytváří prestiž, recenzní řízení ani indexaci v databázích.
Postup: založte účet organizace, vyplňte vizitku, otevřete Správa PIVO a registrujte
výstup. Autor článku musí zadat **nadpis, autora/autory, měsíc a rok vydání,
anotaci a klíčová slova**; PIVO navíc potřebuje URL nebo PDF. Každý autor má být
uveden samostatně středníkem, ideálně Novák, Jan; Svobodová, Eva. Institucionálního
autora zapište například {Example School}. Neuvádějte akademické tituly mezi jména.
Datum formulář zadává po měsících; API přijímá 2026-09 i 09/2026, ukládá 2026-09.
keywords může být pole řetězců nebo text oddělený středníky; maximum je 30 položek.
Starší záznamy zůstávají zachované, při jejich editaci je nutné chybějící údaje doplnit.
Vyhledávač, citace a duplicity
Na /articles.php jsou veřejné publikace osob a organizací i PIVO. Hledat lze podle
názvu, anotace, klíčových slov, autora/CAR/ORCID a organizace/CORE/ROR. Samostatná
stránka článku nabízí citace APA 7, IEEE a ISO 690, BibTeX a RIS. Odkaz a citace
lze kopírovat nebo stáhnout. Pro přesnější citaci doplňte časopis, ročník, číslo a
strany. Generované citace vycházejí ze zadaných jmen a údajů; zkontrolujte je podle
požadavků cílového časopisu. BibTeX/RIS lze importovat do citačních manažerů.
Stejný DOI, PIVO, kontrolní součet PDF nebo přesná shoda názvu, autorů a měsíce bez
DOI sloučí výsledky do jedné položky. Přednost má záznam PIVO. Původní publikace se
fyzicky nemažou a duplicitní URL odkáže na zvolený záznam. Různé DOI se samy podle
podobného názvu neslučují. Registrace dalšího PIVO pro rozpoznaný stejný výstup vrátí
409 s existujícím identifikátorem. Idempotency-Key řeší opakování téhož API požadavku.
Devět nejnavštěvovanějších článků se počítá za vybraný kalendářní měsíc, výchozí
je aktuální měsíc v pásmu Europe/Prague. Přepínačem lze zobrazit minulá období.
Celkové návštěvy jsou oddělené. Opakované otevření stejným návštěvníkem během hodiny
v daném měsíci se počítá jednou, rozpoznatelní roboti se nezapočítají. Jde o měřenou
návštěvnost detailu, nikoli citační ohlas nebo ověření kvality. Bez návštěv je
žebříček prázdný; při menším počtu navštívených článků zobrazí méně než devět položek.
Google Scholar a další platformy
Stránky článků mají čitelnou anotaci bez přihlášení a Highwire citation_* metadata
pro název, jednotlivé autory, rok, časopis a dostupné PDF. To připravuje web pro
procházení Scholarem; přijetí článku do indexu nelze slíbit. Pro Scholar je vhodné
plnotextové PDF s vyhledatelným textem, názvem, autory a literaturou; jeho doporučený
limit je 5 MB, přestože eUpdate dovoluje nahrát 20 MiB. Podmínky popisuje
Odkaz „Google Scholar“ na článku hledá jeho název, neodesílá žádost o registraci.
Zotero může načíst vložená metadata; další citační manažery mohou použít BibTeX nebo
RIS. Podrobnosti pro Zotero.
PIVO URL lze sdílet na webu organizace, v profilu autora nebo na jiných platformách.
eUpdate se bez zvláštní integrace nepřihlašuje k ORCID ani neodesílá metadata do
Crossref, DataCite, Scopus či Web of Science.
Rozšířený příklad API
{
"action": "create",
"idempotency_key": "study-2026-09-001",
"metadata": {
"title": "Example educational research",
"authors": "Doe, Jane; Smith, John",
"publication_date": "2026-09",
"abstract": "A complete author-written abstract of this study.",
"keywords": ["education", "learning analytics"],
"type": "article",
"journal": "Example Journal",
"volume": "2",
"issue": "1",
"pages": "10-19",
"url": "https://example.org/research",
"language": "en"
}
}Čtení sjednoceného katalogu a citací:
curl 'https://update.estudium.eu/article-api.php?q=education&month=2026-09'
curl 'https://update.estudium.eu/article-api.php?author=CAR-0000-0001'
curl 'https://update.estudium.eu/article-api.php?organization=CORE-00001'
curl 'https://update.estudium.eu/article-api.php?id=PIVO-0-0000-0001'
curl 'https://update.estudium.eu/citation.php?id=PIVO-0-0000-0001&format=bibtex'Katalog vrací records, total, offset, limit, month, timezone a top.
Položka má views za celou dobu, month_views pro vybraný měsíc a monthly_views
po měsících. Detail obsahuje article a citations. Formáty citací: apa, ieee,
iso690, bibtex, ris. Odkazy na neveřejné články a PDF bez veřejné vazby vrací 404.
Veřejné PDF může vyhledávač indexovat; soukromé PDF zůstává za kontrolou oprávnění.
RSS publikací a projektů v češtině i angličtině
Veřejné kanály RSS CZ a RSS EN obsahují každý
nejvýše 130 položek: 100 naposledy aktualizovaných veřejných publikací, článků
a PIVO a 30 nejnovějších veřejných nearchivovaných projektů. Každý projekt je
zastoupen jednou, s verzí vybranou podle nejnovějšího data vydání. Chybí-li datum
vydání, použije se čas nahrání verze; u projektu bez verzí datum vytvoření.
Moduly se samostatně nevkládají. Celý kanál je seřazen od nejnovější položky.
- Český kanál:
https://update.estudium.eu/feed.xml - Anglický kanál:
https://update.estudium.eu/feed.en.xml
Jazykové varianty mají přeložený název, popis a kategorie kanálu i odpovídající
značku language. Obsahují stejné záznamy; vložené názvy, anotace a autorské texty
se automaticky nepřekládají. V administraci má každý kanál datum aktualizace,
náhled a odkaz; Přegenerovat RSS obnoví obě varianty.
Oba kanály se přegenerují při změně publikace, PIVO, veřejného profilu, projektu,
vydání, viditelnosti či archivace a při změně loginu vlastníka. Po aktualizaci
aplikace se nové RSS vytvoří automaticky při prvním požadavku. Nezměněné
požadavky soubory opakovaně nepřepisují.
Duplicity publikací se slučují stejně jako v katalogu. Neveřejné publikace,
stažené PIVO a soukromé či archivované projekty se vynechávají. Položka obsahuje
název, popis, autora, kategorii, trvalý odkaz a u publikací dostupné veřejné PDF
jako enclosure. pubDate určuje datum řazení; dc:date uchovává zadané datum
vydání. GUID je kanonická URL záznamu. Čtení RSS nezvyšuje návštěvnost článků.
Čtečka může uchovat již stažené položky i po jejich odebrání z kanálu.
RSS samo nezajišťuje zařazení do Google Scholar.
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Vizitky, krátké adresy a přihlášení
Login, osobní jméno a firemní logo
Při registraci osoby vyplňte zvlášť Login / přezdívku pro přihlášení
(například pavel852) a Jméno a příjmení (zobrazované jméno) pro vizitku.
Zobrazované jméno upravíte v Můj účet → Moje vizitka, admin také v
Uživatelé → Upravit. Je povinné a může mít nejvýše 100 Unicode znaků.
U organizace se stejné pole nazývá Název organizace.
Jméno se zobrazuje ve vizitce, vCard, výsledcích hledání a SEO; publikování
vizitky se dál řídí souhlasem uživatele. Změna jména nemění login, heslo ani
CAR/CORE. Existující účty zachovávají dosavadní jména: pokud bylo dosud místo
jména uloženo jen přihlašovací jméno, uživatel ho může ručně doplnit.
Jména se automaticky neodhadují z CV ani e-mailu.
Firemní logo se zobrazuje v rámečku se zaoblenými rohy, celé bez ořezu.
Čtvercové logo má čtverec; širší logo dostane širší obdélník podle svého poměru
stran, s maximální šířkou podle dostupného místa.
Tento styl používá veřejná vizitka, komunita i náhled v Můj účet.
Veřejnou vizitku osoby otevřete přímo na adrese
https://update.estudium.eu/CAR-0000-0002, organizaci například na
https://update.estudium.eu/CORE-00001. Uvedená ID jsou příklady; použijte
identifikátor přidělený konkrétnímu účtu. Změna zobrazovaného jména ID ani adresu
vizitky nemění. Vizitka je dostupná jen u aktivního účtu se souhlasem se zveřejněním.
Článek nebo kniha s PIVO má adresu https://update.estudium.eu/PIVO-0-0000-0001.
Publikace bez PIVO používá přímo své stávající 32znakové ID za doménou. Její adresu
zkopírujete z odkazu Otevřít v katalogu nebo vizitce. Krátká adresa sama
nepřiděluje PIVO: to nadále vydává pouze organizace. Staré odkazy
/profile.php?id=…, /pivo.php?id=… a /article.php?id=… přesměrují HTTP 301.
Canonical, sitemap.xml i publikační feed.xml používají nové adresy. Software
zůstává na adrese /login/projekt, například /admin/eweb-server.
Při přihlášení zadejte login, CAR nebo CORE a běžné heslo daného účtu.
U CAR/CORE nezáleží na velikosti písmen. Identifikátor je veřejný a heslo nenahrazuje;
zablokovaný účet se nepřihlásí. Minimální délka nového hesla je 10 znaků.
V Můj účet → Moje vizitka přetáhněte fotografii nebo logo do vyznačeného pole,
nebo vyberte soubor tlačítkem. Podporován je jeden PNG, JPEG nebo WebP do 512 KiB,
rozměry nejvýše 4000 × 4000 px. Náhled se zobrazí hned, změnu dokončíte tlačítkem
Uložit vizitku. Stejně se potvrzuje odstranění fotky. Chyba souboru se zobrazí
přímo u pole; platnost obrázku ověřuje i server.
Vizitka obsahuje kompaktní hlavičku, kontakty a identifikátory, vzdělání nebo
kategorii činnosti, organizace a vyplněné CV. E-mail, telefon a další volitelné
kontakty se zobrazí pouze podle zaškrtnutých voleb zveřejnění. Logo organizace se
zobrazuje celé. Prázdné CV se nevypisuje.
V Projekty autora / Projekty organizace je společný přehled veřejného softwaru,
knih, článků a dalších publikací účtu. Tlačítka filtrují typ; pro hledání a
indexování jsou všechny karty obsažené už ve stránce bez JavaScriptu. Typ publikace
zvolíte při jejím vložení do účtu nebo do PIVO. Katalog slučuje rozpoznané duplicity.
Samotné uvedení stejného jména mezi autory nepřidá cizí publikaci do vašeho účtu:
přidejte ji do vlastních publikací, případně odkazem na existující PIVO.
Neveřejné a archivované softwarové projekty do veřejného přehledu nevstupují.
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Smazání check-inů administrátorem
Přehled Check-in / servery začíná tabulkou s hostname, programem a verzí,
datem check-inu, ID instalace a stavem schválení. Kliknutím na řádek rozbalíte údaje a akce
serveru; dalším kliknutím je sbalíte. Tlačítko u hostname funguje i klávesnicí.
V Check-in / servery → Smazat check-in admin odstraní všechna uchovaná hlášení
vybraného serveru (nejvýše tři). V záložce Check-in projektu stejné tlačítko
odstraní pouze hlášení vztahující se k tomuto projektu. Hlášení ostatních
serverů a projektů zůstanou zachovaná.
V potvrzovacím okně opište ID serveru v check uvedené nad polem. Pokud mezitím
dorazí nové hlášení, operace se zastaví; obnovte přehled a potvrďte ji znovu.
Chyby se zobrazují přímo v okně. Registrovaný uživatel nemůže mazat ani vlastní
serverové záznamy; oprávnění kontroluje i serverové API.
Odstraňuje se historie přijatých hlášení, nikoli schválení serveru, jeho
přístupový klíč nebo licence. Po dalším check-inu se server znovu objeví.
Pokud chcete zakázat licencovaný přístup, upravte schválení či licence.
Interní komunikační log se nemaže. Úspěšné smazání je dohledatelné v
Historii změn jako checkin.delete s účtem admina, časem a ID serveru.
Přehled a kompletní detail (1.7.1)
Check-in / servery řadí servery od nejnovějšího přijatého hlášení. Po rozbalení
řádku otevřete Detail serveru. eWeb zobrazí hostingové údaje, moduly, služby,
monitoring a zabezpečení; eCast kanály, klienty, nahrávání, disky a balíčky.
V oddílech jsou dostupná všechna přijatá pole, včetně dosud neznámých.
Chybějící údaje se nevymýšlejí a citlivé přístupové údaje se maskují.
Přihlášené rozhraní používá GET /api.php?action=server.report&server=ID.
Volitelné project=PROJECT_ID omezí detail na hlášení daného projektu.
Vyžaduje přihlášení, oprávnění k serveru a v projektovém režimu také k projektu.
Pro strojové hlášení klient nadále používá /check/; jeho adresa se nemění.
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Nahrávání více ZIPů
V Nahrát balíček přetáhněte více ZIPů do pole nebo je společně vyberte.
Stejně funguje přetažení do prázdného katalogu. Jeden ZIP zachovává dosavadní
postup: celý formulář, kontrola údajů a ruční tlačítko pro zveřejnění.
Existující verzi navíc potvrdíte v samostatném dialogu.
Dva a více ZIPů spustí frontu, nejvýše 20 najednou. Každý soubor se zvlášť
nahraje po částech, rozbalí a načte se jeho install.json a README. Přenosy i
publikování probíhají postupně. Platí dosavadní limit 20 uploadů za hodinu,
512 MiB na ZIP a rozbalení do 2 GiB na balíček; fronta limity neobchází.
- Existující přístupný projekt se pozná podle
software_id, modul podle
package.parent_software_id a package.module_id. Je-li to úplná nová verze,
automaticky se přidá. Novější znamená porovnání verze, nikoli pořadí souborů.
- U neúplného ZIPu vyplníte jen chybějící nebo neplatná pole daného souboru.
Známý název, popis či README může doplnit existující projekt. Verze, datum vydání,
podporované systémy a instalační příkazy se neodhadují z předchozí verze.
- Vytvoření nového projektu/modulu potvrďte. Pokud manifest neuvádí viditelnost
nebo režim nového modulu, vyberte je ručně. Oprávnění, soukromí ani Open/placený
režim již existujícího projektu/modulu upload další verze nepřepíná.
- Existující číslo verze vyžaduje potvrzení přepsání. Po načtení celé fronty
uvidíte jeden souhrn všech přepisovaných programů/modulů a jednou je potvrdíte.
Poté se přepisy provedou postupně bez dalších potvrzení. Zrušení, Escape nebo
zastavení fronty existující vydání nepřepíše. Již přidané nové verze zůstanou.
- Při přepsání se nahradí ZIP i celé zdroje; soubory, které v novém ZIPu chybí,
se odstraní. ID a odkaz vydání zůstávají a nevznikne duplicitní verze.
Licence a statistiky vydání se zachovají. Datum vydání je z nových metadat.
Pokud se původní vydání od potvrzení změnilo, soubor skončí chybou a potřebuje
nové posouzení. Více ZIPů pro tentýž cíl a verzi v jedné frontě není povoleno.
- Přidání dosud neexistující starší verze vyžaduje výslovné potvrzení.
- Přeskočit soubor pokračuje dalším ZIPem. Zastavit frontu nepřidá další
balíčky. Právě probíhající požadavek může doběhnout; již publikované verze zůstávají.
Odchod na jinou stránku rovněž zastaví další zpracování. Fronta není serverová úloha
na pozadí a po zavření prohlížeče automaticky nepokračuje.
- Chyba souboru je vidět u jeho názvu a ostatní soubory pokračují. Neúspěšný soubor
můžete následně nahrát samostatně. Dočasné nezveřejněné ZIPy se uklidí při dalším
uploadu po uplynutí 24 hodin. Souhrn odkazuje na úspěšně uložené projekty.
Instalační příkazy z manifestu se při nahrání nikdy nespouštějí na serveru eUpdate.
eUpdate 1.7.6 — RSS, úvod a přehled projektu
Autor programu: PB <pavel.bartos.pb@gmail.com>
Datum vydání: 2026-09-11
- RSS má dvě souběžné verze: /feed.xml (CZ) a /feed.en.xml (EN).
- Každá obsahuje nejvýše 100 publikací/článků/PIVO a 30 veřejných projektů,
celkem 130 položek seřazených podle data od nejnovější. Jedna položka na
projekt, s verzí podle nejnovějšího data vydání. Chybí-li datum, použije se
čas nahrání; bez verzí datum vytvoření projektu.
- Soukromé a archivované projekty ani samostatné moduly se do RSS nevkládají.
Názvy, anotace a autorské texty zůstávají v původním jazyce; názvy kanálů,
popisky a kategorie jsou lokalizované. Odkazy a záznamy jsou v CZ/EN stejné.
- Oba kanály mají náhled, čas posledního zápisu a stažení na záložce Úložiště
a sitemap. Přegenerovat RSS aktualizuje obě varianty. Zahrnuje je diagnostika
a stránky je nabízejí také v metadatech pro RSS čtečky.
- Změny projektů, vydání a viditelnosti i změna loginu vlastníka automaticky
obnovují RSS. Při prvním požadavku po aktualizaci se nové kanály vytvoří i
bez změny obsahu. Distribuční balík již obsahuje obě XML z původního snímku.
- Úvodní text je kratší a rozložený do tří tematických sloupců přes dostupnou
šířku. Na menších obrazovkách se přizpůsobuje do dvou a jednoho sloupce.
- Najetí myší zvýrazní skutečný zobrazený řádek a zvlášť slovo pod ukazatelem.
Text lze běžně označit, kopírovat a přečíst i bez JavaScriptu.
- Stejný obsah se používá pro české i anglické SEO: title, description,
Open Graph, Twitter a strukturovaná data WebSite s třemi tematickými oblastmi.
- Detail projektu ukazuje dvě nejvyšší verze podle číslování; ostatní jsou
v zavřené sekci Starší verze. Stažení, soubory, metadata a správcovské akce
zůstávají dostupné i u starších verzí. Stejné členění platí v HTML bez JS.
- Pod vydáními jsou grafy stažení všech verzí projektu a současné poslední
verze a samostatný graf prohlížení. Výchozí období je posledních 12 měsíců,
přepnout lze na 30 dní. Poslední verze je označena konkrétním číslem.
- Tabulky uvádějí stejné měsíční/denní hodnoty, součty období a stažení podle
jednotlivých verzí za období i od začátku evidence. Zůstávají čitelné i při
nedostupném grafu. Moduly nejsou zahrnuté do součtu verzí projektu.
- Měření používá stávající UTC denní čítače. Stažení zahrnují opakované
požadavky; otevření projektu se započítá nejvýše jednou za 30 minut v relaci
a vlastní návštěvy správců projektu se nezapočítávají. Jde o evidované
události, nikoli počet unikátních osob. Aktuální den a měsíc nejsou uzavřené.
Podrobnosti RSS: /docs/registry.cs.md. Cron se nemění. SQL schéma se nemění;
zůstává oprava importního zámku z 1.7.5 i všechny opravy 1.7.4. Balík vychází
z původní dodané zálohy 1.7.3 a neobsahuje pozdější data ze živého serveru.
eUpdate 1.7.5 — oprava souběhu při obnově SQL
Autor programu: PB <pavel.bartos.pb@gmail.com>
Datum vydání: 2026-09-11
Příčina chyby 1050
Původní dump správně obsahuje DROP TABLE IF EXISTS před CREATE TABLE. Starší
eUpdate však v mysql_prepare při každém požadavku a běhu cronu prováděl CREATE
TABLE IF NOT EXISTS pro všechny své tabulky. Když požadavek přišel mezi DROP
a CREATE během obnovy, tabulku vytvořil a import skončil hláškou Table already
exists. Následné zstd Broken pipe je důsledek ukončeného SQL importu.
Oprava
- Distribuční SQL si před první změnou tabulek vezme stejný pojmenovaný MySQL
zámek jako mysql_db: eupdate: a název právě zvolené databáze. Zámek znají také
předchozí verze eUpdate, proto jejich požadavky během importu čekají.
- Zámek čeká nejvýše 60 sekund na probíhající operaci. Pokud jej nezíská,
import skončí výslovnou chybou ještě před prvním DROP TABLE. Při dokončení
se uvolní; při pádu importního spojení jej uvolní databázový server.
- Všechna původní schémata, INSERTy a hodnoty v dumpu se zachovávají. Přibývá
pouze ochranný blok zámku. Název databáze se neuvádí napevno, takže funguje
i přepis cíle obnovy v eWebu.
- HTTP a běžné cron úlohy již nevytvářejí tabulky ani výchozí účet v neúplné
databázi. Vrátí stav 503 s pokynem dokončit obnovu SQL.
- Jednorázovou inicializaci nové prázdné databáze provádí výslovně spuštěný
private/update-tools/bin/migrate-mysql.php. Existující neúplné tabulky se
tímto nástrojem automaticky nepřepisují.
Obnova po přerušeném importu
V eWebu zopakujte obnovu z této zálohy se součástmi Soubory a Databáze.
Předchozí import mohl zanechat databázi neúplnou. Záloha obsahuje původní data
z dodané verze 1.7.3 a všechny aplikační opravy 1.7.4 i 1.7.5. Pozdější změny
na živém serveru její součástí nejsou.
Monitoring nadále používá private/update-tools/collect-monitor.php každou
minutu (* * * * *). Pro tuto opravu není potřeba přidávat další cron úlohu.
Ověřeno 15 cílenými kontrolami na izolované MariaDB, včetně přesné reprodukce
chyby, souběhu staré i nové aplikace s obnovou, opakovaného importu, zachování
dat, odmítnutí importu bez zámku a uvolnění zámku při chybě. Nasazení na živém
clusteru se neprovádělo. Budoucí externí dump musí pro stejnou koordinaci
obsahovat zámek; pro jeho přidání slouží private/update-tools/bin/wrap-restore-sql.py.
eUpdate 1.7.4 — úložiště, XML výstupy, monitoring a diagnostika
Autor programu: PB <pavel.bartos.pb@gmail.com>
Datum vydání: 2026-09-11
- Úložiště má samostatné tlačítko Vytvořit úplnou zálohu i při nulovém počtu
verzí čekajících na převod. Převod se nabízí jen tehdy, když je potřeba;
hotová struktura má vysvětlení. Úspěch zobrazí odkaz, chybu lze opravit a opakovat.
- Na stejné stránce je tabulka dostupných záloh: čas, vlastník, rozsah, velikost
a stažení. Nadále platí dvě poslední úspěšné zálohy na účet.
- Sitemap i feed.xml mají čas posledního zápisu souboru včetně sekund, velikost,
počet položek, náhled prvních 50 položek a escapovaný náhled XML. Oba výstupy
lze samostatně přegenerovat. RSS vysvětluje svůj rozsah a prázdný obsah.
- Zbylou shodnou cílovou kopii lze využít až po ověření celé struktury a SHA-256
všech souborů. Odlišný obsah nebo soubor navíc převod zastaví.
- Při chybě SQL po převodu se odstraní nové kopie a zachovají původní složky.
Úklid původních složek proběhne až po potvrzení transakce.
- Pokud PHP kvůli open_basedir nemůže číst systémové čítače a chybějí čerstvé
vzorky cronu, administrace použije pevně určený pomocný Python proces pod
stejným OS uživatelem. Čte jen systémové čítače; nezvyšuje oprávnění, nemění
PHP/FPM ani cron koordinátor. Potřebuje /usr/bin/python3 a povolené proc_open.
- První načtení získá dva skutečné vzorky; CPU a síťové průměry tak nemusí čekat
na další minutový cron. Čerstvé vzorky se krátce sdílejí přes stávající MySQL
settings, vždy podle hostname. Údaje jiného uzlu se nepodsouvají.
- Nastavení má Stáhnout diagnostiku: ZIP s prostředím PHP, stavem monitoringu,
úložiště, veřejných XML, počty řádků tabulek, posledními 200 auditními a
komunikačními událostmi a dostupnými konci doménových logů. Obsahuje také
dostupnou definici cronu a výslovný seznam nedostupných podkladů.
- Diagnostika je pouze pro přihlášeného administrátora. Vytvoření vyžaduje POST
a CSRF. Odkaz platí 30 minut; mezi exporty zůstává nejvýše 5 ZIPů. Obsahuje
nejvýše 20 logových souborů, 128 KiB z každého a 2 MiB logů celkem. Komprimované
rotace a symlinky se vynechávají. Rozpoznané přístupové údaje se redigují.
- CZ/EN. Bez změny schématu MySQL; produkční SQL, balíčky, identity, licence,
check-iny a konfigurace hostingu se v distribuční záloze zachovávají.
Distribuce: úplná záloha eweb-backup-v3 pro obnovu v eWebu. Obsahuje data
z původní přílohy 1.7.3, nikoliv změny provedené později na živém serveru.
Podrobný návod: /docs/maintenance-174.cs.md (EN: maintenance-174.en.md).
Obsluha
- Úložiště a sitemap → Vytvořit úplnou zálohu. Nový ZIP je ihned v tabulce.
- Je-li Čeká na převod větší než nula, použijte Zálohovat a převést složky.
- U Sitemap/RSS porovnejte čas zápisu souboru a datum jednotlivých položek;
jde o různé údaje. Po Přegenerovat se přehled automaticky obnoví.
- V Nastavení eUpdate se monitoruje server uvedený u měření. Při chybě zvolte
Stáhnout diagnostiku; nedostupný podklad je uveden v collection.json.
- Diagnostický ZIP před sdílením zkontrolujte. Názvy domén, uživatelů, IP adresy
a vlastní texty chyb mohou zůstat. Diagnostika není záloha pro obnovu.
Omezení procesu Python nebo práv uživatele se neobchází ani automaticky nemění.
Pokud přímé měření, cron i pomocný proces selžou, chybějící metriky jsou označené
jako nedostupné a diagnostika zaznamená důvod. Starší rady čekat vždy pouze na
cron se pro verzi 1.7.4 nahrazují tímto postupem.
Cron v eWebu
Pro doménu update.estudium.eu zapněte úlohu eUpdate monitoring se skriptem
private/update-tools/collect-monitor.php a výrazem * * * * * (každou minutu).
Dodaná záloha již tuto úlohu obsahuje v cron/cron.json; pokud je v eWebu vidět,
nevytvářejte druhou. Cron zajišťuje sběr na pozadí, administrace umí měřit také
při otevření Nastavení eUpdate.
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Oprava měření na eWebu od 1.7.3
eWeb omezuje PHP-FPM na web/, private/ a dočasné složky. Předchozí verze
chybně začínala procházením jejich nadřazené složky; její nedostupnost vyhodnotila
jako prázdnou složku. Oprava prochází private/ a web/ přímo. Kategorie
Data projektů · private/ obsahuje soubory v private/ mimo oddělené logy
či zálohy, včetně starších adresářových struktur a podpůrných soukromých dat.
Součet Celkem private/ zahrnuje celou změřenou private/ včetně jejích logů
a záloh; jde o doplňkový údaj, který se nepřičítá do grafu znovu.
Diskové karty ukazují celý svazek, tabulka a graf změřená data této aplikace.
Velikosti se obnovují každou minutu nebo na tlačítko. Zakázaná nebo nečitelná
složka znamená neúplné měření s vysvětlením, nikoli platnou nulovou velikost.
Symbolické odkazy se nesledují. Časový limit a označení neúplného skenu zůstávají.
Stejné omezení PHP blokuje /proc pro CPU, RAM a síť. Záloha proto obsahuje
private/update-tools/collect-monitor.php a nativní eWeb úlohu **eUpdate
monitoring** v cron/cron.json s výrazem * * * * *. eWeb při obnově souborů
provádí eweb-cron sync-domain a úlohu zaregistruje. Běží jako účet domény,
nikoli root. Nemění se PHP-FPM pool, open_basedir ani systémové přístupové údaje.
Po prvním běhu cronu jsou dostupné hodnoty RAM/CPU/sítě. Sběrač během každé
minuty pořídí šest vzorků v desetisekundových rozestupech, celkem běží asi
50 sekund. Historie v MySQL settings je omezená na poslední minutu, nejvýše
8 vzorků pro každé z nejvýše 16 hostname. Nepřidává se JSON databáze ani SQL
tabulka. PHP přečte pouze vzorky svého hostname; neplatné a staré vzorky
(starší 90 sekund) nepoužije. Dostupná přímá měření mají přednost. Fyzické
rozhraní nedostupné hostingu se nenahrazuje vymyšleným rozhraním.
Sběrač také změří běžné logové soubory domény, které PHP-FPM číst nesmí;
jejich velikost může přehled použít nejvýše 150 sekund. Logový SQL obsah
se stále nezapočítává do DB i logů dvakrát.
Pokud údaje nedorazí do minuty, ověřte v eWebu zapnutí úlohy a její cron log.
Krátké jednorázové ověření pod účtem domény lze spustit takto:
php /var/www/update.estudium.eu/private/update-tools/collect-monitor.php --onceV clusteru platí pravidla eWeb cronu: doménové úlohy běží na řídícím serveru.
Pokud obsluhuje web jiný člen, musí jeho správce zajistit samostatné místní
měření pod účtem domény; údaje jiného člena se nezobrazí jako jeho vlastní.
Rozhraní uvádí hostname, zdroj měření a případné čekání na sběrač.
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Oprava měření eUpdate 1.7.3 na hostingu eWeb je v oddílu [Měření hostingu](#monitoring-173).
<!-- Autor programu: PB <pavel.bartos.pb@gmail.com> -->
Vydání, moduly, logy a přihlášení od 1.7.2
Přehled modulů a licence
V projektu na záložce Moduly je nad kartami malá tabulka seřazená abecedně
podle názvu. Obsahuje název s odkazem, nejnovější verzi a datum jejího vydání.
Verze se porovnávají podle čísla, nikoli podle času uploadu; datum patří témuž
vydání. Neuvedené datum zůstává prázdné (pomlčka). Přehled respektuje oprávnění
projektu a viditelnost modulů.
Při přidělování licence je také vidět nejnovější dostupná verze. Nejde o výběr
jediné licencované verze: oprávnění platí pro modul a jeho další aktualizace až
do konce platnosti licence. Nabídka dál obsahuje pouze moduly příslušného programu.
Přepsání a mazání
Jeden ZIP nejprve zkontrolujete ve formuláři. Je-li stejné číslo verze již u
cílového programu/modulu uložené, eUpdate si vyžádá souhlas s jeho přepsáním.
U více ZIPů schválíte všechny přepisy společně v jediném souhrnu. Nahradí se
archiv i celý rozbalený obsah. ID a odkaz vydání zůstanou a verze se nezdvojí.
Změna původního vydání jiným vydavatelem staré potvrzení zneplatní.
Mazání verze, modulu nebo projektu odstraní také jeho souborové verze a Git
cache. Před mazáním se nadále vytvoří záloha podle dosavadních oprávnění.
Ta zůstává v neveřejných zálohách s retencí dvou posledních záloh na účet;
nejde o aktivní vydání dostupné v projektu. Pokud oprávnění disku nedovolí
úklid po potvrzené SQL změně, API vrátí cleanup_warning a PHP log obsahuje
chybu. Správce zkontroluje soukromé staging/retired-*.
Git clone
Cesta /git/software-id.git nyní funguje také přes výchozí směrování Nginx do
index.php, které je v dodané záloze. Na hostingu musí být dostupný Git a PHP
proc_open. Pro veřejný projekt použijte příkaz z jeho stránky:
git clone https://update.estudium.eu/git/software-id.gitNeveřejný projekt nadále vyžaduje X-Project-Secret. Přepsání vydání mění obsah
jeho Git tagu a může přestavět navazující historii. Existující klon aktualizujte
pomocí git fetch --force --tags origin a změny si prohlédněte; běžný pull
může odmítnout rozdílnou historii. Čistý nový klon poskytne aktuální stav.
Místní změny se automaticky nemažou. Git push zůstává zakázán.
Odesílání logů do eWebu
- Admin otevře Nastavení eUpdate → Odesílání logů do eWebu.
- Zadá HTTPS adresu přijímajícího eWebu (včetně vlastního portu, pokud jej
používá), například https://eweb.example.org:8443, a hostname odesílatele.
- Zapne odesílání, uloží a použije Registrovat / otestovat spojení.
- V analyzátoru logů přijímajícího eWebu schválí nového odesílatele podle ID
a otisku, které ukazuje nastavení eUpdate. Znovu otestuje doručení.
- Pro doručování i bez návštěv nastaví každou minutu cron příkaz z nastavení.
Spouští se pod účtem domény s přístupem ke stejné konfiguraci MySQL jako PHP.
Integrace používá přijímač /api/log-ingest.php a jeho operace offer, status
a events, ověřené proti eWebu 0.8.9. Přijímač musí mít zapnutý analyzátor logů.
HTTPS certifikát a hostname se ověřují; přesměrování se nesledují. Odesílatel má
vlastní náhodné ID a tajný token v neveřejném nastavení MySQL. Token se ve
formuláři ani v logu nezobrazuje. Nejde o heslo administrátora eWebu.
Posílají se nové události auditu (včetně přihlášení), výsledky checkeru a základní
diagnostika neošetřených chyb aplikace. Hesla, klíče a celé syrové check-iny se
neposílají. Systémové a Nginx logy se tímto nastavením nenačítají a starý audit
se zpětně neexportuje. Výchozí stav je vypnuto.
Soukromá fronta v MySQL uchová nejvýše 2 000 událostí. Při přeplnění zahazuje
nejstarší a ukazuje jejich počet. Dávka má nejvýše 100 událostí a méně než
240 kB; běžné opakování probíhá nejdříve za minutu. Události se odeberou až po
potvrzení celé dávky. Při výpadku, čekání na schválení nebo pozastavení příjmu
zůstávají ve frontě. Stálá ID událostí umožňují přijímači odstranit duplicity při
opakování. Změna cílové adresy/hostname vyprázdní čekající frontu; existující
schválenou identitu na přijímači nepřejmenuje. Vypnutí pozastaví další odesílání.
Blokace opakovaného chybného přihlášení
Páté neúspěšné přihlášení v klouzavém okně 60 sekund uloží ban na 24 hodin
od pátého pokusu. Jde o účet, nikoli pouze IP adresu: login, CAR a CORE stejného
účtu sdílí omezení, bez možnosti obejít je změnou velikosti písmen nebo IP.
Během banu neprojde ani správné heslo a další pokus dobu neprodlužuje.
Po 24 hodinách blokace automaticky vyprší. Úspěšné přihlášení před dosažením
limitu čítač resetuje. Existující přihlášené relace se tím neodhlašují.
API vrací HTTP 429 a počet zbývajících sekund v Retry-After a retry_after.
Dosavadní dodatečný limit pokusů podle IP zůstává v platnosti.
Tabulky MySQL se v 1.7.2 nemění. Nastavení logů a blokace využívají existující
úložiště settings a rate; příchozí check-iny dál zůstávají v JSON.
Stav serveru, disk, CPU, RAM a síť
V Nastavení eUpdate vidí administrátor celkovou kapacitu svazku, obsazené
místo a volné místo v procentech i MiB/GiB. CPU ukazuje průměr skutečně
využitého procesorového času mezi vzorky; vedle je systémová zátěž (load average)
za 1, 5 a 15 minut. RAM ukazuje obsazenou/dostupnou paměť a průměrné využití.
Síť / LAN používá rozhraní výchozí trasy; podrobnosti vypíší i ostatní rozhraní.
RX/TX jsou příjem/odesílání, rychlosti se zobrazují v B/s, KiB/s, MiB/s apod.
Celkové čítače platí od spuštění rozhraní; virtuální a fyzické rozhraní se nesčítají.
Vzorkování běží po 10 sekundách pouze na otevřené stránce. CPU a přenosové
rychlosti potřebují alespoň dva vzorky, průměr zahrnuje nejvýše poslední minutu.
Po odchodu ze stránky se měření zastaví. Přímé vzorky jsou v prohlížeči; krátkou historii CLI sběrače ukládá MySQL.
Údaje platí pro hosting viditelný procesu PHP: na sdíleném hostingu mohou
popisovat celý host a dostupnost závisí na oprávnění k /proc. Chybějící údaje
se označí jako nedostupné, nenahrazují se nulou.
Koláčový graf s tabulkou rozděluje změřená data eUpdate, nikoli celý disk:
databáze, data projektů (ZIP i zdroje včetně modulů), logy, zálohy a ostatní
soubory. Každá kategorie uvádí velikost a procentní podíl. Velikost DB je odhad
alokovaných tabulek/indexů; obsah auditních logů, checkeru a odesílací fronty se
z DB odečte a přičte k logům, takže se nepočítá dvakrát. Soubory se měří podle
délky obsahu, ne fyzicky přidělených bloků. DB může být na jiném serveru.
Svazek může navíc obsahovat data jiných aplikací, proto součet grafu nemusí
odpovídat celému obsazenému disku.
Velikosti se skenují při otevření nastavení nebo po tlačítku **Obnovit včetně
velikostí dat**; běžné desetisekundové vzorky adresáře neprocházejí. Sken
nesleduje symbolické odkazy a má časový limit čtyři sekundy / 300 000 souborů.
Neúplné výsledky jsou výslovně označené.
Vymazání všech logů
Admin použije Vymazat všechny logy a potvrdí opsáním CLEAR LOGS.
Vyprázdní se audit, komunikační log checkeru, čekající fronta odesílání a
běžné soubory v logs/, private/update-data/logs/ a staré soubory
checker-log*.json přímo v datové složce. Otevřené soubory se zkrátí na
nulovou délku, aby do nich služby mohly dál zapisovat. Symbolické odkazy
se neprocházejí; zamčené nebo nezapisovatelné soubory jsou v souhrnu neúspěšných.
Check-in hlášení instalací, licence, nahrané balíčky (včetně jejich souborů
pojmenovaných .log), přístupová identita eWebu a blokace přihlášení se nemění.
Již odeslané logy se na přijímajícím eWebu tímto tlačítkem nemažou. Uchované
zálohy se nepřepisují. MySQL může po odstranění řádků ponechat alokované místo
k dalšímu použití; tlačítko neprovádí OPTIMIZE TABLE. Nový provoz tvoří nové
logy. Čas a účet posledního vymazání zůstávají ve správním nastavení.
Přidělování licencí v eUpdate 1.7.2
Autor programu: PB, pavel.bartos.pb@gmail.com
V Check-in / servery rozbalte server a zvolte Udělit / změnit licenci.
Tabulka zobrazuje dostupné placené moduly, jejich projekt, přidělení, datum
Platnost do a stav. Server musí být nejprve schválený administrátorem.
Admin spravuje všechny licence; registrovaný účet potřebuje oprávnění k projektu
(a modulům) i přiřazený server. Open moduly se v této tabulce nepřidělují.
- Zaškrtněte moduly, které chcete povolit. Odškrtnutí deaktivuje dřívější licenci.
- Zaškrtávátko v záhlaví Přidělit označí / odznačí všechny řádky.
Při částečném výběru ukazuje mezistav. Data platnosti se tím nemění.
- U každého modulu zadejte vlastní datum konce platnosti; prázdné datum znamená
platnost bez omezení. Zadaný den je zahrnut celý v UTC. Prošlé datum zůstává
viditelné a licence je označena jako prošlá.
- Uložit licence uloží všechny změněné řádky společně. Samotné zaškrtnutí,
hromadný výběr ani zavření okna žádnou změnu na server neukládá.
- Chyba v jednom řádku znamená, že se neuloží žádný z řádků dávky. Opravte údaje
přímo v okně. Pokud licenci mezitím změnil jiný správce, zavřete okno,
obnovte přehled a otevřete licence znovu, aby se načetly aktuální hodnoty.
Přidělení licence nemění klíč, hostname, povolené IP ani schválení serveru.
Klient dál používá stávající autentizaci přes /check/ a licencované stahování.
Struktura tabulek MySQL se oproti 1.6.8 nemění.
Vazba licence na program
Nabídka i uložení licence používají program z posledního přijatého check-inu.
software_id se musí shodovat s ID publikovaného programu: například
eweb-server nebo ecast-pipe-server. Bez software_id se u starších hlášení
porovnává přesný název programu. Nerozpoznaný program nedostane nabídku cizích
modulů. Stejná kontrola platí pro license.save i licenses.save.
Řádky jsou kompaktní, dlouhá tabulka se posouvá samostatně a záhlaví zůstává
viditelné. Hromadný výběr nemění data platnosti.
Verze modulu
Sloupec Nejnovější verze ukazuje nejvyšší dostupnou verzi daného modulu.
Licence platí pro modul včetně jeho dalších aktualizací do konce platnosti.
Nejde o omezení licence jen na zobrazenou verzi.

Dokumentace balíčků a aktualizací
Veřejná dokumentace bez přihlášení. Autor programu: PB, pavel.bartos.pb@gmail.com.
Webové aplikace a balíčky eLoaderu mají požadavky na prostředí a licence. Zkopírujte instalační odkaz nebo vyhledejte nejnovější kompatibilní verzi.
Instalační API a formát balíčků1. Struktura ZIPu
Každá verze programu a každý modul mají vlastní ZIP. Doporučené soubory umístěte přímo do kořene archivu:
| Cesta v ZIPu | Obsah |
|---|---|
install.json | Metadata níže. Použijte UTF-8 a platný JSON bez komentářů. |
readme.md | Popis programu, požadavky, instalace a postup aktualizace. |
install.sh | Instalace na Linuxu, pokud uvádíte automatický příkaz. |
install.ps1 | Instalace na Windows, pokud ji skutečně podporujete. |
src/… | Zdrojové a datové soubory programu; strukturu určuje vydavatel. |
Povolený je i obalový adresář, například example-app/install.json. Server hledá manifest nejblíže kořeni. Relativní cesta README se vyhodnotí nejprve vůči adresáři manifestu. Bez explicitní pracovní složky se použije adresář manifestu; údaj archive_metadata.working_directory je vždy vůči kořeni rozbaleného ZIPu.
Limity: ZIP 512 MiB, rozbalený obsah 2 GiB, soubor 512 MiB, 30 000 položek. Nepovolují se šifrované archivy, symlinky, absolutní cesty, ../, duplicitní cesty ani speciální soubory. Běžný prefix ./ je podporovaný. ZIP se nahrává po částech; během přenosu ponechte stránku otevřenou.
Chybějící nebo neplatný manifest nebrání importu: povinná pole doplníte ve formuláři. Před zveřejněním je vždy potřeba obsah potvrdit. Původní ZIP ani jeho SHA-256 se ručním doplněním metadat nemění.
V detailu vydání otevřete Soubory. U každé položky uvidíte typ podle přípony (php/html/js/…). Vybraný soubor stáhnete samostatně přes Stáhnout soubor, i když je binární nebo přesahuje limit náhledu 512 KiB. PHP/HTML se stahuje jako příloha a na aktualizačním serveru se nespouští. Placené soubory může takto získat pouze přihlášený vlastník/admin; licencovaný klient stahuje celý ZIP.
2. Soubor install.json
Následující příklad ukazuje formát, nikoli ověřenou kompatibilitu skutečného programu. Uvádějte pouze systémy a příkazy, které jste otestovali.
{
"software": "Example App",
"software_id": "example-app",
"version": "1.2.0",
"release_date": "2026-09-07",
"author": { "name": "PB", "email": "pavel.bartos.pb@gmail.com" },
"description": { "cs": "Ukázkový program pro dokumentaci.", "en": "Example program for documentation." },
"package": { "type": "release" },
"compatibility": {
"os_types": ["linux", "windows"],
"distributions": [{ "id": "ubuntu", "name": "Ubuntu", "versions": ["24.04"] }],
"os_versions": ["Windows 11"]
},
"installation": {
"commands": {
"linux": { "supported": true, "command": "bash ./install.sh" },
"windows": { "supported": true, "command": "& ./install.ps1" }
}
},
"documentation": { "readme": "readme.md" },
"archive_metadata": { "working_directory": "." }
}
| Pole | Význam a pravidla |
|---|---|
software | Název programu nebo modulu, nejvýše 100 znaků. |
software_id | Stálý identifikátor programu, 2–80 znaků a–z, 0–9 a pomlčka. Klient ho používá pro nalezení aktualizace. |
version | Verze, nejvýše 64 znaků. Doporučeno 1.2.3. Povolená jsou písmena, číslice, tečka, pomlčka, podtržítko a plus. Nová verze nesmí přepsat již publikovanou. |
release_date | Povinné datum vydání ve formátu RRRR-MM-DD. Import rozpozná i released_at, release.date a release.released_at, včetně data na začátku ISO timestampu. Chybějící datum doplňte ručně. Čas nahrání se eviduje samostatně. |
description.cs / en | Stručný popis. Formulář načte češtinu, případně angličtinu. Uživatelský obsah se automaticky nepřekládá. |
author | Nepovinný autor a kontakt; zachová se v metadatech. Nevkládejte hesla ani klíče. |
compatibility.os_types | Povinný seznam: linux, windows, macos, other, source. |
compatibility.distributions | Pro Linux ID, název a verze každé podporované distribuce. Alternativou je výslovná volba any_linux_distribution: true. |
installation.commands.OS | Pro každý podporovaný OS uveďte buď supported: true a neprázdný command, nebo supported: false, mode: "manual" s postupem v README. Automatické pomocné skripty se generují pro Linux a Windows. |
documentation.readme | Cesta k README. Pokud chybí, server hledá readme.md; text je před publikací povinný. Importovaný README a manifest mají limit 256 KiB. |
archive_metadata.working_directory | Pracovní složka instalačního příkazu, například . nebo example-app; musí v ZIPu existovat. Pro obalový adresář upravte příklad s tečkou. |
Neznámá pole lze uchovat a upravit v pokročilých metadatech. Název, verze, popis, OS, příkazy, pracovní složka, README a datum potvrzené ve formuláři mají přednost. U starších verzí bez data se zobrazuje „Neuvedeno“; vlastník může datum doplnit.
3. Samostatné moduly: Open a placené
Nejprve vytvořte rodičovský program. Modul nahrajte jako samostatný ZIP a vyberte typ „Modul programu“. Každý modul má vlastní stálé ID, popis, verze a datum vydání. V manifestu lze přidat:
{
"type": "module",
"parent_software_id": "example-app",
"module_id": "monitoring",
"access": "open",
"description": "Monitoring module example."
}parent_software_id určuje program; module_id je unikátní v rámci tohoto programu. Ponechte je stejné v dalších vydáních. Manifest předvyplní typ, rodičovský projekt dostupný vašemu účtu, ID a režim. U existujícího modulu platí uložené nastavení přístupu, nikoli hodnota z dalšího ZIPu.
| Režim | Veřejně dostupné | Stažení a aktualizace |
|---|---|---|
open | Popis, verze, metadata, ZIP, zdroje. | Zdarma bez přihlášení a licence. „Open“ je režim dostupnosti; nenahrazuje licenci ke zdrojovému kódu. Konkrétní podmínky uveďte v README/LICENSE. |
paid | Veřejný popis, číslo verze, datum vydání a základní technické údaje. | Vlastník/admin přes přihlášení; klientský server přes schválené ID, klíč, hostname, IP a aktivní modulovou licenci. |
Platby a fakturace nejsou automatizované. Licenci uděluje oprávněný správce po sjednání podmínek. Původní soukromé moduly zůstávají ve výchozím placeném režimu. Změna režimu ovlivní všechna vydání; již stažené kopie nelze odvolat.
4. Veřejný přehled aktualizací
/updates.json je veřejný JSON soubor, který se obnoví při publikaci nebo změně projektu, modulu či data vydání. Obsahuje aktivní programy a nejvyšší dostupnou verzi každého programu/modulu. Archivované projekty nejsou nabízené k aktualizaci.
/updates.php vrací přehled přímo z aktuálního datového skladu. Umí také porovnat jednu verzi: /updates.php?software_id=example-app&version=1.1.0. Pole update_available je pravdivé pouze pro vyšší dostupnou verzi.
Klient hledá program podle software_id, modul podle dvojice ID programu a modules[].software_id. Čísla verzí porovnává pomocí PHP version_compare, nikoli řazením textových řetězců: 1.10.0 je novější než 1.9.0. Datum vydání neslouží k porovnání verzí.
curl --fail --silent --show-error -H 'Cache-Control: no-cache' \ 'https://update.estudium.eu/updates.php?software_id=example-app&version=1.1.0'
V latest jsou version, release_date (datum autora, u starších dat může být null), published_at (čas publikace v eUpdate), release_id, sha256, bytes, compatibility, requires_license a download_url. Program bez veřejného vydání má latest: null.
Open modul má requires_license: false a veřejný odkaz. Placený má requires_license: true a download_url: null. Konkrétní oprávněný server získá licencované odkazy z autentizovaného POST /check/; veřejný feed žádné licence ani klíče nevydává.
Pro placený download klient posílá X-Server-ID, X-Server-Hostname a připnutý 64hex klíč v X-Eweb-Api-Key nebo Authorization: Bearer …. Před spuštěním staženého balíčku ověřte SHA-256, podporovaný OS a instalační postup vydavatele. Tajný klíč nikdy nevkládejte do URL.
Tato dokumentace popisuje rozhraní serveru. Instalovaný eWeb musí mít klientskou implementaci načtení feedu, porovnání verze a nabídnutí aktualizace; samotné zveřejnění JSONu jeho klientský kód nezmění.
5. Manuál check-inu programu eai-server
Identifikátor projektu: eai-server. Každá instalace pravidelně posílá HTTPS POST na https://update.estudium.eu/check/. Pro strojový POST se nepoužívá přihlášení admin/admin ani browserový CSRF token. Čtení administračního /check/ je nadále jen pro admina.
První registrace
- Pro instalaci jednou vytvořte náhodné stabilní ID (např. UUID) a tajný API klíč: 32 kryptograficky náhodných bajtů zapsaných jako 64 hex znaků.
- ID a klíč uchovejte v soukromé konfiguraci. Další hlášení používají stejnou dvojici; jednotlivé běhy mají pokaždé jiné
checkin_id. Kopie instalace na jiném serveru musí mít vlastní identitu. - Klíč odešlete v hlavičce
X-Checkin-Api-Key. Podporované jsou také X-Eweb-Api-Key, X-Ecast-Api-Key, X-Server-Checkin-Key a Authorization: Bearer. Klíč nevkládejte do URL ani JSON payloadu. - První platný klíč se připne k ID (TOFU). První registrace nezaručuje schválení serveru ani placenou licenci. Při ztrátě klíče musí admin po ověření identity resetovat jeho připnutí; nezkoušejte pro stejné ID náhodné nové klíče.
JSON hlášení
{
"schema": "eupdate-checkin-v1",
"server_id": "00000000-0000-4000-8000-000000000001",
"checkin_id": "0123456789abcdef0123456789abcdef",
"software": "eai-server",
"software_id": "eai-server",
"version": "1.3.0",
"installation": {
"id": "00000000-0000-4000-8000-000000000001",
"installed_at": "2026-09-01"
},
"system": {
"hostname": "node.example.org"
}
}| Pole | Pravidlo |
|---|---|
| software_id | Přesný stabilní identifikátor vloženého programu; propojí hlášení se záložkou Check-in tohoto projektu. |
| server_id / installation.id | Stálá identita dané instalace. U eWeb je podporované také eweb_id a u eCast ecast_id; neposílejte navzájem rozdílná ID. |
| checkin_id | Nových 32 hex znaků pro každé nové hlášení. Při opakování stejného požadavku po výpadku použijte stejné ID. Schéma eweb-checkin-v2 ho vyžaduje. |
| software, version | Název programu a skutečně nainstalovaná verze. Číslo verze neodvozujte z nejnovějšího nabízeného balíčku. |
| installation.installed_at | Nepovinné skutečné datum instalace, datum nebo ISO 8601 čas. Pokud není známé, pole vynechte. Není to datum prvního odeslání hlášení ani datum vydání programu. |
| system.hostname | Skutečný hostname serveru. Pro placené moduly se porovnává se schváleným hostname a IP. |
Hostingový program může přidat webhosting.domains_count a webhosting.domains jako pole objektů s domain, enabled, php_version a ssl.status. Pro detail lze posílat také OS, hardware, software_stack a services. Neposílejte hesla, privátní klíče, databázové přístupy ani jiné přihlašovací údaje.
Příklad odesílacího klienta
Stáhnout příklad klienta pro Python 3
Příklad funguje na Linuxu a Windows s Pythonem 3, bez dalších knihoven. Vytvoří a uchová identitu v privátní složce. Na Linuxu má složka práva 700 a identity.json 600; na Windows omezte přístup ACL na účet služby. Výchozí cesta je ~/.local/state/eupdate-checkin/eai-server/identity.json. Identitu nikdy nepřibalujte do veřejného ZIPu.
python3 send-checkin.py --software-id eai-server --version 1.3.0 --hostname node.example.org --installed-at 2026-09-01
Na Windows použijte py -3 místo python3. Verzi, hostname a datum nahraďte skutečnými hodnotami; neznámé datum vynechte. Jedna složka uchovává identitu jedné instalace. Pro více instalací téhož programu na jednom stroji použijte rozdílné --state-dir. Opakované spuštění pod stejným účtem zachová ID a klíč. Skript neposílá falešné potvrzení instalace ani automaticky neinstaluje aktualizace.
Odpověď, opakování a licence
HTTP 200 a ok: true znamenají zpracování hlášení, nikoli instalaci aktualizace. Odpověď obsahuje request_id, server_id, authentication, duplicate, license_status, updates a modules. updates[].update_available porovnává instalovanou verzi programu. Moduly vybírejte podle parent_software_id a vlastního software_id a porovnejte jejich verze; Open může být nabídnut i před schválením serveru.
Pro placené moduly musí admin schválit skutečný hostname, zdrojovou IP (za NATem veřejnou odchozí IP) a vlastníka serveru. Vlastník projektu/admin pak udělí modulovou licenci. Samotná znalost hostname ani úspěšný první check-in k licenci nestačí.
| HTTP | Reakce klienta |
|---|---|
| 400 / 422 | Opravte JSON nebo povinné údaje, neopakujte beze změny. |
| 401 / 403 | Ověřte formát klíče, jeho připnutí a oprávnění; neměňte automaticky identitu. |
| 413 | Hlášení zmenšete. Aplikační limit je 1 MiB; proxy může mít menší limit. |
| 429 | Zpomalte odesílání. Limit je 120 hlášení za minutu na zdrojovou IP. |
| 5xx / výpadek sítě | Opakujte s prodlevou a náhodným rozptylem, stejným payloadem a checkin_id; nevytvářejte těsnou smyčku. |
Pro malý provoz postačí denní hlášení a hlášení po změně verze; rozložte časy více serverů. Uchovává se posledních 20 hlášení na server, nejde o trvalý audit instalací. Vlastník/admin uvidí projektová hlášení v záložce Check-in, registrovaný vlastník pouze u přiřazených serverů.
Chce-li klient potvrdit přijetí nebo instalaci, může v dalším hlášení přidat checker_feedback s response_id z předchozího request_id a stavem received, downloaded, installed, failed nebo ignored. Stav installed odešlete jen po skutečně úspěšné instalaci. Volitelný error_code má nejvýše 80 znaků a nesmí obsahovat tajné údaje.
6. Jak zjistit verzi a specifikaci balíčku přes JSON
U každého veřejného vydání programu je tlačítko JSON specifikace. Otevře samostatný veřejný soubor /specifications/ID_VYDANI.json, dostupný bez hesla. Soubor obsahuje konkrétní verzi, nikoli vždy nejnovější vydání.
- Otevřete updates.json a v
projectsvyhledejtesoftware_id = eai-server. latest.versionudává nejvyšší dostupnou verzi;latest.release_datejejí datum vydání. Pokud je latest null, program ještě nemá veřejné vydání.- Otevřete URL z
latest.specification_url. U programu vede přímo na jeho .json soubor s úplnou specifikací. - Pro konkrétní starší verzi použijte živé rozhraní níže nebo otevřete její JSON tlačítko v historii vydání.
Nejnovější specifikace programu:
https://update.estudium.eu/specification.php?software_id=eai-server
Konkrétní verze, pokud ji program skutečně zveřejnil:
https://update.estudium.eu/specification.php?software_id=eai-server&version=1.3.0
Rozhraní specification.php vrací Content-Type: application/json stejně jako .json soubor. Nepoužívá přihlášení. Neexistující program nebo verze vrátí HTTP 404. Programové specifikace zůstávají dostupné i po archivaci, protože archivace nemaže vydání. Skutečně smazaná verze už specifikaci nemá.
| Pole specifikace | Co z něj zjistíte |
|---|---|
schema | eupdate-package-specification-v1 |
software_id, version, release_id | Stálý program, číslo verze a interní ID konkrétního balíčku. |
release_date / published_at | Datum vydání autorem / čas publikace v eUpdate. Chybějící staré datum je null. |
install_json | Úplná potvrzená metadata: popis, autor, kompatibilita, závislosti a instalační příkazy. Obsahuje i ruční opravy vydavatele; nemusí být totožný s původním install.json uvnitř neměněného ZIPu. |
bytes, sha256, file_count, languages | Velikost originálního ZIPu, ověřovací hash, počet souborů a rozložení typů zdrojového kódu. |
readme, download_url | Potvrzený návod a URL ke stažení originálního ZIPu. |
Příklad z příkazové řádky
curl --fail --silent --show-error 'https://update.estudium.eu/specification.php?software_id=eai-server&version=1.3.0'
Na Windows lze použít curl.exe. Pro načtení jako objekt v PowerShellu:
$spec = Invoke-RestMethod 'https://update.estudium.eu/specification.php?software_id=eai-server' $spec.version $spec.release_date $spec.install_json.compatibility $spec.install_json.installation.commands
Open modul má také veřejnou specifikaci, ale přes živé rozhraní: /specification.php?software_id=eai-server&module=ID_MODULU&version=1.0.0. ID může být interní ID nebo stálé module_id. Placený modul nemá veřejnou plnou specifikaci, protože může obsahovat soukromé instalační údaje; veřejný updates.json u něj ukáže jen omezený přehled. Změna Open na placený okamžitě zakáže další veřejné čtení specifikace. Dříve stažené kopie nelze odvolat.
Účty, náhledy souborů a veřejné adresy projektů
U přihlášení najdete registraci. Nový účet může ihned spravovat vlastní projekty. Pouze admin mění role v Uživatelé → Upravit → Role. Po změně role se uživatel znovu přihlásí.
Soubory balíčku nabízejí Vzhled a kód pro Markdown a HTML a barevné zvýraznění PHP, C/C++, JS, Python, CSS, JSON a dalších rozpoznaných formátů. HTML má oddělený statický náhled bez skriptů, formulářů a externích zdrojů. CSS a rastrové obrázky mohou pocházet z téhož ZIPu (nejvýše 16 zdrojů / 8 MiB, CSS do 512 KiB a obrázek do 2 MiB). CSS importy a obrázky odkazované přes CSS URL se nenačítají.
Každý projekt má veřejnou adresu /LOGIN/SLUG, obsah dostupný bez JavaScriptu, popis, canonical a metadata pro sdílení. sitemap.xml se automaticky aktualizuje při každé změně projektu, verze či modulu včetně archivace, smazání a obnovy zálohy. Vytváří se pouze sitemap.xml. Archivované projekty v něm nejsou a mají noindex; smazané vracejí 404.
Ukázkový balíček v angličtině
Stáhnout kompletní ukázkový ZIP
Obsahuje install.json, README, složku programu, vstupní skripty pro Linux a Windows a ukázky HTML, CSS a C. Nahráním vyzkoušíte import metadat. Ukázkové skripty pouze vypíší zprávu.
Údaje vydavatele a komunita
Upload předvyplní author.name, author.email, author.website a project.website (náhradně homepage). Vydavatel je může upravit před publikací. Autor v manifestu je oddělen od vizitky účtu; veřejné ZIPy a specifikace obsahují e-mail autora uvedený přímo v balíčku. E-mail účtu se tam automaticky nekopíruje.
{
"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"}
}Registrace vyžaduje neveřejný e-mail a souhlas se zveřejněním vizitky. Přezdívku, popis, CV, fotku a web upravíte v Můj účet. Souhlas lze zrušit a vizitku skrýt. Veřejné hledání nikdy nehledá ani nezobrazuje e-maily. Spolupracovníka přidáte přesným loginem či e-mailem; může upravovat všechny současné i budoucí projekty zvoucího účtu. Další spolupracovníky spravuje pouze vlastník. Zprávy vidí jen odesílatel a příjemce; nepřečtené se ukazují po přihlášení.
Admin může ostatní účty blokovat, odblokovat a mazat. Smazání nejprve vytvoří úplnou zálohu a převede projekty a servery na aktivní účet. Score popularity je 5 × stažení ZIP + prohlížení projektu; návštěvy správců projektu se nezapočítají a opakování v téže relaci nejvýše jednou za 30 minut. Jde o ukazatel aktivity, nikoli počet unikátních lidí.
Viditelnost a odkazy ke stažení přes SecretID
Veřejný/neveřejný nastavíte při vytváření projektu nebo modulu a později změníte v Nastavení projektu či editoru modulu. Neveřejné projekty včetně modulů nejsou ve veřejném katalogu, vizitkách, sitemap ani aktualizačních JSONech. Skrýt lze i jednotlivý modul veřejného projektu. Admin, vlastník a jeho spolupracovníci mají přístup dál.
Každý projekt a modul má vlastní náhodné SecretID. V Nastavení zkopírujete odkaz na ZIP nejnovější verze. Kdokoli s odkazem může stáhnout ZIP bez přihlášení a licence, včetně placeného modulu. Klíč projektu platí jen pro program; klíč modulu jen pro příslušný modul. Obnovení klíče zneplatní staré odkazy. SecretID umožňuje pouze stažení ZIPu, nikoli správu, náhled souborů nebo přístup k JSON specifikaci.
GET /download.php?project=PROJECT_ID&secret_id=PROJECT_SECRET GET /download.php?project=PROJECT_ID&module=MODULE_ID&secret_id=MODULE_SECRET
Pro konkrétní verzi přidejte &release=RELEASE_ID; jinak se vrátí nejvyšší verze. Místo parametru v URL lze poslat hlavičku X-Project-Secret. Již stažené kopie nelze odvolat. Odkaz uchovávejte jako heslo; běžný přístupový log webserveru může URL zaznamenávat. Běžný přístup serverů k placeným modulům dál vyžaduje schválenou identitu a aktivní licenci modulu.
Import z GitHubu
Po přihlášení vyberte Import z GitHubu a vložte https://github.com/AUTOR/REPOZITAR. Volitelně zadejte větev, tag nebo commit; prázdné pole použije výchozí větev. Funguje také odkaz /tree/VETEV. eUpdate zjistí commit a stáhne ZIP se snímkem zdrojů. Nepřenáší historii Git, issues ani samostatné přílohy vydání. Před publikací ověřte submoduly, obsah Git LFS a licenci zdrojového projektu.
eUpdate načte install.json a README, předvyplní autora a web projektu. Kde údaje nejsou v manifestu, použije název, popis a web repozitáře. Chybějící verzi, datum vydání, podporované OS a postup instalace doplníte ve formuláři. Zkontrolujte pracovní složku: GitHub přidává obalový adresář. Do potvrzení formuláře se nic nepublikuje. V metadatech zůstane adresa repozitáře, větev/tag a commit.
Podporovány jsou veřejné repozitáře github.com bez tokenu. Soukromý repozitář nahrajte jako exportovaný ZIP. Hosting eUpdate potřebuje odchozí HTTPS k api.github.com a codeload.github.com, důvěryhodné CA certifikáty a PHP HTTPS streamy. Limit je 6 importů z jedné IP za hodinu, ZIP 512 MiB a rozbalení 2 GiB. GitHub má také vlastní limity. Velký import může překročit timeout proxy hostingu; v takovém případě použijte upload ZIPu.
Veřejné vizitky autorů a vCard
Každý aktivní autor se souhlasem s vizitkou má veřejnou stránku /profile.php?id=USER_ID, odkazovanou z projektu a zařazenou do sitemap.xml. Jméno, popis, CV a veřejné projekty jsou čitelné bez JavaScriptu. Vizitka má canonical, metadata pro sdílení a strukturovaná data ProfilePage/Person. Odvolání souhlasu, blokace nebo smazání účtu odstraní vizitku ze sitemap a znepřístupní stránku, fotku i vCard.
V Můj účet vyplňte telefon, osobní web, LinkedIn, e-mail a Wikipedii a samostatně zaškrtněte zveřejňované kontakty. Výchozí volby jsou vypnuté, i u stávajících účtů. Volby platí pro HTML, API, strukturovaná data a vCard. Popis a CV jsou se souhlasem veřejné: nevkládejte do nich kontakt, který chcete skrýt. E-mail účtu bude veřejný pouze se zaškrtnutou vlastní volbou.
/vcard.php?id=USER_ID stáhne vCard 4.0 s přezdívkou, popisem, vybranými kontakty a vloženou fotografií. Podpora vložených obrázků se mezi kontaktními aplikacemi liší. Zachová se UTF-8, CRLF a standardní zalamování řádků. Již stažené vizitky ani cache cizích vyhledávačů nelze odvoláním zveřejnění stáhnout zpět.
Nastavení měření Google
Admin → Nastavení eUpdate nabízí Vypnuto, GA4 (G-…) nebo Google Tag Manager (GTM-…). Ukládá se pouze ID, nikoli vložený skript. Měření je ve výchozím stavu vypnuté. Místní ovládání souhlasu načte Google až po Povolit; Odmítnout nenačte vzdálenou značku. Nastavení měření umožní souhlas odvolat a načte stránku znovu bez měření. Přihlášení uživatelé, neveřejné projekty, API, ZIPy a administrace měřicí skript nedostávají.
Ve webovém streamu GA4 vypněte Rozšířené měření, zejména změny historie, formuláře a odchozí kliknutí. eUpdate odesílá ruční page_view pro veřejně načtené stránky a otevřené projekty/vizitky; používá očištěnou page_location, obecný page_title a prázdný page_referrer. Neodesílá hledané texty, kontakty ani SecretID. Samotné přepnutí každé záložky s hashem se jako pageview nepočítá. GTM nastavte na vlastní událost eupdate_page_view a datové proměnné page_location, page_title, page_referrer. V kontejneru nepovolujte sběr formulářů/kontaktů, další trackery ani history triggers. Obsah kontejneru se spravuje v Google; CSP webu záměrně nepovoluje libovolné cizí hosty ani unsafe-eval.
Backup obsahuje nastavení a ovládání souhlasu; nezakládá účet, property ani kontejner Google. Po nasazení ověřte ID v Google Realtime s uděleným souhlasem. Strukturovaná data a sitemap pomáhají čitelnosti webu pro vyhledávače, nezaručují indexaci ani pozici.
Zdrojový kód nezávislý na OS
Pro zdrojový balíček, například HTML nebo přenositelnou PHP aplikaci, použijte compatibility.os_types: ["source"]. Ve formuláři vyberte Zdrojový kód / nezávislé na OS. Není nutný konkrétní systém, distribuce Linuxu ani automatický instalační příkaz. Název, software_id, verze, datum vydání, popis a README zůstávají povinné.
V README popište potřebnou verzi PHP/runtime, rozšíření, prohlížeč, databázi, konfiguraci a postup nasazení. Volitelná pole requirements se zachovají v manifestu. Source je kategorie distribuce, nikoli záruka nativního běhu na každém systému. Lze ji kombinovat s konkrétními OS; pro ty se dál vyžadují jejich běžné instalační údaje.
Pro source eUpdate uloží installation.commands.source = {"supported":false,"mode":"manual","command":null}. Z této kategorie se nevytváří instalátor Linux/Windows. Stahování ZIP, verze, moduly, GitHub import a aktualizační/specifikační JSON fungují dál. Klient má rozpoznat source jako přenositelný balíček a nabídnout README místo pokusu o nativní instalaci.
Stáhnout zdrojový install.json · Stáhnout kompletní zdrojový ZIP (EN)
{"compatibility":{"os_types":["source"]},"documentation":{"readme":"README.md"}}Lokální zálohy a retence
Každá úspěšná záloha se uloží neveřejně na serveru a lze ji opakovaně stáhnout v Zálohy. Uchovávají se dvě nejnovější úspěšné zálohy každého vytvářejícího účtu, dohromady pro projekty, celý archiv i automatické zálohy před změnami. Třetí dokončená záloha odstraní nejstarší ZIP a metadata. Při chybě vytváření se existující zálohy nemažou. Limit se uplatní při další záloze daného účtu; neodstraňuje kopie stažené do počítače. Admin vidí zachované zálohy všech účtů.
Adresářová struktura zálohy
Interní zálohy používají schema estudium-update-backup-v2 a zachovávají packages/login/projekt/verze a packages/login/projekt/_modules/modul/verze. Pole storage_path odpovídá cestám v ZIPu, i při exportu starých ID adresářů. Restore 1.4.0 načte úplné zálohy v1 i v2. Pro nové v2 použijte aktuální nástroj obnovy. Formát doménové zálohy eWeb zůstává eweb-backup-v3.
Autor programu: PB, pavel.bartos.pb@gmail.com
Git clone
Projekt lze přímo klonovat standardním Gitem pro Linux i Windows:
git clone https://update.estudium.eu/git/eai-server.git
git clone --branch v1.0.0 --single-branch --depth 1 https://update.estudium.eu/git/eai-server.gitKonkrétní příkaz je v projektu a u každého vydání s tlačítkem Kopírovat.
Větev main obsahuje všechna vydání projektu ve složkách podle verze,
například ecast-pipe-server/0.9.8/README.md. Další verze leží vedle sebe,
takže po git pull zůstanou i předchozí vydání. Pokud všechny soubory ZIPu
sdílejí jediný obalový adresář, tento obal se odstraní. Stejně se odstraní
obal pojmenovaný podle projektu nebo projektu a verze, pokud vedle něj leží
jen install.json: metadata i obsah obalu budou přímo ve složce verze.
Například eweb-server/0.8.10/README.md, bez dalšího eweb-server-0.8.10/.
U více hlavních složek, dalších kořenových souborů nebo kolize názvů se
vzájemná struktura zachová, aby se žádný soubor nepřepsal.
Originální ZIPy ani jejich obsah se nemění. Samostatné moduly se nepřidávají.
Příkaz u jednotlivého vydání stáhne pouze toto vydání. Tag vVERZE obsahuje
jen složku VERZE se soubory vybraného vydání, bez historie ostatních verzí.
Volby --single-branch --depth 1 omezují také přenos Git objektů. Samotné
--branch vybírá obsah pracovní složky, ale neomezuje stažení ostatních referencí.
Například u 0.9.8 vznikne pouze ecast-pipe-server/0.9.8/ s jejími soubory.
Verze neplatná
pro název Git tagu dostane tag release-ID; příkaz je uvedený u vydání.
Veřejné aktualizační API nadále vybírá nejvyšší verzi podle version_compare.
Historie vzniká z publikovaných ZIPů, nepřebírá původní GitHub commity.
Cesty obsahující .git se z Git výstupu vynechávají.
Po importu opravené zálohy 1.7.7 použijte nový klon do prázdné cílové složky.
Odstranění nadbytečných obalů mění stromy a commity dotčených vydání i větev
main. Další nová vydání pak v main přibývají přes git pull.
Klon jednotlivé verze zůstává u této verze;
pro jiné vydání použijte jeho vlastní příkaz a volnou cílovou složku.
Git rozhraní podporuje clone, fetch a pull, nikoli push. Po smazání vydání
správcem se historie zbývajících vydání sestaví znovu; použijte nový clone.
Kopii již staženou uživatelem smazání na serveru neodstraní.
Neveřejný projekt vyžaduje jeho SecretID v hlavičce:
git -c http.extraHeader="X-Project-Secret: SECRET_ID" clone https://update.estudium.eu/git/eai-server.git
git -c http.extraHeader="X-Project-Secret: SECRET_ID" -C ADRESAR fetch --tagsPříkaz lze použít v shellu Linuxu i PowerShellu. SecretID získáte ve správě
svého projektu; neuvádějte jej do veřejného README. Klíč není součástí remote
URL v .git/config, při dalším fetch/pull jej zadejte znovu. Rotace klíče
okamžitě odmítá další požadavky se starým klíčem. Veřejné projekty klíč
nepotřebují. Klíč programu neodemyká placené ani neveřejné samostatné moduly.
Ukládání dat od eUpdate 1.4
Účty, profily, projekty, verze, moduly, licence, zprávy, nastavení,
dokumentace, audit, statistiky a evidence záloh jsou v MySQL/MariaDB.
Hlášení check-inů zůstávají JSON: nejvýše tři poslední na server ID,
nikoli pouze tři servery. Opakování již uchovaného checkin_id netvoří kopii.
Interní log checkeru uchovává samostatně v MySQL 2 000 diagnostických událostí.
Veřejné updates.json a specifikace jsou automaticky přegenerované exporty.
Hostované domény v check-inu eWebu
Pro zobrazení názvů musí klient odeslat seznam webhosting.domains společně
s webhosting.domains_count. Samotný počet neobsahuje názvy a eUpdate je
nedohledává ani nedomýšlí. Přehled a detail serveru ukazují domény přímo,
SSL/PHP a odkaz pro otevření; historie ukazuje seznam z konkrétního hlášení.
Starší eWeb klient zasílající pouze počet potřebuje doplnit seznam ve svém
odesílači check-inu. Admin může názvy také doplnit ručně ve správě serveru.
Neodesílejte hesla, přístupové tokeny, databázové údaje ani neveřejné cesty.
{"webhosting":{"domains_count":2,"domains":[
{"domain":"example.org","enabled":true,"ssl":{"status":"active"},"php_version":"8.5"},
{"domain":"static.example.org","enabled":true,"ssl":{"status":"active"}}
]}}Projekt typu Hostovaný web
V Nastavení projektu vyberte Typ projektu → Hostovaný web. Zadejte URL
a technologie PHP, JavaScript, HTML, CSS, Node.js, Python, Ruby nebo Jiné.
Volby můžete později změnit. Web má nadále své ZIP verze, moduly a Git clone.
Nastavení eviduje typ a adresu již hostovaného webu; nasazení proveďte na
svém hostingu podle README. Pro balíčky nezávislé na OS použijte v
install.json compatibility.os_types: ["source"].
Veřejný feed a JSON specifikace obsahují project_type: "hosted_web" a
hosting: {"url":"https://example.org","technologies":["php","javascript"]}.
U neveřejného projektu zůstávají tyto údaje chráněné stejně jako projekt.
Vzdělání a publikace autora
V Můj účet → Moje vizitka lze vyplnit nejvyšší dosaženou úroveň EQF,
tituly a kvalifikace (například CSc., Ph.D. nebo DBA), akademickou hodnost
(docent/profesor) a školu s oborem. EQF se neodvozuje automaticky z titulu.
Orientační české úrovně: EQF 2 ZŠ, EQF 3 učební obor s výučním listem,
EQF 4 maturita, EQF 5 profesní kvalifikace úrovně 5, EQF 6 VOŠ/DiS. nebo
bakalářské vzdělání, EQF 7 magisterské, EQF 8 doktorské vzdělání.
Podrobnosti: Europass – EQF.
Publikace přidávejte samostatně: název (povinný), rok, vydavatel/časopis a
HTTP/HTTPS odkaz, případně DOI ve tvaru https://doi.org/.... Záznamy lze
upravovat a odstraňovat; maximum je 100. Změny se potvrdí uložením vizitky.
Vyplněné vzdělání a publikace jsou automaticky veřejné v aktivní veřejné
vizitce, jejím JSON a vCard. Nepotřebují další přepínač zveřejnění. Souhlas
s veřejnou vizitkou lze odvolat; nastavení neveřejných kontaktů zůstává platné.
Jde o údaje vyplněné autorem, nikoli o ověření diplomů službou eUpdate.
Export webového projektu jako eWeb backup
- V nastavení projektu vyberte Hostovaný web, například s technologií PHP.
- Otevřete projekt a zvolte Export pro eWeb. Exportovat smí vlastník,
jeho spolupracovníci a administrátor. SecretID toto oprávnění neposkytuje.
- Vyberte verzi, cílovou doménu bez protokolu a webovou složku uvnitř balíčku.
. zahrne celý balíček; web, public nebo dist zahrne jen danou složku.
Její obsah bude přímo v /var/www/cilova-domena/web/. Návrh složky podle
index.php/index.html před exportem zkontrolujte. Pro framework s neveřejnými
soubory mimo tuto složku připravte kompletní nasazovací strukturu zvlášť.
- Stáhněte vytvořený ZIP a importujte jej do obnovy záloh eWeb.
ZIP používá eweb-backup-v3: backup.json, data-www.tar.zst, readme.md
a SHA256SUMS. Webový TAR obsahuje jen povolené kořeny web/, private/,
config/, logs/, cron/; žádný vrchní tmp/. Obsahuje vybrané soubory
vydání, základní konfiguraci domény a nově vygenerované přihlašovací údaje.
Součástí nejsou živá databáze, jiné moduly, TLS klíče ani data služby eUpdate.
Zabalený SQL soubor je běžný soubor projektu; export ho neimportuje do MySQL.
Pro novou doménu obnovte identitu a soubory. Číselné UID/GID se přidělí
na cílovém serveru, proto eWeb může upozornit na zálohu bez historické identity.
Pro existující doménu obnovte pouze soubory, chcete-li zachovat její účet,
heslo a nastavení. Obnova identity změní konfiguraci a heslo účtu. Obnova souborů
nahrazuje stávající strom webu; před ní vytvořte zálohu živého webu.
Export obsahuje heslo v credentials.password_b64; base64 není šifrování.
Stažení je přístupné pouze tvůrci zálohy a adminovi, ZIP uchovávejte neveřejně.
PHP se zapne, obsahuje-li zvolená složka PHP/PHTML; konkrétní runtime dodá
cílový eWeb. HTML a klientský JavaScript fungují jako statické soubory.
Export nespouští sestavení JavaScriptu ani nekonfiguruje službu Node.js.
Pro tvorbu exportu musí být na serveru eUpdate dostupné Python 3, zstd a PHP
proc_open. Platí limit 30 000 souborů / 2 GiB rozbalených dat. Lokálně se
uchovávají dvě nejnovější zálohy na účet, společně s ostatními zálohami.
Přepsaná vydání od 1.7.2
Přepsání vydání zachová jeho ID, ale změní obsah tagu a případně navazující
historii. Použijte git fetch --force --tags origin a změny si prohlédněte,
nebo vytvořte nový klon. Podrobnosti: Provozní návod.
Git po obnově eWeb od 1.7.7
Git používá původní ZIP vydání a kontroluje jeho SHA-256. Funguje i tehdy,
když obnova eWeb vynechá některé rozbalené soubory ve složce source/config
(nebo v config uvnitř obalové složky). Při prvním klonování se obnoví cache;
cron ani další nastavení pro tuto opravu nejsou potřeba.
Pokud chybí samotný ZIP nebo nesouhlasí jeho kontrolní součet, Git vrátí 503.
Stáhněte balík v Nastavení eUpdate → Diagnostika. PHP log obsahuje záznam
eUpdate git release s vydáním a důvodem selhání. Archiv opravte obnovením
správné zálohy nebo přepsáním konkrétního vydání ověřeným ZIPem.