fix: load .env at startup, fix vercel created field, services 3-col, vps no binbar
This commit is contained in:
parent
3d1d599fd6
commit
6c3f4b7e07
|
|
@ -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 }); }
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue