aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/doc/docker.md
diff options
context:
space:
mode:
authorBenjamin Bouvier <public@benj.me>2018-03-15 14:39:04 +0100
committerChocobozzz <me@florianbigard.com>2018-03-15 14:39:04 +0100
commitef48a0d50aec99472340fa0995e1739113190147 (patch)
tree7b08df1fffa3863e62f789939ceb4eee39d654a0 /support/doc/docker.md
parent2e3a0215d051dca1f7c8ef423564c8d37a255f77 (diff)
downloadPeerTube-ef48a0d50aec99472340fa0995e1739113190147.tar.gz
PeerTube-ef48a0d50aec99472340fa0995e1739113190147.tar.zst
PeerTube-ef48a0d50aec99472340fa0995e1739113190147.zip
[docker] Update production guidelines and docker-compose file; (#341)
Diffstat (limited to 'support/doc/docker.md')
-rw-r--r--support/doc/docker.md65
1 files changed, 50 insertions, 15 deletions
diff --git a/support/doc/docker.md b/support/doc/docker.md
index 2249d14c4..e0c03a1dc 100644
--- a/support/doc/docker.md
+++ b/support/doc/docker.md
@@ -1,26 +1,61 @@
1# Docker guide 1# Docker guide
2 2
3## Test/Development 3You can quickly get a server running using Docker. You need to have
4[docker](https://www.docker.com/community-edition) and
5[docker-compose](https://docs.docker.com/compose/install/) installed.
4 6
5You can quickly get a server running using Docker. You need to have [docker](https://www.docker.com/community-edition) and [docker-compose](https://docs.docker.com/compose/install/) installed. 7## Production
8
9### Build your own Docker image
10
11```bash
12$ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
13$ cd /tmp/peertube
14$ docker build . -f ./support/docker/production/Dockerfile.stretch
15```
6 16
7For this example configuration, you should also run a reverse proxy. The example 17### Run a preconfigured setup with all dependencies
8Docker Compose file provides example labels for the Traefik load balancer,
9though any HTTP reverse proxy is compatible.
10 18
11Example for running a PeerTube server locally: 19PeerTube needs a PostgreSQL and a Redis instance to work correctly. If you want
20to quickly set up a full environment, either for trying the service or in
21production, you can use a `docker-compose` setup.
12 22
13```bash 23```bash
14$ wget https://github.com/chocobozzz/PeerTube/raw/develop/support/docker/production/docker-compose.yml 24$ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
15$ sudo \ 25$ cd /tmp/peertube/support/docker/production
16 PEERTUBE_HOSTNAME=peertube.lvh.me \
17 PEERTUBE_ADMIN_EMAIL=test@example.com \
18 PEERTUBE_TRANSCODING_ENABLED=true \
19 docker-compose up app
20``` 26```
21 27
22(Get the initial root user password from the program output.) 28Then tweak the `docker-compose.yml` file there according to your needs. Then
29you can use the regular `up` command to set it up, with possible overrides of
30the environment variables:
23 31
24## Production 32```bash
33$ PEERTUBE_HOSTNAME=peertube.lvh.me \
34 PEERTUBE_ADMIN_EMAIL=test@example.com \
35 PEERTUBE_TRANSCODING_ENABLED=true \
36 PEERTUBE_SIGNUP_ENABLED=true \
37 PEERTUBE_SMTP_HOST=mail.lvh.me \
38 PEERTUBE_SMTP_PORT=1025 \
39 PEERTUBE_SMTP_FROM=noreply@peertube.lvh.me \
40 docker-compose up
41```
42
43Other environment variables are used in
44`support/docker/production/config/custom-environment-variables.yaml` and can be
45intuited from usage.
46
47For this example configuration, a reverse proxy is quite recommended. The
48example Docker Compose file provides example labels for a Traefik load
49balancer, although any HTTP reverse proxy will work fine. See the example
50Nginx configuration `support/nginx/peertube` file to get an idea of
51recommendations and requirements to run PeerTube the most efficiently.
52
53**Important**: note that you'll get the initial `root` user password from the
54program output, so check out your logs to find them.
55
56## Development
25 57
26PR welcome! 58The Docker image that's preconfigured in `support/docker/dev` contains all the
59services embedded in one image, so as to work correctly on
60[Janitor](https://janitor.technology). It is much not advised to use it in
61production.