- PHP 42.9%
- TypeScript 39.9%
- CSS 5.6%
- JavaScript 5.4%
- SCSS 4.4%
- Other 1.7%
|
All checks were successful
Nasazení na produkci / build (push) Successful in 2m49s
|
||
|---|---|---|
| .forgejo/workflows | ||
| api | ||
| docs | ||
| legacy/v2 | ||
| scripts | ||
| site | ||
| web | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| dev.bat | ||
| README.md | ||
PASCAL CMS 3.0
Systém pro správu obsahu webů — nová verze (PHP REST API + React administrace). Původně vyvinut pro KLUB Mn. Hradiště s.r.o. (klubmh.cz),
verze 2.x je archivována v legacy/v2/.
| Složka | Obsah |
|---|---|
api/ |
PHP 8.2+ REST API (PDO, MySQL/MariaDB), migrace, import dat z verze 2.x |
web/ |
administrace: React 19, Vite, TypeScript, Tailwind 4, shadcn/ui, TinyMCE |
site/ |
veřejný web klubmh.cz: React 19, Vite, TypeScript, vzhled šablony Dimension z verze 2.x |
docs/ANALYSIS.md |
analýza verze 2.x (zejména administrace), nálezy, návrh verze 3.0 |
docs/API.md |
kontrakt REST API |
legacy/v2/ |
původní kód (bez tajných údajů a knihoven třetích stran) — jen reference |
Vývoj
Rychlý start na Windows: dev.bat (spustí dev MariaDB z D:\REACT\.pascal-devdb, pokud neběží, API na 8090, veřejný web na
http://localhost:5175/ a administraci na http://localhost:5173/admin/).
Požadavky: PHP ≥ 8.2 (pdo_mysql, mbstring, gd, fileinfo, openssl), Composer, Node ≥ 22, MySQL 8 / MariaDB ≥ 10.5.
# API
cd api
copy .env.example .env # doplnit DB_DSN, DB_USER, DB_PASS
composer install
php bin/migrate.php
php bin/create-admin.php --email=vy@example.cz --login=admin --password=...
php -S 127.0.0.1:8090 -t public router.php
# administrace (v druhém terminálu)
cd web
npm install
npm run dev # http://127.0.0.1:5173/admin/ (proxy /api → :8090)
Veřejný web
cd site
npm install
npm run dev # http://localhost:5175/ (proxy /api a /media → :8090)
npm run build # site/dist → kořen webu (vedle api/, admin/, media/)
Routy, nasazení a .htaccess (SPA fallback, cache, přesměrování starého index.php a odkazů /#a123) popisuje
site/README.md.
Podrobnosti jsou v api/README.md, web/README.md a site/README.md.
Migrace ze starého CMS
- Dump databáze verze 2.x nahrát do stejné databáze jako nové schéma (tabulky
pascal_*apcms_*se nekryjí). php api/bin/migrate.phpphp api/bin/import-legacy.php --media-dir=<složka /media z FTP> --adopt-orphans --dry-run, po kontrole reportu bez--dry-run.
Stará hesla (MD5) se při prvním přihlášení automaticky přehashují. Uživatelé bez dokončené registrace dostanou novou pozvánku z administrace.
Bezpečnostní poznámky
- Do repozitáře nepatří
.env, dumpy databáze ani nahrané soubory (viz.gitignore). - Tajné údaje, které byly v kódu verze 2.x (heslo k DB, SMTP heslo, reset token, Google Maps klíč), považujte za vyzrazené a změňte je.
- Push na
git.vrmnt.net:scripts/git-push.ps1(opakuje push při selhání credential provideru).
Nasazení
Automatické nasazení na produkci: Forgejo workflow .forgejo/workflows/deploy.yml (automaticky při každém push do main). Balíček lokálně: node scripts/build-release.mjs → release/. Postup včetně jednorázových ručních kroků: docs/DEPLOY.md.