JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 343
  • Score
    100M100P100Q102781F
  • License MIT

Add Decap CMS’s admin dashboard and a custom OAuth backend to your Astro project

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

astro-decap-cms-oauth

Astro integration for the Decap CMS with custom OAuth backend


astro-decap-cms-oauth npm download count

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-oauth

Manual Installation

npm install astro-decap-cms-oauth

Add 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

  1. Make sure Astro is in SSR mode (output: "server" set in astro.config.mjs)

  2. Put your config.yml file in public/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
  1. 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.

  1. 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!