mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 04:08:15 +00:00 
			
		
		
		
	Merged client playbook and server playbook
This commit is contained in:
		
							
								
								
									
										38
									
								
								roles/server_docker-peertube/templates/docker-compose.yml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								roles/server_docker-peertube/templates/docker-compose.yml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
version: "3.3"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  application:
 | 
			
		||||
    image: chocobozzz/peertube:production-bullseye
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    ports:
 | 
			
		||||
     - "1935:1935"
 | 
			
		||||
     - "{{http_port}}:9000" 
 | 
			
		||||
    volumes:
 | 
			
		||||
      - assets:/app/client/dist
 | 
			
		||||
      - data:/data
 | 
			
		||||
      - config:/config
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - database
 | 
			
		||||
      - redis
 | 
			
		||||
    restart: "always"
 | 
			
		||||
  database:
 | 
			
		||||
    image: postgres:13-alpine
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    volumes:
 | 
			
		||||
      - database:/var/lib/postgresql/data
 | 
			
		||||
    restart: "always"
 | 
			
		||||
  redis:
 | 
			
		||||
    image: redis:6-alpine
 | 
			
		||||
    volumes:
 | 
			
		||||
      - redis:/data
 | 
			
		||||
    restart: "always"
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
volumes:
 | 
			
		||||
  assets:
 | 
			
		||||
  database:
 | 
			
		||||
  data:
 | 
			
		||||
  redis:
 | 
			
		||||
  config:
 | 
			
		||||
							
								
								
									
										22
									
								
								roles/server_docker-peertube/templates/env.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								roles/server_docker-peertube/templates/env.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# Database / Postgres service configuration
 | 
			
		||||
POSTGRES_USER=peertube
 | 
			
		||||
POSTGRES_PASSWORD={{peertube_database_password}}
 | 
			
		||||
POSTGRES_DB=peertube
 | 
			
		||||
PEERTUBE_DB_USERNAME=peertube
 | 
			
		||||
PEERTUBE_DB_PASSWORD={{peertube_database_password}}
 | 
			
		||||
PEERTUBE_DB_SSL=false
 | 
			
		||||
PEERTUBE_DB_HOSTNAME=database
 | 
			
		||||
 | 
			
		||||
# PeerTube server configuration
 | 
			
		||||
PEERTUBE_WEBSERVER_HOSTNAME={{domain}}
 | 
			
		||||
PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback"]
 | 
			
		||||
 | 
			
		||||
# E-mail configuration
 | 
			
		||||
PEERTUBE_SMTP_USERNAME={{system_email_username}}
 | 
			
		||||
PEERTUBE_SMTP_PASSWORD={{system_email_password}}
 | 
			
		||||
PEERTUBE_SMTP_HOSTNAME={{system_email_host}}
 | 
			
		||||
PEERTUBE_SMTP_PORT={{system_email_port}}
 | 
			
		||||
PEERTUBE_SMTP_FROM={{system_email}}
 | 
			
		||||
PEERTUBE_SMTP_TLS=false
 | 
			
		||||
PEERTUBE_SMTP_DISABLE_STARTTLS=false
 | 
			
		||||
PEERTUBE_ADMIN_EMAIL={{system_email}}
 | 
			
		||||
							
								
								
									
										83
									
								
								roles/server_docker-peertube/templates/peertube.conf.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								roles/server_docker-peertube/templates/peertube.conf.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
 | 
			
		||||
upstream backend {
 | 
			
		||||
  server 127.0.0.1:{{http_port}};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
server {
 | 
			
		||||
  server_name {{domain}};
 | 
			
		||||
 | 
			
		||||
  {% include 'roles/native-letsencrypt/templates/ssl_header.j2' %}
 | 
			
		||||
 | 
			
		||||
  ##
 | 
			
		||||
  # Application
 | 
			
		||||
  ##
 | 
			
		||||
 | 
			
		||||
  location @api {
 | 
			
		||||
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
			
		||||
    proxy_set_header Host            $host;
 | 
			
		||||
    proxy_set_header X-Real-IP       $remote_addr;
 | 
			
		||||
 | 
			
		||||
    client_max_body_size  100k; # default is 1M
 | 
			
		||||
 | 
			
		||||
    proxy_connect_timeout 10m;
 | 
			
		||||
    proxy_send_timeout    10m;
 | 
			
		||||
    proxy_read_timeout    10m;
 | 
			
		||||
    send_timeout          10m;
 | 
			
		||||
 | 
			
		||||
    #adapt
 | 
			
		||||
    proxy_pass http://127.0.0.1:{{http_port}};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location / {
 | 
			
		||||
    try_files /dev/null @api;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location = /api/v1/videos/upload-resumable {
 | 
			
		||||
    client_max_body_size    0;
 | 
			
		||||
    proxy_request_buffering off;
 | 
			
		||||
 | 
			
		||||
    try_files /dev/null @api;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location ~ ^/api/v1/videos/(upload|([^/]+/studio/edit))$ {
 | 
			
		||||
    limit_except POST HEAD { deny all; }
 | 
			
		||||
    client_max_body_size  12G; # default is 1M
 | 
			
		||||
    add_header            X-File-Maximum-Size 8G always; # inform backend of the set value in bytes before mime-encoding (x * 1.4 >= client_max_body_size)
 | 
			
		||||
 | 
			
		||||
    try_files /dev/null @api;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location ~ ^/api/v1/(videos|video-playlists|video-channels|users/me) {
 | 
			
		||||
    client_max_body_size                      6M; # default is 1M
 | 
			
		||||
    add_header            X-File-Maximum-Size 4M always; # inform backend of the set value in bytes before mime-encoding (x * 1.4 >= client_max_body_size)
 | 
			
		||||
 | 
			
		||||
    try_files /dev/null @api;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ##
 | 
			
		||||
  # Websocket
 | 
			
		||||
  ##
 | 
			
		||||
 | 
			
		||||
  location @api_websocket {
 | 
			
		||||
    proxy_http_version 1.1;
 | 
			
		||||
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
			
		||||
    proxy_set_header   Host            $host;
 | 
			
		||||
    proxy_set_header   X-Real-IP       $remote_addr;
 | 
			
		||||
    proxy_set_header   Upgrade         $http_upgrade;
 | 
			
		||||
    proxy_set_header   Connection      "upgrade";
 | 
			
		||||
 | 
			
		||||
    proxy_pass http://backend;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location /socket.io {
 | 
			
		||||
    try_files /dev/null @api_websocket;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  location /tracker/socket {
 | 
			
		||||
    # Peers send a message to the tracker every 15 minutes
 | 
			
		||||
    # Don't close the websocket before then
 | 
			
		||||
    proxy_read_timeout 15m; # default is 60s
 | 
			
		||||
 | 
			
		||||
    try_files /dev/null @api_websocket;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user