Files
PeerTube/support/docker/production/swarm-stack.sample.yml
kaiyou e8395f027b Add production Alpine and Debian Stretch Docker images (#225)
* First pass at a (swarm-compatible) docker image

Uses an existing traefik server as a https reverse proxy.

* Add example config for a Docker swarm deployment

* Point to traefik config for docker compose setup

* Clarify that traefik is needed for the example config

* Use node:8-stretch base image and don't install yarn

(The base image already contains yarn.)

* Initial commit for an Alpine Docker image

* Fix docker volume path

* Merge #213 and #225 and move files around

* Remove unnecessary dependencies from the alpine build

* Update Dockerfiles to match install path, config path, etc.

* Update the configuration in the example compose file

* Update the configuration in the example swarm file

* Remove the declared networks and volumes from the compose example, which are not strictly required

* Update attachment path in the documentation

* Display traefik as a suggestion and not a required dependency

* Update the Docker ignored files

* Fix typos reported in #225

* Move production Dockerfiles to a production directory

* Add the redis configuration settings

* Add Docker files to the dockerignore

* Make the signup limit configurable
2018-01-29 08:52:20 +01:00

53 lines
1.0 KiB
YAML

version: "3.3"
services:
app:
image: peertube:stretch
environment:
PEERTUBE_HOSTNAME: my.domain.tld
PEERTUBE_PORT: 443
PEERTUBE_HTTPS: true
PEERTUBE_ADMIN_EMAIL: admin@domain.tld
PEERTUBE_DB_USERNAME: user
PEERTUBE_DB_PASSWORD: password
PEERTUBE_SIGNUP_ENABLED: true
PEERTUBE_TRANSCODING_ENABLED: true
labels: &labels
traefik.frontend.rule: "Host:my.domain.tld"
traefik.docker.network: traefik
traefik.port: "9000"
volumes:
- app_data:/usr/src/app/data
networks:
- traefik
- backend
depends_on:
- db
deploy:
labels: *labels
placement:
constraints:
- node.labels.peertube == 1
db:
image: postgres:10
environment:
POSTGRES_DB: peertube_prod
volumes:
- db_data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
constraints:
- node.labels.peertube == 1
volumes:
app_data:
db_data:
networks:
backend:
traefik:
external: true