]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/doc/docker.md
Bumped to version v3.2.1
[github/Chocobozzz/PeerTube.git] / support / doc / docker.md
index 6f61c38d0108151305308722655eb98dbbb31934..d83ee3997e7edf99a8c545a6834f9d72c39f8187 100644 (file)
@@ -3,9 +3,7 @@
 This guide requires [docker](https://www.docker.com/community-edition) and
 [docker-compose](https://docs.docker.com/compose/install/).
 
 This guide requires [docker](https://www.docker.com/community-edition) and
 [docker-compose](https://docs.docker.com/compose/install/).
 
-## Production
-
-### Install
+## Install
 
 **PeerTube does not support webserver host change**. Keep in mind your domain
 name is definitive after your first PeerTube start.
 
 **PeerTube does not support webserver host change**. Keep in mind your domain
 name is definitive after your first PeerTube start.
@@ -56,20 +54,37 @@ Other environment variables are used in
 [/support/docker/production/config/custom-environment-variables.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/custom-environment-variables.yaml) and can be
 intuited from usage.
 
 [/support/docker/production/config/custom-environment-variables.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/custom-environment-variables.yaml) and can be
 intuited from usage.
 
-#### Testing local Docker setup
+#### Webserver
+
+*The docker compose file includes a configured web server. You can skip this part and comment the appropriate section in the docker compose if you use another webserver/proxy.*
+
+Install the template that the nginx container will use.
+The container will generate the configuration by replacing `${WEBSERVER_HOST}` and `${PEERTUBE_HOST}` using your docker compose env file.
 
 
-To test locally your Docker setup, you must add your domain (`<MY DOMAIN>`) in `/etc/hosts`:
+```shell
+mkdir -p docker-volume/nginx
+curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/develop/support/nginx/peertube > docker-volume/nginx/peertube
 ```
 ```
-127.0.0.1       localhost   mydomain.tld
+
+You need to manually generate the first SSL/TLS certificate using Let's Encrypt:
+
+```shell
+mkdir -p docker-volume/certbot
+docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
 ```
 
 ```
 
-#### You can use the regular `up` command to set it up
+A dedicated container in the docker-compose will automatically renew this certificate and reload nginx.
+
+
+#### Test your setup
+
+Run your containers:
 
 ```shell
 docker-compose up
 ```
 
 
 ```shell
 docker-compose up
 ```
 
-### Obtaining your automatically-generated admin credentials
+#### Obtaining your automatically-generated admin credentials
 
 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.
 
 
 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.
 
@@ -80,7 +95,7 @@ peertube_1  | [example.com:443] 2019-11-16 04:26:06.082 info: Username: root
 peertube_1  | [example.com:443] 2019-11-16 04:26:06.083 info: User password: abcdefghijklmnop
 ```
 
 peertube_1  | [example.com:443] 2019-11-16 04:26:06.083 info: User password: abcdefghijklmnop
 ```
 
-### Obtaining Your Automatically Generated DKIM DNS TXT Record
+#### Obtaining Your Automatically Generated DKIM DNS TXT Record
 
 [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/).
 
 
 [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/).
 
@@ -94,27 +109,40 @@ peertube._domainkey.mydomain.tld.  IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "j5joTnYwat4387VEUyGUnZ0aZxCERi+ndXv2/wMJ0tizq+a9+EgqIb+7lkUc2XciQPNuTujM25GhrQBEKznvHyPA6fHsFheymOuB763QpkmnQQLCxyLygAY9mE/5RY+5Q6J9oDOQIDAQAB" )  ; ----- DKIM key peertube for mydomain.tld
 ```
 
          "j5joTnYwat4387VEUyGUnZ0aZxCERi+ndXv2/wMJ0tizq+a9+EgqIb+7lkUc2XciQPNuTujM25GhrQBEKznvHyPA6fHsFheymOuB763QpkmnQQLCxyLygAY9mE/5RY+5Q6J9oDOQIDAQAB" )  ; ----- DKIM key peertube for mydomain.tld
 ```
 
-### Administrator password
+#### Administrator password
 
 
-See the production guide ["Administrator" section](https://docs.joinpeertube.org/#/install-any-os?id=administrator)
+See the production guide ["Administrator" section](https://docs.joinpeertube.org/install-any-os?id=administrator)
 
 
-### What now?
+#### What now?
 
 
-See the production guide ["What now" section](https://docs.joinpeertube.org/#/install-any-os?id=what-now).
+See the production guide ["What now" section](https://docs.joinpeertube.org/install-any-os?id=what-now).
 
 
-### Upgrade
+## Upgrade
 
 **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).
 
 
 **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).
 
-Pull the latest images and rerun PeerTube:
+Pull the latest images:
 
 ```shell
 $ cd /your/peertube/directory
 $ docker-compose pull
 
 ```shell
 $ cd /your/peertube/directory
 $ docker-compose pull
+```
+
+Stop, delete the containers and internal volumes (to invalidate static client files shared by `peertube` and `webserver` containers):
+
+```shell
+$ docker-compose down -v
+```
+
+Rerun PeerTube:
+
+```shell
 $ docker-compose up -d
 ```
 
 $ docker-compose up -d
 ```
 
-## Build your own Docker image
+## Build
+
+### Production
 
 ```shell
 $ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
 
 ```shell
 $ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
@@ -122,6 +150,6 @@ $ cd /tmp/peertube
 $ docker build . -f ./support/docker/production/Dockerfile.buster
 ```
 
 $ docker build . -f ./support/docker/production/Dockerfile.buster
 ```
 
-## Development
+### Development
 
 We don't have a Docker image for development. See [the CONTRIBUTING guide](https://github.com/Chocobozzz/PeerTube/blob/develop/.github/CONTRIBUTING.md#develop) for more information on how you can hack PeerTube!
 
 We don't have a Docker image for development. See [the CONTRIBUTING guide](https://github.com/Chocobozzz/PeerTube/blob/develop/.github/CONTRIBUTING.md#develop) for more information on how you can hack PeerTube!