在VPS上部署Stringer RSS阅读器的完整指南

在VPS上部署Stringer RSS阅读器的完整指南

stringer A self-hosted, anti-social RSS reader. stringer 项目地址: https://gitcode.com/gh_mirrors/st/stringer

Stringer是一个现代化的RSS阅读器,本文将详细介绍如何在VPS上部署Stringer服务。我们将从基础环境配置开始,逐步完成整个部署过程。

一、系统依赖安装

首先需要安装Stringer运行所需的基础依赖包,不同Linux发行版的安装命令略有不同。

Ubuntu/Debian系统

sudo apt-get install git libxml2-dev libxslt-dev libcurl4-openssl-dev libpq-dev build-essential postgresql libreadline-dev

CentOS/Fedora系统

sudo yum install git libxml2-devel libxslt-devel curl-devel postgresql-devel make automake gcc gcc-c++ postgresql-server readline-devel openssl-devel

CentOS系统还需要初始化PostgreSQL服务:

service postgresql initdb && service postgresql start

Arch Linux系统

pacman -S git postgresql base-devel libxml2 libxslt curl readline postgresql-libs

Arch Linux需要额外配置PostgreSQL:

systemd-tmpfiles --create postgresql.conf
chown -c -R postgres:postgres /var/lib/postgres
sudo su - postgres -c "initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'"
systemctl start postgresql
systemctl enable postgresql

二、数据库配置

Stringer使用PostgreSQL作为后端数据库,需要先创建专用用户和数据库。

  1. 创建数据库用户:
sudo -u postgres createuser -D -A -P stringer

执行后会提示设置密码,请妥善保存。

  1. 创建数据库:
sudo -u postgres createdb -O stringer stringer_live

三、创建专用用户

为安全考虑,建议为Stringer创建专用系统用户:

sudo useradd stringer -m -s /bin/bash
sudo su -l stringer

注意:切换用户时务必使用-l参数,否则用户配置文件不会被加载。

四、Ruby环境配置

我们将使用Rbenv管理Ruby版本,确保环境隔离。

  1. 安装Rbenv:
cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> $HOME/.bash_profile
echo 'eval "$(rbenv init -)"' >> $HOME/.bash_profile
git clone git://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build
source ~/.bash_profile
  1. 安装Ruby 2.7.5:
rbenv install 2.7.5
rbenv local 2.7.5
rbenv rehash
  1. 安装必要的Ruby工具:
gem install bundler
rbenv rehash
gem install foreman

五、Stringer安装与配置

  1. 获取Stringer源代码:
git clone git@github.com:stringer-rss/stringer.git
cd stringer
  1. 安装依赖:
bundle install
rbenv rehash
  1. 配置环境变量:
echo 'export DATABASE_URL="postgres://stringer:EDIT_ME@localhost/stringer_live"' >> $HOME/.bash_profile
echo 'export RACK_ENV="production"' >> $HOME/.bash_profile
echo 'export RAILS_ENV="production"' >> $HOME/.bash_profile
echo "export SECRET_KEY_BASE=`openssl rand -hex 64`" >> $HOME/.bash_profile
echo "export ENCRYPTION_PRIMARY_KEY=`openssl rand -hex 64`" >> $HOME/.bash_profile
echo "export ENCRYPTION_DETERMINISTIC_KEY=`openssl rand -hex 64`" >> $HOME/.bash_profile
echo "export ENCRYPTION_KEY_DERIVATION_SALT=`openssl rand -hex 64`" >> $HOME/.bash_profile
source ~/.bash_profile

注意:将EDIT_ME替换为之前设置的数据库密码。

  1. 初始化数据库:
rake db:migrate RAILS_ENV=production
  1. 启动应用:
foreman start

六、定时任务配置

设置定时任务自动抓取RSS源:

crontab -e

添加以下内容:

SHELL=/bin/bash
PATH=/home/stringer/.rbenv/bin:/bin/:/usr/bin:/usr/local/bin/:/usr/local/sbin
*/10 * * * *  source $HOME/.bash_profile; cd $HOME/stringer/; bundle exec rake fetch_feeds;

七、系统服务管理(Systemd)

将Stringer配置为系统服务:

  1. 生成systemd服务文件:
cd ~/stringer
mkdir systemd-services
foreman export systemd systemd-services -a stringer -u stringer
  1. 安装服务文件:
sudo cp -a ~stringer/stringer/systemd-services/* /etc/systemd/system
  1. 启动并设置开机自启:
sudo systemctl start stringer.target
sudo systemctl enable stringer.target

八、Nginx反向代理配置

为Stringer添加Nginx反向代理,提升安全性:

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://127.0.0.1:1337/;
        proxy_set_header Host $host;
    }
}

如需HTTPS支持,可取消注释相关SSL配置并配置证书路径。

九、Apache与Passenger部署方案

如果已有Apache环境,可使用Passenger部署Stringer:

  1. 安装mod_passenger(参考官方文档)
  2. 重新安装依赖:
cd ~/stringer
bundle install --path vendor/bundle
  1. 配置database.yml:
sed -i "s|url: .*|url: $DATABASE_URL|" config/database.yml
  1. 添加Apache虚拟主机配置:
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /home/stringer/stringer/public

    PassengerEnabled On
    PassengerAppRoot /home/stringer/stringer
    PassengerRuby /home/stringer/.rbenv/shims/ruby

    <Directory /home/stringer/stringer/public>
        Options FollowSymLinks
        Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>

至此,Stringer RSS阅读器已成功部署在您的VPS上。您可以通过配置的域名访问服务,开始享受个性化的RSS阅读体验。

stringer A self-hosted, anti-social RSS reader. stringer 项目地址: https://gitcode.com/gh_mirrors/st/stringer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙泽忱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值