* Add permissions instructions for the data volume * Remove useless newline
2.5 KiB
Docker guide
You can quickly get a server running using Docker. You need to have docker and docker-compose installed.
Production
Build your own Docker image
$ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
$ cd /tmp/peertube
$ docker build . -f ./support/docker/production/Dockerfile.stretch
Run a preconfigured setup with all dependencies
PeerTube needs a PostgreSQL and a Redis instance to work correctly. If you want
to quickly set up a full environment, either for trying the service or in
production, you can use a docker-compose
setup.
$ git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
$ cd /tmp/peertube/support/docker/production
Then tweak the docker-compose.yml
file there according to your needs. Then
you can use the regular up
command to set it up, with possible overrides of
the environment variables:
$ PEERTUBE_HOSTNAME=peertube.lvh.me \
PEERTUBE_ADMIN_EMAIL=test@example.com \
PEERTUBE_TRANSCODING_ENABLED=true \
PEERTUBE_SIGNUP_ENABLED=true \
PEERTUBE_SMTP_HOST=mail.lvh.me \
PEERTUBE_SMTP_PORT=1025 \
PEERTUBE_SMTP_FROM=noreply@peertube.lvh.me \
docker-compose up
Other environment variables are used in
support/docker/production/config/custom-environment-variables.yaml
and can be
intuited from usage.
For this example configuration, a reverse proxy is quite recommended. The
example Docker Compose file provides example labels for a Traefik load
balancer, although any HTTP reverse proxy will work fine. See the example
Nginx configuration support/nginx/peertube
file to get an idea of
recommendations and requirements to run PeerTube the most efficiently.
When starting the containers for the first time, you will get permissions errors for the data volume, like this one:
Error: EACCES: permission denied, mkdir '/data/logs'
The peertube user inside the container has a UID and GID of 991 so you have to change the folder's owner, in the case you're using ./data
:
chown -R 991:991 data/
Important: note that you'll get the initial root
user password from the
program output, so check out your logs to find them.
Development
The Docker image that's preconfigured in support/docker/dev
contains all the
services embedded in one image, so as to work correctly on
Janitor. It is much not advised to use it in
production.