Files
coolify-docs/docs/.vitepress/config.mts
T

404 lines
16 KiB
TypeScript

import { fileURLToPath, URL } from 'node:url'
import yaml from 'vite-plugin-yaml'
import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
lang: 'en-US',
title: "Coolify Docs",
description: "Self hosting with super powers",
base: '/docs/',
cleanUrls: true,
lastUpdated: true,
// Added ignoreDeadLinks to temporarily fix build error
ignoreDeadLinks: true,
head: [
['link', { rel: 'icon', href: '/favicon.ico' }]
],
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
logo: '/logo.svg',
nav: [
{ text: 'Coolify Cloud', link: 'https://coolify.io/pricing/' },
{
text: 'Resources',
items: [
{ text: 'Releases', link: 'https://github.com/coollabsio/coolify/releases' },
{ text: 'Support', link: 'https://coolify.io/' },
{ text: 'Sponsor us', link: 'https://coolify.io/sponsorships/' }
]
}
],
search: {
provider: 'local'
},
editLink: {
pattern: 'https://github.com/coollabsio/documentation-coolify/:path',
text: 'Edit this page on GitHub'
},
socialLinks: [
{ icon: 'github', link: 'https://github.com/coollabsio/coolify' },
{ icon: 'discord', link: 'https://discord.gg/coolify' },
{ icon: 'x', link: 'https://x.com/coolifyio' }
],
sidebar: [
{
text: 'Get Started',
collapsed: false,
items: [
{ text: 'What is Coolify', link: '/what-is-coolify' },
{ text: 'Quickstart', link: '/quickstart' },
{ text: 'Installation', link: '/installation' },
],
},
{
text: 'Contribute',
collapsed: true,
items: [
{ text: 'Coolify', link: '/contribute/coolify' },
{ text: 'New Service', link: '/contribute/service' },
{ text: 'Documentation', link: '/contribute/documentation' },
],
},
{
text: 'Applications',
collapsed: true,
items: [
{
text: 'Overview',
link: '/applications/index',
items: [
{ text: 'Django', link: '/applications/django' },
{ text: 'Jekyll', link: '/applications/jekyll' },
{ text: 'Laravel', link: '/applications/laravel' },
{ text: 'Phoenix', link: '/applications/phoenix' },
{ text: 'Ruby on Rails', link: '/applications/rails' },
{ text: 'Symfony', link: '/applications/symfony' },
{ text: 'Next.js', link: '/applications/nextjs' },
{ text: 'Vite', link: '/applications/vite' },
{ text: 'Vue', link: '/applications/vuejs' },
{ text: 'Nuxt', link: '/applications/nuxt' },
{ text: 'SvelteKit', link: '/applications/svelte-kit' },
]
}
],
},
{
text: 'Databases',
collapsed: true,
items: [
{
text: 'Overview',
link: '/databases/index',
items: [
{ text: 'Backups', link: '/databases/backups' },
{ text: 'MySQL', link: '/databases/mysql' },
{ text: 'MariaDB', link: '/databases/mariadb' },
{ text: 'PostgreSQL', link: '/databases/postgresql' },
{ text: 'MongoDB', link: '/databases/mongodb' },
{ text: 'Redis', link: '/databases/redis' },
{ text: 'DragonFly', link: '/databases/dragonfly' },
{ text: 'KeyDB', link: '/databases/keydb' },
{ text: 'Clickhouse', link: '/databases/clickhouse' },
]
}
],
},
{
text: 'Services',
collapsed: true,
items: [
{
text: 'Overview',
link: '/services/overview',
items: [
{ text: 'ActivePieces', link: '/services/activepieces' },
{ text: 'AnythingLLM', link: '/services/anythingllm' },
{ text: 'Appwrite', link: '/services/appwrite' },
{ text: 'Authentik', link: '/services/authentik' },
{ text: 'BabyBuddy', link: '/services/babybuddy' },
{ text: 'Browserless', link: '/services/browserless' },
{ text: 'BudgE', link: '/services/budge' },
{ text: 'ChangeDetection', link: '/services/change-detection' },
{ text: 'ClassicPress', link: '/services/classicpress' },
{ text: 'Code-Server', link: '/services/code-server' },
{ text: 'Dashboard', link: '/services/dashboard' },
{ text: 'DokuWiki', link: '/services/dokuwiki' },
{ text: 'Duplicati', link: '/services/duplicati' },
{ text: 'Emby Stat', link: '/services/emby-stat' },
{ text: 'Emby', link: '/services/emby' },
{ text: 'Fider', link: '/services/fider' },
{ text: 'Filebrowser', link: '/services/filebrowser' },
{ text: 'Firefly III', link: '/services/firefly-iii' },
{ text: 'Formbricks', link: '/services/formbricks' },
{ text: 'Ghost', link: '/services/ghost' },
{ text: 'Gitea', link: '/services/gitea' },
{ text: 'Glitchtip', link: '/services/glitchtip' },
{ text: 'Grafana', link: '/services/grafana' },
{ text: 'Grocy', link: '/services/grocy' },
{ text: 'Heimdall', link: '/services/heimdall' },
{ text: 'Jellyfin', link: '/services/jellyfin' },
{ text: 'Kuzzle', link: '/services/kuzzle' },
{ text: 'Logto', link: '/services/logto' },
{ text: 'Meilisearch', link: '/services/meilisearch' },
{ text: 'Metabase', link: '/services/metabase' },
{ text: 'Metube', link: '/services/metube' },
{ text: 'MinIO', link: '/services/minio' },
{ text: 'Plausible', link: '/services/plausible' },
{ text: 'Statusnook', link: '/services/statusnook' },
]
}
],
},
{
text: 'Knowledge Base',
collapsed: true,
items: [
{
text: 'FAQ',
link: '/knowledge-base/faq',
items: [
{
text: 'Internal',
collapsed: true,
items: [
{
text: 'Scalability',
link: '/knowledge-base/internal/scalability'
},
{
text: 'Terminal',
link: '/knowledge-base/internal/terminal'
}
]
},
{ text: 'Self-hosted Instance',
collapsed: true,
items: [
{ text: 'Monitoring', link: '/knowledge-base/monitoring' },
{ text: 'Notifications', link: '/knowledge-base/notifications' },
{ text: 'Coolify Updates', link: '/knowledge-base/self-update' },
{ text: 'Commands', link: '/knowledge-base/commands' },
{ text: 'Delete User', link: '/knowledge-base/delete-user' },
{ text: 'OAuth', link: '/knowledge-base/oauth' },
]
},
{
text: 'DNS & Domains',
collapsed: true,
items: [
{ text: 'DNS Configuration', link: '/knowledge-base/dns-configuration' },
{ text: 'Domains', link: '/knowledge-base/domains' },
]
},
{
text: 'Resources',
collapsed: true,
items: [
{ text: 'Environment Variables', link: '/knowledge-base/environment-variables' },
{ text: 'Persistent Storage', link: '/knowledge-base/persistent-storage' },
{ text: 'Drain Logs', link: '/knowledge-base/drain-logs' },
{ text: 'Health Checks', link: '/knowledge-base/health-checks' },
{ text: 'Cron Syntax', link: '/knowledge-base/cron-syntax' },
]
},
{
text: 'How-Tos',
collapsed: true,
items: [
{ text: 'Load-balancing on Hetzner', link: '/knowledge-base/load-balancing-on-hetzner' },
{ text: 'Wordpress Multisite', link: '/knowledge-base/wordpress-multisite' },
{ text: 'Raspberry Pi OS Setup', link: '/knowledge-base/raspberry-pi-os-setup' },
{ text: 'Private NPM Registry', link: '/knowledge-base/private-npm-registry' },
{ text: 'Ollama with GPU', link: '/knowledge-base/ollama-with-gpu' },
]
},
{
text: 'Git',
collapsed: true,
items: [
{ text: 'Github', collapsed: true, items: [
{ text: 'Integrations', link: '/knowledge-base/git/github/integration' },
{ text: 'Github Actions', link: '/knowledge-base/git/github/github-actions' },
] },
{ text: 'Gitlab', collapsed: true, items: [
{ text: 'Integrations', link: '/knowledge-base/git/gitlab/integration' },
] },
{ text: 'Bitbucket', collapsed: true, items: [
{ text: 'Integrations', link: '/knowledge-base/git/bitbucket/integration' },
] },
{ text: 'Gitea', collapsed: true, items: [
{ text: 'Integrations', link: '/knowledge-base/git/gitea/integration' },
] },
]
},
{
text: 'Servers',
collapsed: true,
items: [
{ text: 'Introduction', link: '/knowledge-base/server/introduction' },
{ text: 'Automated Cleanup', link: '/knowledge-base/server/automated-cleanup' },
{ text: 'Build Server', link: '/knowledge-base/server/build-server' },
{ text: 'Firewall', link: '/knowledge-base/server/firewall' },
{ text: 'Multiple Servers', link: '/knowledge-base/server/multiple-servers' },
{ text: 'Sentinel and Metrics', link: '/knowledge-base/server/sentinel' },
{ text: 'Non-root User', link: '/knowledge-base/server/non-root-user' },
{ text: 'OpenSSH', link: '/knowledge-base/server/openssh' },
{ text: 'Oracle Cloud', link: '/knowledge-base/server/oracle-cloud' },
{ text: 'Proxies', link: '/knowledge-base/server/proxies' },
]
},
{
text: 'S3',
collapsed: true,
items: [
{ text: 'Introduction', link: '/knowledge-base/s3/introduction' },
{ text: 'AWS', link: '/knowledge-base/s3/aws' },
{ text: 'R2', link: '/knowledge-base/s3/r2' },
]
},
{
text: 'Docker',
collapsed: true,
items: [
{ text: 'Compose', link: '/knowledge-base/docker/compose' },
{ text: 'Docker Commands', link: '/knowledge-base/docker/custom-commands' },
{ text: 'Registry', link: '/knowledge-base/docker/registry' },
{ text: 'Swarm', link: '/knowledge-base/docker/swarm' },
]
},
{
text: 'Cloudflare',
collapsed: true,
items: [
{ text: 'Tunnels', link: '/knowledge-base/cloudflare/tunnels' },
]
},
{
text: 'Traefik',
collapsed: true,
items: [
{ text: 'Basic Auth Middleware', link: '/knowledge-base/traefik/basic-auth' },
{ text: 'Custom SSL Certificates', link: '/knowledge-base/traefik/custom-ssl-certs' },
{ text: 'Dashboard', link: '/knowledge-base/traefik/dashboard' },
{ text: 'Dynamic Configurations', link: '/knowledge-base/traefik/dynamic-configurations' },
{ text: 'Healthcheck', link: '/knowledge-base/traefik/healthcheck' },
{ text: 'Load Balancing', link: '/knowledge-base/traefik/load-balancing' },
{ text: 'Redirects', link: '/knowledge-base/traefik/redirects' },
{ text: 'Wildcard SSL Certificates', link: '/knowledge-base/traefik/wildcard-certificates' }
]
},
]
}
],
},
{
text: 'API Reference',
collapsed: true,
items: [
{
text: 'Authorization',
link: '/api-reference/authorization',
items: [
{
text: 'API',
collapsed: true,
link: '/api-reference/API/overview',
items: [
{
text: 'Overview',
link: '/api-reference/api/overview'
}
]
}
]
},
],
},
{
text: 'Troubleshoot',
collapsed: true,
items: [
{ text: 'Overview', link: '/troubleshoot/overview' },
{ text: 'Wildcard SSL Certificate', link: '/troubleshoot/wildcard-ssl-certs' },
{ text: 'Dashboard Inaccessible via Instance Domain', link: '/troubleshoot/dashboard-inaccessible-via-domain' },
{ text: 'Server Crash during Build', link: '/troubleshoot/server-crash-during-build' },
{ text: 'SSL Certificate Failed', link: '/troubleshoot/ssl-cert-not-generating' }
],
},
{
text: 'Resources',
collapsed: true,
items: [
{ text: 'Team', link: '/company/team' }
],
},
],
},
markdown: {},
rewrites: {},
vite: {
plugins: [yaml as any],
assetsInclude: ['**/*.yml'],
resolve: {
alias: [
{
find: /^.*\/VPHero\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/Landing/HeroHeader.vue', import.meta.url)
)
},
{
find: /^.*\/VPBadge\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPBadge.vue', import.meta.url)
)
},
{
find: /^.*\/VPNavBar\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPNavBar.vue', import.meta.url)
)
},
{
find: /^.*\/VPSidebar\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPSidebar.vue', import.meta.url)
)
},
{
find: /^.*\/VPFeatures\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPFeatures.vue', import.meta.url)
)
},
{
find: /^.*\/VPFeature\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPFeature.vue', import.meta.url)
)
},
{
find: /^.*\/VPLocalNav\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPLocalNav.vue', import.meta.url)
)
},
{
find: /^.*\/VPDocAside\.vue$/,
replacement: fileURLToPath(
new URL('./theme/components/VPDocAside.vue', import.meta.url)
)
}
]
}
}
})