Skip to content

RSS翻译器
开源、简洁、可自部署


| English | Demo | Telegram交流群 | 开发进度


开发的主要原因是解决个人需求,关注了很多国外的博主,但英文标题不利于快速筛选,因此做了RSS翻译器。

目录

功能:

  1. 可添加RSS源并选择翻译标题或内容
  2. 可订阅翻译后的RSS,也可仅代理原来的RSS
  3. 可添加多种翻译引擎,每个源都可以指定一个翻译引擎
  4. 可控制每个源的更新频率和查看翻译状态
  5. 缓存所有翻译内容,尽可能减少翻译费用
  6. 可查看每个源所花费的Token/字符数

目前支持的翻译引擎:

  • DeepL
  • DeepLX
  • OpenAI
  • Azure OpenAI
  • Google Gemini
  • Microsoft Translate API
  • Caiyun API

陆续增加中

技术栈

Django 5

最低安装要求

系统: Ubuntu 22.04 LTS / Debian 12 / Fedora 37 \ 内存: 建议512M以上 \ Python: >= 3.10

安装方法

脚本自动安装(推荐)

下载安装脚本install_update.sh\ wget "https://raw.githubusercontent.com/rss-translator/RSS-Translator/main/deploy/install_update.sh"

使用root赋予运行权限后执行, 此脚本可多次运行,并可用于升级更新

sudo chmod +x install_update.sh
sudo ./install_update.sh
安装成功后,访问http://127.0.0.1:8000\ 默认账户:admin\ 默认密码:rsstranslator\ 请登录后立即修改你的密码\ 如需开启SSL(https),请参考这里


一键部署

Deploy on Railway


通过Docker安装

使用Docker Compose(推荐)\ 下载docker-compose.yml文件\ wget "https://raw.githubusercontent.com/rss-translator/RSS-Translator/main/deploy/docker-compose.yml" \ 运行docker-compose -f docker-compose.yml up -d\ 安装完成,访问 http://127.0.0.1:8000

使用Docker

docker run -d \
  -v data:/home/rsstranslator/data \
  -p 8000:8000 --restart always \
  rsstranslator/rsstranslator \
  bash -c "python manage.py init_server && python manage.py run_huey & uvicorn config.asgi:application --host  0.0.0.0"

安装完成,访问 http://127.0.0.1:8000


手动安装

安装必要软件\ sudo apt install python3-venv git zip -y\ 下载项目\ git clone https://github.com/rss-translator/RSS-Translator.git\ 创建执行用户

sudo useradd -r -s /sbin/nologin rsstranslator
sudo usermod -a -G rsstranslator your_user_name
移动文件夹并修正权限
mv -f RSS-Translator /home/rsstranslator
mkdir /home/rsstranslator/data
sudo chown -R rsstranslator:rsstranslator /home/rsstranslator
sudo chmod -R 775 /home/rsstranslator
sudo chmod a+x /home/rsstranslator/deploy/*.sh
创建虚拟环境
sudo -u rsstranslator /bin/bash -c "python3 -m venv /home/rsstranslator/.venv"
安装依赖\ sudo -u rsstranslator /bin/bash -c "/home/rsstranslator/.venv/bin/pip install -q -r /home/rsstranslator/requirements/prod.txt"\ 创建服务\ sudo nano /etc/systemd/system/rsstranslator.service\ 粘贴并修改下面的内容
[Unit]
Description=RSS Translator Application Service
After=network.target

[Service]
Type=simple
User=rsstranslator
Group=rsstranslator
WorkingDirectory=/home/rsstranslator/
ExecStart=/home/rsstranslator/deploy/start.sh
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target
重启daemon并开机自启动
sudo systemctl daemon-reload
sudo systemctl enable rsstranslator.service
初始化运行环境
sudo -u rsstranslator /bin/bash -c "/home/rsstranslator/.venv/bin/python /home/rsstranslator/manage.py makemigrations"
sudo -u rsstranslator /bin/bash -c "/home/rsstranslator/.venv/bin/python /home/rsstranslator/manage.py migrate"
sudo -u rsstranslator /bin/bash -c "/home/rsstranslator/.venv/bin/python /home/rsstranslator/manage.py collectstatic --noinput"
sudo -u rsstranslator /bin/bash -c "/home/rsstranslator/.venv/bin/python /home/rsstranslator/manage.py create_default_superuser"
启动服务\ systemctl start rsstranslator.service\ 查看服务状态\ systemctl status rsstranslator.service\ 安装完成,访问 http://127.0.0.1:8000


报错:CSRF验证失败

如果在登录后出现403 CSRF验证失败的错误,则需要设置环境变量CSRF_TRUSTED_ORIGINS ,值为域名或IP地址:https://*.example.com\


升级

sudo ./home/rsstranslator/deploy/install_update.sh

卸载

sudo ./home/rsstranslator/deploy/uninstall.sh 注意:该卸载脚本并不会删除/tmp目录下的数据备份文件,以防万一


开启SSL

建议使用caddy并配合cloudflare的dns代理使用\ 安装Caddy: https://caddyserver.com/docs/install#debian-ubuntu-raspbian

创建caddy配置文件\ 可参考/home/rsstranslator/deploy/Caddyfile进行修改,正常只要修改第一行的域名即可\ sudo nano /home/rsstranslator/deploy/Caddyfile\ 内容如下:

example.com {
        encode zstd gzip
        #tls internal
        handle_path /static/* {
                root * /home/rsstranslator/static/
                file_server
        }

        handle_path /media/* {
                root * /home/rsstranslator/media/
                file_server
        }

        reverse_proxy 127.0.0.1:8000
}
修改完成后,复制配置文件,并重启即可
sudo mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.back
sudo cp /home/rsstranslator/deploy/Caddyfile /etc/caddy/
sudo systemctl reload caddy
如果cloudflare开启了dns代理,则需要在cloudflare的SSL/TLS页面,加密模式选择Full

IPv6

目前无法同时支持IPv4和IPv6;\ 如需改为监听IPv6地址,仅需修改deploy/start.sh文件,将0.0.0.0改为::, 然后重启服务即可

使用说明

首次登录后,建议点击右上方的修改密码修改默认密码\ 建议先添加翻译引擎后再添加Feed,除非只是想代理源\ 首次添加源后,需要一些时间进行翻译和生成,可能会耗时1分钟左右\ 状态说明:\ loading:正在处理中\ yes:处理完成\ no:处理失败\ 目前状态不会自动更新,请刷新页面以获取最新状态

赞助

非常感谢以下读者的支持。如有余力,请考虑成为赞助者

说明: 通过爱发电赞助的同学,你的头像将会隔天出现在这里噢。

贡献

请查看Wiki

Star历史图

Star History Chart