Instalace
Zprovozněte CatCMS lokálně nebo jej nasaďte do produkčního prostředí. Tento průvodce pokrývá vše od předpokladů až po vytvoření prvního obsahu.[object Object]
Předpoklady
Než začnete, ujistěte se, že máte nainstalováno následující:
- Node.js(verze 20 nebo vyšší)
- npmnebopnpm
- Git
- Účet Cloudflare(pro nasazení a produkční použití)
Doporučené nástroje
- TypeScriptznalost (projekt je plně typovaný)
- Visual Studio Code(pro nejlepší zážitek s TypeScriptem)
- Wrangler CLI(nainstaluje se automaticky se závislostmi)
Rychlý start
Možnost 1: Vytvořit nový projekt (doporučeno)
Začněte za méně než 60 sekund s oficiálním CLI:
# Create a new CatCMS project
npx create-catcms my-cms
# Navigate to project
cd my-cms
# Start development server
npm run dev
Vaše instance CatCMS bude dostupná nahttp://localhost:8787
Možnost 2: Klonovat repozitář (Vývoj)
Pro přispívání nebo vývoj samotného CatCMS:
# Clone the repository
git clone https://github.com/catcms-app/catcms-app.git
cd catcms-ai
# Install dependencies
npm install
# Start development server
npm run dev
Nastavení vývojového prostředí
1. Instalace závislostí
npm install
Tím se nainstalují všechny potřebné závislosti, včetně:
- Hono- Ultrarychlý webový framework
- Drizzle ORM- Typově bezpečné databázové dotazy
- Wrangler- CLI pro Cloudflare Workers
- Vitest- Framework pro unit testy
- Playwright- Framework pro E2E testy
2. Nastavení databáze
CatCMS používá Cloudflare D1 (SQLite) pro lokální vývoj i produkci.
Spustit migrace lokálně:
npm run db:migrate
Tento příkaz aplikuje všechny databázové migrace a vytvoří počáteční schéma, včetně:
- Tabulky pro autentizaci uživatelů
- Obsah a kolekce
- Knihovna médií
- Systém pluginů
- Workflow a automatizace
- Šablony e-mailů
Dostupné databázové příkazy:
# Generate new migration files (if you modify schema)
npm run db:generate
# Apply migrations to local database
npm run db:migrate
# Apply migrations to production
npm run db:migrate:prod
# Open interactive database studio (Drizzle Studio)
npm run db:studio
Konfigurace prostředí
CatCMS se konfiguruje pomocíwrangler.jsoncnamísto souborů .env.
wrangler.jsonc(automaticky nakonfigurováno):
name = "catcms-ai"
main = "src/index.ts"
compatibility_date = "2024-06-01"
[vars]
ENVIRONMENT = "development"
[[d1_databases]]
binding = "DB"
database_name = "catcms-dev"
database_id = "your-database-id"
[[r2_buckets]]
binding = "MEDIA_BUCKET"
bucket_name = "catcms-media-dev"
[[kv_namespaces]]
binding = "CACHE_KV"
id = "your-kv-id"
Vazby klíčů:
- DB- Databáze D1 pro veškeré ukládání dat
- MEDIA_BUCKET- R2 bucket pro soubory médií
- CACHE_KV- KV jmenný prostor pro cachovací vrstvu
- ASSETS- Poskytování statických aktiv
Spustit vývojový server
npm run dev
Co se děje při spuštění:
-
Fáze bootstrapu:
- Spustí databázové migrace
- Synchronizuje konfigurace kolekcí
- Spouští základní pluginy (auth, media, cache, database-tools, seed-data)
- Instaluje demo pluginy (workflow, FAQ, demo-login)
-
Server připraven:
- Administrační rozhraní: http://localhost:8787/admin
- API dokumentace: http://localhost:8787/api
- Kontrola stavu: http://localhost:8787/health
První kroky
1. Přístup k administračnímu panelu
Přejděte nahttp://localhost:8787/admin
Výchozí přihlašovací údaje(pokud jsou načtena vzorová data):
- E-mail: admin@catcms.app
- Heslo: admin123
Poznámka:demo-login-pluginse tyto přihlašovací údaje ve vývojovém prostředí vyplňují automaticky.
2. Vytvořte svůj první obsah
Přes administrátorské rozhraní:
- Přejděte naObsah→Nový obsah
- Vyberte kolekci (např. „Příspěvky na blogu“)
- Vyplňte pole:
- Název: „Můj první příspěvek“
- Slug: “my-first-post” (automaticky generovaný)
- Obsah: Napište svůj obsah
- Stav: „publikováno“
- Klikněte naUložit
Přes API:
# Get auth token
curl -X POST http://localhost:8787/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@catcms.app","password":"admin123"}'
# Create content
curl -X POST http://localhost:8787/admin/content \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"collection": "blog_posts",
"title": "My First Post",
"data": {
"slug": "my-first-post",
"content": "<p>Hello World!</p>",
"status": "published"
}
}'
3. Prozkoumejte API
Dokumentace API:Navštivte**http://localhost:8787/api**pro interaktivní dokumentaci OpenAPI.
Klíčové endpointy:
# Health check
GET /health
# List collections
GET /api/collections
# Get all content (paginated)
GET /api/content?limit=50
# Get collection content
GET /api/collections/blog_posts/content
# Get single content item
GET /api/content/:id
# Search content
GET /api/content?search=keyword
Dostupné skripty
Vývoj
| Příkaz | Popis |
|---|---|
npm run dev | Spustit vývojový server s Wranglerem |
npm run build | Kompilace TypeScriptu + nasazení nanečisto |
npm run deploy | Nasazení na Cloudflare Workers |
npm run predeploy | Spustit testy + sestavení před nasazením |
Databáze
| Příkaz | Popis |
|---|---|
npm run db:generate | Generovat migrační soubory ze změn schématu |
npm run db:migrate | Aplikovat migrace na lokální databázi D1 |
npm run db:migrate:prod | Aplikovat migrace na produkční databázi |
npm run db:studio | Otevřít Drizzle Studio (databázové GUI) |
Testování
| Příkaz | Popis |
|---|---|
npm test | Spustit unit testy Vitest |
npm run test:watch | Spustit testy v režimu sledování |
npm run test:cov | Spustit testy s reportem pokrytí |
npm run test:cov:ui | Spustit testy s UI pro pokrytí |
npm run test:e2e | Spustit E2E testy Playwright |
npm run test:e2e:ui | Spustit E2E testy v režimu UI |
Nástroje
| Příkaz | Popis |
|---|---|
npm run plugins:generate | Znovu vygenerovat registr pluginů z manifestů |
npm run plugins:watch | Sledovat manifesty pluginů a automaticky je regenerovat |
npm run catcms | Spustit příkazy CatCMS CLI |
Řešení problémů
Běžné problémy
Chyby připojení k databázi
Chyba: Error: no such table: users
Řešení:
# Run migrations
npm run db:migrate
# Verify migration status
wrangler d1 migrations list DB --local
Port je již používán
Chyba: Error: listen EADDRINUSE: address already in use :::8787
Řešení:
# Find and kill the process using port 8787
lsof -ti:8787 | xargs kill -9
# Or specify a different port in wrangler.jsonc
# [dev]
# port = 3000
Modul nenalezen / Chyby importu
Chyba: Cannot find module 'hono'
Řešení:
# Clear and reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Clear TypeScript build cache
rm -rf .wrangler
Nahrávání médií selhalo
Chyba: Failed to upload to R2
Řešení:
- Ověřte, že R2 bucket existuje a vazba je správná v
wrangler.jsonc - Zkontrolujte oprávnění bucketu
- Ujistěte se, že velikost souboru nepřekračuje limity (výchozí 10 MB pro obrázky)
- Ověřte, že je typ MIME povolen
# Test R2 bucket
wrangler r2 bucket list
# Check specific bucket
wrangler r2 bucket info catcms-media-dev
Získání pomoci
Zdroje:
Další kroky
Nyní, když máte CatCMS spuštěný, prozkoumejte tyto průvodce:
Přehled architektury
Pochopte, jak CatCMS funguje „pod pokličkou“
Kolekce
Definujte a spravujte své typy obsahu
Reference API
Integrujte CatCMS se svým frontendem
Vývoj pluginů
Rozšiřte CatCMS o vlastní pluginy