CoolFace
Apppublic

irelandcuca/HumanMaster6HD

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
1likes
server.js131 linesDownload Raw Back to root
1const express = require('express');2const { Pool } = require('pg');3const session = require('express-session');4const pgSession = require('connect-pg-simple')(session);5require('dotenv').config();6 7const app = express();8const PORT = process.env.PORT || 7860; 9 10// 1. Initialize High-Performance Database Connection Pool11const pool = new Pool({12    connectionString: process.env.DATABASE_URL,13    ssl: { 14        rejectUnauthorized: false,15        require: true16    } 17});18 19 20// 2. Attach Express Session management directly to your 'sessions' Table21app.use(session({22    store: new pgSession({23        pool: pool,24        tableName: 'sessions'25    }),26    secret: process.env.SESSION_SECRET || 'ucdm_global_secure_secret_token',27    resave: false,28    saveUninitialized: false,29    cookie: { 30        maxAge: 30 * 24 * 60 * 60 * 1000, 31        secure: false, 32        httpOnly: true 33    }34}));35 36// 3. Visual Admin Dashboard Interface37app.get('/', async (req, res) => {38    try {39        // Fetch real-time data counts from your tables40        const userCount = await pool.query('SELECT COUNT(*) FROM users');41        const logCount = await pool.query('SELECT COUNT(*) FROM usage_logs');42        43        res.send(`44            <!DOCTYPE html>45            <html lang="en">46            <head>47                <meta charset="UTF-8">48                <meta name="viewport" content="width=device-width, initial-scale=1.0">49                <title>Audio AI Hub Admin Dashboard</title>50                <style>51                    body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #0f172a; color: #f8fafc; padding: 40px; margin: 0; }52                    .container { max-width: 800px; margin: 0 auto; }53                    .header { border-bottom: 1px solid #334155; padding-bottom: 20px; margin-bottom: 30px; }54                    h1 { color: #38bdf8; margin: 0; font-size: 28px; }55                    .status-badge { background: #10b981; color: white; padding: 4px 10px; border-radius: 12px; font-size: 12px; display: inline-block; margin-top: 8px; }56                    .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }57                    .card { background: #1e293b; border: 1px solid #334155; padding: 24px; border-radius: 12px; text-align: center; }58                    .card-number { font-size: 48px; font-weight: bold; color: #f59e0b; margin: 10px 0; }59                    .card-label { color: #94a3b8; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; }60                </style>61            </head>62            <body>63                <div class="container">64                    <div class="header">65                        <h1>Audio AI Hub Administrative Engine</h1>66                        <div class="status-badge">● Engine Operational</div>67                    </div>68                    <p>Your Docker core container is fully active on Hugging Face. The database proxy lines are listening for live app integrations.</p>69                    70                    <div class="grid">71                        <div class="card">72                            <div class="card-label">Registered App Users</div>73                            <div class="card-number">${userCount.rows[0].count}</div>74                        </div>75                        <div class="card">76                            <div class="card-label">Total Files Processed</div>77                            <div class="card-number">${logCount.rows[0].count}</div>78                        </div>79                    </div>80                </div>81            </body>82            </html>83        `);84    } catch (err) {85        res.status(500).send(`86            <body style="background: #0f172a; color: #f8fafc; padding: 40px; font-family: sans-serif;">87                <h2 style="color: #ef4444;">Database Connection Error</h2>88                <p>Your server is running, but it cannot connect to your PostgreSQL database.</p>89                <code style="background: #1e293b; padding: 10px; display: block; border-radius: 6px; color: #f8fafc;">${err.message}</code>90                <p>Please double-check your <strong>DATABASE_URL</strong> secret in the Space settings tab.</p>91            </body>92        `);93    }94});95 96// 4. API Core Schema Integration Routes97 98// Create/Sync User99app.post('/api/users', async (req, res) => {100    const { id, email, first_name, last_name, profile_image_url, tier } = req.body;101    try {102        const result = await pool.query(103            `INSERT INTO users (id, email, first_name, last_name, profile_image_url, tier) 104             VALUES (COALESCE($1, gen_random_uuid()::text), $2, $3, $4, $5, COALESCE($6, 'free'::tier)) 105             ON CONFLICT (email) DO UPDATE 106             SET first_name = EXCLUDED.first_name, last_name = EXCLUDED.last_name, profile_image_url = EXCLUDED.profile_image_url, updated_at = now()107             RETURNING *`,108            [id, email, first_name, last_name, profile_image_url, tier]109        );110        res.status(201).json({ success: true, user: result.rows[0] });111    } catch (err) { res.status(500).json({ error: err.message }); }112});113 114// Write Processed Usage Log115app.post('/api/logs', async (req, res) => {116    const { user_id, preset, original_filename, output_filename } = req.body;117    try {118        const result = await pool.query(119            `INSERT INTO usage_logs (user_id, preset, original_filename, output_filename) 120             VALUES ($1, $2, $3, $4) RETURNING *`,121            [user_id, preset, original_filename, output_filename]122        );123        res.status(201).json({ success: true, log: result.rows[0] });124    } catch (err) { res.status(500).json({ error: err.message }); }125});126 127// Explicitly bind network listening parameters128app.listen(PORT, '0.0.0.0', () => {129    console.log(`Server actively routing pipelines on port ${PORT}`);130});131