Docker一键部署NewSnow专属新闻站
💡
NewsNow是什么?
一个开源的实时新闻聚合工具,支持微博、知乎、抖音、华尔街见闻等17+平台的热榜抓取(支持自定义新闻源)。界面简洁,支持多设备同步阅读,适合自媒体运营、信息爱好者等群体。 核心亮点:30分钟自动更新缓存,登录用户可强制刷新数据,支持Docker一键部署,兼容群晖、绿联、飞牛等NAS系统。无广告、开源免费,数据存储本地化。
一个开源的实时新闻聚合工具,支持微博、知乎、抖音、华尔街见闻等17+平台的热榜抓取(支持自定义新闻源)。界面简洁,支持多设备同步阅读,适合自媒体运营、信息爱好者等群体。 核心亮点:30分钟自动更新缓存,登录用户可强制刷新数据,支持Docker一键部署,兼容群晖、绿联、飞牛等NAS系统。无广告、开源免费,数据存储本地化。
界面预览
环境准备
- VPS一台 最低配置1核1G 带宽1M即可
- 服务器系统:本文演示的系统是ubuntu20.04(LTS)
- 是否备案:如果服务器在国外,站点无须备案;如果服务器在国内,网站必须备案。
- 域名一个
- 图床一个(又拍云、阿里云oss、腾讯云cos、七牛云等)
- 为了便于后期的升级维护以及卸载,利用docker+Nginx Proxy Manager来部署Typecho
- 安装好Docker、Docker-compose、Nginx Proxy Manager(安装教程)
- SSH工具:FinalShell官网
- 项目地址:Github官网
部署过程
一、系统初始化,更新索引
#更新索引库
sudo apt-get update
二、创建Newsnow容器
#切换到root用户
sudo -i
#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/newsnow
#进入到newsnow目录下
cd /root/data/docker_workspace/newsnow
#创建一个docker-compose.yml配置文件
touch docker-compose.yml
#编辑该文件
vim docker-compose.yml
将下面代码复制到docker-compose.yml中保存即可(指定的端口事先要在服务器内部和云服务商后台开放)
version: '3'
services:
newsnow:
image: ghcr.io/ourongxing/newsnow:latest
container_name: newsnow
restart: always
ports:
- '4444:4444' # 左侧端口可自定义,避免与NAS服务冲突
environment:
- G_CLIENT_ID= # 留空则禁用GitHub登录
- G_CLIENT_SECRET=
- JWT_SECRET= # 建议与G_CLIENT_SECRET相同
- INIT_TABLE=true # 首次部署必填,后续改为false避免重复初始化
- ENABLE_CACHE=true
volumes:
- /root/data/docker_workspace/newsnow/data:/app/data # 挂载数据目录
- /root/data/docker_workspace/newsnow/config:/app/config # 挂载配置目录
#拉取项目镜像并在后台启动容器
docker-compose up -d
打开浏览器,地址栏内输入服务器IP+端口形式访问,后续可以自行通过NPM中将你的域名和IP进行绑定访问了。
Github授权登录
登录github官网,右上角处点击自己的头像列表,进入Settings
菜单,左侧列表底部找到Developer settings
菜单,选择OAuth Apps
菜单,右侧区域点击Register a new application
按钮,参考下图进行填写:
创建完成后,点击下方的Update application
绿色按钮保存即可。此时应用创建完成。你可以看到自己的Client ID
和Client secrets
两个参数。将这两个参数填写进Artalk后台的社交登录
-GitHub
中对应的位置,社交登录的回调地址栏里填写你在github中填写的`Authorization callback URL`值,点击管理后台右下角的应用
保存。用户登录效果如图所示:
常见问题与避坑指南
- 镜像拉取失败:尝试替换镜像源为ghcr.nju.edu.cn/ourongxing/newsnow
- 页面内容拉取失败:检查网络能否访问境外新闻源(如Hacker News)
- 数据库报错:部署完后将INIT_TABLE已改为false,并检查挂载卷权限