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í:

  1. 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)
  2. Server připraven:


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):

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í:

  1. Přejděte naObsahNový obsah
  2. Vyberte kolekci (např. „Příspěvky na blogu“)
  3. 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“
  4. 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říkazPopis
npm run devSpustit vývojový server s Wranglerem
npm run buildKompilace TypeScriptu + nasazení nanečisto
npm run deployNasazení na Cloudflare Workers
npm run predeploySpustit testy + sestavení před nasazením

Databáze

PříkazPopis
npm run db:generateGenerovat migrační soubory ze změn schématu
npm run db:migrateAplikovat migrace na lokální databázi D1
npm run db:migrate:prodAplikovat migrace na produkční databázi
npm run db:studioOtevřít Drizzle Studio (databázové GUI)

Testování

PříkazPopis
npm testSpustit unit testy Vitest
npm run test:watchSpustit testy v režimu sledování
npm run test:covSpustit testy s reportem pokrytí
npm run test:cov:uiSpustit testy s UI pro pokrytí
npm run test:e2eSpustit E2E testy Playwright
npm run test:e2e:uiSpustit E2E testy v režimu UI

Nástroje

PříkazPopis
npm run plugins:generateZnovu vygenerovat registr pluginů z manifestů
npm run plugins:watchSledovat manifesty pluginů a automaticky je regenerovat
npm run catcmsSpustit 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í:

  1. Ověřte, že R2 bucket existuje a vazba je správná vwrangler.jsonc
  2. Zkontrolujte oprávnění bucketu
  3. Ujistěte se, že velikost souboru nepřekračuje limity (výchozí 10 MB pro obrázky)
  4. 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

Was this page helpful?