Compare commits
73 Commits
remote_set
...
1febed0fec
Author | SHA1 | Date | |
---|---|---|---|
1febed0fec | |||
b725a62c4a | |||
5b80f9091c | |||
88fed56f9c | |||
698cef6d3d | |||
995262ebb2 | |||
d573b93f10 | |||
849a45a24d | |||
61307150e5 | |||
67ec78b44e | |||
0d926c760b | |||
23b5979b43 | |||
5859a66110 | |||
54106dc484 | |||
f7545b7ce6 | |||
ae0c70f1d2 | |||
34322b44f2 | |||
62f3bc7e25 | |||
29fbb35699 | |||
d13f9848b9 | |||
b451f1794c | |||
b7cb95cacb | |||
af4f411222 | |||
52951c909a | |||
2401458db3 | |||
91451e2fd5 | |||
3fa7f9e930 | |||
8ffa30b17d | |||
ca3a126691 | |||
79061ab73e | |||
c2c08401cc | |||
d39c11cb89 | |||
232cb23bf9 | |||
f3f1ef7b87 | |||
42ac20d0a5 | |||
ede5d30aab | |||
6ea492244a | |||
f8fda83d3e | |||
981993197b | |||
51e31ed336 | |||
bbd2680e24 | |||
c9d0988954 | |||
3e2e267b63 | |||
e35f58ed06 | |||
7ffd6b8638 | |||
c1995fb9b6 | |||
c3213609a2 | |||
dc18e19d2d | |||
a8d5d30860 | |||
f801da71f0 | |||
81e972fe38 | |||
d36559a730 | |||
9d77dbd852 | |||
6313799d56 | |||
a8e15141e7 | |||
e504002bd2 | |||
b3441aa8a9 | |||
742807c77f | |||
d8ff0b67f3 | |||
4bef286f43 | |||
e6a53c0f90 | |||
4e90038674 | |||
36aab6d41a | |||
4116f9fc1d | |||
66ed1f76d9 | |||
3c7b1b29c1 | |||
994324d812 | |||
e3fbe0d281 | |||
8a6433406d | |||
434e66c95e | |||
d66f34936b | |||
6105b70fbf | |||
51db14c505 |
@ -142,7 +142,7 @@
|
|||||||
<storage desc="Backend storage">
|
<storage desc="Backend storage">
|
||||||
<filesystem allow="false" />
|
<filesystem allow="false" />
|
||||||
<wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
|
<wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
|
||||||
<host desc="Regex pattern of hostname to allow or deny." allow="true">nextcloud\\.domain\\.com</host>
|
<host desc="Regex pattern of hostname to allow or deny." allow="true">nextcloud\.domain\.com</host>
|
||||||
<host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
<host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
||||||
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
||||||
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
|
||||||
|
@ -38,7 +38,6 @@ services:
|
|||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
|
||||||
|
|
||||||
nextcloud-app:
|
nextcloud-app:
|
||||||
depends_on:
|
depends_on:
|
||||||
- nextcloud-db
|
- nextcloud-db
|
||||||
@ -147,5 +146,3 @@ services:
|
|||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- ./collabora/loolwsd.xml:/etc/loolwsd/loolwsd.xml
|
- ./collabora/loolwsd.xml:/etc/loolwsd/loolwsd.xml
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,13 +15,13 @@ NEXTCLOUD_ROOT=/home/compute/services/nextcloud
|
|||||||
NEXTCLOUD_DATA_DIR=/srv/nextcloud/data
|
NEXTCLOUD_DATA_DIR=/srv/nextcloud/data
|
||||||
NEXTCLOUD_FQDN=your_nextcloud_sub_domain.domain.com
|
NEXTCLOUD_FQDN=your_nextcloud_sub_domain.domain.com
|
||||||
# This is the IP of the Trafik container. This changes if the traefik container restarts. If it is not the current traefik container IP collabora does not work. Check the current traefik container IP with: docker inspect traefik and get the IP from the Networks -> traefik_default -> IPAddress section
|
# This is the IP of the Trafik container. This changes if the traefik container restarts. If it is not the current traefik container IP collabora does not work. Check the current traefik container IP with: docker inspect traefik and get the IP from the Networks -> traefik_default -> IPAddress section
|
||||||
TRAEFIK_CONTAINER_IP=172.27.0.16
|
TRAEFIK_CONTAINER_IP=172.27.0.16 # This has to be the current IP of the traefik container check this with docker inspect traefik
|
||||||
PHP_MEMORY_LIMIT=2048M
|
PHP_MEMORY_LIMIT=2048M
|
||||||
PHP_UPLOAD_LIMIT=8G
|
PHP_UPLOAD_LIMIT=8G
|
||||||
|
|
||||||
# Collabora
|
# Collabora
|
||||||
COLLABORA_FQDN=collabora.domain.com
|
COLLABORA_FQDN=collabora.domain.com
|
||||||
COLLABORA_DOMAIN=nextcloud_sub_domain\\.domain\\.com # This is the domain which the collabora server is requests accepting from.
|
COLLABORA_DOMAIN=nextcloud_sub_domain\.domain\.com # This is the domain which the collabora server is requests accepting from.
|
||||||
COLLABORA_USERNAME=username
|
COLLABORA_USERNAME=username
|
||||||
COLLABORA_PASSWORD=password_collabora
|
COLLABORA_PASSWORD=password_collabora
|
||||||
|
|
||||||
|
5
osp/README.md
Normal file
5
osp/README.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
https://openstreamingplatform.com/
|
||||||
|
|
||||||
|
Open Streaming Platform (OSP) is an open-source, RTMP streamer software front-end for Arut's Nginx-RTMP Module. OSP was designed as a self-hosted alternative to services such as Twitch.tv, Ustream.tv, Mixer, and Youtube Live.
|
||||||
|
|
||||||
|
This service is based on an older software version beta6d and not on the current version 0.8.8 because an docker image ist not available for it right now.
|
73
osp/docker-compose.yml
Normal file
73
osp/docker-compose.yml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
version: '3.5'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external:
|
||||||
|
name: traefik_default
|
||||||
|
|
||||||
|
services:
|
||||||
|
osp-app:
|
||||||
|
depends_on:
|
||||||
|
- osp-db
|
||||||
|
- osp-redis
|
||||||
|
container_name: osp-app
|
||||||
|
entrypoint: ["/opt/osp/setup/docker/wait-for-it.sh", "osp-db:3306", "--strict", "-t", "60", "--", "/opt/osp/setup/docker/entrypoint.sh"]
|
||||||
|
env_file: live.env
|
||||||
|
environment:
|
||||||
|
- DB_URL=mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL_DATABASE}
|
||||||
|
image: deamos/openstreamingplatform:latest
|
||||||
|
labels:
|
||||||
|
# Watchtower
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
# Routes
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.osp.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.osp.rule=Host(`osp.${DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.osp.tls=true"
|
||||||
|
- "traefik.http.routers.osp.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.services.osp.loadbalancer.server.port=80"
|
||||||
|
# RTMP specific
|
||||||
|
- "traefik.tcp.routers.rtmpcast.entrypoints=osp-rtmp"
|
||||||
|
- "traefik.tcp.routers.rtmpcast.rule=HostSNI(`osp.${DOMAIN}`)"
|
||||||
|
- "traefik.tcp.routers.rtmpcast.service=rtmpcast"
|
||||||
|
- "traefik.tcp.routers.rtmpcast.tls=true"
|
||||||
|
- "traefik.tcp.routers.rtmpcast.tls.certresolver=myresolver"
|
||||||
|
- "traefik.tcp.routers.rtmpcast.tls.passthrough=true"
|
||||||
|
- "traefik.tcp.services.rtmpcast.loadbalancer.server.port=1935"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${OSP_ROOT}/data:/var/www
|
||||||
|
- ${OSP_ROOT}/data/nginx/conf:/usr/local/nginx/conf
|
||||||
|
|
||||||
|
osp-db:
|
||||||
|
image: mariadb:10
|
||||||
|
container_name: osp-db
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file: live.env
|
||||||
|
labels:
|
||||||
|
# Watchtower
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- ${OSP_ROOT}/db:/var/lib/mysql
|
||||||
|
|
||||||
|
osp-redis:
|
||||||
|
image: redis:6-alpine
|
||||||
|
container_name: osp-redis
|
||||||
|
command: redis-server --requirepass ${REDIS_HOST_PASSWORD}
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${OSP_ROOT}/redis:/data
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
|
21
osp/live.env.tpl
Normal file
21
osp/live.env.tpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# MariaDB settings
|
||||||
|
MYSQL_ROOT_PASSWORD=password_db_root
|
||||||
|
MYSQL_DATABASE=osp
|
||||||
|
MYSQL_USER=osp
|
||||||
|
MYSQL_PASSWORD=password_db
|
||||||
|
MYSQL_HOST=osp-db
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
REDIS_HOST=osp-redis
|
||||||
|
REDIS_HOST_PASSWORD=password_redis
|
||||||
|
|
||||||
|
# osp
|
||||||
|
OSP_ROOT=/home/compute/services/osp
|
||||||
|
FLASK_SECRET=very_secret_key_change_me
|
||||||
|
FLASK_SALT=very_secret_salt_key_change_me
|
||||||
|
REDIS_PASSWORD=password_redis
|
||||||
|
OSP_ALLOWREGISTRATION=False
|
||||||
|
OSP_REQUIREVERIFICATION=False
|
||||||
|
|
||||||
|
# Traefik
|
||||||
|
DOMAIN=domain.com
|
@ -115,6 +115,8 @@ services:
|
|||||||
# TS3 entrypoints
|
# TS3 entrypoints
|
||||||
- "--entrypoints.ts-udp.address=:9987/udp"
|
- "--entrypoints.ts-udp.address=:9987/udp"
|
||||||
- "--entrypoints.ts-tcp.address=:30033"
|
- "--entrypoints.ts-tcp.address=:30033"
|
||||||
|
# OSP rtmp entrypoints
|
||||||
|
- "--entrypoints.osp-rtmp.address=:1935"
|
||||||
# Use this CA server for testing
|
# Use this CA server for testing
|
||||||
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||||
- "--certificatesresolvers.myresolver.acme.email=${EMAIL}"
|
- "--certificatesresolvers.myresolver.acme.email=${EMAIL}"
|
||||||
@ -150,8 +152,10 @@ services:
|
|||||||
#- "8080:8080"
|
#- "8080:8080"
|
||||||
# TS3 ports
|
# TS3 ports
|
||||||
- "9987:9987/udp"
|
- "9987:9987/udp"
|
||||||
- "10011:10011"
|
#- "10011:10011"
|
||||||
- "30033:30033"
|
- "30033:30033"
|
||||||
|
# OSP rtmp ports
|
||||||
|
- "1935:1935"
|
||||||
volumes:
|
volumes:
|
||||||
# For certificate
|
# For certificate
|
||||||
- "./volumes/letsencrypt/acme.json:/letsencrypt/acme.json"
|
- "./volumes/letsencrypt/acme.json:/letsencrypt/acme.json"
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
This is now routed via traefik.
|
This is now routed via traefik.
|
||||||
Still checking performance if working it is.
|
Still checking performance if there is no package loss.
|
||||||
|
@ -26,6 +26,8 @@ services:
|
|||||||
- "traefik.tcp.routers.teamspeak-tcp.entrypoints=ts-tcp"
|
- "traefik.tcp.routers.teamspeak-tcp.entrypoints=ts-tcp"
|
||||||
- "traefik.tcp.routers.teamspeak-tcp.service=teamspeak-tcp"
|
- "traefik.tcp.routers.teamspeak-tcp.service=teamspeak-tcp"
|
||||||
- "traefik.tcp.routers.teamspeak-tcp.rule=HostSNI(`ts3.${DOMAIN}`)"
|
- "traefik.tcp.routers.teamspeak-tcp.rule=HostSNI(`ts3.${DOMAIN}`)"
|
||||||
|
- "traefik.tcp.routers.teamspeak-tcp.tls=true"
|
||||||
|
- "traefik.tcp.routers.teamspeak-tcp.tls.certresolver=myresolver"
|
||||||
- "traefik.tcp.services.teamspeak-tcp.loadbalancer.server.port=30033"
|
- "traefik.tcp.services.teamspeak-tcp.loadbalancer.server.port=30033"
|
||||||
# udp
|
# udp
|
||||||
- "traefik.udp.routers.teamspeak-udp.entrypoints=ts-udp"
|
- "traefik.udp.routers.teamspeak-udp.entrypoints=ts-udp"
|
||||||
@ -40,4 +42,4 @@ services:
|
|||||||
container_name: ts3-db
|
container_name: ts3-db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./db:/var/lib/mysql
|
- ./db:/var/lib/mysql
|
||||||
|
Reference in New Issue
Block a user