mirror of
				https://github.com/TeamPiped/Piped-Docker.git
				synced 2024-08-14 23:56:53 +00:00 
			
		
		
		
	Add Initial docker compose
* Initial draft of the docker-compose with configuration files * Update docker-compose.yml update path * Add configure-instance script. * Fix caddyfile and improvements. * Enable quic for Caddy. * Add missing newline. * Remove unnecessary depends_on. Co-authored-by: FireMasterK <20838718+FireMasterK@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									c84060e2a4
								
							
						
					
					
						commit
						8d410df572
					
				
					 6 changed files with 161 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | config/ | ||||||
|  | data/ | ||||||
							
								
								
									
										16
									
								
								configure-instance.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								configure-instance.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | echo "Enter a hostname for the Frontend (eg: piped.kavin.rocks):" | ||||||
|  | read frontend | ||||||
|  | 
 | ||||||
|  | echo "Enter a hostname for the Backend (eg: pipedapi.kavin.rocks):" | ||||||
|  | read backend | ||||||
|  | 
 | ||||||
|  | echo "Enter a hostname for the Proxy (eg: pipedproxy.kavin.rocks):" | ||||||
|  | read proxy | ||||||
|  | 
 | ||||||
|  | rm -rf config/ | ||||||
|  | 
 | ||||||
|  | cp -r template/ config/ | ||||||
|  | 
 | ||||||
|  | sed -i "s/FRONTEND_HOSTNAME/$frontend/g" config/* | ||||||
|  | sed -i "s/BACKEND_HOSTNAME/$backend/g" config/* | ||||||
|  | sed -i "s/PROXY_HOSTNAME/$proxy/g" config/* | ||||||
							
								
								
									
										65
									
								
								docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | ||||||
|  | services: | ||||||
|  |     pipedfrontend: | ||||||
|  |         image: 1337kavin/piped-frontend:latest | ||||||
|  |         restart: unless-stopped | ||||||
|  |         depends_on: | ||||||
|  |             - piped | ||||||
|  |         container_name: piped-frontend | ||||||
|  |     ytproxy: | ||||||
|  |         image: 1337kavin/ytproxy:latest | ||||||
|  |         restart: unless-stopped | ||||||
|  |         volumes: | ||||||
|  |             - ytproxy:/app/socket | ||||||
|  |         container_name: ytproxy | ||||||
|  |     piped: | ||||||
|  |         image: 1337kavin/piped:latest | ||||||
|  |         restart: unless-stopped | ||||||
|  |         volumes: | ||||||
|  |             - ./config/config.properties:/app/config.properties:ro | ||||||
|  |         depends_on: | ||||||
|  |             - postgres | ||||||
|  |         container_name: piped-backend | ||||||
|  |     varnish: | ||||||
|  |         image: varnish:6.6-alpine | ||||||
|  |         restart: unless-stopped | ||||||
|  |         volumes: | ||||||
|  |             - ./config/default.vcl:/etc/varnish/default.vcl:ro | ||||||
|  |         container_name: varnish | ||||||
|  |         depends_on: | ||||||
|  |             - piped | ||||||
|  |     caddy: | ||||||
|  |         image: caddy:2-alpine | ||||||
|  |         restart: unless-stopped | ||||||
|  |         ports: | ||||||
|  |             - "80:80" | ||||||
|  |             - "443:443" | ||||||
|  |             - "443:443/udp" | ||||||
|  |         volumes: | ||||||
|  |             - ./config/Caddyfile:/etc/caddy/Caddyfile:ro | ||||||
|  |             - caddy_data:/data | ||||||
|  |             - ytproxy:/var/run/ytproxy | ||||||
|  |         container_name: caddy | ||||||
|  |     postgres: | ||||||
|  |         image: postgres:13-alpine | ||||||
|  |         restart: unless-stopped | ||||||
|  |         volumes: | ||||||
|  |             - ./data/db:/var/lib/postgresql/data | ||||||
|  |         environment: | ||||||
|  |             - POSTGRES_DB=piped | ||||||
|  |             - POSTGRES_USER=piped | ||||||
|  |             - POSTGRES_PASSWORD=changeme | ||||||
|  |         container_name: postgres | ||||||
|  |     watchtower: | ||||||
|  |         image: containrrr/watchtower | ||||||
|  |         restart: always | ||||||
|  |         volumes: | ||||||
|  |             - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |             - /etc/timezone:/etc/timezone:ro | ||||||
|  |         environment: | ||||||
|  |             - WATCHTOWER_CLEANUP=true | ||||||
|  |             - WATCHTOWER_INCLUDE_RESTARTING=true | ||||||
|  |         container_name: watchtower | ||||||
|  |         command: piped-frontend piped-backend ytproxy varnish caddy postgres watchtower | ||||||
|  | volumes: | ||||||
|  |     caddy_data: | ||||||
|  |     ytproxy: | ||||||
							
								
								
									
										48
									
								
								template/Caddyfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								template/Caddyfile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | ||||||
|  | { | ||||||
|  | 	servers :443 { | ||||||
|  | 		protocol { | ||||||
|  | 			experimental_http3 | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | FRONTEND_HOSTNAME { | ||||||
|  |   reverse_proxy pipedfrontend:80 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | BACKEND_HOSTNAME { | ||||||
|  |   reverse_proxy varnish:80 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | PROXY_HOSTNAME { | ||||||
|  | 
 | ||||||
|  |   @ytproxy path /videoplayback* /api/v4/* /api/manifest/* | ||||||
|  | 
 | ||||||
|  |   @optionscall { | ||||||
|  |     method OPTIONS | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   header Access-Control-Allow-Origin * | ||||||
|  |   header Access-Control-Allow-Headers * | ||||||
|  | 
 | ||||||
|  |   route { | ||||||
|  | 
 | ||||||
|  |     header @ytproxy { | ||||||
|  |       Cache-Control private always | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     header / { | ||||||
|  |       Cache-Control "public, max-age=604800" | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     respond @optionscall 200 | ||||||
|  | 
 | ||||||
|  |     reverse_proxy unix//var/run/ytproxy/http-proxy.sock { | ||||||
|  |       header_up -CF-Connecting-IP | ||||||
|  |       header_up -X-Forwarded-For | ||||||
|  |       header_down -Access-Control-Allow-Origin | ||||||
|  |       header_down -etag | ||||||
|  |       header_down -alt-svc | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								template/config.properties
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								template/config.properties
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | # The port to Listen on. | ||||||
|  | PORT: 8080 | ||||||
|  | 
 | ||||||
|  | # The number of workers to use for the server | ||||||
|  | HTTP_WORKERS: 2 | ||||||
|  | 
 | ||||||
|  | # Proxy | ||||||
|  | PROXY_PART: https://PROXY_HOSTNAME | ||||||
|  | 
 | ||||||
|  | # Outgoing HTTP Proxy - eg: 127.0.0.1:8118 | ||||||
|  | #HTTP_PROXY: 127.0.0.1:8118 | ||||||
|  | 
 | ||||||
|  | # Captcha Parameters | ||||||
|  | CAPTCHA_BASE_URL: https://api.capmonster.cloud/ | ||||||
|  | CAPTCHA_API_KEY: INSERT_HERE | ||||||
|  | 
 | ||||||
|  | # Public API URL | ||||||
|  | API_URL: https://BACKEND_HOSTNAME | ||||||
|  | 
 | ||||||
|  | # Hibernate properties | ||||||
|  | hibernate.connection.url: jdbc:postgresql://postgres:5432/piped | ||||||
|  | hibernate.connection.driver_class: org.postgresql.Driver | ||||||
|  | hibernate.dialect: org.hibernate.dialect.PostgreSQL10Dialect | ||||||
|  | hibernate.connection.username: piped | ||||||
|  | hibernate.connection.password: changeme | ||||||
							
								
								
									
										5
									
								
								template/default.vcl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								template/default.vcl
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | vcl 4.0; | ||||||
|  | 
 | ||||||
|  | backend default { | ||||||
|  |   .host = "piped:8080"; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue