793 字
4 分钟
Yet Another Chatroom Script (YACS) - 又一个聊天室脚本
Waiting for api.github.com...
介绍
Yet Another Chatroom Script,又称 YACS。是哔哩哔哩up主 -Valine- 制作的匿名聊天室,它以类似于Windows 98的风格进行展示,支持多个频道,添加管理员,发送文件和嵌入视频、图片,BBCode,CAPTCHA验证。使用 HTML、CSS、JS编写。受LE-CHAT-PHP启发,开发了此项目。
官方体验demo:https://chat.valine0x.icu/
截图

部署
1. 使用 venv 进行部署
python -m venv .venv
# 在终端环境中激活虚拟环境source .venv/bin/activate
# 然后把包安装到venv内部pip install yacscript创建一个配置文件进行编辑:
vim ./config.toml你可以在 配置文件 查看所有可用的配置。
最后,你就可以在venv环境下运行服务器了。
2. 从源代码进行部署(UV)
从源代码部署可以让你尝试到最新的功能,但这可能不稳定。 要从源代码进行部署,你需要先安装uv。
# pip 安装 uvpip install uv
# MacOS & Linux 安装 uvcurl -LsSf https://astral.sh/uv/install.sh | sh
# Windows 安装 uvpowershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"然后克隆仓库
git clone https://github.com/valine-dev/yacs.gitcd yacs创建一个配置文件进行编辑。
vim ./config.toml你可以在 配置文件 查看所有可用的配置。
最后,运行这个命令,它将会安装服务器,和所需要的依赖项等。
uv run yacs-run --config config.toml3. Docker 部署
⚠ 这个是博主写的一个简单Dockerfile,可能会存在一些问题,但是你可以根据自身需求进行修改。
FROM python:3.13.5-slimWORKDIR /app/yacs/
RUN apt update && \ apt install --no-install-recommends -y g++ libffi-dev build-essential \ zlib1g-dev libjpeg-dev libfreetype6-dev && \ rm -rf /var/lib/apt/lists/*
RUN pip install yacscriptRUN mkdir -p .config
COPY ./config.toml ./.config/config.toml
EXPOSE 8080CMD ["yacs-run --config /app/yacs/config.toml"]配置文件
这个软件带有的所有配置如下所示
[flask]# 在此您可以配置由Flask定义的内置配置项。DEBUG = false # 调试模式。不要在生产环境中设置为 “true”!
[app]# 该应用本身仅通过普通HTTP协议提供访问,但强烈不建议将其直接暴露于公共网络。应在应用前端使用支持TLS的反向代理。ip = "0.0.0.0"port = 8080
admin_phrase = "CHANGE_ME_ADMIN"# user_phrase 如果为空,整个聊天室将会公开。user_phrase = "CHANGE_ME"
log_level = "INFO"timeout = 5000 # 以毫秒为单位,用于心跳包检测。
# 仅在应用被反向代理之后设置为 “true”!# 确保 X-Forwarded-For 和 X-Forwarded-Host 标头是否正确设置!proxy_fix = false
# socketio 连接# 请务必在生产环境中设置合适的值。cors_allowed_origins = "https://me.example"
[custom]title = "The YACS"motd = "Hello!\nRule No.1"
# 以下表情包将被显示网页上emoticons = [ "( ゚∀。)", "Insert Anything", "⭐"]
[res]path = "./resource" # 项目的根目录size_max = 1024 # 以兆字节为单位,文件大小限制
[captcha]length = 4max_cache = 60expire = 120 # CATCHA 过期时间,单位为秒
[captcha.options]# CAPTCHA配置,最好不要全部启动,否则搞不好还会搞糊涂。# Numbers: 带有数字# lowercase: 带有小写字母# uppercase: 带有大写字母numbers = falselowercase = trueuppercase = false
[db]path = "./yacs.db"例如,一个配置文件可能像这样:
[flask]DEBUG = false
[app]admin_phrase = "this-is-admin"user_phrase = "hello"
[custom]title = "My YACS Server"motd = "Hello!\nRule No.1!" Yet Another Chatroom Script (YACS) - 又一个聊天室脚本
https://blog.sumiao.us.kg/posts/vailnedev-yacs/