diff --git a/apps/docs/Dockerfile b/apps/docs/Dockerfile new file mode 100644 index 00000000..fb68f34b --- /dev/null +++ b/apps/docs/Dockerfile @@ -0,0 +1,11 @@ +FROM node:18-alpine + +WORKDIR /app + +COPY apps/docs/package.json package.json +RUN npm install --production +COPY apps/docs/index.js index.js + +EXPOSE 3000 + +CMD ["node", "index.js"] diff --git a/apps/docs/index.js b/apps/docs/index.js new file mode 100644 index 00000000..46a5e9ba --- /dev/null +++ b/apps/docs/index.js @@ -0,0 +1,43 @@ +const express = require('express'); +const app = express(); +const redirects = [ + ['/', 'https://openpanel.dev/'], + ['/docs', 'https://openpanel.dev/docs'], + ['/docs/sdks/script', 'https://openpanel.dev/docs/sdks/script'], + ['/docs/sdks/web', 'https://openpanel.dev/docs/sdks/script'], + ['/docs/sdks/javascript', 'https://openpanel.dev/docs/sdks/node'], + ['/docs/sdks/react', 'https://openpanel.dev/docs/sdks/react'], + ['/docs/sdks/nextjs', 'https://openpanel.dev/docs/sdks/nextjs'], + ['/docs/sdks/remix', 'https://openpanel.dev/docs/sdks/remix'], + ['/docs/sdks/vue', 'https://openpanel.dev/docs/sdks/vue'], + ['/docs/sdks/astro', 'https://openpanel.dev/docs/sdks/astro'], + ['/docs/sdks/react-native', 'https://openpanel.dev/docs/sdks/react-native'], + ['/docs/sdks/node', 'https://openpanel.dev/docs/sdks/node'], + ['/docs/sdks/express', 'https://openpanel.dev/docs/sdks/express'], + ['/docs/sdks/api', 'https://openpanel.dev/docs/api/track'], + ['/docs/sdks/export', 'https://openpanel.dev/docs/api/export'], + [ + '/docs/self-hosting', + 'https://openpanel.dev/docs/self-hosting/self-hosting', + ], +]; + +// Handle redirects for all defined routes +redirects.forEach(([from, to]) => { + app.get(from, (req, res) => { + console.log('redirecting', { + from, + to, + }); + + res.redirect(302, to); + }); +}); + +// Optional: Catch-all route for undefined routes +app.get('*', (req, res) => { + console.log('fallback redirect', req.url); + res.redirect(302, 'https://openpanel.dev/docs'); +}); + +app.listen(3000); diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 00000000..67a93bbe --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,12 @@ +{ + "name": "docs", + "version": "1.0.0", + "description": "", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.18.2" + } +}