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.