]>
Commit | Line | Data |
---|---|---|
1 | # Docker guide | |
2 | ||
3 | You 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. | |
6 | ||
7 | ## Production | |
8 | ||
9 | ### Install | |
10 | ||
11 | **PeerTube does not support webserver host change**. Keep in mind your domain name is definitive after your first PeerTube start. | |
12 | ||
13 | PeerTube needs a PostgreSQL and a Redis instance to work correctly. If you want | |
14 | to quickly set up a full environment, either for trying the service or in | |
15 | production, you can use a `docker-compose` setup. | |
16 | ||
17 | ```shell | |
18 | $ cd /your/peertube/directory | |
19 | $ mkdir ./docker-volume && mkdir ./docker-volume/traefik | |
20 | $ curl "https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/config/traefik.toml" > ./docker-volume/traefik/traefik.toml | |
21 | $ touch ./docker-volume/traefik/acme.json && chmod 600 ./docker-volume/traefik/acme.json | |
22 | $ curl -s "https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/docker-compose.yml" -o docker-compose.yml "https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/docker/production/.env" -o .env | |
23 | ``` | |
24 | View the source of the files you're about to download: [docker-compose.yml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml) and the [traefik.toml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/traefik.toml) | |
25 | ||
26 | Update the reverse proxy configuration: | |
27 | ||
28 | ```shell | |
29 | $ vim ./docker-volume/traefik/traefik.toml | |
30 | ``` | |
31 | ||
32 | Tweak the `docker-compose.yml` file there according to your needs: | |
33 | ||
34 | ```shell | |
35 | $ vim ./docker-compose.yml | |
36 | ``` | |
37 | ||
38 | Then tweak the `.env` file to change the environment variables: | |
39 | ||
40 | ```shell | |
41 | $ vim ./.env | |
42 | ``` | |
43 | ||
44 | Other environment variables are used in | |
45 | `support/docker/production/config/custom-environment-variables.yaml` and can be | |
46 | intuited from usage. | |
47 | ||
48 | You can use the regular `up` command to set it up: | |
49 | ||
50 | ```shell | |
51 | $ docker-compose up | |
52 | ``` | |
53 | ||
54 | **Important**: note that you'll get the initial `root` user password from the | |
55 | program output, so check out your logs to find them. | |
56 | ||
57 | ### What now? | |
58 | ||
59 | See the production guide ["What now" section](/support/doc/production.md#what-now). | |
60 | ||
61 | ### Upgrade | |
62 | ||
63 | **Important:** Before upgrading, check you have all the `storage` fields in your [production.yaml file](/support/docker/production/config/production.yaml). | |
64 | ||
65 | Pull the latest images and rerun PeerTube: | |
66 | ||
67 | ```shell | |
68 | $ cd /your/peertube/directory | |
69 | $ docker-compose pull | |
70 | $ docker-compose up -d | |
71 | ``` | |
72 | ||
73 | ## Build your own Docker image | |
74 | ||
75 | ```shell | |
76 | $ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube | |
77 | $ cd /tmp/peertube | |
78 | $ docker build . -f ./support/docker/production/Dockerfile.stretch | |
79 | ``` | |
80 | ||
81 | ## Development | |
82 | ||
83 | We don't have a Docker image for development. See [the CONTRIBUTING guide](https://github.com/Chocobozzz/PeerTube/blob/develop/.github/CONTRIBUTING.md#develop) | |
84 | for more information on how you can hack PeerTube! |