Skip to content

Commit e3e3766

Browse files
committed
doc: Update installation instructions
1 parent 8e53960 commit e3e3766

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

doc/installation.rst

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ The following installation guides are for Linux only. Theoretically all the comp
1212
Docker
1313
------
1414

15-
We provide a Dockerfile for each of the components of this software (client, backend, runner). The best way to use them is with Docker Compose. In the following we assume that you want to host our backend and client/frontend on the same server, and the runner on a different one. If this assumption doesn't hold for you (e.g. if you want the frontend to be served by a different server than the backends API), then you may have to write your own Dockerfiles and docker-compose.yml or choose a different installation method like NixOS ;).
15+
We provide a docker image for each of the components of this software (client, backend, runner). The best way to use them is with Docker Compose. In the following we assume that you want to host our backend and client/frontend on the same server, and the runner on a different one. If this assumption doesn't hold for you (e.g. if you want the frontend to be served by a different server than the backends API), then you may have to write your own Dockerfiles and docker-compose.yml or choose a different installation method like NixOS ;).
16+
17+
.. note::
18+
For each of the three components there are multiple docker image tags. The examples below will use the 'latest' tag which will pull the latest stable release (recommended). If you want to pull the development version (latest git commit on main branch), then choose the 'main' tag instead. Alternatively you can also pinpoint the docker image to a specific versions. Go to the Packages section of each GitHub repository to find out which tags are available. To use a tag other than 'latest' add it to the end of the 'image:' lines in the docker-compose.yml files below like this: image: <source>/<name>:<tag>
1619

1720
.. _docker_backend_frontend-label:
1821

@@ -63,20 +66,20 @@ Additionally to the backend and frontend, the following instructions will also s
6366
6467
services:
6568
backend:
66-
build: https://github.com/JulianFP/project-W.git
69+
image: ghcr.io/julianfp/project-w_backend
6770
volumes:
6871
- ./project-W-data/config:/etc/xdg/project-W/
6972
- ./project-W-data/database:/database
7073
environment:
7174
- JWT_SECRET_KEY=${PROJECT_W_JWT_SECRET_KEY:-}
7275
- SMTP_PASSWORD=${PROJECT_W_SMTP_PASSWORD:-}
7376
frontend:
74-
build: https://github.com/JulianFP/project-W-frontend.git
77+
image: ghcr.io/julianfp/project-w_frontend
7578
ports:
7679
- 80:80
7780
- 443:443
7881
volumes:
79-
- ./project-W-data/sslCert:/etc/letsencrypt:ro
82+
- ./project-W-data/sslCert:/ssl:ro
8083
- ./acme:/acme
8184
environment:
8285
- NGINX_CONFIG=initial
@@ -90,7 +93,7 @@ Additionally to the backend and frontend, the following instructions will also s
9093
--email <YOUR EMAIL ADDRESS> --agree-tos --no-eff-email
9194
-d <DOMAIN>
9295
volumes:
93-
- ./project-W-data/sslCert:/etc/letsencrypt
96+
- ./project-W-data/sslCert:/etc/letsencrypt/live/<DOMAIN>
9497
- ./acme:/var/www/certbot
9598
9699
5. Generate a JWT_SECRET_KEY that will be used to for generating Session Tokens. If you have python installed you can use the following command for this:
@@ -117,20 +120,20 @@ Additionally to the backend and frontend, the following instructions will also s
117120
118121
services:
119122
backend:
120-
build: https://github.com/JulianFP/project-W.git
123+
image: ghcr.io/julianfp/project-w_backend
121124
volumes:
122125
- ./project-W-data/config:/etc/xdg/project-W/
123126
- ./project-W-data/database:/database
124127
environment:
125128
- JWT_SECRET_KEY=${PROJECT_W_JWT_SECRET_KEY:-}
126129
- SMTP_PASSWORD=${PROJECT_W_SMTP_PASSWORD:-}
127130
frontend:
128-
build: https://github.com/JulianFP/project-W-frontend.git
131+
image: ghcr.io/julianfp/project-w_frontend
129132
ports:
130133
- 80:80
131134
- 443:443
132135
volumes:
133-
- ./project-W-data/sslCert:/etc/letsencrypt:ro
136+
- ./project-W-data/sslCert:/ssl:ro
134137
- ./acme:/acme
135138
environment:
136139
- NGINX_CONFIG=ssl
@@ -144,7 +147,7 @@ Additionally to the backend and frontend, the following instructions will also s
144147
--email <YOUR EMAIL ADDRESS> --agree-tos --no-eff-email
145148
-d <DOMAIN>
146149
volumes:
147-
- ./project-W-data/sslCert:/etc/letsencrypt
150+
- ./project-W-data/sslCert:/etc/letsencrypt/live/<DOMAIN>
148151
- ./acme:/var/www/certbot
149152
150153
8. You may want to setup a systemd service or similar to start the containers automatically. Please be careful with where you store your JWT Secret Key and your SMTP Password, they should always stay secret!
@@ -166,28 +169,27 @@ If you want to bring your own ssl certificate (e.g. self-signed or using some ot
166169
mkdir -p project-W/project-W-data/sslCert/ && mkdir project-W/project-W-data/config && cd project-W
167170
168171
3. Put your config.yml into ./project-W-data/config
169-
4. Put your ssl certificate files into ./project-W-data/sslCert. The following files should be in that directory: fullchain.pem (ssl certificate), privkey.pem (ssl certificate private key) and chain.pem (ssl trusted certificate for OCSP stapling).
172+
4. Put your ssl certificate files into ./project-W-data/sslCert. The following files should be in that directory: fullchain.pem (ssl certificate), privkey.pem (ssl certificate private key) and chain.pem (ssl trusted certificate for OCSP stapling). If you use self-signed certificates then chain.pem and fullchain.pem will be the same.
170173
5. Put docker-compose.yml in the current directory. Use the following config and make same adjustments if needed (make sure to replace the <placeholders>!):
171174

172175
.. code-block:: yaml
173176
174177
services:
175178
backend:
176-
build: https://github.com/JulianFP/project-W.git
179+
image: ghcr.io/julianfp/project-w_backend
177180
volumes:
178181
- ./project-W-data/config:/etc/xdg/project-W/
179182
- ./project-W-data/database:/database
180183
environment:
181184
- JWT_SECRET_KEY=${PROJECT_W_JWT_SECRET_KEY:-}
182185
- SMTP_PASSWORD=${PROJECT_W_SMTP_PASSWORD:-}
183186
frontend:
184-
build: https://github.com/JulianFP/project-W-frontend.git
187+
image: ghcr.io/julianfp/project-w_frontend
185188
ports:
186189
- 80:80
187190
- 443:443
188191
volumes:
189-
- ./project-W-data/sslCert:/etc/letsencrypt/live/<DOMAIN>:ro
190-
- ./acme:/acme
192+
- ./project-W-data/sslCert:/ssl:ro
191193
environment:
192194
- NGINX_CONFIG=ssl
193195
- SERVER_NAME=<DOMAIN>
@@ -229,15 +231,15 @@ Follow this guide if you want to run this behind a Reverse Proxy which takes car
229231
230232
services:
231233
backend:
232-
build: https://github.com/JulianFP/project-W.git
234+
image: ghcr.io/julianfp/project-w_backend
233235
volumes:
234236
- ./project-W-data/config:/etc/xdg/project-W/
235237
- ./project-W-data/database:/database
236238
environment:
237239
- JWT_SECRET_KEY=${PROJECT_W_JWT_SECRET_KEY:-}
238240
- SMTP_PASSWORD=${PROJECT_W_SMTP_PASSWORD:-}
239241
frontend:
240-
build: https://github.com/JulianFP/project-W-frontend.git
242+
image: ghcr.io/julianfp/project-w_frontend
241243
ports:
242244
- 80:80
243245
environment:

0 commit comments

Comments
 (0)