Files
nixpanel-website/api/src/config.ts
T
NixReaperandClaude Sonnet 4.6 72f5cc1060 feat: initial website commit + installation guide page
- Full nixpanel-website monorepo: web (React/Vite) + api (Fastify)
- Add /install page with one-liner, manual steps, requirements,
  software table, firewall ports, service management, and update/uninstall
- Add Install link to header nav and footer
- Add 'Install guide' CTA button to home page hero
- Add 'outline' variant to Button component
- Add .gitignore and .gitattributes

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-04-05 11:16:42 -05:00

61 lines
1.9 KiB
TypeScript

import dotenv from 'dotenv';
dotenv.config();
function require(key: string): string {
const val = process.env[key];
if (!val) throw new Error(`Missing required environment variable: ${key}`);
return val;
}
export const config = {
env: process.env.NODE_ENV || 'production',
port: parseInt(process.env.PORT || '4000', 10),
host: process.env.HOST || '0.0.0.0',
db: {
host: process.env.DB_HOST || '127.0.0.1',
port: parseInt(process.env.DB_PORT || '3306', 10),
user: require('DB_USER'),
password: require('DB_PASSWORD'),
name: require('DB_NAME'),
},
jwt: {
secret: require('JWT_SECRET'),
expiresIn: process.env.JWT_EXPIRES_IN || '7d',
},
stripe: {
secretKey: require('STRIPE_SECRET_KEY'),
webhookSecret: require('STRIPE_WEBHOOK_SECRET'),
plans: {
// Stripe Price IDs — set after creating products in Stripe dashboard
solo_monthly: process.env.STRIPE_PRICE_SOLO_MONTHLY || '',
solo_annual: process.env.STRIPE_PRICE_SOLO_ANNUAL || '',
host_monthly: process.env.STRIPE_PRICE_HOST_MONTHLY || '',
host_annual: process.env.STRIPE_PRICE_HOST_ANNUAL || '',
agency_monthly: process.env.STRIPE_PRICE_AGENCY_MONTHLY || '',
agency_annual: process.env.STRIPE_PRICE_AGENCY_ANNUAL || '',
},
},
licensingServer: {
url: require('LICENSING_SERVER_URL'),
apiKey: require('LICENSING_SERVER_API_KEY'),
},
mail: {
host: process.env.MAIL_HOST || 'smtp.mailgun.org',
port: parseInt(process.env.MAIL_PORT || '587', 10),
user: process.env.MAIL_USER || '',
password: process.env.MAIL_PASSWORD || '',
from: process.env.MAIL_FROM || '[email protected]',
},
appUrl: process.env.APP_URL || 'https://nixpanel.io',
cors: {
origin: process.env.CORS_ORIGIN || 'https://nixpanel.io',
},
};