Konfiguration
Alle Optionen der Setzkasten-Integration in astro.config.mjs auf einen Blick.
Integration in astro.config.mjs
Setzkasten wird als Astro-Integration eingebunden. Die wichtigsten Optionen sind adminPath, storage, ein Auth-Provider (github oder google) und optional ein deployHook.
import { defineConfig } from 'astro/config'
import setzkasten from '@setzkasten-cms/astro'
export default defineConfig({
output: 'server',
integrations: [
setzkasten({
adminPath: '/admin',
storage: {
kind: 'github',
owner: 'dein-user',
repo: 'deine-site',
branch: 'main',
contentPath: 'content',
assetsPath: 'public/assets',
},
github: {
clientId: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
},
deployHook: {
url: process.env.DEPLOY_HOOK_URL,
secret: process.env.DEPLOY_HOOK_SECRET,
},
}),
],
}) storage-Optionen
Der storage-Block definiert, wo Setzkasten Inhalte liest und schreibt. Aktuell wird ausschliesslich der GitHub-Adapter unterstuetzt.
storage: {
kind: 'github',
owner: 'dein-user', // GitHub User oder Organisation
repo: 'deine-site', // Repository-Name
branch: 'main', // Branch fuer Content-Commits
contentPath: 'content', // Pfad zu JSON-Dateien (Standard: content)
assetsPath: 'public/assets', // Pfad fuer hochgeladene Bilder
} | Option | Typ | Beschreibung |
|---|---|---|
kind | 'github' | Storage-Adapter (aktuell nur GitHub) |
owner | string | GitHub User oder Organisation |
repo | string | Repository-Name |
branch | string | Branch fuer Content-Commits (Standard: main) |
contentPath | string | Pfad zu JSON-Dateien (Standard: content) |
assetsPath | string | Pfad fuer hochgeladene Bilder (Standard: public/assets) |
Auth-Provider
Setzkasten unterstuetzt GitHub OAuth und Google OAuth als Login-Methoden. Du kannst einen oder beide Provider gleichzeitig nutzen. Bei Google muss zusaetzlich allowedEmails gesetzt werden.
GitHub OAuth
github: {
clientId: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
} Google OAuth
google: {
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
},
allowedEmails: ['du@example.com', 'team@example.com'] Hinweis: Bei GitHub OAuth wird automatisch geprueft, ob der User Schreibrechte auf das konfigurierte Repository hat. Bei Google OAuth wird ausschliesslich die allowedEmails-Liste verwendet.
Deploy Hook
Mit einem Deploy Hook kann Setzkasten nach jedem Content-Commit automatisch einen neuen Build ausloesen. Die URL haengt von deinem Hosting-Provider ab.
Vercel
deployHook: {
url: 'https://api.vercel.com/v1/integrations/deploy/prj_xxxxx/yyyyy',
} Netlify
deployHook: {
url: 'https://api.netlify.com/build_hooks/xxxxxx',
} Cloudflare Pages
deployHook: {
url: 'https://api.cloudflare.com/client/v4/pages/webhooks/xxxxx',
secret: process.env.DEPLOY_HOOK_SECRET,
} Vollstaendiges Konfigurationsbeispiel
Ein komplettes Setup mit GitHub-Storage, GitHub OAuth und Vercel Deploy Hook:
import { defineConfig } from 'astro/config'
import setzkasten from '@setzkasten-cms/astro'
export default defineConfig({
output: 'server',
integrations: [
setzkasten({
adminPath: '/admin',
storage: {
kind: 'github',
owner: 'dein-user',
repo: 'deine-site',
branch: 'main',
contentPath: 'content',
assetsPath: 'public/assets',
},
github: {
clientId: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
},
deployHook: {
url: process.env.DEPLOY_HOOK_URL,
secret: process.env.DEPLOY_HOOK_SECRET,
},
}),
],
})