docker-compose.yml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. version: "3.3"
  2. services:
  3. peertube:
  4. build:
  5. context: .
  6. dockerfile: ./Dockerfile.stretch
  7. image: chocobozzz/peertube:production-stretch
  8. environment:
  9. PEERTUBE_HOSTNAME: my.domain.tld
  10. PEERTUBE_PORT: 443
  11. PEERTUBE_HTTPS: "true"
  12. PEERTUBE_ADMIN_EMAIL: admin@domain.tld
  13. PEERTUBE_DB_HOSTNAME: postgres
  14. PEERTUBE_DB_USERNAME: postgres_user
  15. PEERTUBE_DB_PASSWORD: postgres_password
  16. PEERTUBE_SIGNUP_ENABLED: "true"
  17. PEERTUBE_TRANSCODING_ENABLED: "true"
  18. PEERTUBE_REDIS_HOSTNAME: redis
  19. PEERTUBE_SMTP_HOSTNAME: null
  20. PEERTUBE_SMTP_PORT: 25
  21. PEERTUBE_SMTP_FROM: noreply@peertube.domain.tld
  22. PEERTUBE_SMTP_TLS: "true"
  23. # Traefik labels are suggested as an example for people using Traefik,
  24. # remove them if you are using another reverse proxy.
  25. labels:
  26. traefik.enable: "true"
  27. traefik.frontend.rule: "Host:${PEERTUBE_HOSTNAME}"
  28. traefik.port: "9000"
  29. # If you don't want to use a reverse proxy (not suitable for production!)
  30. # ports:
  31. # - "80:9000"
  32. volumes:
  33. - ./data:/data
  34. depends_on:
  35. - postgres
  36. - redis
  37. restart: "always"
  38. postgres:
  39. image: postgres:10-alpine
  40. environment:
  41. POSTGRES_USER: postgres_user
  42. POSTGRES_PASSWORD: postgres_password
  43. POSTGRES_DB: peertube
  44. volumes:
  45. - ./db:/var/lib/postgresql/data
  46. restart: "always"
  47. redis:
  48. image: redis:4-alpine
  49. volumes:
  50. - ./redis:/data
  51. restart: "always"