2024-09-17
Deploy RssHub on Vercel(部署 RssHub 在 Vercel 上)

Deploy RssHub on Vercel(部署 RssHub 在 Vercel 上)

背景

官方推荐使用docker-compose部署RssHub,但是需要个人服务器,而且需要一定的技术水平,而在Vercel上部署RssHub更加简单.

Vercel 介绍

Vercel 是一个现代化的部署应用程序平台, 有以下优点:

  • 部署速度快
  • 部署简单
  • 支持多种语言

问题

安装RssHub官方文档进行部署:https://docs.rsshub.app/deploy/#deploy-to-vercel


部署步骤

1. fork原仓库

https://github.com/DIYgod/RSSHub/fork

注意: 在此处取消勾选: Copy the master branch only

image-20240917165721730

2. 部署到vercel

  • 访问https://vercel.com/, 注册账号, 选择Hobby plan

  • 进入主页, 点击Add New...

    image-20240917170024094
  • 选择Project

    image-20240917170315369
  • Import 我们刚刚fork的仓库

    image-20240917170457356
  • 系统会默认生成一个项目名称,也可以自定义修改

  • 其他配置不动,点击Deploy

  • 这里就会遇到开头提到的Error: 当前的环境版本是 node.js 20,而package.json的要求的 node.js版本要≥22

  • 这里我们的解决方案是使用仓库的legacy分支, 该分支设定的node.js版本为≥16, 满足我们的需求

  • 如下图, 进入项目设置, 选择Git, 修改Production Branch中的Branch namelegacy, 然后点击save保存

    image-20240917171024074
  • 接下来, 在下面的Deploy Hooks中创建legacy on legacy, 如下图:

    image-20240917171239697

  • 访问生成的url, 创建新的deployment, 等待一段时间之后, 就已经部署好了

3. 配置域名

  • 进入项目设置, 点击Domains, 添加域名, 配置DNS解析

    image-20240917171630093
  • 访问配置好的域名, 出现下图, 说明部署完成!

    image-20240917171718131

总结

  • 通过Vercel部署RssHub, 可以省去自己搭建服务器的麻烦, 也不用担心服务器的维护问题
  • 部署过程中遇到的问题, 通过修改仓库的legacy分支, 解决了node.js版本不匹配的问题
  • 部署完成后, 可以配置域名, 使得访问更加方便
  • 通过这次部署, 也学到了如何在Vercel上部署项目, 以及如何配置域名


reference: https://cloud.tencent.com/developer/article/2432561

Read More

2024-08-02
Common Docker Operations and Commands

Common Docker Operations and Commands

Create Docker Image for Python Projects

  1. Configure Dependencies
1
2
3
pip freeze > requirements.txt
touch Dockerfile
vim Dockerfile
  1. Create and Edit Dockerfile
1
2
3
4
5
6
FROM python:3.10.12
ADD . /code
WORKDIR /code
# Install Dependencies
RUN pip install -r requirements.txt
CMD ["python", "/hello.py"]
  1. Build Docker Image & run
1
2
3
docker build -t demo .
docker run -it demo
docker run -itd --name demo -p 5000:5000 demo

Pull or Push Docker Images

Docker Hub

login to Docker Hub;

1
2
3
4
5
6
7
8
9
[root@localhost ~]
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Edit Tag

  • Push Command docker push docker_username/REPOSITORY:TAG
  • We need to edit the tag and repository name:
1
2
3
4
5
6
7
8
9
[root@localhost ~]# docker images 
REPOSITORY TAG IMAGE ID CREATED SIZE
demo latest 1e5f6711d527 3 days ago 178MB
[root@localhost ~]# docker tag demo:latest ***/demo:v1
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
demo latest 1e5f6711d527 3 days ago 178MB
***/demo v1 1e5f6711d527 3 days ago 178MB
[root@localhost ~]#

Push

1
2
3
4
5
6
7
8
[root@localhost ~]# docker push ***/demo:v1
The push refers to repository [docker.io/***/demo:v1]
833a0t6a6ff9: Pushed
10bfe4y2500e: Pushed
d43sfdd7d594: Mounted from library/nginx
c2adabsadfed: Mounted from library/nginx
v1: digest: sha256:67dcdae5578c0374019bdc899731543cfd7c48fe5780e84233a258f2bf7d2ceda size: 1155
[root@localhost ~]#

Pull

1
2
3
4
5
[root@localhost ~]# docker pull ***/demo:v1
v1: Pulling from ***/demo:v1
Digest: sha256:67dcdae5578c0374019bdc899731543cfd7c48fe5780e84233a258f2bf7d2ceda
Status: Downloaded newer image for ***/demo:v1
docker.io/llxxyy/nginx-io:v1
Read More