]>
Commit | Line | Data |
---|---|---|
4df6a1b8 C |
1 | # Docker guide |
2 | ||
b8f3e6b0 | 3 | This guide requires [docker](https://www.docker.com/community-edition) and |
a30995fc | 4 | [docker-compose](https://docs.docker.com/compose/install/). |
4df6a1b8 | 5 | |
ef48a0d5 BB |
6 | ## Production |
7 | ||
b44a9630 | 8 | ### Install |
4df6a1b8 | 9 | |
b8f3e6b0 RK |
10 | **PeerTube does not support webserver host change**. Keep in mind your domain |
11 | name is definitive after your first PeerTube start. | |
4df6a1b8 | 12 | |
a30995fc RK |
13 | #### Go to your workdir |
14 | ||
15 | _note_: the guide that follows assumes an empty workdir, but you can also clone the repository, use the master branch and `cd support/docker/production`. | |
b44a9630 | 16 | |
e962e1c3 | 17 | ```shell |
b8f3e6b0 | 18 | cd /your/peertube/directory |
e962e1c3 K |
19 | ``` |
20 | ||
21 | #### Get the latest Compose file | |
22 | ||
23 | ```shell | |
23cbb0f3 | 24 | curl https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/docker-compose.yml > docker-compose.yml |
e962e1c3 K |
25 | ``` |
26 | ||
27 | View the source of the file you're about to download: [docker-compose.yml](https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/docker-compose.yml) | |
28 | ||
e962e1c3 K |
29 | #### Get the latest env_file |
30 | ||
31 | ```shell | |
5a390259 | 32 | curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/docker/production/.env > .env |
e962e1c3 K |
33 | ``` |
34 | ||
35 | View the source of the file you're about to download: [.env](https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/.env) | |
36 | ||
e962e1c3 K |
37 | #### Tweak the `docker-compose.yml` file there according to your needs |
38 | ||
39 | ```shell | |
b8f3e6b0 | 40 | $EDITOR ./docker-compose.yml |
e962e1c3 K |
41 | ``` |
42 | ||
a30995fc | 43 | #### Then tweak the `.env` file to change the environment variables settings |
e962e1c3 K |
44 | |
45 | ```shell | |
b8f3e6b0 | 46 | $EDITOR ./.env |
e962e1c3 | 47 | ``` |
b8f3e6b0 | 48 | |
e962e1c3 K |
49 | In the downloaded example [.env](https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/.env), you must replace: |
50 | - `<MY POSTGRES USERNAME>` | |
51 | - `<MY POSTGRES PASSWORD>` | |
e962e1c3 K |
52 | - `<MY DOMAIN>` without 'https://' |
53 | - `<MY EMAIL ADDRESS>` | |
ef48a0d5 BB |
54 | |
55 | Other environment variables are used in | |
e962e1c3 | 56 | [/support/docker/production/config/custom-environment-variables.yaml](https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/config/custom-environment-variables.yaml) and can be |
ef48a0d5 BB |
57 | intuited from usage. |
58 | ||
e962e1c3 K |
59 | #### Testing local Docker setup |
60 | ||
23cbb0f3 | 61 | To test locally your Docker setup, you must add your domain (`<MY DOMAIN>`) in `/etc/hosts`: |
e962e1c3 K |
62 | ``` |
63 | 127.0.0.1 localhost mydomain.tld | |
64 | ``` | |
65 | ||
66 | #### You can use the regular `up` command to set it up | |
f83e339b FP |
67 | |
68 | ```shell | |
e962e1c3 | 69 | docker-compose up |
f83e339b | 70 | ``` |
b8f3e6b0 RK |
71 | |
72 | ### Obtaining your automatically-generated admin credentials | |
73 | ||
74 | Now that you've installed your PeerTube instance you'll want to grep your peertube container's logs for the `root` password. 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. | |
75 | ||
76 | ```bash | |
a30995fc | 77 | $ docker-compose logs peertube | grep -A1 root |
76d5770b L |
78 | |
79 | peertube_1 | [example.com:443] 2019-11-16 04:26:06.082 info: Username: root | |
80 | peertube_1 | [example.com:443] 2019-11-16 04:26:06.083 info: User password: abcdefghijklmnop | |
81 | ``` | |
ef48a0d5 | 82 | |
cd7ec86f | 83 | ### Obtaining Your Automatically Generated DKIM DNS TXT Record |
b8f3e6b0 | 84 | |
cd7ec86f | 85 | [DKIM](https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail) signature sending and RSA keys generation are enabled by the default Postfix image `mwader/postfix-relay` with [OpenDKIM](http://www.opendkim.org/). |
b8f3e6b0 RK |
86 | |
87 | Run `cat ./docker-volume/opendkim/keys/*/*.txt` to display your DKIM DNS TXT Record containing the public key to configure to your domain : | |
88 | ||
89 | ```bash | |
a30995fc | 90 | $ cat ./docker-volume/opendkim/keys/*/*.txt |
cd7ec86f | 91 | |
92 | peertube._domainkey.mydomain.tld. IN TXT ( "v=DKIM1; h=sha256; k=rsa; " | |
93 | "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Dx7wLGPFVaxVQ4TGym/eF89aQ8oMxS9v5BCc26Hij91t2Ci8Fl12DHNVqZoIPGm+9tTIoDVDFEFrlPhMOZl8i4jU9pcFjjaIISaV2+qTa8uV1j3MyByogG8pu4o5Ill7zaySYFsYB++cHJ9pjbFSC42dddCYMfuVgrBsLNrvEi3dLDMjJF5l92Uu8YeswFe26PuHX3Avr261n" | |
94 | "j5joTnYwat4387VEUyGUnZ0aZxCERi+ndXv2/wMJ0tizq+a9+EgqIb+7lkUc2XciQPNuTujM25GhrQBEKznvHyPA6fHsFheymOuB763QpkmnQQLCxyLygAY9mE/5RY+5Q6J9oDOQIDAQAB" ) ; ----- DKIM key peertube for mydomain.tld | |
95 | ``` | |
96 | ||
23cbb0f3 C |
97 | ### Administrator password |
98 | ||
99 | See the production guide ["Administrator" section](https://docs.joinpeertube.org/#/install-any-os?id=administrator) | |
100 | ||
57c36b27 C |
101 | ### What now? |
102 | ||
23cbb0f3 | 103 | See the production guide ["What now" section](https://docs.joinpeertube.org/#/install-any-os?id=what-now). |
57c36b27 | 104 | |
b44a9630 C |
105 | ### Upgrade |
106 | ||
23cbb0f3 | 107 | **Important:** Before upgrading, check you have all the `storage` fields in your [production.yaml file](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml). |
e359e88b | 108 | |
b44a9630 C |
109 | Pull the latest images and rerun PeerTube: |
110 | ||
f83e339b | 111 | ```shell |
9007daff | 112 | $ cd /your/peertube/directory |
b44a9630 | 113 | $ docker-compose pull |
f83e339b | 114 | $ docker-compose up -d |
b44a9630 C |
115 | ``` |
116 | ||
b44a9630 C |
117 | ## Build your own Docker image |
118 | ||
f83e339b | 119 | ```shell |
b44a9630 C |
120 | $ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube |
121 | $ cd /tmp/peertube | |
c82bf36a | 122 | $ docker build . -f ./support/docker/production/Dockerfile.buster |
b44a9630 C |
123 | ``` |
124 | ||
ef48a0d5 | 125 | ## Development |
4df6a1b8 | 126 | |
b8f3e6b0 | 127 | We don't have a Docker image for development. See [the CONTRIBUTING guide](https://github.com/Chocobozzz/PeerTube/blob/master/.github/CONTRIBUTING.md#develop) for more information on how you can hack PeerTube! |