diff --git a/environment.sh b/environment.sh index dfee49a..e76b3e7 100644 --- a/environment.sh +++ b/environment.sh @@ -38,6 +38,46 @@ export KAFKA_NAME=KAFKA_${DOMAIN} export KAFKA_MEMORY=512m +#SRS 配置 +export SRS_NAME=SRS_${DOMAIN} +export SRS_HTTP_PORT=8080 +export SRS_RTMP_PORT=1935 +export SRS_RTC_PORT=8000 +export SRS_MEMORY=512m +export SRS_IMAGE=registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 +export SRS_DATA=${NETWORK}_srs_data + + +#Minio 配置 +export MINIO_NAME=MINIO_${DOMAIN} +export MINIO_MEMORY=512m +export MINIO_IMAGE=quay.io/minio/minio +export MINIO_DATA=${NETWORK}_minio_data +export MINIO_API_PORT=9000 +export MINIO_CONSOLE_PORT=9002 +export MINIO_ROOT_USER=miniopassword +export MINIO_ROOT_PASSWORD=miniopassword + +# Elasticsearch 配置 +export ES_NAME=ES_${DOMAIN} +export ES_IMAGE=elasticsearch:7.8.0 +export ES_MEMORY=1g +export ES_PORT=9200 +export ES_DATA=${NETWORK}_es_data + +# SkyWalking 配置 +export SKYWALKING_OAP_NAME=SKYWALKING_OAP_${DOMAIN} +export SKYWALKING_UI_NAME=SKYWALKING_UI_${DOMAIN} +export SKYWALKING_OAP_IMAGE=apache/skywalking-oap-server:8.6.0-es7 +export SKYWALKING_UI_IMAGE=apache/skywalking-ui:8.6.0 +export SKYWALKING_OAP_MEMORY=512m +export SKYWALKING_UI_MEMORY=512m +export SKYWALKING_UI_PORT=8181 +export SW_AGENT_COLLECTOR_BACKEND_SERVICES=${SKYWALKING_OAP_NAME}:11800 +export SKYWALKING_USERNAME=skywalking +export SKYWALKING_PASSWORD=skywalking + + export SKY_AOP="sky-oap:11800" #主机INGRESS_PORT 映射到容器80 INGRESS_SSL_PORT 映射到容器 443 export INGRESS_PORT=80 @@ -51,3 +91,7 @@ export TZ=Asia/Shanghai export SPRING_CLOUD_CONSUL_HOST=consul export SPRING_CLOUD_CONSUL_PORT=8500 + + + + diff --git a/init/10.sky-oap.sh b/init/10.sky-oap.sh new file mode 100755 index 0000000..14f0f4c --- /dev/null +++ b/init/10.sky-oap.sh @@ -0,0 +1,63 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_NAME" ]; then +echo "错误: 未找到 SKYWALKING_OAP_NAME 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_NAME" ]; then +echo "错误: 未找到 SKYWALKING_UI_NAME 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_IMAGE" ]; then +echo "错误: 未找到 SKYWALKING_OAP_IMAGE 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_IMAGE" ]; then +echo "错误: 未找到 SKYWALKING_UI_IMAGE 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_MEMORY" ]; then +echo "错误: 未找到 SKYWALKING_OAP_MEMORY 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_MEMORY" ]; then +echo "错误: 未找到 SKYWALKING_UI_MEMORY 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_PORT" ]; then +echo "错误: 未找到 SKYWALKING_UI_PORT 环境变量" +exit 1 +fi + +# 停止并删除已存在的容器 +if docker ps -a | grep -q ${SKYWALKING_OAP_NAME}; then + echo "停止并删除已存在的 SkyWalking OAP 容器..." + docker stop ${SKYWALKING_OAP_NAME} >/dev/null 2>&1 + docker rm ${SKYWALKING_OAP_NAME} >/dev/null 2>&1 +fi + +if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then + echo "停止并删除已存在的 SkyWalking UI 容器..." + docker stop ${SKYWALKING_UI_NAME} >/dev/null 2>&1 + docker rm ${SKYWALKING_UI_NAME} >/dev/null 2>&1 +fi + +# 启动SkyWalking OAP容器 +echo "启动 SkyWalking OAP..." +docker run -d \ + --name ${SKYWALKING_OAP_NAME} \ + --network $NETWORK \ + --memory $SKYWALKING_OAP_MEMORY \ + --restart unless-stopped \ + -e SW_STORAGE=elasticsearch7 \ + -e SW_STORAGE_ES_CLUSTER_NODES=${ES_NAME}:9200 \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + $SKYWALKING_OAP_IMAGE + +# 等待OAP启动 + # 确认 OAP 完全启动后再启动 UI + \ No newline at end of file diff --git a/init/11.sky-ui.sh b/init/11.sky-ui.sh new file mode 100755 index 0000000..5883c20 --- /dev/null +++ b/init/11.sky-ui.sh @@ -0,0 +1,60 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_NAME" ]; then +echo "错误: 未找到 SKYWALKING_OAP_NAME 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_NAME" ]; then +echo "错误: 未找到 SKYWALKING_UI_NAME 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_IMAGE" ]; then +echo "错误: 未找到 SKYWALKING_OAP_IMAGE 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_IMAGE" ]; then +echo "错误: 未找到 SKYWALKING_UI_IMAGE 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_OAP_MEMORY" ]; then +echo "错误: 未找到 SKYWALKING_OAP_MEMORY 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_MEMORY" ]; then +echo "错误: 未找到 SKYWALKING_UI_MEMORY 环境变量" +exit 1 +fi +if [ -z "$SKYWALKING_UI_PORT" ]; then +echo "错误: 未找到 SKYWALKING_UI_PORT 环境变量" +exit 1 +fi + + + +if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then + echo "停止并删除已存在的 SkyWalking UI 容器..." + docker stop ${SKYWALKING_UI_NAME} >/dev/null 2>&1 + docker rm ${SKYWALKING_UI_NAME} >/dev/null 2>&1 +fi + + + +echo "启动 SkyWalking UI..." +docker run -d \ + --name ${SKYWALKING_UI_NAME} \ + --network $NETWORK \ + --memory $SKYWALKING_UI_MEMORY \ + --restart unless-stopped \ + -p ${SKYWALKING_UI_PORT}:8080 \ + -e TZ=Asia/Shanghai \ + -e SW_OAP_ADDRESS=http://${SKYWALKING_OAP_NAME}:12800 \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + $SKYWALKING_UI_IMAGE + +echo "SkyWalking 部署完成!" +echo "OAP 端口: ${SKYWALKING_OAP_PORT}" +echo "UI 访问地址: http://localhost:${SKYWALKING_UI_PORT}" diff --git a/init/12.consul.sh b/init/12.consul.sh new file mode 100644 index 0000000..e69de29 diff --git a/init/2.volumn.sh b/init/2.volumn.sh index eb9d181..e846de9 100755 --- a/init/2.volumn.sh +++ b/init/2.volumn.sh @@ -15,4 +15,32 @@ else echo "${REDIS_DATA} 卷已存在" fi - \ No newline at end of file + +source ../environment.sh +if ! docker volume inspect ${SRS_DATA} >/dev/null 2>&1; then + docker volume create ${SRS_DATA} + echo "创建 ${SRS_DATA} 卷成功" +else + echo "${SRS_DATA} 卷已存在" +fi + + +source ../environment.sh +if ! docker volume inspect ${MINIO_DATA} >/dev/null 2>&1; then + docker volume create ${MINIO_DATA} + echo "创建 ${MINIO_DATA} 卷成功" +else + echo "${MINIO_DATA} 卷已存在" +fi + + +source ../environment.sh +if ! docker volume inspect ${ES_DATA} >/dev/null 2>&1; then + docker volume create ${ES_DATA} + echo "创建 ${ES_DATA} 卷成功" +else + echo "${ES_DATA} 卷已存在" +fi + + + diff --git a/init/7.srs.sh b/init/7.srs.sh new file mode 100755 index 0000000..0049a66 --- /dev/null +++ b/init/7.srs.sh @@ -0,0 +1,54 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$SRS_NAME" ]; then +echo "错误: 未找到 SRS_NAME 环境变量" +exit 1 +fi +if [ -z "$SRS_IMAGE" ]; then +echo "错误: 未找到 SRS_IMAGE 环境变量" +exit 1 +fi +if [ -z "$SRS_MEMORY" ]; then +echo "错误: 未找到 SRS_MEMORY 环境变量" +exit 1 +fi +if [ -z "$SRS_RTMP_PORT" ]; then +echo "错误: 未找到 SRS_RTMP_PORT 环境变量" +exit 1 +fi +if [ -z "$SRS_HTTP_PORT" ]; then +echo "错误: 未找到 SRS_HTTP_PORT 环境变量" +exit 1 +fi +if [ -z "$SRS_RTC_PORT" ]; then +echo "错误: 未找到 SRS_RTC_PORT 环境变量" +exit 1 +fi +if [ -z "$SRS_DATA" ]; then +echo "错误: 未找到 SRS_DATA 环境变量" +exit 1 +fi + +if docker ps -a | grep -q ${SRS_NAME}; then + echo "停止并删除已存在的 SRS 容器..." + docker stop ${SRS_NAME} >/dev/null 2>&1 + docker rm ${SRS_NAME} >/dev/null 2>&1 +fi + +# 启动SRS容器 +# 启动SRS容器 +docker run -d \ + --name ${SRS_NAME} \ + --network $NETWORK \ + --memory $SRS_MEMORY \ + --restart unless-stopped \ + -p ${SRS_RTMP_PORT}:1935 \ + -p ${SRS_HTTP_PORT}:8080 \ + -p ${SRS_RTC_PORT}:8000/udp \ + -v "$(pwd)/volumes/srs/conf/srs.conf:/usr/local/srs/conf/srs.conf" \ + -v "${SRS_DATA}:/usr/local/srs/objs" \ + $SRS_IMAGE diff --git a/init/8.minio.sh b/init/8.minio.sh new file mode 100755 index 0000000..edb3e74 --- /dev/null +++ b/init/8.minio.sh @@ -0,0 +1,57 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$MINIO_NAME" ]; then +echo "错误: 未找到 MINIO_NAME 环境变量" +exit 1 +fi +if [ -z "$MINIO_IMAGE" ]; then +echo "错误: 未找到 MINIO_IMAGE 环境变量" +exit 1 +fi +if [ -z "$MINIO_MEMORY" ]; then +echo "错误: 未找到 MINIO_MEMORY 环境变量" +exit 1 +fi +if [ -z "$MINIO_API_PORT" ]; then +echo "错误: 未找到 MINIO_API_PORT 环境变量" +exit 1 +fi +if [ -z "$MINIO_CONSOLE_PORT" ]; then +echo "错误: 未找到 MINIO_CONSOLE_PORT 环境变量" +exit 1 +fi +if [ -z "$MINIO_DATA" ]; then +echo "错误: 未找到 MINIO_DATA 环境变量" +exit 1 +fi +if [ -z "$MINIO_ROOT_USER" ]; then +echo "错误: 未找到 MINIO_ROOT_USER 环境变量" +exit 1 +fi +if [ -z "$MINIO_ROOT_PASSWORD" ]; then +echo "错误: 未找到 MINIO_ROOT_PASSWORD 环境变量" +exit 1 +fi + +if docker ps -a | grep -q ${MINIO_NAME}; then + echo "停止并删除已存在的 MinIO 容器..." + docker stop ${MINIO_NAME} >/dev/null 2>&1 + docker rm ${MINIO_NAME} >/dev/null 2>&1 +fi + +# 启动MinIO容器 +docker run -d \ + --name ${MINIO_NAME} \ + --network $NETWORK \ + --memory $MINIO_MEMORY \ + --restart unless-stopped \ + -p ${MINIO_API_PORT}:9000 \ + -p ${MINIO_CONSOLE_PORT}:9001 \ + -e MINIO_ROOT_USER=${MINIO_ROOT_USER} \ + -e MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} \ + -v "${MINIO_DATA}:/data" \ + $MINIO_IMAGE server /data --console-address ":9001" diff --git a/init/9.es.sh b/init/9.es.sh new file mode 100755 index 0000000..1340192 --- /dev/null +++ b/init/9.es.sh @@ -0,0 +1,44 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$ES_NAME" ]; then +echo "错误: 未找到 ES_NAME 环境变量" +exit 1 +fi +if [ -z "$ES_IMAGE" ]; then +echo "错误: 未找到 ES_IMAGE 环境变量" +exit 1 +fi +if [ -z "$ES_MEMORY" ]; then +echo "错误: 未找到 ES_MEMORY 环境变量" +exit 1 +fi +if [ -z "$ES_PORT" ]; then +echo "错误: 未找到 ES_PORT 环境变量" +exit 1 +fi +if [ -z "$ES_DATA" ]; then +echo "错误: 未找到 ES_DATA 环境变量" +exit 1 +fi + +if docker ps -a | grep -q ${ES_NAME}; then + echo "停止并删除已存在的 Elasticsearch 容器..." + docker stop ${ES_NAME} >/dev/null 2>&1 + docker rm ${ES_NAME} >/dev/null 2>&1 +fi + +# 启动Elasticsearch容器 +docker run -d \ + --name ${ES_NAME} \ + --network $NETWORK \ + --memory $ES_MEMORY \ + --restart unless-stopped \ + -e "discovery.type=single-node" \ + -e "xpack.security.enabled=false" \ + -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ + -v "${ES_DATA}:/usr/share/elasticsearch/data" \ + $ES_IMAGE \ No newline at end of file diff --git a/init/volumes/srs/conf/srs.conf b/init/volumes/srs/conf/srs.conf new file mode 100644 index 0000000..5ebe7e6 --- /dev/null +++ b/init/volumes/srs/conf/srs.conf @@ -0,0 +1,31 @@ +listen 1935; +max_connections 1000; +srs_log_tank file; +srs_log_file ./objs/srs.log; + +http_server { + enabled on; + listen 8080; + dir ./objs/nginx/html; +} + +rtc_server { + enabled on; + listen 8000; +} + +vhost __defaultVhost__ { + rtc { + enabled on; + } + http_remux { + enabled on; + mount [vhost]/[app]/[stream].flv; + } + hls { + enabled on; + hls_path ./objs/nginx/html; + hls_fragment 10; + hls_window 60; + } +} diff --git a/server/oidc.sh b/server/oidc.sh new file mode 100644 index 0000000..e69de29