You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3f6d5b7
Browse filesBrowse the repository at this point in the historyBrowse files
- A dedicated \(sub\)domain to host Dispatch on \(for example, dispatch.yourcompany.com\).
10
+
- At least 2400MB memory
11
+
- 2 CPU Cores
12
12
13
13
## Installing Dispatch Server
14
14
@@ -36,3 +36,217 @@ To start, run the install script:
36
36
./install.sh
37
37
```
38
38
39
+
## Going to Production
40
+
41
+
Before you deploy Dispatch to production there are a few considerations and steps that should taken.
42
+
43
+
### Basics
44
+
45
+
Because of the sensitivity of the information stored and maintained by Dispatch it is important that you follow standard host hardening practices:
46
+
47
+
- Run Dispatch with a limited user
48
+
- Disabled any unneeded services
49
+
- Enable remote logging
50
+
- Restrict access to host
51
+
52
+
### Credential Management
53
+
54
+
Dispatch plugins require API tokens that are used to communicate with third party resources. These are typically stored in either the an environment variable or in the Dispatch `.env` file.
55
+
56
+
By default these strings are in plain text, but Dispatch does provide hooks that allow for these credentials to be decrypted on server start. See the [Secret Provider](configuration/app.md#general) configuration option.
57
+
58
+
### Authentication
59
+
60
+
To get going quickly, Dispatch provides a "Basic Authentication" provider that controls access via a username and password combination. By default, this provider allows for **open registration**. Meaning that anyone will be able to create a Dispatch account if they have network access to your server.
61
+
62
+
For a more robust authentication, Dispatch provides a PKCE authentication method that can be used to integrate with existing and more robust SSO solutions. See the [Authentication Provider](configuration/app.md#authentication)
63
+
64
+
### TLS/SSL
65
+
66
+
#### Nginx
67
+
68
+
Nginx is a very popular choice to serve a Python project:
69
+
70
+
- It’s fast.
71
+
- It’s lightweight.
72
+
- Configuration files are simple.
73
+
74
+
Nginx doesn’t run any Python process, it only serves requests from outside to the Python server.
75
+
76
+
Therefore, there are two steps:
77
+
78
+
- Run the Python process.
79
+
- Run Nginx.
80
+
81
+
You will benefit from having:
82
+
83
+
- The possibility to have several projects listening to the port 80;
84
+
- Your web site processes won’t run with admin rights, even if –user doesn’t work on your OS;
85
+
-The ability to manage a Python process without touching Nginx or the other processes. It’s very handy for updates.
86
+
87
+
You must create a Nginx configuration file for Dispatch. On GNU/Linux, they usually go into /etc/nginx/conf.d/. Name it dispatch.conf.
88
+
89
+
proxy_pass just passes the external request to the Python process. The port must match the one used by the Dispatch process of course.
90
+
91
+
You can make some adjustments to get a better user experience:
This makes Nginx serve the favicon and static files which it is much better at than python.
126
+
127
+
It is highly recommended that you deploy TLS when deploying Dispatch. This may be obvious given Dispatch’s purpose but the sensitive nature of Dispatch and what it controls makes this essential. This is a sample config for Dispatch that also terminates TLS:
128
+
129
+
{% hint style="info" %}
130
+
Some paths will have to be adjusted based on where you have choose to install Dispatch.
This is a rather incomplete apache config for running Dispatch (needs mod_wsgi etc.), if you have a working apache config please let us know!
248
+
{% endhint %}
249
+
250
+
Also included in the configurations above are several best practices when it comes to deploying TLS. Things like enabling HSTS, disabling vulnerable ciphers are all good ideas when it comes to deploying Dispatch into a production environment.
251
+
252
+
For more SSL configuration options see: [Mozilla SSL Configuration Generator](https://mozilla.github.io/server-side-tls/ssl-config-generator/)
0 commit comments