mirror of
https://github.com/screentinker/screentinker.git
synced 2026-05-15 07:32:23 -06:00
feat(config): DISABLE_HOMEPAGE env var to redirect / to the app
Self-hosters running internal-only deployments don't need the marketing homepage. With DISABLE_HOMEPAGE=true, requests to / 302-redirect to /app instead of serving the landing page. Unset/false preserves current behavior. Requested via discord feedback.
This commit is contained in:
parent
4b2a5c51ea
commit
3dfec5d2f9
|
|
@ -110,6 +110,7 @@ Schema migrations run automatically on first boot — no manual migration comman
|
|||
| `NODE_ENV` | Runtime env (`production` enables Express production optimizations + stricter error handling) | _(none)_ |
|
||||
| `SELF_HOSTED` | First user gets all features unlocked | `false` |
|
||||
| `DISABLE_REGISTRATION` | Block new account creation (including OAuth auto-signup). First-user setup on an empty DB is still allowed. | `false` |
|
||||
| `DISABLE_HOMEPAGE` | Redirect `/` to `/app` instead of serving the marketing landing page. For internal-only self-hosted deployments. | `false` |
|
||||
| `APP_URL` | Your public URL (used for Stripe callbacks) | _(none)_ |
|
||||
| `JWT_SECRET` | JWT signing key (auto-generated if not set) | _(auto)_ |
|
||||
| `SSL_CERT` | Path to SSL certificate | `server/certs/cert.pem` |
|
||||
|
|
|
|||
|
|
@ -52,4 +52,7 @@ module.exports = {
|
|||
// Disable public registration (OAuth auto-signup is also blocked when set).
|
||||
// First-user setup is still allowed so a fresh install can be initialized.
|
||||
disableRegistration: ['true', '1'].includes(String(process.env.DISABLE_REGISTRATION || '').toLowerCase()),
|
||||
// Redirect / -> /app instead of serving the marketing landing page.
|
||||
// For self-hosted internal deployments that don't want the public homepage.
|
||||
disableHomepage: ['true', '1'].includes(String(process.env.DISABLE_HOMEPAGE || '').toLowerCase()),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -139,8 +139,12 @@ app.use(express.json());
|
|||
const { sanitizeBody } = require('./middleware/sanitize');
|
||||
app.use(sanitizeBody);
|
||||
|
||||
// Landing page BEFORE static middleware (so / doesn't serve index.html)
|
||||
// Landing page BEFORE static middleware (so / doesn't serve index.html).
|
||||
// When DISABLE_HOMEPAGE is set, redirect to the app instead - for self-hosted
|
||||
// internal deployments that don't want the public marketing page. 302 (not
|
||||
// 301) so flipping the var back later isn't hard-cached by browsers.
|
||||
app.get('/', (req, res) => {
|
||||
if (config.disableHomepage) return res.redirect(302, '/app');
|
||||
res.sendFile(path.join(config.frontendDir, 'landing.html'));
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue