增加在线聊天室的功能

This commit is contained in:
zeaslity
2023-08-18 17:37:09 +08:00
parent 37aeb45c97
commit 92acacb7b4
14 changed files with 469 additions and 16 deletions

View File

@@ -0,0 +1,26 @@
#Write-Host "开始关闭 Clash"
#
## 关闭应用程序 clash
#Stop-Process -Name "Clash For Windows" -Force
#
#
#Write-Host "开始 启动 Clash"
#Start-Sleep -Seconds 2
#
## 启动应用程序 "C:\SSS\ClashForWindows\Clash for Windows"
#Start-Process -FilePath "C:\SSS\ClashForWindows\Clash for Windows\Clash for Windows.exe"
#
#Start-Sleep -Seconds 2
Write-Host "开始 修改 Clash 的配置 "
$uri = 'http://127.0.0.1:61889/proxies/:tc-bjc'
$headers = @{
'Authorization' = 'Bearer 5c090877-21bb-4006-a97c-0bd4bfbb9be9'
}
$result = Invoke-RestMethod -Uri $uri -Method Put -Headers $headers
# 可以根据需要处理$result的响应

View File

@@ -0,0 +1 @@
帮我写一段powershell脚本实现如下功能关闭应用程序clash, 启动应用程序"C:\SSS\ClashForWindows\Clash for Windows"

View File

@@ -288,9 +288,15 @@ InstallDocker() {
## 清理docker环境
colorEcho ${BLUE} "开始清理docker环境卸载先前的相关安装内容"
$CMD_REMOVE docker docker-client docker-client-latest docker-ce-cli \
docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux \
docker-engine kubelet kubeadm kubectl
systemctl stop docker
systemctl disable docker
pre_soft_ware=(docker-ce containerd.io docker-ce-cli docker-compose kubelet kubeadm kubectl)
for pre in ${pre_soft_ware[@]}
do
$CMD_REMOVE $pre
done
colorEcho ${GREEN} "----------docker环境清理完成----------"
echo ""
colorEcho ${GREEN} "当前系统的发行版为-- ${LinuxReleaseVersion}"
@@ -340,14 +346,14 @@ InstallDocker() {
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
colorEcho ${GREEN} " 添加成功 "
echo ""
colorEcho ${BLUE} "开始添加中科大的docker源的apt源"
colorEcho ${BLUE} "开始添加 Docker官方 的docker源的apt源"
echo "deb [arch=$(dpkg --print-architecture) https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
colorEcho ${GREEN} " 添加成功 "
echo ""
fi
colorEcho ${BLUE} "正在执行更新操作!!"
apt-getMapper update
apt-get update
colorEcho ${GREEN} "----------更新完成----------"
FunctionSuccess
colorEcho ${BLUE} "可以安装的docker-ce的${dockerVersion}版本为:"
@@ -357,11 +363,12 @@ InstallDocker() {
echo ""
colorEcho ${GREEN} "开始安装docker-ce版本为${DOCKER_VERSION}"
realDockerSTag=$(apt-cache madison docker-ce | grep -w ${dockerVersion} | awk '{print$3}' | grep ${DOCKER_VERSION})
echo " real is $realDockerSTag"
realDockerSTag=$(apt-cache madison docker-ce-cli | grep -w ${dockerVersion} | awk '{print$3}' | grep ${DOCKER_VERSION})
installDemandSoftwares "docker-ce=${realDockerSTag}" || return $?
echo "real docker version is $realDockerSTag"
installDemandSoftwares "docker-ce-cli=${realDockerSTag}" "docker-ce=${realDockerSTag}" containerd.io || return $?
fi
echo ""
@@ -377,10 +384,13 @@ InstallDocker() {
InstallDockerCompose() {
FunctionStart
colorEcho ${PURPLE} "正在下载 +++++++++++++ docker-compose文件 ++++++++++++++"
# curl -L "https://github.com.cnpmjs.org/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" \
# -o /usr/local/bin/docker-compose
curl -L "https://objectstorage.ap-seoul-1.oraclecloud.com/n/cnk8d6fazu16/b/seoul/o/docker-compose-Linux-x86_64" \
local dockerComposeOssUrl="https://b2.107421.xyz/docker-compose-linux-x86_64-v2.18.0"
curl -L "${dockerComposeOssUrl}" \
-o /usr/local/bin/docker-compose
if [[ -e /usr/local/bin/docker-compose ]]; then
colorEcho ${BLUE} "docker-compose文件下载成功"
@@ -396,6 +406,9 @@ InstallDockerCompose() {
colorEcho ${RED} "docker-compose文件下载失败 无法访问github的资源。。"
colorEcho ${RED} "请手动下载docker-compose的安装文件"
fi
FunctionEnd
}
@@ -1012,7 +1025,6 @@ changeDockerRegisterMirror() {
mv /etc/docker/daemon.json /etc/docker/daemon.backup.json
colorEcho ${GREEN} "已经将daemeon文件备份"
fi
#echo "192.168.35.25 aiboxhb.cdcyy.cn" >>/etc/hosts
colorEcho ${BLUE} "正在写入docker的daemon配置文件……"
cat >>/etc/docker/daemon.json <<EOF
{
@@ -1146,10 +1158,10 @@ main() {
commonToolInstall
# 安装docker版本信息在本脚本的开头处修改~~
# InstallDocker cn || return $?
# InstallDockerCompose || return $?
# modifySystemConfig_Docker
# changeDockerRegisterMirror || return $?
InstallDocker cn || return $?
InstallDockerCompose || return $?
modifySystemConfig_Docker
changeDockerRegisterMirror || return $?
# InstallRedis -p 36379 -m docker
@@ -1161,13 +1173,13 @@ main() {
# modifySystemConfig_Kubernetes
# 安装宇宙第一shell的zsh
InstallZSH cn || return $?
# InstallZSH cn || return $?
# 使用chrony进行NTP时间同步--包含下面的设置
# TimeSyncToAliByChrony || return $?
# 使用timedatactl修改时间与时区【推荐】
changeTimeZoneAndNTP || return $?
# changeTimeZoneAndNTP || return $?
}
main

View File

@@ -0,0 +1,30 @@
### Rocket.Chat configuration
# Rocket.Chat version
# see:- https://github.com/RocketChat/Rocket.Chat/releases
RELEASE=6.3.1
# MongoDB endpoint (include ?replicaSet= parameter)
#MONGO_URL= 存在默认配置
# MongoDB endpoint to the local database
#MONGO_OPLOG_URL=
# IP to bind the process to
BIND_IP=127.0.0.1
# URL used to access your Rocket.Chat instance
#ROOT_URL=
# Port Rocket.Chat runs on (in-container)
#PORT=
# Port on the host to bind to
HOST_PORT=3456
### MongoDB configuration
# MongoDB version/image tag
#MONGODB_VERSION=
# See:- https://hub.docker.com/r/bitnami/mongodb
### Traefik config (if enabled)
# Traefik version/image tag
#TRAEFIK_RELEASE=
# Domain for https (change ROOT_URL & BIND_IP accordingly)
#DOMAIN=
# Email for certificate notifications
#LETSENCRYPT_EMAIL=

View File

@@ -0,0 +1,35 @@
# https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml
version: "3"
services:
rocketchat:
image: registry.rocket.chat/rocketchat/rocket.chat:6.3.1
restart: always
environment:
MONGO_URL: "mongodb://mongodb:27017/rocketchat?replicaSet=rs0"
MONGO_OPLOG_URL: "mongodb:mongodb:27017/local?replicaSet=rs0"
ROOT_URL: http://localhost:3000
PORT: 3000
DEPLOY_METHOD: docker
REG_TOKEN: lovemm.23
depends_on:
- mongodb
expose:
- 3456
ports:
- "127.0.0.1:3456:3000"
mongodb:
image: docker.io/bitnami/mongodb:5.0
restart: always
volumes:
- /data/rocket-chat/mongodb_data:/bitnami/mongodb
environment:
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: rs0
MONGODB_PORT_NUMBER: 27017
MONGODB_INITIAL_PRIMARY_HOST: mongodb
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 27017
MONGODB_ADVERTISED_HOSTNAME: mongodb
MONGODB_ENABLE_JOURNAL: "true"
ALLOW_EMPTY_PASSWORD: "yes"

View File

@@ -0,0 +1,46 @@
# https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml
services:
rocketchat:
image: registry.rocket.chat/rocketchat/rocket.chat:${RELEASE:-latest}
restart: always
labels:
traefik.enable: "true"
traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`)
traefik.http.routers.rocketchat.tls: "true"
traefik.http.routers.rocketchat.entrypoints: https
traefik.http.routers.rocketchat.tls.certresolver: le
environment:
MONGO_URL: "${MONGO_URL:-\
mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\
-mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}}
PORT: ${PORT:-3000}
DEPLOY_METHOD: docker
DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-}
REG_TOKEN: ${REG_TOKEN:-}
depends_on:
- mongodb
expose:
- ${PORT:-3000}
ports:
- "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"
mongodb:
image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-5.0}
restart: always
volumes:
- /data/rocket-chat/mongodb_data:/bitnami/mongodb
environment:
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb}
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}

View File

@@ -0,0 +1,2 @@
1. 使用域名为 chat.107421.xyz
2. 使用Cloudflare的Zero Trust

View File

@@ -0,0 +1,21 @@
# 部署于 Seoul-amd64-02上
version: "3"
services:
mongodb:
image: docker.io/bitnami/mongodb:5.0
restart: always
volumes:
- /data/rocket-chat/mongodb_data:/bitnami/mongodb
environment:
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: rs0
MONGODB_PORT_NUMBER: 27017
MONGODB_INITIAL_PRIMARY_HOST: mongodb
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 27017
MONGODB_ADVERTISED_HOSTNAME: mongodb
MONGODB_ENABLE_JOURNAL: "true"
ALLOW_EMPTY_PASSWORD: "yes"
ports:
- "7017:27017"

View File

@@ -0,0 +1,17 @@
version: "3"
services:
rocketchat:
image: registry.rocket.chat/rocketchat/rocket.chat:6.3.1
restart: always
environment:
MONGO_URL: "mongodb://10.0.0.14:27017/rocketchat?replicaSet=rs0"
MONGO_OPLOG_URL: "mongodb:10.0.0.14:27017/local?replicaSet=rs0"
ROOT_URL: http://localhost:3000
PORT: 3000
DEPLOY_METHOD: docker
REG_TOKEN: lovemm.23
expose:
- 3456
ports:
- "127.0.0.1:3456:3000"

View File

@@ -0,0 +1,28 @@
LOGGER=true
LOGLEVEL=info
SERVICEDIR=services
TRANSPORTER=redis://redis:6379
REDIS_URL=redis://redis:6379
MONGO_URL=mongodb://mongo/tailchat
SECRET=lovemm.23
# file
API_URL=https://chat.107421.xyz
# minio
MINIO_URL=minio:9000
MINIO_USER=tailchat
MINIO_PASS=com.msgbyte.tailchat
# SMTP
SMTP_SENDER=
SMTP_URI=
# metrics
PROMETHEUS=1
# Admin
ADMIN_USER=zeaslity
ADMIN_PASS=lovemm.23

View File

@@ -0,0 +1,116 @@
version: "3.3"
services:
# Tailchat Core Services
service-core:
build:
context: .
image: tailchat-0818
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/gateway,core/user/*.service.js,core/group/*.service.js,core/chat/*.service.js,core/file,core/plugin/registry,core/config
PORT: 3000
depends_on:
- mongo
- redis
- minio
ports:
- "3001:3000"
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
# - "traefik.http.services.api-gw.loadbalancer.server.port=3000"
networks:
- internal
# Open Platform
service-openapi:
build:
context: .
image: tailchat-0818
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: openapi/app,openapi/bot,openapi/integration,openapi/oidc/oidc
OPENAPI_PORT: 3003
OPENAPI_UNDER_PROXY: "true"
depends_on:
- mongo
- redis
- minio
ports:
- "3003:3003"
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.openapi-oidc.rule=PathPrefix(`/open`)"
# - "traefik.http.services.openapi-oidc.loadbalancer.server.port=3003"
networks:
- internal
# Plugin Service (All Plugins)
service-all-plugins:
build:
context: .
image: tailchat-0818
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICEDIR: plugins
depends_on:
- mongo
- redis
- minio
networks:
- internal
# Database
mongo:
image: mongo:4
restart: on-failure
volumes:
- /data/tailchat/mongo_data:/data/db
networks:
- internal
# Data cache and Transporter
redis:
image: redis:alpine
restart: on-failure
networks:
- internal
# Persist Storage
minio:
image: minio/minio
restart: on-failure
networks:
- internal
environment:
MINIO_ROOT_USER: tailchat
MINIO_ROOT_PASSWORD: com.msgbyte.tailchat
volumes:
- /data/tailchat/minio_storage:/data
command: minio server /data --console-address ":9001"
# Router
# traefik:
# image: traefik:v2.1
# restart: unless-stopped
# command:
# - "--api.insecure=true" # Don't do that in production!
# - "--providers.docker=true"
# - "--providers.docker.exposedbydefault=false"
# - "--entryPoints.web.address=:80"
# - "--entryPoints.web.forwardedHeaders.insecure" # Not good
# ports:
# - 11000:80
# - 127.0.0.1:11001:8080
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock:ro
# networks:
# - internal
# - default
networks:
internal:

View File

@@ -0,0 +1,66 @@
server {
server_name chat.107421.xyz;
listen 80;
return 301 https://chat.107421.xyz$request_uri;
}
server {
listen 443 ssl;
server_name chat.107421.xyz;
ssl_certificate /etc/nginx/conf.d/ssl_key/chat.107421.xyz.cert.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl_key/chat.107421.xyz.key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
location /open {
access_log /var/log/nginx/access.log main;
client_max_body_size 5120m;
client_body_buffer_size 5120m;
client_body_timeout 6000s;
proxy_send_timeout 10000s;
proxy_read_timeout 10000s;
proxy_connect_timeout 600s;
proxy_max_temp_file_size 5120m;
proxy_request_buffering on;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 12k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://146.56.147.12:3003;
}
location / {
access_log /var/log/nginx/access.log main;
client_max_body_size 5120m;
client_body_buffer_size 5120m;
client_body_timeout 6000s;
proxy_send_timeout 10000s;
proxy_read_timeout 10000s;
proxy_connect_timeout 600s;
proxy_max_temp_file_size 5120m;
proxy_request_buffering on;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 12k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://146.56.147.12:3001;
}
}

View File

@@ -0,0 +1,40 @@
server {
server_name gitea.107421.xyz;
listen 80 ;
return 301 https://gitea.107421.xyz$request_uri;
}
server {
listen 443 ssl;
server_name gitea.107421.xyz;
ssl_certificate /etc/nginx/conf.d/ssl_key/gitea.107421.xyz.cert.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl_key/gitea.107421.xyz.key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
location / {
access_log /var/log/nginx/access.log main;
client_max_body_size 5120m;
client_body_buffer_size 5120m;
client_body_timeout 6000s;
proxy_send_timeout 10000s;
proxy_read_timeout 10000s;
proxy_connect_timeout 600s;
proxy_max_temp_file_size 5120m;
proxy_request_buffering on;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 12k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://150.230.198.103:3000;
}
}

View File

@@ -0,0 +1,13 @@
#!/bin/bash
export DOMAIN_NAME=chat.107421.xyz
export CF_Token="oXJRP5XI8Zhipa_PtYtB_jy6qWL0I9BosrJEYE8p"
export CF_Account_ID="dfaadeb83406ef5ad35da02617af9191"
export CF_Zone_ID="511894a4f1357feb905e974e16241ebb"
acme.sh --issue --dns dns_cf -d ${DOMAIN_NAME} --keylength ec-256
acme.sh --install-cert -d ${DOMAIN_NAME} --ecc \
--key-file /etc/nginx/conf.d/ssl_key/${DOMAIN_NAME}.key.pem \
--fullchain-file /etc/nginx/conf.d/ssl_key/${DOMAIN_NAME}.cert.pem \
--reloadcmd "systemctl restart nginx --force"