CH-J ToolsSSH によるサーバー管理
メニュー
公開済みのソース

CH-J Tools

特定のアプリケーションリリースのディレクトリとファイルを閲覧できます。

ソースの ZIP をダウンロード
CH-J / Server Manager 1704 ファイル
0.1.2-beta 追加日時: · ビルド日時:
index.html 追加日時: 日付の記録なし 21.5 KB · 162 行
コード ファイルをダウンロード
1<!doctype html>
2<html lang="cs">
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'none'; img-src 'self' data:; object-src 'none'; base-uri 'none'; form-action 'none'">
7 <title>Rsync Manager</title>
8 <link rel="stylesheet" href="styles.css">
9</head>
10<body>
11 <header>
12 <div class="brand"><svg class="brand-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M8 16H3v5"/></svg><div><span class="eyebrow">CH-J PLUGIN</span><h1>Rsync Manager</h1><p id="pluginVersion" data-i18n="Modul se načítá…">Modul se načítá…</p></div></div>
13 <button id="closeButton" class="button ghost" type="button" data-i18n="Zavřít">Zavřít</button>
14 </header>
15 <main>
16 <p id="status" class="status" data-i18n="Vyberte zdroj a cíl.">Vyberte zdroj a cíl.</p>
17 <nav class="tabs" role="tablist">
18 <button class="tab active" type="button" role="tab" data-tab="sync" data-i18n="Synchronizace">Synchronizace</button>
19 <button class="tab" type="button" role="tab" data-tab="profiles" data-i18n="Profily">Profily</button>
20 <button class="tab" type="button" role="tab" data-tab="schedule" data-i18n="Plánovač">Plánovač</button>
21 <button class="tab" type="button" role="tab" data-tab="backups" data-i18n="Zálohy">Zálohy</button>
22 <button class="tab" type="button" role="tab" data-tab="diag" data-i18n="Diagnostika">Diagnostika</button>
23 </nav>
25 <section class="tab-panel" data-panel="sync">
26 <div class="pair"><section class="panel side"><h2 data-i18n="Zdroj">Zdroj</h2>
27 <div class="form-grid" style="margin-top:0">
28 <label class="field wide"><span data-i18n="Umístění">Umístění</span><select id="sourcePlace"></select></label>
29 <label class="field wide"><span data-i18n="Cesta">Cesta</span><input id="sourcePath" spellcheck="false" placeholder="/srv/www"></label>
30 <label class="check"><input id="sourceSudo" type="checkbox"><span data-i18n="Spustit přes sudo">Spustit přes sudo</span></label>
31 <label class="field" id="sourceSudoField" hidden><span data-i18n="Heslo pro sudo">Heslo pro sudo</span><input id="sourceSudoPassword" type="password" maxlength="1024" autocomplete="off" placeholder="prázdné pro NOPASSWD" data-i18n-placeholder="prázdné pro NOPASSWD"></label>
32 </div>
33 <p id="sourceInfo" class="explain"></p>
34 </section><section class="panel side"><h2 data-i18n="Cíl">Cíl</h2>
35 <div class="form-grid" style="margin-top:0">
36 <label class="field wide"><span data-i18n="Umístění">Umístění</span><select id="targetPlace"></select></label>
37 <label class="field wide"><span data-i18n="Cesta">Cesta</span><input id="targetPath" spellcheck="false" placeholder="/srv/www"></label>
38 <label class="check"><input id="targetSudo" type="checkbox"><span data-i18n="Spustit přes sudo">Spustit přes sudo</span></label>
39 <label class="field" id="targetSudoField" hidden><span data-i18n="Heslo pro sudo">Heslo pro sudo</span><input id="targetSudoPassword" type="password" maxlength="1024" autocomplete="off" placeholder="prázdné pro NOPASSWD" data-i18n-placeholder="prázdné pro NOPASSWD"></label>
40 </div>
41 <p id="targetInfo" class="explain"></p>
42 </section></div>
43 <section class="panel block" id="transportBlock" hidden>
44 <div class="section-heading"><div><span class="eyebrow" data-i18n="MEZI SERVERY">MEZI SERVERY</span><h2 data-i18n="Jak se servery spojí">Jak se servery spojí</h2></div></div>
45 <div class="form-grid">
46 <label class="field wide"><span data-i18n="Spojení">Spojení</span><select id="transportKind"><option value="relay" data-i18n="Přes tuto aplikaci (na serverech není potřeba žádný klíč)">Přes tuto aplikaci (na serverech není potřeba žádný klíč)</option><option value="direct" data-i18n="Přímo: zdrojový server se přihlásí k cíli">Přímo: zdrojový server se přihlásí k cíli</option></select></label>
47 <div id="directFields" class="form-grid wide" style="margin-top:0" hidden>
48 <label class="field"><span data-i18n="Host cíle">Host cíle</span><input id="directHost" spellcheck="false"></label>
49 <label class="field"><span data-i18n="Port">Port</span><input id="directPort" type="number" min="1" max="65535" value="22"></label>
50 <label class="field"><span data-i18n="Uživatel">Uživatel</span><input id="directUser" spellcheck="false"></label>
51 <label class="field"><span data-i18n="Přihlášení">Přihlášení</span><select id="directMethod"><option value="key" data-i18n="SSH klíč na zdrojovém serveru">SSH klíč na zdrojovém serveru</option><option value="password" data-i18n="Heslo">Heslo</option><option value="agent" data-i18n="Výchozí klíče zdrojového serveru">Výchozí klíče zdrojového serveru</option></select></label>
52 <label class="field wide" id="directKeyField"><span data-i18n="Cesta ke klíči na zdrojovém serveru">Cesta ke klíči na zdrojovém serveru</span><input id="directKey" spellcheck="false" placeholder="/home/ai/.ssh/id_ed25519"></label>
53 <label class="field wide" id="directPasswordField" hidden><span data-i18n="Heslo pro přihlášení k cíli">Heslo pro přihlášení k cíli</span><input id="directPassword" type="password" autocomplete="off"></label>
54 <label class="check wide"><input id="directAcceptNew" type="checkbox"><span data-i18n="Přijmout neznámý host key cíle při prvním spojení">Přijmout neznámý host key cíle při prvním spojení</span></label>
55 </div>
56 </div>
57 </section>
58 <section class="panel block">
59 <div class="section-heading"><div><span class="eyebrow" data-i18n="REŽIM">REŽIM</span><h2 data-i18n="Co se má stát">Co se má stát</h2></div></div>
60 <div class="form-grid">
61 <label class="field"><span data-i18n="Režim">Režim</span><select id="mode"><option value="copy" data-i18n="Kopírování">Kopírování</option><option value="mirror" data-i18n="Zrcadlení">Zrcadlení</option><option value="versioned" data-i18n="Verzovaná záloha">Verzovaná záloha</option><option value="snapshot" data-i18n="Snapshoty">Snapshoty</option><option value="compare" data-i18n="Porovnání bez přenosu">Porovnání bez přenosu</option></select></label>
62 <label class="field"><span data-i18n="Co přenést">Co přenést</span><select id="contentsOnly"><option value="1" data-i18n="Obsah složky">Obsah složky</option><option value="0" data-i18n="Složku samotnou">Složku samotnou</option></select></label>
63 </div>
64 <p id="modeInfo" class="explain"></p><p id="slashInfo" class="explain"></p>
65 <details class="options"><summary data-i18n="Podrobná nastavení">Podrobná nastavení</summary>
66 <div class="checks">
67 <label class="check"><input id="optPermissions" type="checkbox" checked><span data-i18n="Oprávnění">Oprávnění</span></label><label class="check"><input id="optTimes" type="checkbox" checked><span data-i18n="Časy souborů">Časy souborů</span></label><label class="check"><input id="optOwner" type="checkbox"><span data-i18n="Vlastník">Vlastník</span></label><label class="check"><input id="optGroup" type="checkbox"><span data-i18n="Skupina">Skupina</span></label><label class="check"><input id="optAcls" type="checkbox"><span data-i18n="ACL">ACL</span></label><label class="check"><input id="optXattrs" type="checkbox"><span data-i18n="Rozšířené atributy">Rozšířené atributy</span></label><label class="check"><input id="optHardlinks" type="checkbox"><span data-i18n="Pevné odkazy">Pevné odkazy</span></label><label class="check"><input id="optDevices" type="checkbox"><span data-i18n="Zařízení a speciální soubory">Zařízení a speciální soubory</span></label><label class="check"><input id="optNumericIds" type="checkbox"><span data-i18n="Číselná ID uživatelů">Číselná ID uživatelů</span></label><label class="check"><input id="optCompress" type="checkbox"><span data-i18n="Komprese">Komprese</span></label><label class="check"><input id="optChecksum" type="checkbox"><span data-i18n="Porovnat kontrolním součtem">Porovnat kontrolním součtem</span></label><label class="check"><input id="optSizeOnly" type="checkbox"><span data-i18n="Porovnat jen velikost">Porovnat jen velikost</span></label><label class="check"><input id="optResume" type="checkbox" checked><span data-i18n="Obnovit přerušený přenos">Obnovit přerušený přenos</span></label><label class="check"><input id="optInplace" type="checkbox"><span data-i18n="Zapisovat přímo do souboru">Zapisovat přímo do souboru</span></label><label class="check"><input id="optOneFs" type="checkbox"><span data-i18n="Nepřecházet na jiný souborový systém">Nepřecházet na jiný souborový systém</span></label><label class="check"><input id="optUpdate" type="checkbox"><span data-i18n="Nepřepisovat novější soubory v cíli">Nepřepisovat novější soubory v cíli</span></label><label class="check"><input id="optExisting" type="checkbox"><span data-i18n="Jen soubory, které v cíli už jsou">Jen soubory, které v cíli už jsou</span></label><label class="check"><input id="optIgnoreExisting" type="checkbox"><span data-i18n="Přeskočit soubory, které v cíli už jsou">Přeskočit soubory, které v cíli už jsou</span></label><label class="check"><input id="optDeleteExcluded" type="checkbox"><span data-i18n="Mazat i vyloučené soubory (zrcadlení)">Mazat i vyloučené soubory (zrcadlení)</span></label>
68 </div>
69 <div class="form-grid">
70 <label class="field"><span data-i18n="Symbolické odkazy">Symbolické odkazy</span><select id="optSymlinks"><option value="preserve" data-i18n="Zachovat jako odkazy">Zachovat jako odkazy</option><option value="follow" data-i18n="Kopírovat jejich cíl">Kopírovat jejich cíl</option><option value="skip" data-i18n="Přeskočit">Přeskočit</option></select></label>
71 <label class="field"><span data-i18n="Limit rychlosti (KiB/s, 0 = bez limitu)">Limit rychlosti (KiB/s, 0 = bez limitu)</span><input id="optBandwidth" type="number" min="0" value="0"></label>
72 <label class="field"><span data-i18n="Časový limit bez přenosu (s, 0 = bez limitu)">Časový limit bez přenosu (s, 0 = bez limitu)</span><input id="optTimeout" type="number" min="0" value="0"></label>
73 <label class="field"><span data-i18n="Největší soubor (např. 100M)">Největší soubor (např. 100M)</span><input id="optMaxSize" spellcheck="false"></label>
74 <label class="field"><span data-i18n="Nejmenší soubor (např. 1K)">Nejmenší soubor (např. 1K)</span><input id="optMinSize" spellcheck="false"></label>
75 <label class="field"><span data-i18n="Uchovat verze (dny, 0 = bez limitu)">Uchovat verze (dny, 0 = bez limitu)</span><input id="optKeepDays" type="number" min="0" value="0"></label>
76 <label class="field"><span data-i18n="Uchovat verze (počet, 0 = bez limitu)">Uchovat verze (počet, 0 = bez limitu)</span><input id="optKeepCount" type="number" min="0" value="0"></label>
77 <label class="field wide"><span data-i18n="Vyloučit (jeden vzor na řádek)">Vyloučit (jeden vzor na řádek)</span><textarea id="optExcludes" rows="3" spellcheck="false" placeholder="cache/&#10;*.tmp"></textarea></label>
78 <label class="field wide"><span data-i18n="Vždy zahrnout (jeden vzor na řádek)">Vždy zahrnout (jeden vzor na řádek)</span><textarea id="optIncludes" rows="2" spellcheck="false"></textarea></label>
79 <label class="field wide"><span data-i18n="Pokročilé parametry rsyncu (oddělené mezerou, jen povolené)">Pokročilé parametry rsyncu (oddělené mezerou, jen povolené)</span><input id="optExtra" spellcheck="false" placeholder="--sparse --compress-level=9"></label>
80 </div>
81 </details>
82 <pre id="commandPreview" class="command" hidden></pre>
83 <div class="actions end">
84 <button id="saveProfileButton" class="button" type="button" data-i18n="Uložit jako profil">Uložit jako profil</button>
85 <button id="showCommandButton" class="button" type="button" data-i18n="Zobrazit parametry">Zobrazit parametry</button>
86 <button id="previewButton" class="button primary" type="button" data-i18n="Analyzovat">Analyzovat</button>
87 <button id="runButton" class="button warning" type="button" disabled data-i18n="Synchronizovat">Synchronizovat</button>
88 <button id="cancelButton" class="button" type="button" hidden data-i18n="Zrušit">Zrušit</button>
89 </div>
90 <div id="progress" class="progress" hidden><i></i></div><p id="progressText" class="explain"></p>
91 </section>
92 <section id="previewBlock" class="panel block" hidden>
93 <div class="section-heading"><div><span class="eyebrow" data-i18n="NÁHLED">NÁHLED</span><h2 id="previewTitle" data-i18n="Co se změní">Co se změní</h2></div></div>
94 <div class="preview-stats"><div class="good"><small data-i18n="Nové">Nové</small><strong id="statNew">0</strong></div><div><small data-i18n="Změněné">Změněné</small><strong id="statChanged">0</strong></div><div class="danger"><small id="statDeleteLabel" data-i18n="K odstranění">K odstranění</small><strong id="statDelete">0</strong></div><div><small data-i18n="Jen metadata">Jen metadata</small><strong id="statMeta">0</strong></div><div><small data-i18n="Objem změn">Objem změn</small><strong id="statBytes">0</strong></div></div>
95 <div id="previewWarnings"></div>
96 <input id="itemFilter" class="wide-input" type="search" spellcheck="false" placeholder="Filtrovat soubory…" data-i18n-placeholder="Filtrovat soubory…" style="margin-top:11px">
97 <div id="itemList" class="items"></div><p id="itemsNote" class="explain"></p>
98 </section>
99 <section class="panel result-panel block"><div class="section-heading"><div><span class="eyebrow" data-i18n="VÝSTUP">VÝSTUP</span><h2 data-i18n="Výstup rsyncu">Výstup rsyncu</h2></div></div><pre id="output" class="command">—</pre></section>
100 </section>
102 <section class="tab-panel" data-panel="profiles" hidden>
103 <section class="panel block"><div class="section-heading"><div><span class="eyebrow" data-i18n="PROFILY">PROFILY</span><h2 data-i18n="Uložené úlohy">Uložené úlohy</h2><small class="muted" data-i18n="Profil ukládá servery podle SSH profilu a nastavení. Hesla se neukládají.">Profil ukládá servery podle SSH profilu a nastavení. Hesla se neukládají.</small></div></div><div id="profileList" class="site-list"></div></section>
104 </section>
106 <section class="tab-panel" data-panel="schedule" hidden>
107 <section class="panel block">
108 <div class="section-heading"><div><span class="eyebrow" data-i18n="NA SERVERU">NA SERVERU</span><h2 data-i18n="Úloha na časovači serveru">Úloha na časovači serveru</h2><small class="muted" data-i18n="Běží i bez této aplikace, přes systemd nebo cron. Jde jen o úlohy, které server zvládne sám: obě cesty na něm, nebo přímé přihlášení klíčem. Použije se úloha ze záložky Synchronizace.">Běží i bez této aplikace, přes systemd nebo cron. Jde jen o úlohy, které server zvládne sám: obě cesty na něm, nebo přímé přihlášení klíčem. Použije se úloha ze záložky Synchronizace.</small></div></div>
109 <div class="form-grid">
110 <label class="field"><span data-i18n="Název">Název</span><input id="scheduleLabel" maxlength="120"></label>
111 <label class="field"><span data-i18n="Spouštění">Spouštění</span><select id="scheduleKind"><option value="interval" data-i18n="Opakovaně">Opakovaně</option><option value="daily" data-i18n="Denně">Denně</option><option value="weekly" data-i18n="Týdně">Týdně</option></select></label>
112 <label class="field" id="scheduleMinutesField"><span data-i18n="Interval">Interval</span><select id="scheduleMinutes"></select></label>
113 <label class="field" id="scheduleTimeField" hidden><span data-i18n="Čas">Čas</span><input id="scheduleTime" type="time" value="03:30"></label>
114 <label class="field" id="scheduleDayField" hidden><span data-i18n="Den">Den</span><select id="scheduleDay"></select></label>
115 <label class="field"><span data-i18n="Nejvýše smazaných souborů za běh (zrcadlení)">Nejvýše smazaných souborů za běh (zrcadlení)</span><input id="scheduleMaxDeletes" type="number" min="0" value="0"></label>
116 <label class="field"><span data-i18n="Heslo pro sudo">Heslo pro sudo</span><input id="scheduleSudo" type="password" autocomplete="off" placeholder="prázdné pro NOPASSWD" data-i18n-placeholder="prázdné pro NOPASSWD"></label>
117 </div>
118 <div class="actions end"><button id="scheduleInstall" class="button primary" type="button" data-i18n="Nainstalovat na server">Nainstalovat na server</button></div>
119 </section>
120 <section class="panel block">
121 <div class="section-heading"><div><span class="eyebrow" data-i18n="PŘEHLED">PŘEHLED</span><h2 data-i18n="Úlohy na serveru">Úlohy na serveru</h2></div><button id="scheduleLoad" class="button" type="button" data-i18n="Načíst">Načíst</button></div>
122 <label class="field"><span data-i18n="Server">Server</span><select id="scheduleServer"></select></label>
123 <div id="scheduleList" class="site-list"></div><pre id="scheduleLog" class="command" hidden></pre>
124 <h2 data-i18n="Rsync mimo tuto aplikaci">Rsync mimo tuto aplikaci</h2>
125 <p class="muted" data-i18n="Jen pro čtení: cron, systemd, démon, běžící procesy a skripty.">Jen pro čtení: cron, systemd, démon, běžící procesy a skripty.</p>
126 <div id="discoveredList" class="site-list"></div>
127 </section>
128 </section>
130 <section class="tab-panel" data-panel="backups" hidden>
131 <section class="panel block">
132 <div class="section-heading"><div><span class="eyebrow" data-i18n="ZÁLOHY">ZÁLOHY</span><h2 data-i18n="Verze a snapshoty v cíli">Verze a snapshoty v cíli</h2><small class="muted" data-i18n="Čte cíl ze záložky Synchronizace. Obnova je běžný náhled a přenos zpět.">Čte cíl ze záložky Synchronizace. Obnova je běžný náhled a přenos zpět.</small></div><button id="versionsLoad" class="button" type="button" data-i18n="Načíst">Načíst</button></div>
133 <div id="versionList" class="site-list"></div>
134 <div class="form-grid"><label class="field"><span data-i18n="Ponechat dní">Ponechat dní</span><input id="pruneDays" type="number" min="0" value="30"></label><label class="field"><span data-i18n="Ponechat nejméně verzí">Ponechat nejméně verzí</span><input id="pruneCount" type="number" min="0" value="5"></label></div>
135 <div class="actions end"><button id="pruneButton" class="button warning" type="button" data-i18n="Odstranit staré verze">Odstranit staré verze</button></div>
136 </section>
137 </section>
139 <section class="tab-panel" data-panel="diag" hidden>
140 <section class="panel block"><div class="section-heading"><div><span class="eyebrow" data-i18n="DIAGNOSTIKA">DIAGNOSTIKA</span><h2 data-i18n="rsync na tomto počítači a na serverech">rsync na tomto počítači a na serverech</h2></div><button id="diagLoad" class="button" type="button" data-i18n="Zjistit">Zjistit</button></div><div id="diagList" class="site-list"></div></section>
141 <section class="panel block"><div class="section-heading"><div><span class="eyebrow" data-i18n="HISTORIE">HISTORIE</span><h2 data-i18n="Dokončené přenosy">Dokončené přenosy</h2></div><button id="historyClear" class="button" type="button" data-i18n="Vymazat">Vymazat</button></div><div id="historyList" class="site-list"></div></section>
142 </section>
143 </main>
145 <div id="connectDialog" class="dialog-back" hidden><div class="dialog" role="dialog" aria-modal="true">
146 <h2 data-i18n="Nové SSH připojení">Nové SSH připojení</h2>
147 <div class="form-grid">
148 <label class="field"><span data-i18n="Host">Host</span><input id="connectHost" spellcheck="false"></label>
149 <label class="field"><span data-i18n="Port">Port</span><input id="connectPort" type="number" min="1" max="65535" value="22"></label>
150 <label class="field"><span data-i18n="Uživatel">Uživatel</span><input id="connectUser" spellcheck="false"></label>
151 <label class="field"><span data-i18n="Přihlášení">Přihlášení</span><select id="connectMethod"><option value="password" data-i18n="Heslo">Heslo</option><option value="privateKey" data-i18n="SSH klíč">SSH klíč</option></select></label>
152 <label class="field wide" id="connectPasswordField"><span data-i18n="Heslo">Heslo</span><input id="connectPassword" type="password" autocomplete="off"></label>
153 <label class="field wide" id="connectKeyField" hidden><span data-i18n="Cesta ke klíči na tomto počítači">Cesta ke klíči na tomto počítači</span><input id="connectKey" spellcheck="false"></label>
154 <label class="field wide" id="connectPassphraseField" hidden><span data-i18n="Heslo ke klíči (nepovinné)">Heslo ke klíči (nepovinné)</span><input id="connectPassphrase" type="password" autocomplete="off"></label>
155 </div>
156 <div class="actions end"><button id="connectCancel" class="button" type="button" data-i18n="Zrušit">Zrušit</button><button id="connectGo" class="button primary" type="button" data-i18n="Připojit">Připojit</button></div>
157 </div></div>
159 <script src="i18n.js"></script>
160 <script src="index.js"></script>
161</body>
162</html>
SHA-2565ef4211be2762d6fd12b2e2548bb54cb25c967b4d3b0957c9d4242c3807163f6

CH-J Proprietary Software License 1.14 · ソースは CH-J Proprietary Software License 1.14 に基づいて提供されています。公開されていても、ライセンス条項が変わったり、追加の権利が付与されたりすることはありません。

アーカイブの SHA-256ac8fe790f4ba60fc098f8c985fc2656cfcc6cdc21fb34b30e308a2b54e62258f
ファイル