NewsNow搭建喂飯級教程

大家在自媒體寫文章里遇到最難的問題便是查找題材了,隨便選擇的題材沒多少人會去看,平臺也不會給流量推送,所以,只有圍繞熱門題材去進行文章創作,才能得到平臺的重點推送以及大家的關注!

在做這個功能前,博主也查閱了很多聚合實時熱點的工具,像目前比較火的一款DailyHot(源碼地址:https://github.com/imsyy/DailyHotApi),星標也還可以有3K

界面如下,基本把國內的主流媒體內容全部聚合進來了!

不過,它的缺點也很明顯,只有國內資訊信息,而且里面很多信息都是雷同的,對于咱搞AI的朋友們來說,做信息頻道那必須和國際接軌,所以這個也就被我PASS了。經過一番查找,還真讓我找到了一款**開源且支持全球各個頻道的聚合資訊熱榜網站**,而且星標也有12.7K之高。

相較于傳統的聚合網站,它不僅除了有國內外新聞實時,還支持像github、稀土掘金、雪球股票推薦等不同類型的排行榜。

先來看下它的強大之處(截圖只展示了一小部分信息,具體詳情可以查看:NewsNow)

好了,接下來,我將詳細講解如何從0到1部署一套這樣的實時資訊聚合資訊系統

1、下載newsnow源碼

執行以下命令克隆源碼

git?clone?git@github.com:ourongxing/newsnow.git

本地無法訪問github的有兩種方式,一種是修改本地Host配置,添加下中轉ip映射,ip具體如何找可以參考我之前分享的方法

另外一種方法是使用加速器,比如:蝦殼(蝦殼 - GitHub下載加速網站 GitHub Proxy加速器)把地址轉一道

2、安裝Node.js

因該工程使用的TypeScript編寫的,需要使用npm(國內用戶可以使用pnpm)安裝相關的依賴包,如何安裝nvm可以參考我之前的文章(不會裝nvm?Node.js版本老舊?手把手帶你升到node18+,高效搭建微信群聊機器人!),里面有詳細介紹nvm安裝多版本node的步驟,這里需要安裝20或20以上的node版本,安裝完成后,使用以下命令:node -v 查看,可以看到版本號即安裝完成

3、安裝包依賴

進到newsnow文件夾下,使用命令:**pnpm i **進行相關依賴安裝,沒有pnpm命令的可以到圈友互聯AI(https://ai.quanyouhulian.com/#/chat/)去問AI如何安裝該命令!

這里首次安裝依賴時候我遇到了個問題,pinyin包安裝不上去,可以使用以下命令先去單獨安裝這個特定的包

pnpm?add?@napi-rs/pinyin@1.7.5?-D

然后再重新執行下:pnpm i,可以看到所有包都成功安裝了

4、本地啟動開發環境

接下來,啟用下開發環境:pnpm dev,可以看到項目已經成功啟動了

本地瀏覽器也打開下,完美運行!

5、打包

接下來,就是進行項目打包了,使用命令:pnpm build,可以看到成功打出了dist文件夾,該文件夾下有兩個文件夾,一個public(前端靜態文件),一個server(使用node部署的后端文件)

6、推送dist文件夾內容到云服務器上

本地使用scp命令推送dist下全部文件及文件夾到:/usr/share/nginx/html/news/ 下,云服務器安裝完nginx后,html的默認路徑便是:/usr/share/nginx/html/

scp?-r?/newsnow/dist/*?root@你的服務器ip地址:/usr/share/nginx/html/news/

7、啟動后端服務

SSH登錄云服務器后,切換到server目錄下

cd?/usr/share/nginx/html/news/output/server

使用pm2啟動后端server服務,沒有安裝pm2的去圈友互聯AI(圈友互聯AI)問AI獲取詳細安裝步驟

pm2?start?"node?./index.mjs"?--name?newsnow

8、Nginx配置域名及代理

接下來就是配置域名了,這里域名使用你自己的地址,解析到對應的服務器。這里需要配置/api/指向到本地的3000端口,當前項目后端使用的是該接口,如果你改了端口就改成你對應的端口即可!

????server?{listen?80;server_name?news.quanyouhulian.com;#?網站根目錄設置為前端靜態文件的路徑root?/usr/share/nginx/html/news;index?index.html;#?處理前端路由location?/?{try_files?$uri?$uri/?/index.html;}#?將所有?/api?的請求轉發給后端?Node.js?服務location?/api/?{proxy_pass?http://127.0.0.1:3000;?#?后端服務監聽的地址和端口proxy_http_version?1.1;proxy_set_header?Upgrade?$http_upgrade;proxy_set_header?Connection?'upgrade';proxy_set_header?Host?$host;proxy_cache_bypass?$http_upgrade;}listen?443?ssl;ssl_certificate?/etc/letsencrypt/live/news.quanyouhulian.com/fullchain.pem;ssl_certificate_key?/etc/letsencrypt/live/news.quanyouhulian.com/privkey.pem;include?/etc/letsencrypt/options-ssl-nginx.conf;ssl_dhparam?/etc/letsencrypt/ssl-dhparams.pem;}

我這里SSL證書使用的是免費的,如何安裝免費SSL證書可以參考我之前的文章:個人網站SSL證書太貴?30秒完成HTTPS證書配置,而且免費永不過期!

9、部分無法抓取的網站改用代理地址

因為里面的Hacker news和Product Hunt國內網絡無法直接訪問到,所以這里需要做一層反向代理,在海外云服務器搭一層nginx作反向代理即可,這里云服務器可以使用極速云聯:極速云聯-香港云服務器主機租用_美國免費高防服務器測試_最便宜的VPS云主機購買,這里把nginx.conf配置如下反向代理配置

????server?{server_name?你自己的域名地址;location?/?{proxy_pass?https://news.ycombinator.com;proxy_set_header?Host?news.ycombinator.com;proxy_set_header?X-Real-IP?$remote_addr;proxy_ssl_server_name?on;proxy_ssl_protocols?TLSv1?TLSv1.1?TLSv1.2;}listen?443?ssl;ssl_certificate?/etc/letsencrypt/live/xxxxxx.com/fullchain.pem;ssl_certificate_key?/etc/letsencrypt/live/xxxxxx.quanyouhulian.com/privkey.pem;include?/etc/letsencrypt/options-ssl-nginx.conf;ssl_dhparam?/etc/letsencrypt/ssl-dhparams.pem;}server?{server_name?你自己的域名地址;location?/?{proxy_pass?https://www.producthunt.com;proxy_set_header?Host?www.producthunt.com;proxy_set_header?X-Real-IP?$remote_addr;proxy_ssl_server_name?on;proxy_ssl_protocols?TLSv1?TLSv1.1?TLSv1.2;}listen?443?ssl;ssl_certificate?/etc/letsencrypt/live/xxxxxx.com/fullchain.pem;ssl_certificate_key?/etc/letsencrypt/live/xxxxxx.com/privkey.pem;include?/etc/letsencrypt/options-ssl-nginx.conf;ssl_dhparam?/etc/letsencrypt/ssl-dhparams.pem;}

10、修改代碼地址并重新打包發布

把hackernews.ts和producthunt.ts改成新地址

重新打包推到云服務器發布后,可以看到數據成功刷出來了,完美搞定!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96711.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96711.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96711.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大疆無人機平臺 資源開放

一、部署包說明 目前基于大疆上云api開發的平臺經過多輪測試,已經有了個穩定的版本,并且有山東濱州、陜西西安、河南鄭州、上海、廣東深圳、廣東廣州、寧夏以及安徽等各地的用戶使用在公路巡檢、森林防火、電力巡查等行業中。 下面將會先將部署包免費開…

惡劣天氣下漏檢率↓79%!陌訊多模態時序融合算法在道路事故識別的實戰優化

原創聲明 本文為原創技術解析文章,核心技術參數與架構設計引用自 “陌訊技術白皮書(道路事故識別專項版)”,禁止任何形式的抄襲與轉載。文中代碼示例、性能數據均來自實測驗證,技術描述已完成差異化重寫,不…

visual studio編譯的軟件查找所依賴的運行庫方法

使用visual studio編譯生成的exe軟件,在單獨運行的時候,總是會提示vs運行庫找不到,比如vcruntime140.dll,msvcp140d.dll等找不到,此時如果在開發電腦中查找,會找出一堆各種版本的同名字動態庫來&#xff0c…

ARINC 825板卡的應用

ARINC概覽AEEC(航空電子工程委員會)是SAE ITC(SAE行業技術聯盟)的下屬機構之一,旨在為航空業制定標準。SAE ITC下設多個委員會和分委員會,各委員會設工作組負責制定航空電子設備和系統的各種標準。其中&…

試析微劇《云端愛人》:AI時代的數字愛情寓言與情感覺醒

《云端愛人》作為一部聚焦人工智能與人類情感關系的短劇,其文本價值遠超普通都市愛情題材,可視為數字化時代的情感寓言。以下從社會鏡像、敘事張力、哲學思辨三個維度展開深度解析:一、「賽博戀愛」的社會預演:當代人的情感代償機…

多線程下單例如何保證

系列文章目錄 文章目錄系列文章目錄一、方法1、懶漢式雙重檢查鎖2、餓漢式靜態初始化3、使用靜態內部類(懶漢式的一種變體)4、使用 AtomicReference5、使用依賴注入框架,Spring一、方法 懶漢式:延遲加載,第一次調用get…

Java的數字計算

目錄 一、基本數據類型 二、包裝類 三、精確計算:BigDecimal 四、大整數:BigInteger 五、實際應用示例:RSA 加密算法核心計算 一、基本數據類型 這是進行數字計算最高效的方式,直接在棧上分配內存。它們分為整數型和浮點型。…

手寫MyBatis第32彈-設計模式實戰:Builder模式在MyBatis框架中的精妙應用

🥂(???)您的點贊👍?評論📝?收藏?是作者創作的最大動力🤞💖📕🎉🔥 支持我:點贊👍收藏??留言📝歡迎留言討論🔥🔥&am…

小白成長之路-k8s原理(一)

文章目錄前言一、k8s組件1.1master部分1.2node節點二、網絡2.1網絡模型2.2CNI2.3流程2.4網絡解決方案2.5網絡模式三、資源清單3.1概述3.2常見的資源3.3資源清單的編寫四、Pod4.1概念圖4.2pause4.3概述4.4pod生命周期4.5pod探針4.6鉤子4.7pod控制器1.RC 控制器2.RS控制器3.deplo…

木筏求生 PC/手機雙端 單機+聯機(Raft)免安裝中文版

網盤鏈接: 木筏求生 免安裝中文版 名稱:木筏求生 PC/手機雙端 單機聯機(Raft)免安裝中文版 描述: 無論是獨自一人還是與朋友一起,你的任務是在危險的海洋中度過一場史詩般的海洋冒險 !收集…

vue中v-show 和 v-if 指令的區別

v-show 和 v-if 是 Vue.js 中兩個非常重要的指令,都用于條件性地顯示或隱藏元素,但它們的實現方式和適用場景有本質區別。 簡單來說,最核心的區別是: v-if 是 “真正的”條件渲染,它會確保在切換過程中條件塊內的事件監…

Linux中iptables命令

iptables 命令詳解iptables 是 Linux 系統內核級防火墻工具,用于配置、維護和檢查 IPv4 數據包過濾規則(IPv6 使用 ip6tables)。以下是核心用法:一、基本概念表(Tables)filter:默認表&#xff0…

【springboot 技術代碼】集成mongodb 詳細步驟

SpringBoot 深度集成 MongoDB 詳細步驟1. MongoDB 簡介與 SpringBoot 集成概述1.1 SpringBoot 集成 MongoDB 的優勢2. 環境準備與依賴配置2.1 版本兼容性矩陣2.2 詳細依賴配置2.3 詳細配置說明2.3.1 單節點配置2.3.2 集群配置3. 實體映射與集合管理3.1 詳細實體類注解3.2 索引管…

云計算-K8s 運維:Python SDK 操作 Job/Deployment/Pod+RBAC 權限配置及自定義 Pod 調度器實戰

簡介 在 Kubernetes 運維中,自動化資源管理與定制化調度是提升效率的核心需求,而 Python SDK 是實現這一目標的關鍵工具。本次圍繞 K8s Python SDK 展開全場景實戰,以 “代碼 + 效果” 雙維度,覆蓋 5 大核心運維場景,Job 自動化創建(先清理重名資源再部署計算任務)、De…

Excel 轉化成JSON

Excel 轉化成JSON import pandas as pd import json import osdef excel_to_json(excel_path, sheet_name0, orientrecords, save_pathNone):"""將Excel文件轉換為JSON格式并可選擇保存到文件參數:excel_path: Excel文件路徑sheet_name: 工作表名稱或索引&#…

Linux 進階用法

一、系統性能調優系統性能調優是 Linux 管理中的關鍵技能,它能顯著提升系統在不同應用場景下的表現。通過針對性的調優,可以解決資源瓶頸問題,提高服務響應速度,優化資源利用率。(一)CPU 性能調優知識點詳解…

14.蘋果ios逆向-app的調試方式

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動! 內容參考于:圖靈Python學院 工具下載: 鏈接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

深入理解 React useEffect

一、useEffect基礎概念 1、什么是副作用(Side Effects)? 在React中,副作用是指那些與組件渲染結果無關的操作,例如: 數據獲取(API調用)手動修改DOM設置訂閱或定時器記錄日志 2、useE…

Yapi中通過MongoDB修改管理員密碼與新增管理員

如何在Docker部署的Yapi中通過MongoDB修改管理員密碼與新增管理員便捷管理Yapi權限:無需前端重置,直接通過數據庫操作修改密碼及添加管理員一、進入MongoDB容器并連接數據庫 首先,通過以下命令進入運行中的MongoDB容器: docker ex…

【EasyR1】GRPO訓練

官方github:https://github.com/hiyouga/EasyR1 參考:https://opendeep.wiki/hiyouga/EasyR1/quickstart 代碼和環境配置 github:https://github.com/hiyouga/EasyR1 新建一個虛擬環境: python -m venv easyr1 source easyr1/b…