diff --git a/api/checkout.js b/api/checkout.js index 4ce4994..753c676 100644 --- a/api/checkout.js +++ b/api/checkout.js @@ -54,6 +54,13 @@ const server = http.createServer(async (req, res) => { res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS') res.setHeader('Access-Control-Allow-Headers', 'Content-Type') + // Healthcheck endpoint + if (req.url === '/health' && req.method === 'GET') { + res.writeHead(200, { 'Content-Type': 'application/json' }) + res.end(JSON.stringify({ status: 'ok', uptime: process.uptime() })) + return + } + if (req.method === 'OPTIONS') { res.writeHead(204) res.end() diff --git a/site/.vitepress/config.mjs b/site/.vitepress/config.mjs index b736861..07d9a44 100644 --- a/site/.vitepress/config.mjs +++ b/site/.vitepress/config.mjs @@ -18,6 +18,8 @@ export default defineConfig({ ['link', { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' }], ['link', { href: 'https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700;9..40,800&family=DM+Mono:wght@400;500&display=swap', rel: 'stylesheet' }], ['link', { href: 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0,0', rel: 'stylesheet' }], + // Analytics — uncomment and configure when ready + // ['script', { src: 'https://analytics.example.com/script.js', 'data-domain': 'git.fdsa.agency', defer: '' }], ], appearance: true, diff --git a/site/.vitepress/dist/404.html b/site/.vitepress/dist/404.html index e03a7df..77e3327 100644 --- a/site/.vitepress/dist/404.html +++ b/site/.vitepress/dist/404.html @@ -6,12 +6,12 @@