尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Online dárkové boxy s poukazy v PDF. Příjemce otevře odkaz (např. https://darky.cz/bekalo-mitusa),
zadá heslo a ve stanovený čas si dárek „rozbalí“. Dárky se balí v Ježíškově dílně na /dilna, kterou si může založit kdokoli.
/dilna si ji kdokoli založí jedním kliknutím (název a e-mail jsou nepovinné) a dostane tajný odkaz …/dilna#klic=…. Odkaz je jediný klíč: kdo ho má, může dárky upravovat, takže jde i sdílet. V dílně se dá kdykoli zobrazit a zkopírovat, nebo vyměnit za nový (starý přestane platit a ostatní zařízení se odhlásí). Na zařízení, kde se odkaz jednou otevřel, zůstane přihlášení rok. Dílnu jde smazat i se všemi boxy a PDF.bekalo-mitusa), dobře se čte i opisuje. Kód jde kdykoli vygenerovat znovu.web/ frontend (Vite): index.html = příjemce, admin.html = dílna, assets/
api/index.js Vercel serverless funkce – vstup pro celé /api/*
server/ Node backend: app.js (API), security.js, storage/ (fs | Upstash+Blob),
standalone.js (vlastní server), node-adapter.js, env.js
php/ PHP backend se stejným API (PHP 7.4+, Apache + mod_rewrite)
scripts/ build-php.mjs, test.mjs
tests/api.mjs end-to-end testy API (běží proti Node i PHP)
vite.config.js build + dev server s API
vercel.json nastavení Vercelu (build, přepisy adres, hlavičky)
| Příkaz | Co dělá |
|---|---|
npm run dev | Vite na http://localhost:5173 i s API (data do ./data), dílna na /dilna |
npm run build | frontend do dist/ (to nasazuje Vercel) |
npm run build:php | hotová složka build/php/ pro PHP hosting |
npm start | samostatný Node server nad dist/ (VPS, Docker) |
npm test | testy API proti Node backendu (souborové úložiště + Redis/Blob v paměti); npm test -- <url> proti libovolnému běžícímu backendu, např. PHP |
Data jsou mezi backendy přenositelná (stejný JSON i formát hashů hesel). Popis API je v API.md.
Jednorázové nastavení:
vercel.json (Vite).KV_REST_API_URL a KV_REST_API_TOKEN (nebo UPSTASH_REDIS_REST_*). Fungují obě varianty.BLOB_READ_WRITE_TOKEN.present → present_KV_REST_API_URL), aplikace proměnné najde sama. STORAGE_ENV_PREFIX=present je potřeba jen tehdy, když je v projektu připojených víc Redis databází. Všechny klíče v Redisu začínají na xd:, takže se s jiným projektem nepotkají. Jiný začátek jde nastavit přes REDIS_KEY_PREFIX.APP_SECRET = dlouhý náhodný řetězec (openssl rand -base64 32), povinnýSIGNUP_CODE, pokud nechceš, aby si dílnu mohl založit kdokoliPak už každý push do main nasadí produkci a každá jiná větev nebo PR dostane náhledovou adresu.
Dílny se zakládají na https://<projekt>.vercel.app/dilna.
Limit PDF na Vercelu je 4 MB. Víc Vercel funkce v jednom požadavku nepřijme. Změní se proměnnou
MAX_UPLOAD_MB, ale nad ~4,5 MB to nepomůže. Při veřejném Blob úložišti nastavBLOB_ACCESS=public. Soubory se i tak posílají jen přes API, adresa blobu se nikam nedostane.
npm ci
npm run build:php # → build/php/
build/php/ (včetně .htaccess) nahraj přes FTP do webrootu nebo podsložky.config.sample.php → config.php a vyplň APP_SECRET (případně SIGNUP_CODE).DATA_DIR mimo veřejný webroot. Když zůstane uvnitř, chrání ho .htaccess.mod_rewrite (běžně ano) a PHP 7.4 nebo novější s json, mbstring, hash.upload_max_filesize a post_max_size.Lokální zkouška: cd build/php && php -S localhost:8000 router.php.
cp .env.example .env # vyplň APP_SECRET
npm ci && npm run build
npm start # http://localhost:3000, data v ./data
Za reverzní proxy (nginx, Caddy) posílej X-Forwarded-Proto, aby cookie dostala příznak Secure.
APP_SECRET, aby šel odkaz v dílně znovu ukázat. Klíč je v části adresy za #, takže se neposílá na server v adrese a nezůstane v jeho logech. Po přihlášení ho stránka z adresního řádku hned odstraní.X-Admin chrání proti CSRF.MAX_GIFTS boxů (50) a MAX_STORAGE_MB místa na PDF (100 MB). Volitelný SIGNUP_CODE omezí zakládání dílen.