Package Exports
- astro-decap-cms-oauth
- astro-decap-cms-oauth/src/admin.astro
- astro-decap-cms-oauth/src/oauth/callback.ts
- astro-decap-cms-oauth/src/oauth/index.ts
Readme
This integration automatically mounts the Decap CMS admin dashboard to /admin and custom OAuth authentication backend routes to /oauth, /oauth/callback using GitHub as the provider.
This way, you aren't vendor-locked to Netlify and your app can be deployed anywhere that supports SSR.
Installation
npx astro add astro-decap-cms-oauthManual Installation
npm install astro-decap-cms-oauthAdd the integration and set output to server in your astro.config.mjs file:
import { defineConfig } from "astro/config";
import { decapCmsOauth } from "astro-decap-cms-oauth";
export default defineConfig({
...,
integrations: [decapCmsOauth()],
output: "server",
});Usage
Make sure Astro is in SSR mode (
output: "server"set inastro.config.mjs)Put your
config.ymlfile inpublic/admin/config.yml(see Decap CMS Docs for more info)
backend:
name: github
branch: main # change this to your branch
repo: dorukgezici/astro-decap-cms-oauth # change this to your repo
site_domain: astro-decap-cms-oauth.vercel.app # change this to your domain
base_url: https://astro-decap-cms-oauth.vercel.app # change this to your prod URL
auth_endpoint: oauth # the oauth route provided by the integration- Set up GitHub OAuth app
On GitHub, go to Settings > Developer Settings > OAuth apps > New OAuth app. Or use this direct link.
Homepage URL: This must be the prod URL of your application.
Authorization callback URL: This must be the prod URL of your application followed by /oauth/callback.
- Set env variables
OAUTH_GITHUB_CLIENT_ID=
OAUTH_GITHUB_CLIENT_SECRET=Configuration
While being fully functional, this library doesn't provide any configuration options yet except providing your own config.yml file in public/admin for Decap CMS.
I plan to add some options for the integration in the future, contributions are welcome as well!