793 字
4 分钟
Yet Another Chatroom Script (YACS) - 又一个聊天室脚本
valine-dev
/
yacs
Waiting for api.github.com...
00K
0K
0K
Waiting...

介绍#

Yet Another Chatroom Script,又称 YACS。是哔哩哔哩up主 -Valine- 制作的匿名聊天室,它以类似于Windows 98的风格进行展示,支持多个频道,添加管理员,发送文件和嵌入视频、图片,BBCode,CAPTCHA验证。使用 HTML、CSS、JS编写。受LE-CHAT-PHP启发,开发了此项目。

官方体验demo:https://chat.valine0x.icu/

截图#

部署#

1. 使用 venv 进行部署#

Terminal window
python -m venv .venv
# 在终端环境中激活虚拟环境
source .venv/bin/activate
# 然后把包安装到venv内部
pip install yacscript

创建一个配置文件进行编辑:

Terminal window
vim ./config.toml

你可以在 配置文件 查看所有可用的配置。

最后,你就可以在venv环境下运行服务器了。

2. 从源代码进行部署(UV)#

从源代码部署可以让你尝试到最新的功能,但这可能不稳定。 要从源代码进行部署,你需要先安装uv。

Terminal window
# pip 安装 uv
pip install uv
# MacOS & Linux 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows 安装 uv
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

然后克隆仓库

Terminal window
git clone https://github.com/valine-dev/yacs.git
cd yacs

创建一个配置文件进行编辑。

Terminal window
vim ./config.toml

你可以在 配置文件 查看所有可用的配置。

最后,运行这个命令,它将会安装服务器,和所需要的依赖项等。

Terminal window
uv run yacs-run --config config.toml

3. Docker 部署#

⚠ 这个是博主写的一个简单Dockerfile,可能会存在一些问题,但是你可以根据自身需求进行修改。

FROM python:3.13.5-slim
WORKDIR /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 yacscript
RUN mkdir -p .config
COPY ./config.toml ./.config/config.toml
EXPOSE 8080
CMD ["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 = 4
max_cache = 60
expire = 120 # CATCHA 过期时间,单位为秒
[captcha.options]
# CAPTCHA配置,最好不要全部启动,否则搞不好还会搞糊涂。
# Numbers: 带有数字
# lowercase: 带有小写字母
# uppercase: 带有大写字母
numbers = false
lowercase = true
uppercase = 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/
作者
苏喵
发布于
2025-10-31
许可协议
CC BY-NC-SA 4.0