Giter Site home page Giter Site logo

puretrue / rss-translator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rss-translator/rss-translator

0.0 0.0 0.0 350 KB

开源、简洁、可自部署的RSS翻译器 | Open Source, Lightweight, Self-hosted

Home Page: https://www.RssTranslator.com

License: Other

Shell 7.01% JavaScript 0.59% Python 87.38% XSLT 3.75% HTML 0.25% Dockerfile 1.02%

rss-translator's Introduction

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
Deploy to Koyeb


通过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

rss-translator's People

Contributors

versun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.