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…
Reference in a new issue