No description
  • PHP 42.9%
  • TypeScript 39.9%
  • CSS 5.6%
  • JavaScript 5.4%
  • SCSS 4.4%
  • Other 1.7%
Find a file
Lukáš Prokorát 7e04e7ed6a
All checks were successful
Nasazení na produkci / build (push) Successful in 2m49s
Deploy: kořenový .htaccess před migracemi (rozbitý blokoval API i vlastní opravu)
2026-10-27 15:04:10 +01:00
.forgejo/workflows Nasazení: cesty pro Wedos (/www/domains/klubmh.cz), api/index.php hledá pascal-app v nadřazených složkách 2026-10-27 13:59:46 +01:00
api Automatizované nasazení na produkci (Forgejo → FTPS Wedos) + migrace přes API 2026-10-27 13:49:18 +01:00
docs Deploy: aplikace nesmí do veřejné části /www (kromě chráněné _pascal-app) 2026-10-27 14:02:15 +01:00
legacy/v2 PASCAL CMS 3.0: PHP REST API, React administrace, import dat z 2.x 2026-10-27 12:50:14 +01:00
scripts Deploy: kořenový .htaccess před migracemi (rozbitý blokoval API i vlastní opravu) 2026-10-27 15:04:10 +01:00
site htaccess: bez Options/<If>/php_flag – Wedos je v .htaccess nepovoluje (HTTP 500 celého webu) 2026-10-27 14:47:43 +01:00
web Automatizované nasazení na produkci (Forgejo → FTPS Wedos) + migrace přes API 2026-10-27 13:49:18 +01:00
.editorconfig PASCAL CMS 3.0: PHP REST API, React administrace, import dat z 2.x 2026-10-27 12:50:14 +01:00
.gitattributes Automatizované nasazení na produkci (Forgejo → FTPS Wedos) + migrace přes API 2026-10-27 13:49:18 +01:00
.gitignore Automatizované nasazení na produkci (Forgejo → FTPS Wedos) + migrace přes API 2026-10-27 13:49:18 +01:00
dev.bat Veřejný web v Reactu (site/), balíček a návod pro nasazení 2026-10-27 13:23:43 +01:00
README.md Nasazení na produkci automaticky při každém push do main 2026-10-27 13:54:19 +01:00

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

  1. Dump databáze verze 2.x nahrát do stejné databáze jako nové schéma (tabulky pascal_* a pcms_* se nekryjí).
  2. php api/bin/migrate.php
  3. php 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.