CH-J Server ManagerSSH를 통한 서버 관리
메뉴
공개된 소스

CH-J Server Manager

특정 애플리케이션 릴리스의 디렉터리와 파일을 살펴보세요.

소스 ZIP 다운로드
CH-J / Server Manager 377 개 파일
core-20261019T111616Z-160a00bfcddc 추가됨: · 빌드됨:
styles.css 추가됨: 날짜 기록 없음 7.6 KB · 102 줄
코드 파일 다운로드
1:root{color-scheme:dark;--bg:#07111f;--panel:#102033;--panel-2:#0b1929;--line:rgba(151,176,205,.18);--text:#ecf5ff;--muted:#8ea5bf;--blue:#42a5ff;--green:#43d6a0;--red:#ff7272;--yellow:#f2c463}
2*{box-sizing:border-box}
3[hidden]{display:none!important}
4body{margin:0;min-width:720px;min-height:520px;color:var(--text);background:radial-gradient(circle at 75% 0,rgba(45,130,220,.18),transparent 35%),var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px}
5.app-header{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line);background:rgba(5,14,25,.76)}
6h1{margin:5px 0 2px;font-size:24px}
7h2{margin:0;font-size:19px}
8h3{margin:0 0 10px;font-size:16px}
9h4{margin:0 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
10.app-header p{margin:0;color:var(--muted);font-size:11px}
11.eyebrow{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.17em}
12main{padding:18px 28px 30px}
13.panel{border:1px solid var(--line);border-radius:14px;background:rgba(16,32,51,.82)}
14.toolbar{display:flex;align-items:end;gap:10px;padding:14px 16px;flex-wrap:wrap}
15.toolbar label{display:grid;gap:6px;min-width:240px;color:var(--muted);font-size:11px}
16.privilege{display:grid;gap:6px;color:var(--muted);font-size:11px;margin-right:auto}
17select,input,textarea,.button,.mini{border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel-2);padding:8px 10px;font:inherit}
18textarea{width:100%;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
19select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
20.button,.mini{cursor:pointer}
21.button.primary{background:linear-gradient(135deg,#267dd1,#3867e8);border-color:#458cea}
22.button.danger{border-color:rgba(255,114,114,.45);color:#ffb4b4;background:rgba(255,114,114,.08)}
23.button.ghost{background:transparent}
24.button:disabled,.mini:disabled{opacity:.4;cursor:not-allowed}
25.sudo-mark{font-size:9px;color:var(--yellow);letter-spacing:.04em;text-transform:uppercase}
26.mini{padding:4px 7px;font-size:10px}
27.mini.danger{border-color:rgba(255,114,114,.35);color:#ffaaaa}
28.status{min-height:18px;margin:10px 2px;color:var(--muted);font-size:12px}
29.status.error{color:var(--red)}
30.layout{display:grid;grid-template-columns:minmax(330px,5fr) minmax(380px,7fr);gap:14px;align-items:start}
31.list{display:flex;flex-direction:column;min-height:420px}
32.list-head{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
33.list-head input{flex:1;min-width:120px}
34.table-wrap{overflow:auto}
35.list .table-wrap{max-height:calc(100vh - 290px);min-height:240px}
36table{width:100%;border-collapse:collapse;font-size:11px}
37th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
38th{color:var(--muted);background:var(--panel-2);font-size:10px;font-weight:600}
39thead th{position:sticky;top:0;z-index:1}
40tbody tr:last-child td{border-bottom:0}
41tbody tr.selected{background:rgba(66,165,255,.1)}
42.row-button{all:unset;cursor:pointer;display:grid;gap:2px;width:100%}
43.row-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}
44.row-button small{color:var(--yellow);font-size:10px}
45.sub{display:block;color:var(--muted);font-size:10px;font-weight:400}
46.empty{text-align:center;color:var(--muted);padding:32px}
47.note{margin:0;padding:10px 12px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}
48.note:empty{display:none}
49.badge{display:inline-block;padding:2px 7px;border-radius:999px;font-size:10px;white-space:nowrap;background:rgba(142,165,191,.14);color:var(--muted)}
50.badge.ok{background:rgba(67,214,160,.12);color:var(--green)}
51.badge.warn{background:rgba(242,196,99,.13);color:var(--yellow)}
52.badge.danger{background:rgba(255,114,114,.13);color:var(--red)}
53.badges{display:flex;gap:4px;flex-wrap:wrap}
54.detail{padding:16px 18px;min-height:420px}
55.empty-detail{color:var(--muted);text-align:center;padding:80px 20px}
56.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
57.detail-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
58.notice{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(66,165,255,.06);color:var(--muted);font-size:11px}
59.notice p{margin:0 0 6px}
60.notice.warn{border-color:rgba(242,196,99,.35);background:rgba(242,196,99,.07);color:#f5d999}
61.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0;flex-wrap:wrap}
62.tabs [role=tab]{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:8px 10px;font:inherit;cursor:pointer}
63.tabs [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--blue)}
64.tab-panel{display:grid;gap:12px}
65.sub-panel{border:1px solid var(--line);border-radius:10px;padding:12px;background:rgba(11,25,41,.5)}
66.info-grid{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:6px 14px;margin:0;font-size:12px}
67.info-grid dt{color:var(--muted)}
68.info-grid dd{margin:0;word-break:break-word}
69.inline-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
70.hint{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
71.error{margin:0;color:var(--red);font-size:12px}
72.muted{color:var(--muted)}
73.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;word-break:break-all}
74.chip-list{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0}
75.chip-list li{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 10px;font-size:11px}
76.chip-list li.muted{border:0;padding:0}
77.details-list{margin:6px 0;padding-left:18px;color:var(--muted);font-size:11px}
78.policy-table th[scope=row]{background:transparent;color:var(--text);font-size:11px;min-width:150px}
79.policy-table td{vertical-align:middle}
80.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
81.segmented label{position:relative;cursor:pointer}
82.segmented input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
83.segmented span{display:block;padding:6px 9px;font-size:11px;color:var(--muted);border-right:1px solid var(--line)}
84.segmented label:last-child span{border-right:0}
85.segmented input:checked+span{background:rgba(66,165,255,.22);color:var(--text)}
86.segmented input:focus-visible+span{outline:2px solid var(--blue);outline-offset:-2px}
87.segmented input:disabled+span{opacity:.55;cursor:not-allowed}
88tr.invalid td{color:var(--yellow)}
89dialog{border:1px solid var(--line);border-radius:14px;background:#0d1b2d;color:var(--text);padding:20px 22px;width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto}
90dialog::backdrop{background:rgba(2,8,16,.7)}
91dialog form{display:grid;gap:12px}
92dialog label{display:grid;gap:6px;color:var(--muted);font-size:11px}
93dialog label.check,.check{display:flex;align-items:center;gap:8px}
94dialog p{margin:0;font-size:12px;line-height:1.45}
95dialog fieldset{border:1px solid var(--line);border-radius:10px;display:grid;gap:10px;padding:12px}
96dialog legend{color:var(--muted);font-size:11px;padding:0 6px}
97#createDialog{width:min(720px,calc(100vw - 40px))}
98.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
99.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
100code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
101@media(max-width:1100px){.layout{grid-template-columns:1fr}.list .table-wrap{max-height:340px}}
102@media(max-width:860px){main,.app-header{padding-left:18px;padding-right:18px}.form-grid{grid-template-columns:1fr}.toolbar label{min-width:180px}}
SHA-256afb478ffa09935a4191ebe35f6eab6d804b36c8f272cde348a7e42459cb5ea78

CH-J Proprietary Software License 1.14 · 소스는 CH-J Proprietary Software License 1.14에 따라 제공됩니다. 소스를 공개한다고 해서 라이선스 조항이 바뀌거나 추가 권리가 부여되지는 않습니다.

압축 파일 SHA-256a9605c0870a223b6a8542bb0705edd51d8b04f3069582653417a8397fabcc09a
파일