Docker一键部署NewSnow专属新闻站

Docker一键部署NewSnow专属新闻站

💡
NewsNow是什么?
一个开源的实时新闻聚合工具,支持微博、知乎、抖音、华尔街见闻等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按钮,参考下图进行填写:

OAuth应用申请填写页面

创建完成后,点击下方的Update application绿色按钮保存即可。此时应用创建完成。你可以看到自己的Client IDClient secrets两个参数。将这两个参数填写进Artalk后台的社交登录-GitHub中对应的位置,社交登录的回调地址栏里填写你在github中填写的`Authorization callback URL`值,点击管理后台右下角的应用保存。用户登录效果如图所示:

Github账号登录授权

常见问题与避坑指南

  • 镜像拉取失败:尝试替换镜像源为ghcr.nju.edu.cn/ourongxing/newsnow
  • 页面内容拉取失败:检查网络能否访问境外新闻源(如Hacker News)
  • 数据库报错:部署完后将INIT_TABLE已改为false,并检查挂载卷权限