view libervia/backend/plugins/plugin_app_manager_docker/libervia_app_peertube.yaml @ 4351:6a0a081485b8

plugin autocrypt: Autocrypt protocol implementation: Implementation of autocrypt: `autocrypt` header is checked, and if present and no public key is known for the peer, the key is imported. `autocrypt` header is also added to outgoing message (only if an email gateway is detected). For the moment, the JID is use as identifier, but the real email used by gateway should be used in the future. rel 456
author Goffi <goffi@goffi.org>
date Fri, 28 Feb 2025 09:23:35 +0100
parents 2b2a5348bd61
children
line wrap: on
line source

type: docker-compose
files:
  docker-compose.yml:
    content: |

      services:
        peertube:
          image: chocobozzz/peertube:production-bookworm
          networks:
            default:
              ipv4_address: 172.11.0.42
          ports:
           - "1935:1935"
           - "9000:9000"
          volumes:
            - assets:/app/client/dist
            - ./docker-volume/data:/data
            - ./docker-volume/config:/config
          depends_on:
            - postgres
            - redis
          restart: "always"

        postgres:
          image: postgres:13-alpine
          volumes:
            - ./docker-volume/db:/var/lib/postgresql/data
          restart: "always"

        redis:
          image: redis:6-alpine
          volumes:
            - ./docker-volume/redis:/data
          restart: "always"

      networks:
        default:
          ipam:
            driver: default
            config:
            - subnet: 172.11.0.0/16

      volumes:
        assets:

override:
  services:
    peertube:
      environment:
        PEERTUBE_DB_USERNAME: &db_username "peertube"
        PEERTUBE_DB_PASSWORD: &db_password !libervia_generate_pwd {name: db}
        PEERTUBE_DB_SSL: "false"
        PEERTUBE_DB_HOSTNAME: "postgres"
        PEERTUBE_WEBSERVER_HOSTNAME: !libervia_conf ["application peertube", "hostname"]
        PEERTUBE_TRUST_PROXY: '["127.0.0.1", "loopback", "172.18.0.0/16"]'
        PEERTUBE_SECRET: !libervia_generate_pwd {name: secret}
        PEERTUBE_SMTP_HOSTNAME: !libervia_conf ["", "email_server"]
        PEERTUBE_SMTP_USERNAME: !libervia_conf ["", "email_username"]
        PEERTUBE_SMTP_PASSWORD: !libervia_conf ["", "email_password"]
        PEERTUBE_SMTP_DISABLE_STARTTLS: !libervia_conf ["", "email_starttls", "false", "not"]
        PEERTUBE_SMTP_PORT: !libervia_conf ["", "email_port"]
        PEERTUBE_SMTP_FROM: !libervia_conf ["application peertube", "email_from", "peertube@example.com"]
        PEERTUBE_SMTP_TLS: "false"
        PEERTUBE_ADMIN_EMAIL: !libervia_conf ["", "email_admins_list", "", "first"]
        PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PUBLIC: "public-read"
        PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PRIVATE: "private"

      ports:
        # FIXME: For now we use a static ports, but dynamic ones should be used.
        - "1935:1935"
        - "9000:9000"
      volumes:
        - ./docker-volume/data:/data
        - ./docker-volume/config:/config
    postgres:
      environment:
        POSTGRES_USER: *db_username
        POSTGRES_PASSWORD: *db_password
        POSTGRES_DB: "peertube"

expose:
  web_external: true
  front_url: [override, services, peertube, environment, PEERTUBE_WEBSERVER_HOSTNAME]
  web_label: Videos
  ports:
    web:
      service: peertube
      private: 9000
  passwords:
    postgres: [override, services, peertube, environment, PEERTUBE_DB_PASSWORD]
    secret: [override, services, peertube, environment, PEERTUBE_SECRET]