@cocalc/hub
Version:
CoCalc: Backend webserver component
31 lines (29 loc) • 1.2 kB
text/typescript
import { get_server_settings } from "@cocalc/database/postgres/server-settings";
import { database } from "./database";
export default function getHandler() {
return async (_req, res) => {
const settings = await get_server_settings(database); // don't worry -- this is cached.
res.header("Content-Type", "text/plain");
res.header("Cache-Control", "public, max-age=3600, must-revalidate");
if (!settings.landing_pages) {
// Default: -- disable everything except /share.
res.write(`User-agent: *
Allow: /share
Disallow: /
`);
} else {
// If landing pages are enabled, which should only be cocalc.com (and maybe some test sites temporarily),
// then we only disallow some obvious bad routes. This allows the share server, landing pages, etc.
// If we need to switch to a whitelist, see app/next.ts for what to allow...
res.write(`User-agent: *
Disallow: /static/
Disallow: /projects/
Disallow: /*/raw/
Disallow: /*/port/
Disallow: /*/server/
Disallow: /haproxy
`);
}
res.end();
};
}