一、前言

大家好,我是攻城狮阿程。5月软考中级结束,开始逐步恢复周更。今天给大家带来的是一款可以早上用来在办公室摸鱼浏览各平台热点新鲜事儿的容器应用——NewsNow它是一个优雅的实时新闻阅读应用,旨在提供最新和最热门的新闻内容。

码字不易,喜欢我的教程欢迎各位多提建议多评论,畅所欲言,涉及破解、打倒美帝走近科学和资源分享的教程容易被和谐,也欢迎各位关注我的公众号和博客,以防走丢。

公众号:攻城狮阿程

知乎:攻城狮阿程

小红书:南星北月

个人博客:strider1230.cn

淘宝:阿程数码

抖音:南星北月

B站:-南星北月-

1.1 软件介绍

NewsNow 是一款 TypeScript 编写的实时热门新闻聚合项目。

1.2 软件特点

NewsNow 主要有以下 4 个特色:

  • 优雅的设计:提供愉悦的阅读体验,方便用户随时了解最新资讯。

  • GitHub 登录和数据同步:支持用户通过 GitHub 进行登录并同步数据。

  • 缓存机制:默认缓存持续时间为 30 分钟,已登录用户可以强制获取最新数据。

  • 灵活的更新频率:根据内容源的更新频率,抓取间隔可以调整到每两分钟,以节省资源并防止频繁抓取导致的 IP 封禁。

1.3 适用人群

NewsNow 适合希望快速获取新闻的用户,支持多种部署方式,包括 Cloudflare PagesDocker

如果不想自己搭建,可以去看看官网:https://newsnow.busiyi.world

1.4 部署容器前你可能需要一块固态硬盘

我教程内展示的容器都是配置在固态硬盘上的,建议想多搭容器及虚拟机的朋友在执行教程前先准备一块固态硬盘,容器、虚拟机安装在固态硬盘的好处如下:

  • 不会干扰机械硬盘的休眠,使得机械硬盘始终扮演数据保存的角色

  • 部署在固态硬盘内的容器、虚拟机调用以及响应的速度都比机械硬盘好

  • 容器若发生泄露,不会污染、破坏你的机械硬盘内的数据

1.5 M.2接口 SSD 固态硬盘的适配

Z4系列的M.2接口支持高速存储只读缓存等功能,如果是要在固态硬盘内部署虚拟机、容器服务等,需要选择高速存储功能;

  • 仅支持M.2接口 NVMe 2280 的SSD固态硬盘,其中2280指的是长度;

  • 官方说由于PCIe4.0自身的兼容性问题,极空间暂时不支持PCIe4.0的SSD,但是实验下来是支持PCIe4.0的固态的,只是安装上去以后该固态硬盘的温度会比PCIe3.0的固态硬盘高10℃左右,因此买的时候要还是建议选择PCIe3.0的SSD

  • 设置只读缓存时,Z4系列8G-16G内存的产品建议选购256G容量;16G及以上内存的产品建议选购512G容量;(PS:极空间Z4Pro 是支持DDR5 32G 4800MHz的笔记本电脑内存哦)

  • 设置高速存储时,SSD不得小于32GB,最大支持4T;

  • 建议选购大品牌的SSD,这里推荐一个我用了两年的:致钛tiplus5000 1TB/2TB,京东和淘宝上都有货源

* 请选择耐用 SSD。由于 SSD 的寿命受限于有限的写入次数,请确保使用耐用性更高的 SSD,以防止潜在风险。

1.6 应用截图

二、部署 NewsNow 容器

极空间在更新了V1.0.0430238.2516版本后,终于支持了Docker Compose功能的图形化页面部署。因此容器的部署方式也将有2种方式,下面将分别介绍。

2.1 Docker 镜像方式部署

2.1.1 下载 NewsNow 官方镜像
2.1.1.1 通过极空间的 Docker 管理页面拉取(确保镜像源的选择:ghcr.io)

ghcr.io添加到极空间镜像仓库在左侧边栏选择“镜像”,然后点击“仓库”,接着再点击“自定义拉取”按钮后,点击“自定义拉取”按钮,在弹出的对话框中输入ghcr.io/ourongxing/newsnow:latest拉取镜像,点击拉取,等待拉取完成。(截止本文发布前,NewsNow 的官方镜像版本为v0.0.30)

2.1.1.2 导入其他来源获取的镜像(如极空间用户之间的闪电传)

部分用户可能没有科学上网环境,也不会按上述步骤配置镜像站,导致镜像无法远程拉取,可以通过其他下载途径进行下载,或使用极空间本身提供的闪电传、文件分享功能获取链接下载。

2.1.2 配置 NewsNow 容器

1️⃣ 在本地镜像找到拉取到的镜像,点击添加到容器;

2️⃣ 为了防止极空间突然因停电或升级等原因重启,因此需要勾选上极空间开机后自动启动此容器选项,这里勾选调用核心显卡或者不勾选都可以,最后把特权模式勾选上,该项是开启极空间SSH功能后才会出现,开启有助于容器不会因为奇怪的权限问题反复重启;

3️⃣ 该容器不需要配置本地文件夹路径;

4️⃣ 如下图所示配置网络和端口号即可,其中端口号:14444 是我设置的页面端口号,如果遇到端口冲突的情况,请自行设置其他高位端口,环境变量默认即可,最后点击应用按钮完成保存;

2.2 Docker-compose 方式部署

2.2.1 打开极空间设备的 Docker-compose 功能

1️⃣ 打开极空间系统设置-远程协助/SSH,点击SSH选项卡,按下图所示进行设置后应用并重启SSH服务

2️⃣ 打开极空间Docker程序界面,就可以看到左侧边栏出现了Compose选项卡。

2.2.2 compose方式部署安装

1️⃣ 在docker-compose界面点击新增项目按钮。

2️⃣ 在项目名称处填写容器应用名,将下方我配好的compose代码复制黏贴进下图对应位置,勾选创建项目后立即启动,最后点击创建按钮完成配置,耐心等待容器镜像拉取即可。

截图内参数如下:

services:
  newsnow:
    image: ghcr.io/ourongxing/newsnow:latest
    container_name: newsnow
    restart: always
    ports:
      - '14444:4444'
    environment:
      - G_CLIENT_ID=
      - G_CLIENT_SECRET=
      - JWT_SECRET=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
      - INIT_TABLE=true
      - ENABLE_CACHE=true

2.3 参数配置

关于环境变量的简单说明,因为不需要登录,所以前两个参数默认留空。

可变

G_CLIENT_ID

GitHub 客户端 ID,用于 OAuth 身份验证

G_CLIENT_SECRET

GitHub 客户端密钥,与客户端 ID 一起使用以确保安全性

JWT_SECRET

JSON Web Token (JWT),用于身份验证。

INIT_TABLE

初始化数据库设置,首次运行时必须设置为 true,后续可关闭

ENABLE_CACHE

启用缓存功能的开关,设置为 true 则启用缓存,以提高性能

三、 程序测试

3.1 测试登录程序

使用浏览器打开你极空间的“IP : NewsNow 端口号:14444(容器端口默认为4444),能够看到下图所示界面说明 NewsNow 已经部署成功。

3.2 测试通过极空间自带的远程登录功能进行访问

1️⃣ 先点击极空间的“远程访问”图标,在弹出的对话框中点击新建按钮;

2️⃣ 在弹出的”新建“对话框中,备注栏填写:NewsNow,地址栏填写:"你极空间容器的IP地址:14444",点击保存按钮。

四、NewsNow 的使用

由于软件本身只是一个新闻聚合平台,点击新闻内容就会自动跳转去对应平台显示新闻内容,因此没有什么特别的使用技巧,这荔枝强调一个点:部分平台的新闻加载可能会出现下图情况:

image-Dgds.png

解决方法也很简单:

1️⃣ 对于国内新闻平台,将域名添加到对应的科学上网排除列表中;

2️⃣ 对于国外新闻平台,将域名添加到科学上网代理列表中。

一些常见问题解答:

Q1:我的固态硬盘容量小,可以把这个容器的录制内容存放路径改到机械硬盘上吗?

A:可以,只要你能忍受机械硬盘不休眠后产生的噪音。

Q2:这个容器的资源搜索必须要有代理或者🪜吗?

A:是的,如果不走代理的话,会出现上图部分平台新闻无法获取的情况。

Q3:这个容器可以通过极空间远程访问功能深度使用吗?

A:可以,因为点击新闻链接会直接调用你本地的浏览器打开具体的新闻页面内容。

五、结语

NewsNow 容器运行时CPU占用很低,但个人建议为了战未来,NAS处理器至少得是N97这个级别往上,内存至少16G以上,因为你还会搭其他的容器,所以如果是长期用的话,我个人比较推荐用Z4Pro性能版及更高配置的设备部署。近期极空间新品已经发布,因此我计划618之前,给大家带来一篇新旧款的参数对比,以及是否需要辞旧迎新的建议。

如果你看完教程觉得部署很困难,也可以扫描下方二维码进入我的淘宝小店——阿程数码,直接购买对应的极空间 Docker 服务,我会远程帮你有偿部署。