fix: load .env at startup, fix vercel created field, services 3-col, vps no binbar

This commit is contained in:
posimai 2026-04-02 20:40:15 +09:00
parent 3d1d599fd6
commit 6c3f4b7e07
2 changed files with 13 additions and 5 deletions

View File

@ -1,4 +1,13 @@
'use strict'; 'use strict';
// .env を手動ロードdotenv 不要)
try {
require('fs').readFileSync(require('path').join(__dirname, '.env'), 'utf8')
.split('\n').forEach(line => {
const eq = line.indexOf('=');
if (eq > 0) process.env[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();
});
} catch (_) {}
const express = require('express'); const express = require('express');
const { WebSocketServer } = require('ws'); const { WebSocketServer } = require('ws');
const pty = require('node-pty'); const pty = require('node-pty');
@ -197,7 +206,7 @@ app.get('/api/vercel-deploys', async (req, res) => {
name: d.name, name: d.name,
state: d.state, state: d.state,
url: d.url, url: d.url,
created: d.createdAt, created: d.created,
}); });
} catch (e) { res.status(502).json({ error: e.message }); } } catch (e) { res.status(502).json({ error: e.message }); }
}); });

View File

@ -72,7 +72,8 @@
#last-checked { text-align:right;font-size:11px;color:var(--text3); } #last-checked { text-align:right;font-size:11px;color:var(--text3); }
#middle { display:grid;grid-template-columns:280px 240px 1fr 180px;gap:10px;min-height:0; } #middle { display:grid;grid-template-columns:280px 240px 1fr 180px;gap:10px;min-height:0; }
.machines-panel { gap:10px; } .machines-panel { gap:10px;overflow-y:auto;scrollbar-width:none; }
.machines-panel::-webkit-scrollbar { display:none; }
.machines-section { font-size:9px;font-weight:600;color:var(--text3);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:-2px; } .machines-section { font-size:9px;font-weight:600;color:var(--text3);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:-2px; }
.machines-divider { border-top:1px solid var(--border);margin:2px 0; } .machines-divider { border-top:1px solid var(--border);margin:2px 0; }
@ -122,7 +123,7 @@
.spark-svg { width:100%;height:100%;overflow:visible; } .spark-svg { width:100%;height:100%;overflow:visible; }
/* services */ /* services */
.service-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;overflow-y:auto;flex:1; } .service-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;overflow-y:auto;flex:1;align-content:start; }
.service-card { background:var(--surface2);border:1px solid var(--border2);border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:6px; } .service-card { background:var(--surface2);border:1px solid var(--border2);border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:6px; }
.service-card-top { display:flex;align-items:center;justify-content:space-between; } .service-card-top { display:flex;align-items:center;justify-content:space-between; }
.service-name { font-size:13px;font-weight:500; } .service-name { font-size:13px;font-weight:500; }
@ -239,11 +240,9 @@
</div> </div>
<div class="metric-item"> <div class="metric-item">
<div class="metric-header-row"><span class="metric-label">Memory</span><span class="metric-val" id="vps-mem"></span></div> <div class="metric-header-row"><span class="metric-label">Memory</span><span class="metric-val" id="vps-mem"></span></div>
<div class="bin-bar" id="vps-mem-bar"></div>
</div> </div>
<div class="metric-item"> <div class="metric-item">
<div class="metric-header-row"><span class="metric-label">Disk (/)</span><span class="metric-val" id="vps-disk"></span></div> <div class="metric-header-row"><span class="metric-label">Disk (/)</span><span class="metric-val" id="vps-disk"></span></div>
<div class="bin-bar" id="vps-disk-bar"></div>
</div> </div>
<div class="stat-grid" style="grid-template-columns:1fr 1fr;gap:6px"> <div class="stat-grid" style="grid-template-columns:1fr 1fr;gap:6px">
<div class="stat-card"><div class="stat-label">Uptime</div><div class="stat-val" id="vps-uptime"></div></div> <div class="stat-card"><div class="stat-label">Uptime</div><div class="stat-val" id="vps-uptime"></div></div>