-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusage.html
More file actions
453 lines (413 loc) · 29 KB
/
usage.html
File metadata and controls
453 lines (413 loc) · 29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Using HappyPanda X — HappyPanda X 0.13.3#170 documentation</title>
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/style.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script src="https://platform.twitter.com/widgets.js"></script>
<script src="_static/script.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Translations" href="translation.html" />
<link rel="prev" title="Installing" href="install.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
<script type="text/javascript" src="_static/js/jquery-1.11.0.min.js "></script>
<script type="text/javascript" src="_static/js/jquery-fix.js "></script>
<script type="text/javascript" src="_static/bootstrap-3.3.7/js/bootstrap.min.js "></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js "></script>
</head><body>
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><span><img src="_static/hpx_logo.svg"></span>
HappyPanda X</a>
<span class="navbar-text navbar-version pull-left"><b>0.13.3#170</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="index.html">Contents <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Using HappyPanda X</a></li>
<li class="toctree-l1"><a class="reference internal" href="#installing-plugins">Installing plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="#securing-happypanda-x">Securing HappyPanda X</a></li>
<li class="toctree-l1"><a class="reference internal" href="#exposing-happypanda-x">Exposing HappyPanda X</a></li>
<li class="toctree-l1"><a class="reference internal" href="translation.html">Translations</a></li>
<li class="toctree-l1"><a class="reference internal" href="settings.html">Settings</a></li>
<li class="toctree-l1"><a class="reference internal" href="switches.html">Command-Line Arguments</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="env.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="env.html#editing-the-documentation">Editing the documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="client.html">Creating frontends</a></li>
<li class="toctree-l1"><a class="reference internal" href="plugin.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="todo.html">TODO</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api_general.html">General</a></li>
<li class="toctree-l1"><a class="reference internal" href="api.html">Server API</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_plugin.html">Plugin API</a></li>
</ul>
</ul>
</li>
<li>
<a href="install.html" title="Previous Chapter: Installing"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Installing</span>
</a>
</li>
<li>
<a href="translation.html" title="Next Chapter: Translations"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Translations »</span>
</a>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<ul class="quick-links">
<li>
<strong>Quick links</strong>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/twiddli" aria-label="Follow @twiddli on GitHub">Follow @twiddli</a>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax/issues" data-icon="octicon-issue-opened" data-show-count="true" aria-label="Issue happypandax/happypandax on GitHub">Issue</a>
</li>
<li class="divider">·</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax" data-icon="octicon-star" data-show-count="true" aria-label="Star happypandax/happypandax on GitHub">Star</a>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax/fork" data-icon="octicon-repo-forked" data-show-count="true" aria-label="Fork happypandax/happypandax on GitHub">Fork</a>
</li>
<li class="divider">·</li>
<li class="quick-link">
<a href="https://twitter.com/twiddly_"
class="twitter-follow-button" data-width="145px"
data-link-color="#0069D6" data-show-count="false">
Follow
@twiddly_
</a>
</li>
<li class="quick-link">
<a href="https://twitter.com/share" class="twitter-share-button"
data-url="" data-count="horizontal"
data-via="twbootstrap"
data-related="twiddly_:Creator of HappyPanda X">Tweet</a>
</li>
</ul>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="sidebar" class="bs-sidenav" role="complementary"><ul>
<li><a class="reference internal" href="#">Using HappyPanda X</a><ul>
<li><a class="reference internal" href="#setting-up">Setting up</a><ul>
<li><a class="reference internal" href="#choosing-a-database-backend">Choosing a database backend</a></li>
</ul>
</li>
<li><a class="reference internal" href="#starting">Starting</a></li>
<li><a class="reference internal" href="#migrating-from-happypanda">Migrating from HappyPanda</a></li>
<li><a class="reference internal" href="#using">Using</a></li>
</ul>
</li>
<li><a class="reference internal" href="#installing-plugins">Installing plugins</a><ul>
<li><a class="reference internal" href="#be-careful-about-plugins">Be careful about plugins</a></li>
</ul>
</li>
<li><a class="reference internal" href="#securing-happypanda-x">Securing HappyPanda X</a><ul>
<li><a class="reference internal" href="#users">Users</a></li>
<li><a class="reference internal" href="#tls-ssl-support">TLS/SSL Support</a></li>
</ul>
</li>
<li><a class="reference internal" href="#exposing-happypanda-x">Exposing HappyPanda X</a><ul>
<li><a class="reference internal" href="#private-network">Private network</a><ul>
<li><a class="reference internal" href="#windows">Windows</a></li>
<li><a class="reference internal" href="#mac">Mac</a></li>
<li><a class="reference internal" href="#linux">Linux</a></li>
</ul>
</li>
<li><a class="reference internal" href="#public-network">Public network</a></li>
<li><a class="reference internal" href="#reverse-proxy">Reverse Proxy</a><ul>
<li><a class="reference internal" href="#nginx">NGINX</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="col-md-9 content">
<div class="section" id="using-happypanda-x">
<h1>Using HappyPanda X<a class="headerlink" href="#using-happypanda-x" title="Permalink to this headline">¶</a></h1>
<p>A default HPX installation contains the following two components:</p>
<ul>
<li><p><strong>HappyPanda X Server</strong></p>
<blockquote>
<div><p>The backbone of everything. HPX and its associated clients and/or plugins won’t function without this running.</p>
</div></blockquote>
</li>
<li><p><strong>HappyPanda X Webclient</strong></p>
<blockquote>
<div><p>The default frontend that comes with HPX.</p>
<p>This component should also be running, even if you’re not going to use the client.
It is started automatically on server start.</p>
</div></blockquote>
</li>
</ul>
<div class="section" id="setting-up">
<h2>Setting up<a class="headerlink" href="#setting-up" title="Permalink to this headline">¶</a></h2>
<p>Before starting HPX it is recommended to go through all the available settings that configure how HPX should be running.
You can see the available settings <a class="reference internal" href="settings.html#settings"><span class="std std-ref">here</span></a>.</p>
<p>To use these settings, you create a configuration file named <code class="docutils literal notranslate"><span class="pre">config.yaml</span></code> in the root directory of HPX.</p>
<p>You can generate an example configuration file with all settings listed with their default values if you run this command: <code class="docutils literal notranslate"><span class="pre">./happypandax</span> <span class="pre">--gen-config</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul class="simple">
<li><p>On a MacOS HPX installation, the root HPX folder is inside the bundle at <code class="docutils literal notranslate"><span class="pre">HappyPanda</span> <span class="pre">X.app/Contents/MacOS/</span></code>.</p></li>
<li><p>On Windows the executable is named <code class="docutils literal notranslate"><span class="pre">happypandax.exe</span></code> (with <code class="docutils literal notranslate"><span class="pre">.exe</span></code> suffix).</p></li>
</ul>
</div>
<p>Most of these settings can also be configured from a HPX client.</p>
<div class="section" id="choosing-a-database-backend">
<h3>Choosing a database backend<a class="headerlink" href="#choosing-a-database-backend" title="Permalink to this headline">¶</a></h3>
<p>HPX supports these database backends:</p>
<ul class="simple">
<li><p>SQLite</p></li>
<li><p>PostgreSQL</p></li>
</ul>
<p>Before using HPX, it is important that you settle on a backend because transferring data between backends is not supported.
If you’re not sure on which one to pick, go with PostgreSQL, just to be on the safe side.
SQLite doesn’t handle large databases and concurrency that well. PostgreSQL will be the faster and more stable choice in this case, but it requires some
setup before you can use it. Look up a guide on google.</p>
<p>The default backend is SQLite.</p>
<p>Choose the backend with the setting <code class="docutils literal notranslate"><span class="pre">db.dialect</span></code>.</p>
</div>
</div>
<div class="section" id="starting">
<h2>Starting<a class="headerlink" href="#starting" title="Permalink to this headline">¶</a></h2>
<p>You can start up HPX in two ways with the executables named <strong class="program">happypandax</strong> and <strong class="program">happypandax_gui</strong>.</p>
<p>The <strong class="program">happypandax_gui</strong> executable is mostly just a GUI wrapper around <strong class="program">happypandax</strong> to provide a user-friendly way of starting HPX.</p>
<p>Before starting, you can also see the available command-line arguments by supplying the <code class="docutils literal notranslate"><span class="pre">--help</span></code> argument to the <code class="docutils literal notranslate"><span class="pre">happypandax</span></code> executable on the cmd/terminal: <code class="docutils literal notranslate"><span class="pre">./happypandax</span> <span class="pre">--help</span></code>.
You could also refer to <a class="reference internal" href="switches.html#command-line-arguments"><span class="std std-ref">Command-Line Arguments</span></a>.</p>
<p>To start the server (and the webclient with it) you just start one of the two executables.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>On a MacOS HPX installation, the app bundle is set to invoke <code class="docutils literal notranslate"><span class="pre">happypandax_gui</span></code> on launch.</p>
</div>
</div>
<div class="section" id="migrating-from-happypanda">
<h2>Migrating from HappyPanda<a class="headerlink" href="#migrating-from-happypanda" title="Permalink to this headline">¶</a></h2>
<p>In the HPX root folder, you can find a command-line tool named <code class="docutils literal notranslate"><span class="pre">HPtoHPX</span></code> to help convert your HP database.
See available arguments by supplying the <code class="docutils literal notranslate"><span class="pre">--help</span></code> argument to the executable: <code class="docutils literal notranslate"><span class="pre">./HPtoHPX</span> <span class="pre">--help</span></code>.</p>
<p>Convert your HP database like this: <code class="docutils literal notranslate"><span class="pre">./HPtoHPX</span> <span class="pre">"path/to/old/file.db"</span> <span class="pre">"data/happypanda.db"</span></code></p>
<p>Alternatively, you can also use the GUI wrapper <strong class="program">happypandax_gui</strong> which provides a user-friendly way of doing it.</p>
</div>
<div class="section" id="using">
<h2>Using<a class="headerlink" href="#using" title="Permalink to this headline">¶</a></h2>
<p>After starting HPX you can start using it right away by opening up your browser and going to
<code class="docutils literal notranslate"><span class="pre">localhost:7008</span></code> <em>(replace ``7008`` with whatever port you chose the webclient server to listen on)</em></p>
<p>What else you could do is look for another client to use HPX with. They can come in all forms (mobile apps, pc software, etc.) as long as someone builds it.
If you’re interested in building a client to work with HPX, head over to <a class="reference internal" href="client.html#creating-frontends"><span class="std std-ref">Creating frontends</span></a> for an introduction.</p>
<p>Since a HPX client cannot function without the server running, it is a good idea to always leave the HPX server running in the background.</p>
</div>
</div>
<div class="section" id="installing-plugins">
<h1>Installing plugins<a class="headerlink" href="#installing-plugins" title="Permalink to this headline">¶</a></h1>
<p>Your HPX installation can be extended with plugins. If you wish to create a plugin for HPX then head over to <a class="reference internal" href="plugin.html#plugins"><span class="std std-ref">Plugins</span></a>.</p>
<p>HPX looks for plugins in the following folders:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">[HPX]/plugins</span></code> which exists in your HPX root folder</p></li>
<li><p>a folder defined by the <code class="docutils literal notranslate"><span class="pre">plugin.plugin_dir</span></code> setting</p></li>
</ul>
<p>If you’re on OS X, your root HPX folder is inside the bundle at <code class="docutils literal notranslate"><span class="pre">HappyPanda</span> <span class="pre">X.app/Contents/MacOS/</span></code> which might be a bit bothersome, so I recommend that you
define a new folder of your choosing where HPX can look for plugins in with the <code class="docutils literal notranslate"><span class="pre">plugin.plugin_dir</span></code> setting.</p>
<p>Each plugin is contained in its own folder. To register a plugin with HPX, just move the plugin’s folder into one of the locations above.
HPX will then discover and register it, <strong>but not install it</strong>.</p>
<p>To install a plugin after it has been registered, open up a HPX client that supports showing registered plugins (<code class="docutils literal notranslate"><span class="pre">About</span> <span class="pre">-></span> <span class="pre">Plugins</span></code> in the default client).
Here you can install a registered plugin manually. Once a plugin has been installed, it will also be automatically installed on the next HPX run unless disabled or removed.</p>
<p>To automatically install plugins once discovered and registered, set the setting <code class="docutils literal notranslate"><span class="pre">plugin.auto_install_plugin</span></code> to <code class="docutils literal notranslate"><span class="pre">true</span></code>, but <strong>this is not recommended</strong> for the reasons explained below.</p>
<p>A plugin may depend on other plugins that needs to be installed first before it can be installed. There’s the setting <code class="docutils literal notranslate"><span class="pre">plugin.auto_install_plugin_dependency</span></code> which is set to <code class="docutils literal notranslate"><span class="pre">true</span></code> by default
that controls if these plugin dependencies should be installed automatically when the plugin in question is being installed.</p>
<div class="section" id="be-careful-about-plugins">
<h2>Be careful about plugins<a class="headerlink" href="#be-careful-about-plugins" title="Permalink to this headline">¶</a></h2>
<p><strong>A plugin can not do anything before it has been installed.</strong></p>
<p>Plugins have as much power as HPX once installed.</p>
<p>If you give HPX elevated privileges when running, plugins will also have this privilege <strong>but not before they have been installed</strong>.
Know that, inherently, <strong>HappyPanda X does not need elevated privileges</strong>.</p>
<p>Some plugins may also cause unwanted effects towards your system or database.
That is why care should be taken when wanting to use a plugin. Only use those you trust, and also don’t just blindly trust a plugin.
Backing up your HPX database before installing a plugin is recommended.</p>
<p>This all sounds scary and you might even question why even use plugins. HPX tries its best to minimize some of these issues. As long as plugin developers follow the guidelines and write safe code
then everything should be okay.</p>
<p>The <a class="reference external" href="https://github.com/happypandax/plugins">HappyPanda X Plugin Repo</a> houses plugins that have been checked and are for the most part safe to use.
If you’re a plugin developer and want your plugin in there, just submit a PR.</p>
</div>
</div>
<div class="section" id="securing-happypanda-x">
<h1>Securing HappyPanda X<a class="headerlink" href="#securing-happypanda-x" title="Permalink to this headline">¶</a></h1>
<div class="section" id="users">
<h2>Users<a class="headerlink" href="#users" title="Permalink to this headline">¶</a></h2>
<p>HPX creates a default super-user called <code class="docutils literal notranslate"><span class="pre">default</span></code> with no password. This user is enabled by default.
If you’re planning on having multiple people accessing your HPX server, or you want to access the server from a remote origin over the internet, it is best
you disable this user. Disable it with the setting <code class="docutils literal notranslate"><span class="pre">server.disable_default_user</span></code>.</p>
<p>Additionally, you may also want to disallow people accessing the server without logging in with the settings <code class="docutils literal notranslate"><span class="pre">server.allow_guests</span></code> and <code class="docutils literal notranslate"><span class="pre">server.require_auth</span></code>.</p>
<p>To create and delete users, see the command-line args <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">--help</span></code> or use the GUI.</p>
</div>
<div class="section" id="tls-ssl-support">
<h2>TLS/SSL Support<a class="headerlink" href="#tls-ssl-support" title="Permalink to this headline">¶</a></h2>
<p>To enable SSL connections see the setting <code class="docutils literal notranslate"><span class="pre">server.enable_ssl</span></code>.
You can choose to only enable SSL for one of the components by setting the value to either <code class="docutils literal notranslate"><span class="pre">server</span></code> or <code class="docutils literal notranslate"><span class="pre">web</span></code>.
Set the value to <code class="docutils literal notranslate"><span class="pre">true</span></code> to enable for both.</p>
<p>Provide your certification and private key files with the settings <code class="docutils literal notranslate"><span class="pre">server.server_cert</span></code> and <code class="docutils literal notranslate"><span class="pre">server.web_cert</span></code>.
If your private key and certificate is stored in the same file, you only need to set <code class="docutils literal notranslate"><span class="pre">certfile</span></code> and can ignore <code class="docutils literal notranslate"><span class="pre">keyfile</span></code>.</p>
<p>You can also choose to not provide any certfiles at all, in which case HPX will proceed to create a self-signed certificate for your personal use.
These files can be found at <code class="docutils literal notranslate"><span class="pre">[HPX]/data/certs/</span></code>. <code class="docutils literal notranslate"><span class="pre">happypandax.crt</span></code> is the certificate, <code class="docutils literal notranslate"><span class="pre">happypandax.key</span></code> is the private key and <code class="docutils literal notranslate"><span class="pre">happypandax.pem</span></code> is the combined version of the two.
To get other clients to accept your server with the self-signed certificate, provide them with the <code class="docutils literal notranslate"><span class="pre">happypandax.crt</span></code> file.</p>
<p>When using the self-signed certificate, browsers will complain about an unsecure connection. Since you’re using HPX for personal reasons and trust yourself (i hope so), you can go
ahead and allow the connection by adding an exception.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you have enabled SSL for the <code class="docutils literal notranslate"><span class="pre">web</span></code> component, do remember to access through the <code class="docutils literal notranslate"><span class="pre">HTTPS</span></code> protocol and not <code class="docutils literal notranslate"><span class="pre">HTTP</span></code> or you won’t be able to connect.</p>
</div>
</div>
</div>
<div class="section" id="exposing-happypanda-x">
<h1>Exposing HappyPanda X<a class="headerlink" href="#exposing-happypanda-x" title="Permalink to this headline">¶</a></h1>
<p>To allow HPX to be accessed from your phone or other devices, you’ll need to expose the server(s) so it can be connected to from outside your computer.</p>
<div class="section" id="private-network">
<h2>Private network<a class="headerlink" href="#private-network" title="Permalink to this headline">¶</a></h2>
<p>Exposing HPX to your private network will allow <em>any device connected to your home network</em> to access HPX.
This means that you can enjoy your collection on HPX not only from your computer but also from your tablet, phone, etc. as long as they are connected to your home network
either through Wi-Fi or LAN.</p>
<p>When starting HPX, set the two settings <code class="docutils literal notranslate"><span class="pre">server.host</span></code> and <code class="docutils literal notranslate"><span class="pre">server.host_web</span></code> to <code class="docutils literal notranslate"><span class="pre">0.0.0.0</span></code>. This means that the server should listen on all interfaces.
We can also set the ports with the settings <code class="docutils literal notranslate"><span class="pre">server.port</span></code> and <code class="docutils literal notranslate"><span class="pre">server.port_web</span></code>, but we’ll leave them to their default values.</p>
<p>The next step is to allow connections on the chosen ports through your firewall.</p>
<div class="section" id="windows">
<h3>Windows<a class="headerlink" href="#windows" title="Permalink to this headline">¶</a></h3>
<ol class="arabic simple">
<li><p>Press <code class="docutils literal notranslate"><span class="pre">Win</span> <span class="pre">+</span> <span class="pre">R</span></code> type <code class="docutils literal notranslate"><span class="pre">`firewall.cpl</span></code> in the dialogbox and press enter.</p></li>
<li><p>On the lefthand side click on the text that says something along <em>Allow a program to pass through firewall</em>.</p></li>
<li><p>Click on the <em>Change settings</em> button on the top and check if <code class="docutils literal notranslate"><span class="pre">HappyPanda</span> <span class="pre">X</span></code> is on the list. If not then click on the button <em>Allow another program</em> below.</p></li>
<li><p>If <code class="docutils literal notranslate"><span class="pre">HappyPanda</span> <span class="pre">X</span></code> is not on the list then add either <code class="docutils literal notranslate"><span class="pre">happypandax.exe</span></code> or <code class="docutils literal notranslate"><span class="pre">happypandax_gui</span></code> (depending on which you use) or both to the list.</p></li>
<li><p>Make sure the checkbox on the right is checked. Which one to check depends on your network configuration but you can just check both if you’re not sure.</p></li>
</ol>
</div>
<div class="section" id="mac">
<h3>Mac<a class="headerlink" href="#mac" title="Permalink to this headline">¶</a></h3>
<p>Please use google</p>
</div>
<div class="section" id="linux">
<h3>Linux<a class="headerlink" href="#linux" title="Permalink to this headline">¶</a></h3>
<p>Please use google</p>
</div>
</div>
<div class="section" id="public-network">
<h2>Public network<a class="headerlink" href="#public-network" title="Permalink to this headline">¶</a></h2>
<p>Exposing HPX to the public network will allow you to access HPX from <em>any device connected to the internet</em>.</p>
<div class="admonition-todo admonition" id="id1">
<p class="admonition-title">Todo</p>
<p>expose HPX</p>
</div>
</div>
<div class="section" id="reverse-proxy">
<h2>Reverse Proxy<a class="headerlink" href="#reverse-proxy" title="Permalink to this headline">¶</a></h2>
<p>You might wanna use a reverse proxy such as NGINX in front of HPX.</p>
<div class="section" id="nginx">
<h3>NGINX<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h3>
<p>Make sure your NGINX version is atleast version 1.4, earlier versions are not supported.</p>
<p>Here is an example config you can use to get HPX to work with NGINX:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>server {
listen 80;
listen [::]:80;
server_name example.me www.example.me;
charset utf-8;
# for websocket
location /websocket {
proxy_pass http://localhost:7008/websocket;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location / {
proxy_pass http://localhost:7008;
proxy_redirect off;
gzip off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<script src="https://utteranc.es/client.js"
repo="happypandax/happypandax.github.io"
issue-term="pathname"
label="💬 docs"
theme="github-light"
crossorigin="anonymous"
async>
</script>
</div>
</div>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
<br/>
</p>
<p>
© Copyright Twiddly.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.2.1.<br/>
</p>
</div>
</footer>
</body>
</html>