Wiki source code of Network Diagram (CLOUD)

Last modified by Iaroslav Platonov on 2026/06/09 11:24

Hide last authors
Iaroslav Platonov 4.1 1 {{html clean="false"}}
2 <style>
3 /* Disable XWiki heading counters */
4 .doc-content h1::before,.doc-content h2::before,
5 .doc-content h3::before,.doc-content h4::before { content:none !important; display:none !important; }
6 .doc-content { counter-reset:none !important; }
Lana 1.2 7
Iaroslav Platonov 4.1 8 /* Reading progress bar */
9 #rn-prog { position:fixed;top:0;left:0;height:3px;width:0;background:#005AB4;z-index:9999;pointer-events:none; }
Lana 1.2 10
Iaroslav Platonov 4.1 11 /* Layout — no right TOC on this page */
12 .doc-content {
13 max-width:860px;
14 border-left:1px solid #E8E8E8;
15 border-right:1px solid #E8E8E8;
16 padding:0 32px 32px 32px;
17 }
Lana 1.3 18
Iaroslav Platonov 4.1 19 /* Typography */
20 .doc-content p { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0; }
21 .doc-content ul { font-size:.93em;color:#333;line-height:1.75;margin:0 0 16px 0;padding-left:24px; }
22 .doc-content li { margin-bottom:5px; }
23 .doc-content code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;line-height:1; }
Lana 1.3 24
Iaroslav Platonov 4.1 25 /* Diagram figure */
26 .diagram-wrap {
27 margin:8px 0 28px 0;
28 border:1px solid #E8E8E8;
29 border-radius:6px;
30 overflow:hidden;
31 box-shadow:0 2px 8px rgba(0,0,0,.08);
32 }
33 .diagram-wrap img {
34 display:block;
35 width:100%;
36 height:auto;
37 cursor:zoom-in;
38 }
39 .diagram-cap {
40 font-size:.78em;color:#555;
41 background:#f5f5f5;
42 border-top:1px solid #E8E8E8;
43 padding:6px 12px;
44 }
Lana 1.3 45
Iaroslav Platonov 4.1 46 /* Section heading */
47 .doc-content h2 {
48 font-size:1.1em;font-weight:700;color:#222;
49 margin:28px 0 10px 0;
50 padding-bottom:6px;
51 border-bottom:1px solid #E8E8E8;
52 }
Lana 1.4 53
Iaroslav Platonov 4.1 54 /* File list */
55 .file-list { list-style:none;padding:0;margin:0 0 16px 0; }
56 .file-list li {
57 display:flex;align-items:flex-start;gap:10px;
58 padding:8px 12px;
59 border-bottom:1px solid #E8E8E8;
60 font-size:.88em;color:#333;
61 }
62 .file-list li:last-child { border-bottom:none; }
63 .file-list li code {
64 font-size:.88em;color:#005AB4;font-weight:600;white-space:nowrap;
65 background:#deeaf7;border:1px solid #b3d4ee;border-radius:3px;padding:1px 6px;
66 flex-shrink:0;
67 }
68 .file-list li span { line-height:1.55;padding-top:1px; }
69
70 /* Info callout */
71 .note-info { background:#e1f1f9 !important;border:1px solid #b3d4ee !important;border-left:4px solid #005AB4 !important;border-radius:6px;padding:12px 16px;margin:14px 0; }
72 .note-hd { font-weight:700;font-size:.85em;display:flex;align-items:center;gap:5px;margin-bottom:5px;color:#003d80 !important; }
73 .note-body { font-size:.875em;color:#222 !important;line-height:1.65; }
74
75 /* Parent topic */
76 .parent-topic { font-size:.82em;color:#555;margin:28px 0 0 0;border-top:1px solid #E8E8E8;padding-top:10px; }
77 .parent-topic a { color:#005AB4; }
78
79 /* Lightbox */
80 #rn-lb { display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.85);cursor:zoom-out;align-items:center;justify-content:center; }
81 #rn-lb.open { display:flex; }
82 #rn-lb-wrap { position:relative;cursor:default;max-width:94vw;max-height:92vh; }
83 #rn-lb-wrap img { max-width:100%;max-height:92vh;border-radius:5px;display:block; }
84 #rn-lb-x { position:absolute;top:-13px;right:-13px;background:#005AB4;color:#fff;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center; }
85
86 /* Back to top */
87 #rn-top { position:fixed;bottom:60px;right:60px;z-index:9997;width:36px;height:36px;border-radius:50%;background:#005AB4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .22s,transform .22s;pointer-events:none;box-shadow:0 2px 8px rgba(0,90,180,.3); }
88 #rn-top.on { opacity:1;transform:translateY(0);pointer-events:auto; }
89 #rn-top:hover { background:#0066cc; }
90 </style>
91
92 <div id="rn-prog"></div>
93 <div id="rn-lb">
94 <div id="rn-lb-wrap">
95 <button id="rn-lb-x" onclick="closeLightbox()">&#10005;</button>
96 <img id="rn-lb-img" src="" alt=""/>
97 </div>
98 </div>
99 <button id="rn-top" onclick="window.scrollTo({top:0,behavior:'smooth'})" title="Back to top">
100 <svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4l5 5H3z"/></svg>
101 </button>
102
103 <div class="doc-content">
104
105 <!-- NOTE: Do NOT add <h1> — XWiki renders the title natively -->
106
107 <div class="diagram-wrap">
108 <img
109 src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/Network%20diagram%20%28CLOUD%29/WebHome/Screenshot%202025-11-11%20at%2015.58.11.png"
110 alt="CENTO Network Diagram — Cloud deployment"
111 onclick="openLightbox(this)"/>
112 <p class="diagram-cap">Network Diagram &mdash; CENTO Cloud deployment topology</p>
113 </div>
114
115 <h2>VPN connection via OpenVPN</h2>
116
117 <p>When working via wired communication channels (Internet), it is recommended to establish a secure data exchange channel between the client&rsquo;s equipment and the CENTO server using a <strong>VPN channel based on the OpenVPN protocol</strong>.</p>
118
119 <p>To implement an OpenVPN channel, the client must have a router that supports the OpenVPN protocol (supported by most modern routers).</p>
120
121 <h2>Connection files</h2>
122
123 <p>The following files are provided to the client for connection:</p>
124
125 <ul class="file-list">
126 <li><code>ca.crt</code> <span>Public certificate of the certification authority</span></li>
127 <li><code>client.crt</code> <span>Public client encryption certificate</span></li>
128 <li><code>client.key</code> <span>Private key for the client certificate</span></li>
129 <li><code>auth.cfg</code> <span>File containing the username and password</span></li>
130 <li><code>client.ovpn</code> <span>OpenVPN configuration file</span></li>
131 </ul>
132
133 <div class="note-info">
134 <div class="note-hd"><span>&#8505;</span> Security note</div>
135 <div class="note-body">The files <code>client.crt</code>, <code>client.key</code>, and <code>auth.cfg</code> are generated <strong>individually for each client</strong> to ensure connection security.</div>
136 </div>
137
138 <div class="parent-topic">Parent topic: <a href="[[CENTO Manuals>>doc:CENTO Manuals.WebHome]]">CENTO Manuals</a></div>
139
140 </div>
141
142 <script>
143 (function(){
144 var bar=document.getElementById('rn-prog');
145 var top=document.getElementById('rn-top');
146 window.addEventListener('scroll',function(){
147 var d=document.documentElement;
148 var pct=d.scrollTop/(d.scrollHeight-d.clientHeight);
149 bar.style.width=(pct*100)+'%';
150 d.scrollTop>200?top.classList.add('on'):top.classList.remove('on');
151 },{passive:true});
152
153 var lb=document.getElementById('rn-lb');
154 var lbI=document.getElementById('rn-lb-img');
155 window.openLightbox=function(img){lbI.src=img.src;lbI.alt=img.alt;lb.classList.add('open');document.body.style.overflow='hidden';};
156 window.closeLightbox=function(){lb.classList.remove('open');document.body.style.overflow='';};
157 lb.addEventListener('click',function(e){if(e.target===lb)closeLightbox();});
158 document.addEventListener('keydown',function(e){if(e.key==='Escape')closeLightbox();});
159 })();
160 </script>
161 {{/html}}
162