]>
Commit | Line | Data |
---|---|---|
4df6a1b8 C |
1 | # Docker guide |
2 | ||
ef48a0d5 BB |
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. | |
4df6a1b8 | 6 | |
ef48a0d5 BB |
7 | ## Production |
8 | ||
b44a9630 | 9 | ### Install |
4df6a1b8 | 10 | |
6454845e C |
11 | **PeerTube does not support webserver host change**. Keep in mind your domain name is definitive after your first PeerTube start. |
12 | ||
ef48a0d5 BB |
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. | |
4df6a1b8 | 16 | |
f83e339b | 17 | ```shell |
b44a9630 C |
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 | |
f83e339b | 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 |
b44a9630 | 23 | ``` |
91fa7960 | 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) and the [.env] |
25 | (https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env) | |
b44a9630 C |
26 | |
27 | Update the reverse proxy configuration: | |
28 | ||
f83e339b | 29 | ```shell |
b44a9630 C |
30 | $ vim ./docker-volume/traefik/traefik.toml |
31 | ``` | |
32 | ||
33 | Tweak the `docker-compose.yml` file there according to your needs: | |
4df6a1b8 | 34 | |
f83e339b | 35 | ```shell |
52be3076 | 36 | $ vim ./docker-compose.yml |
b44a9630 C |
37 | ``` |
38 | ||
14a767ed | 39 | Then tweak the `.env` file to change the environment variables: |
4df6a1b8 | 40 | |
f83e339b FP |
41 | ```shell |
42 | $ vim ./.env | |
ef48a0d5 | 43 | ``` |
91fa7960 | 44 | If you did not download the .env file above, here you can look at the variables that can be set: |
45 | https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env | |
ef48a0d5 BB |
46 | |
47 | Other environment variables are used in | |
48 | `support/docker/production/config/custom-environment-variables.yaml` and can be | |
49 | intuited from usage. | |
50 | ||
f83e339b FP |
51 | You can use the regular `up` command to set it up: |
52 | ||
53 | ```shell | |
54 | $ docker-compose up | |
55 | ``` | |
76d5770b L |
56 | ### Obtaining Your Automatically Generated Admin Credentials |
57 | Now that you've installed your PeerTube instance you'll want to grep your peertube container's logs for the `root` password. | |
58 | You're going to want to run `docker-compose logs peertube | grep -A1 root` to search the log output for your new PeerTube's instance admin credentials which will look something like this. | |
59 | ```BASH | |
60 | user@s:~/peertube|master⚡ ⇒ docker-compose logs peertube | grep -A1 root | |
61 | ||
62 | peertube_1 | [example.com:443] 2019-11-16 04:26:06.082 info: Username: root | |
63 | peertube_1 | [example.com:443] 2019-11-16 04:26:06.083 info: User password: abcdefghijklmnop | |
64 | ``` | |
ef48a0d5 | 65 | |
57c36b27 C |
66 | ### What now? |
67 | ||
68 | See the production guide ["What now" section](/support/doc/production.md#what-now). | |
69 | ||
b44a9630 C |
70 | ### Upgrade |
71 | ||
e359e88b C |
72 | **Important:** Before upgrading, check you have all the `storage` fields in your [production.yaml file](/support/docker/production/config/production.yaml). |
73 | ||
b44a9630 C |
74 | Pull the latest images and rerun PeerTube: |
75 | ||
f83e339b | 76 | ```shell |
9007daff | 77 | $ cd /your/peertube/directory |
b44a9630 | 78 | $ docker-compose pull |
f83e339b | 79 | $ docker-compose up -d |
b44a9630 C |
80 | ``` |
81 | ||
b44a9630 C |
82 | ## Build your own Docker image |
83 | ||
f83e339b | 84 | ```shell |
b44a9630 C |
85 | $ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube |
86 | $ cd /tmp/peertube | |
c82bf36a | 87 | $ docker build . -f ./support/docker/production/Dockerfile.buster |
b44a9630 C |
88 | ``` |
89 | ||
ef48a0d5 | 90 | ## Development |
4df6a1b8 | 91 | |
b44a9630 | 92 | We don't have a Docker image for development. See [the CONTRIBUTING guide](https://github.com/Chocobozzz/PeerTube/blob/develop/.github/CONTRIBUTING.md#develop) |
f83e339b | 93 | for more information on how you can hack PeerTube! |