Skip to content

Commit a953466

Browse files
committed
Updated documentation.
1 parent d0baf17 commit a953466

File tree

1 file changed

+44
-16
lines changed

1 file changed

+44
-16
lines changed

README.md

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ of this parameter has the format `<VARIABLE_NAME>=<VALUE>`.
7777
|`CLEAN_TMP_DIR`| When set to `1`, all files in the `/tmp` directory are delete during the container startup. | `1` |
7878
|`DISPLAY_WIDTH`| Width (in pixels) of the application's window. | `1280` |
7979
|`DISPLAY_HEIGHT`| Height (in pixels) of the application's window. | `768` |
80-
|`VNC_PASSWORD`| Password needed to connect to the application's GUI. See the [VNC Pasword](#vnc-password) section for more details. | (unset) |
80+
|`SECURE_CONNECTION`| When set to `1`, an encrypted connection is used to access the application's GUI (either via web browser or VNC client). See the [Security](#security) section for more details. | `0` |
81+
|`VNC_PASSWORD`| Password needed to connect to the application's GUI. See the [VNC Password](#vnc-password) section for more details. | (unset) |
8182
|`X11VNC_EXTRA_OPTS`| Extra options to pass to the x11vnc server running in the Docker container. **WARNING**: For advanced users. Do not use unless you know what you are doing. | (unset) |
8283
|`CRASHPLAN_SRV_MAX_MEM`| Maximum amount of memory the CrashPlan Engine is allowed to use. One of the following memory unit (case insensitive) should be added as a suffix to the size: `G`, `M` or `K`. By default, when this variable is not set, a maximum of 1024MB (`1024M`) of memory is allowed. | (unset) |
8384

@@ -102,7 +103,7 @@ container cannot be changed, but you are free to use any port on the host side.
102103
| Port | Mapping to host | Description |
103104
|------|-----------------|-------------|
104105
| 5800 | Mandatory | Port used to access the application's GUI via the web interface. |
105-
| 5900 | Mandatory | Port used to access the application's GUI via the VNC protocol. |
106+
| 5900 | Optional | Port used to access the application's GUI via the VNC protocol. Optional if no VNC client is used. |
106107

107108
## User/Group IDs
108109

@@ -131,8 +132,8 @@ be given the container.
131132

132133
## Accessing the GUI
133134

134-
Assuming the host is mapped to the same ports as the container, the graphical
135-
interface of the application can be accessed via:
135+
Assuming that container's ports are mapped to the same host's ports, the
136+
graphical interface of the application can be accessed via:
136137

137138
* A web browser:
138139
```
@@ -144,28 +145,55 @@ http://<HOST IP ADDR>:5800
144145
<HOST IP ADDR>:5900
145146
```
146147

147-
If different ports are mapped to the host, make sure they respect the
148-
following formula:
148+
## Security
149149

150-
VNC_PORT = HTTP_PORT + 100
150+
By default, access to the application's GUI is done over an unencrypted
151+
connection (HTTP or VNC).
151152

152-
This is to make sure accessing the GUI with a web browser can be done without
153-
specifying the VNC port manually. If this is not possible, then specify
154-
explicitly the VNC port like this:
153+
Secure connection can be enabled via the `SECURE_CONNECTION` environment
154+
variable. See the [Environment Variables](#environment-variables) section for
155+
more details on how to set an environment variable.
155156

156-
http://<HOST IP ADDR>:5800/?port=<VNC PORT>
157+
When enabled, application's GUI is performed over an HTTPs connection when
158+
accessed with a browser. All HTTP accesses are automatically redirected to
159+
HTTPs.
157160

158-
## VNC Password
161+
When using a VNC client, the VNC connection is performed over SSL. Note that
162+
few VNC clients support this method. [SSVNC] is one of them.
163+
164+
### Certificates
165+
166+
Here are the certificate files needed by the container. By default, when they
167+
are missing, self-signed certificates are generated and used. All files have
168+
PEM encoded, x509 certificates.
169+
170+
| Container Path | Purpose | Content |
171+
|---------------------------------|----------------------------|---------|
172+
|`/config/certs/vnc-server.pem` |VNC connection encryption. |VNC server's private key and certificate, bundled with any root and intermediate certificates.|
173+
|`/config/certs/web-privkey.pem` |HTTPs connection encryption.|Web server's private key.|
174+
|`/config/certs/web-fullchain.pem`|HTTPs connection encryption.|Web server's certificate, bundled with any root and intermediate certificates.|
175+
176+
**NOTE**: To prevent any certificate validity warnings/errors from the browser
177+
or VNC client, make sure to supply your own valid certificates.
178+
179+
**NOTE**: Certificate files are monitored and relevant daemons are automatically
180+
restarted when changes are detected.
181+
182+
### VNC Password
159183

160184
To restrict access to your application, a password can be specified. This can
161185
be done via two methods:
162186
* By using the `VNC_PASSWORD` environment variable.
163187
* By creating a `.vncpass_clear` file at the root of the `/config` volume.
164-
This file should contains the password (in clear). During the container
165-
startup, content of the file is obfuscated and renamed to `.vncpass`.
188+
This file should contains the password in clear-text. During the container
189+
startup, content of the file is obfuscated and moved to `.vncpass`.
190+
191+
The level of security provided by the VNC password depends on two things:
192+
* The type of communication channel (encrypted/unencrypted).
193+
* How secure access to the host is.
166194

167-
**NOTE**: This is a very basic way to restrict access to the application and it
168-
should not be considered as secure in any way.
195+
When using a VNC password, it is highly desirable to enable the secure
196+
connection to prevent sending the password in clear over an unencrypted channel.
169197

170198
## Taking Over Existing Backup
171199

0 commit comments

Comments
 (0)