run in this docker-compose.yml

This commit is contained in:
Benny
2023-03-07 19:27:20 +01:00
parent 6ebea85d85
commit 058e9bcec2
9 changed files with 44 additions and 50 deletions

3
.gitignore vendored
View File

@@ -139,3 +139,6 @@ logs/*
/yyetsweb/builds/ /yyetsweb/builds/
/builds/checksum-sha256sum.txt /builds/checksum-sha256sum.txt
/yyetsweb/1.html /yyetsweb/1.html
!/env/
!/mongo_data/
/env/yyets.env

View File

@@ -12,53 +12,47 @@ services:
restart: always restart: always
volumes: volumes:
- ./mongo_data/mongodb:/data/db - ./mongo_data/mongodb:/data/db
command: --quiet
logging: logging:
driver: none driver: none
yyets-web:
image: bennythink/yyetsbot
restart: unless-stopped
environment:
- mongo=mongo
- redis=redis
working_dir: /YYeTsBot/yyetsweb/
command: [ "python3","server.py","-h=0.0.0.0" ]
ports: ports:
- "127.0.0.1:8888:8888" - "127.0.0.1:27017:27017"
socat: socat:
image: alpine/socat image: bennythink/socat
restart: always restart: always
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
entrypoint: [ "socat", "tcp-listen:2375,fork,reuseaddr","unix-connect:/var/run/docker.sock" ] entrypoint: [ "socat", "tcp-listen:2375,fork,reuseaddr","unix-connect:/var/run/docker.sock" ]
logging:
yyets-bot: driver: none
image: bennythink/yyetsbot
depends_on:
- redis
- socat
- mongo
restart: on-failure
env_file:
- env/yyets.env
mailhog: mailhog:
image: cd2team/mailhog image: cd2team/mailhog
restart: unless-stopped restart: unless-stopped
ports: logging:
- "8025:8025" driver: none
nginx: bot:
image: bennythink/yyetsbot
depends_on:
- redis
- mongo
- socat
restart: always restart: always
image: nginx:stable-alpine env_file:
volumes: - env/yyets.env
- ./conf:/etc/nginx/conf.d
- /home/photos:/usr/share/nginx/html/photos web:
- ./certs/:/etc/nginx/certs/ image: bennythink/yyetsbot
- ./logs:/var/log/nginx/ restart: always
env_file:
- env/yyets.env
depends_on:
- mongo
- redis
working_dir: /YYeTsBot/yyetsweb/
command: [ "python3","server.py","-h=0.0.0.0" ]
ports: ports:
- "80:80" - "127.0.0.1:8888:8888"
- "443:443" - "172.17.0.1:8888:8888"
environment:
TZ: Asia/Shanghai

View File

@@ -23,7 +23,7 @@ function prepare() {
function prepare_compose() { function prepare_compose() {
echo "[2/5] 下载docker-compose.yml" echo "[2/5] 下载docker-compose.yml"
curl -o docker-compose.yml https://raw.githubusercontent.com/tgbot-collection/YYeTsBot/master/docker-compose.yml curl -o docker-compose.yml https://raw.githubusercontent.com/tgbot-collection/YYeTsBot/master/docker-compose.yml
sed -ie '31,67d' docker-compose.yml sed -ie '58,59d' docker-compose.yml
} }
function import_db() { function import_db() {

View File

@@ -40,17 +40,15 @@ BD2020_SEARCH = "https://v.bd2020.me/search.jspx?q={}"
XL720_SEARCH = "https://www.xl720.com/?s={}" XL720_SEARCH = "https://www.xl720.com/?s={}"
# authentication config # authentication config
TOKEN = os.getenv("TOKEN") or "TOKEN" TOKEN = os.getenv("TOKEN")
USERNAME = os.getenv("USERNAME") or "USERNAME"
PASSWORD = os.getenv("PASSWORD") or "password"
# network and server config # network and server config
PROXY = os.getenv("PROXY") PROXY = os.getenv("PROXY")
REDIS = os.getenv("REDIS") or "redis" REDIS = os.getenv("REDIS", "redis")
MONGO = os.getenv("MONGO") or "mongo" MONGO = os.getenv("MONGO", "mongo")
# other # other
MAINTAINER = os.getenv("MAINTAINER") MAINTAINER = os.getenv("OWNER")
REPORT = os.getenv("REPORT") or False REPORT = os.getenv("REPORT", False)
# This name must match class name, other wise this bot won't running. # This name must match class name, other wise this bot won't running.
FANSUB_ORDER: str = os.getenv("ORDER") or 'YYeTsOffline,ZimuxiaOnline,NewzmzOnline,ZhuixinfanOnline,XL720,BD2020' FANSUB_ORDER: str = os.getenv("ORDER") or 'YYeTsOffline,ZimuxiaOnline,NewzmzOnline,ZhuixinfanOnline,XL720,BD2020'

View File

@@ -48,7 +48,6 @@ from fansub import BD2020, XL720, NewzmzOnline, ZhuixinfanOnline, ZimuxiaOnline
logging.info("Loading fansub...%s", (BD2020, XL720, NewzmzOnline, ZhuixinfanOnline, ZimuxiaOnline)) logging.info("Loading fansub...%s", (BD2020, XL720, NewzmzOnline, ZhuixinfanOnline, ZimuxiaOnline))
mongo_host = os.getenv("mongo") or "localhost"
DOUBAN_SEARCH = "https://www.douban.com/search?cat=1002&q={}" DOUBAN_SEARCH = "https://www.douban.com/search?cat=1002&q={}"
DOUBAN_DETAIL = "https://movie.douban.com/subject/{}/" DOUBAN_DETAIL = "https://movie.douban.com/subject/{}/"
cf = Cloudflare() cf = Cloudflare()
@@ -56,7 +55,7 @@ cf = Cloudflare()
class Mongo: class Mongo:
def __init__(self): def __init__(self):
self.client = pymongo.MongoClient(host=mongo_host, connect=False, self.client = pymongo.MongoClient(host=os.getenv("MONGO", "localhost"), connect=False,
connectTimeoutMS=5000, serverSelectionTimeoutMS=5000) connectTimeoutMS=5000, serverSelectionTimeoutMS=5000)
self.db = self.client["zimuzu"] self.db = self.client["zimuzu"]

View File

@@ -14,7 +14,7 @@ import pymongo
class Mongo: class Mongo:
def __init__(self): def __init__(self):
self.client = pymongo.MongoClient(host=os.getenv("mongo") or "localhost", connect=False, self.client = pymongo.MongoClient(host=os.getenv("MONGO", "localhost"), connect=False,
connectTimeoutMS=5000, serverSelectionTimeoutMS=5000) connectTimeoutMS=5000, serverSelectionTimeoutMS=5000)
self.db = self.client["zimuzu"] self.db = self.client["zimuzu"]

View File

@@ -28,7 +28,7 @@ predefined_str = re.sub(r"[1l0oOI]", "", string.ascii_letters + string.digits)
class Redis: class Redis:
def __init__(self): def __init__(self):
self.r = redis.StrictRedis(host=os.getenv("redis") or "localhost", decode_responses=True) self.r = redis.StrictRedis(host=os.getenv("REDIS", "localhost"), decode_responses=True)
try: try:
self.r.ping() self.r.ping()
except redis.exceptions.ConnectionError: except redis.exceptions.ConnectionError:

View File

@@ -37,7 +37,7 @@ def SQLite():
def MySQL(): def MySQL():
return pymysql.connect(host='mysql', user='root', passwd='root', charset='utf8mb4') return pymysql.connect(host='172.17.0.1', user='root', passwd='root', charset='utf8mb4')
def MongoDB(): def MongoDB():

View File

@@ -51,9 +51,9 @@ def generate_body(context):
def send_mail(to: str, subject: str, context: dict): def send_mail(to: str, subject: str, context: dict):
user = os.getenv("email_user") user = os.getenv("email_user")
password = os.getenv("email_password") password = os.getenv("email_password")
host = os.getenv("email_host") or "localhost" host = os.getenv("email_host", "localhost")
port = os.getenv("email_port") or "1025" # mailhog port = os.getenv("email_port", "1025") # mailhog
from_addr = os.getenv("from_addr") or "yyets@dmesg.app" from_addr = os.getenv("from_addr", "yyets@dmesg.app")
msg = MIMEText(generate_body(context), 'html', 'utf-8') msg = MIMEText(generate_body(context), 'html', 'utf-8')
msg['From'] = _format_addr('YYeTs <%s>' % from_addr) msg['From'] = _format_addr('YYeTs <%s>' % from_addr)