Zum Inhalt springen

Installation

In drei Schritten von Null zum laufenden CMS.

1

Packages installieren

Terminal
npm install @setzkasten-cms/core @setzkasten-cms/ui @setzkasten-cms/astro @setzkasten-cms/auth @setzkasten-cms/github-adapter
2

Schema konfigurieren

Erstelle eine setzkasten.config.ts im Root deines Projekts:

setzkasten.config.ts
import { defineConfig, defineSection, f } from '@setzkasten-cms/core'

export default defineConfig({
  storage: {
    kind: 'github',
    owner: 'dein-user',
    repo: 'deine-site',
    branch: 'main',
  },
  products: {
    website: {
      label: 'Website',
      sections: {
        hero: defineSection({
          label: 'Hero',
          icon: 'layout',
          fields: {
            heading: f.text({ label: 'Überschrift', required: true }),
            subheading: f.text({ label: 'Untertitel' }),
            image: f.image({ label: 'Hintergrundbild' }),
            cta: f.text({ label: 'CTA-Text' }),
          },
        }),
      },
    },
  },
})
3

Astro Integration einbinden

astro.config.mjs
import { defineConfig } from 'astro/config'
import setzkasten from '@setzkasten-cms/astro'

export default defineConfig({
  output: 'server',
  integrations: [
    setzkasten({
      adminPath: '/admin',
      github: {
        clientId: process.env.GITHUB_CLIENT_ID,
        clientSecret: process.env.GITHUB_CLIENT_SECRET,
      },
    }),
  ],
})
4

Umgebungsvariablen

Erstelle eine .env-Datei mit deinen Credentials:

.env
# GitHub OAuth App
GITHUB_CLIENT_ID=deine-client-id
GITHUB_CLIENT_SECRET=dein-client-secret

# GitHub Token für Content-Commits
GITHUB_TOKEN=ghp_dein-token

# Erlaubte E-Mail-Adressen (komma-getrennt)
SETZKASTEN_ALLOWED_EMAILS=du@example.com,team@example.com

Fertig!

Starte deinen Astro Dev-Server mit astro dev und öffne /admin im Browser. Du wirst zum Login weitergeleitet und kannst dann Inhalte bearbeiten.