const fs = require("fs").promises;
const generateNavbarDropdown = require("./src/utils.js").generateNavbarDropdown;
/** @type {import('@docusaurus/types').DocusaurusConfig} */
module.exports = async function () {
const remarkGithub = (await import("remark-github")).default;
const defaultBuildUrl = (await import("remark-github")).defaultBuildUrl;
const footerEmail = await fs.readFile("src/footer.html", {
encoding: "utf-8",
});
return {
title: "authentik",
tagline: "Bring all of your authentication into a unified platform.",
url: "https://goauthentik.io",
baseUrl: "/",
onBrokenLinks: "throw",
favicon: "img/icon.png",
organizationName: "Authentik Security Inc.",
projectName: "authentik",
themeConfig: {
image: "img/social.png",
navbar: {
logo: {
alt: "authentik logo",
src: "img/icon.svg",
},
items: [
{ to: "blog", label: "Why authentik", position: "left" },
{
type: "html",
className:
"dropdown dropdown--hoverable dropdown--custom",
value: generateNavbarDropdown(
"Platform",
[
{
label: "Get started",
items: [
{
label: "Docker compose",
to: "docs/installation/docker-compose",
},
{
label: "Kubernetes",
to: "docs/installation/kubernetes",
},
],
},
{
label: "Documentation",
items: [
{
label: "Installation",
to: "docs/installation/",
},
{
label: "Integrations",
to: "integrations/",
},
{
label: "Release notes",
to: "docs/releases/",
},
{
label: "Roadmap",
to: "docs/",
},
],
},
{
label: "Solutions",
items: [
{
label: "Work",
to: "docs/installation/",
},
{
label: "foo",
to: "docs/",
},
{
label: "bar",
to: "integrations/",
},
{
label: "baz",
to: "integrations/",
},
],
},
],
`
`,
),
position: "left",
},
{
label: "Integrations",
to: "integrations/",
},
{
label: "Pricing",
to: "pricing/",
},
{
type: "html",
className:
"dropdown dropdown--hoverable dropdown--custom",
value: generateNavbarDropdown("Community", [
{
label: "Connect",
items: [
{
label: "Blog",
to: "blog/",
},
{
label: "Discord",
to: "https://goauthentik.io/discord",
},
{
label: "GitHub",
to: "https://github.com/goauthentik/authentik",
},
],
},
{
label: "Developer",
items: [
{
label: "Set up authentik",
to: "developer-docs/setup/full-dev-environment/",
},
{
label: "Writing documentation",
to: "developer-docs/docs/writing-documentation",
},
],
},
{
label: "Community",
items: [
{
label: "Contributing",
to: "developer-docs/",
},
{
label: "Events",
to: "developer-docs/events",
},
],
},
{
label: "Resources",
items: [
{
label: "Icons & Branding",
to: "developer-docs/",
},
],
},
]),
position: "left",
},
{
type: "html",
className:
"dropdown dropdown--hoverable dropdown--custom",
value: generateNavbarDropdown("About us", [
{
label: "",
items: [
{
label: "The company",
to: "",
},
{
label: "Jobs",
to: "",
},
{
label: "Team",
to: "",
},
{
label: "Contact us",
to: "",
},
],
},
]),
position: "left",
},
{
href: "https://github.com/goauthentik/authentik",
className: "header-github-link",
"aria-label": "GitHub repository",
position: "right",
},
],
},
footer: {
links: [
{
title: "Subscribe to authentik News",
items: [
{
html: footerEmail,
},
],
},
{
title: "Documentation",
items: [
{
label: "Documentation",
to: "docs/",
},
{
label: "Integrations",
to: "integrations/",
},
{
label: "Developer Documentation",
to: "developer-docs/",
},
{
label: "Installations",
to: "docs/installation/",
},
],
},
{
title: "More",
items: [
{
to: "jobs/",
label: "Jobs",
position: "left",
},
{
label: "GitHub",
href: "https://github.com/goauthentik/authentik",
},
{
label: "Discord",
href: "https://goauthentik.io/discord",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`,
},
tableOfContents: {
maxHeadingLevel: 5,
},
colorMode: {
respectPrefersColorScheme: true,
},
algolia: {
appId: "36ROD0O0FV",
apiKey: "727db511300ca9aec5425645bbbddfb5",
indexName: "goauthentik",
},
},
presets: [
[
"@docusaurus/preset-classic",
{
docs: {
id: "docs",
sidebarPath: require.resolve("./sidebars.js"),
editUrl:
"https://github.com/goauthentik/authentik/edit/main/website/",
remarkPlugins: [
[
remarkGithub,
{
repository: "goauthentik/authentik",
// Only replace issues and PR links
buildUrl: function (values) {
return values.type === "issue"
? defaultBuildUrl(values)
: false;
},
},
],
],
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
gtag: {
trackingID: "G-9MVR9WZFZH",
anonymizeIP: true,
},
blog: {
showReadingTime: true,
blogSidebarTitle: "All our posts",
blogSidebarCount: "ALL",
},
},
],
],
plugins: [
[
"@docusaurus/plugin-content-docs",
{
id: "docsIntegrations",
path: "integrations",
routeBasePath: "integrations",
sidebarPath: require.resolve("./sidebarsIntegrations.js"),
editUrl:
"https://github.com/goauthentik/authentik/edit/main/website/",
},
],
[
"@docusaurus/plugin-content-docs",
{
id: "docsDevelopers",
path: "developer-docs",
routeBasePath: "developer-docs",
sidebarPath: require.resolve("./sidebarsDev.js"),
editUrl:
"https://github.com/goauthentik/authentik/edit/main/website/",
},
],
],
markdown: {
mermaid: true,
},
themes: ["@docusaurus/theme-mermaid"],
scripts: [
{
src: "https://goauthentik.io/js/script.js",
async: true,
"data-domain": "goauthentik.io",
},
{
src: "https://boards.greenhouse.io/embed/job_board/js?for=authentiksecurity",
},
],
};
};