Files
paste.es/server.ts
Malin bc9f96cbd4 feat: rebrand Hemmelig to paste.es for cloudhost.es
- Set Spanish as default language with ephemeral/encrypted privacy focus
- Translate all user-facing strings and legal pages to Spanish
- Replace Norwegian flag with Spanish flag in footer
- Remove Hemmelig/terces.cloud links, add cloudhost.es sponsorship
- Rewrite PrivacyPage: zero data collection, ephemeral design emphasis
- Rewrite TermsPage: Spanish law, RGPD, paste.es/CloudHost.es references
- Update PWA manifest, HTML meta tags, package.json branding
- Rename webhook headers to X-Paste-Event / X-Paste-Signature
- Update API docs title and contact to paste.es / cloudhost.es

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 09:30:19 +01:00

56 lines
1.6 KiB
TypeScript

import { serve } from '@hono/node-server';
import { serveStatic } from '@hono/node-server/serve-static';
import 'dotenv/config';
import { Hono } from 'hono';
import api from './api/app';
import config from './api/config';
const port = config.get('server.port')!;
const app = new Hono();
// Mount the API first (before static files)
app.route('/api', api);
// Serve static files from the 'dist' directory
app.use('/*', serveStatic({ root: './dist' }));
// SPA fallback
app.get('*', serveStatic({ path: './dist/index.html' }));
// Graceful shutdown handler
function gracefulShutdown(signal: string, server: ReturnType<typeof serve>) {
console.log(`\n${signal} received. Shutting down gracefully...`);
// Force exit after 10 seconds if graceful shutdown fails
const forceExitTimeout = setTimeout(() => {
console.error('Graceful shutdown timed out. Forcing exit.');
process.exit(1);
}, 10000);
server.close((err) => {
clearTimeout(forceExitTimeout);
if (err) {
console.error('Error during shutdown:', err);
process.exit(1);
}
console.log('Server closed successfully.');
process.exit(0);
});
}
// Start server in production
if (process.env.NODE_ENV === 'production') {
const server = serve({
fetch: app.fetch,
port: port,
});
console.log(`Server is running on port ${port}`);
// Handle shutdown signals
process.on('SIGTERM', () => gracefulShutdown('SIGTERM', server));
process.on('SIGINT', () => gracefulShutdown('SIGINT', server));
}
export default app;