MoreRSS

site iconLaoda | 咕咕修改

主要分享服务器折腾指南、Docker自建项目、博客搭建等技术内容,同时推荐好用的网站和在线工具。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Laoda | 咕咕的 RSS 预览

拒绝恶意收购,十分钟搭建AList的替代品——OpenList|好玩儿的Docker项目

2025-07-04 09:46:00

最近事情比较多,鸽了好一阵子了。前阵子Alist被收购的事情,相信不少小伙伴可能已经有了解。

这边给还不清楚的小伙伴简单梳理一下。

1. 介绍

AList是一个广受欢迎的开源项目,支持多种云存储的统一管理和WebDAV功能,因其便捷性和强大的网盘聚合能力在开发者社区中积累了近5万星标。

咕咕在自己的博客里也介绍过这个项目——【好玩的Docker项目】目前最好用的网盘直链程序——AList,支持市面上几乎所有网盘!可以代替Olaindex! (突然发现已经是三年前的事情了 = =)

然而,2025年6月爆出的项目被出售事件引发了开源社区的激烈反响。

事件背景

  • 项目出售:据多方消息,AList被原开发者Xhofe出售给贵州不够科技有限公司(BugoTech),交易过程未公开,缺乏社区通知。原开发者确认项目已交由公司运营,自己仅保留代码审查权,main分支启用PR审核和CI自动构建以确保透明性。
  • 争议操作:新维护者(账号alist666)提交的PR #8633被发现包含收集用户设备信息并上传至私有服务器的代码,引发“供应链投毒”担忧,虽因社区压力撤回,但信任危机加剧。文档被大幅修改,移除原作者信息,新增商业化内容(如VIP技术支持和QQ群),官网域名从alist.nn.ci更换为alistgo.com,旧链接404。
  • 收购方背景:不够科技此前收购Hutool、LNMP等项目,伴随权限争议和疑似“投毒”历史,社区对其声誉存疑。

社区反应

  1. 愤怒与失望

    • 信任崩塌:社区对原开发者Xhofe未提前公告的“暗箱操作”表示强烈不满,认为此举背叛了开源精神,伤害了用户和贡献者的信任。GitHub Issues区被大量批评淹没,新维护者删除质疑帖并移除反对者进一步激化矛盾。
    • 隐私担忧:AList涉及网盘Token和Cookie等敏感数据,用户担心新版本可能泄露隐私或被植入恶意代码。社区建议锁定v3.40.0版本,解除网盘授权,并备份重要文件。
    • 对收购方的质疑:不够科技的“黑历史”被广泛讨论,社区将其与此前LNMP、Oneinstack的闭源和投毒争议联系起来,称其为“傻逼公司”“bug科技”,对其动机和代码安全性高度警惕。
  2. 社区自救与分叉

    • 分叉项目:开发者迅速行动,创建了OpenList等分叉项目,移除不可信代码并审计近半年提交,短时间内获数千星标,显示社区对替代方案的热情。
    • 替代方案:技术博客推荐Zdir、Cloudreve等私有网盘程序,鼓励用户迁移以规避风险。
    • 安全建议:社区提出锁定版本、校验哈希、隔离网络、自行编译等措施,强调去中心化分发和社区监督的重要性。
  3. 对原开发者的复杂情绪

    • 理解与支持:部分开发者(如@DIYgod)表示理解Xhofe的决定,认为开源维护的长期孤独和无回报让变现成为合理选择,祝福其获得回报。贡献图显示Xhofe个人提交超90%代码,凸显其付出。
    • 批评与指责:更多用户认为Xhofe将社区贡献和用户数据“卖给有前科的公司”是不道德的,称其“把用户当交易品”,损害了开源生态的信任。

评价

  • 对原开发者的行为:Xhofe作为主要贡献者有权在MIT/AGPL-3.0许可证框架内转让项目,但未公开透明的做法违背了开源社区的信任契约。 虽然其后续承诺代码审查,但“悄然退出”和“配合移除贡献者痕迹”让社区感到被背叛,凸显了单一开发者主导项目的风险。
  • 对收购方的操作:不够科技的历史记录和新代码的隐私收集行为引发合理担忧,其商业化导向(如VIP服务)与开源精神冲突。删除批评和接管仓库的“粗暴”操作进一步破坏信任,可能导致AList用户流失。
  • 社区的应对:社区的激烈反应反映了对开源项目透明度和数据安全的重视。分叉项目和替代方案的迅速涌现展现了开源生态的韧性,但也暴露了国内开源项目变现难、社区监督机制不足的问题。
  • 对开源生态的启示:AList事件敲响警钟,提醒用户关注项目维护的可持续性和开发者的稳定性。建议建立贡献者许可协议(CLA)和社区监督机制,防止类似“野蛮收购”。用户应谨慎选择涉及敏感数据的开源工具,优先考虑社区主导的项目。

结论

AList被收购事件引发了开源社区的信任危机,社区的愤怒源于对隐私安全和开源精神的双重担忧。尽管部分人理解原开发者的变现动机,但其隐秘操作和收购方的争议历史让事件成为“开源之耻”。社区通过分叉和替代方案展现了自救能力,但事件也暴露了国内开源生态在商业化与信任之间的矛盾。用户应保持警惕,优先选择透明、社区驱动的项目,同时推动更完善的开源治理机制。

这一期,我们就来分享一个Alist的开源替代——OpenList。

ecd1fc88db4311c5f021b48eea89155e.png

b052fa406d61edce52e385f01a60fddf.png

如果你之前安装过 Alist,其实只要在docker-compose.yml修改两处:

  • 镜像名从 xhofe/alist 改为 openlistteam/openlist
  • 映射的容器内的路径,由 /opt/alist/ 改为 /opt/openlist/(如果添加了本地存储,记得也修改一下根文件夹路径,其他网盘不影响)

运行之前,最好对原来的数据进行一次备份,运行之后,原来怎么使用,现在还是一样的。

2. 相关地址

官方GitHub地址:https://github.com/OpenListTeam/OpenList (目前10.6k个star,欢迎大家去给作者点星星!)

3. 搭建环境

  • 服务器:咕咕这边用的是OVH的杜甫,当然你也可以选择其他高性价比的服务器。内存1G以上即可,硬盘当然是越大越好啦。
  • 系统:Debian 11 (DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)
  • 安装好 Docker、Docker-compose(相关脚本
  • 【必需】域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程
  • 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址
  • 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程

4. 搭建视频(有时间补充!)

4.1 YouTube

视频地址:

4.2 哔哩哔哩

哔哩哔哩:

5. 搭建方式

5.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

5.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/openlist

cd openlist

我们来简单修改一下作者提供的docker-compose.yml文件

vim docker-compose.yml

咕咕修改之后的(其实就是修改了端口号和删除了version: "3.7"):

services:
  openlist:
    image: 'openlistteam/openlist:latest'
    container_name: openlist
    volumes:
      - '/data:/opt/openlist/data'
      - './share:/opt/openlist/share'
    ports:
      - '5288:5244'
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
    restart: unless-stopped

修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

5.3 打开服务器防火墙(非必需)并访问网页

打开防火墙的端口 5288

举例,腾讯云打开方法如下(部分服务商没有自带的面板防火墙,就不用这步操作了):

image-20220630215240864image-20220630220546335

类似图中的,这边我们填 5288,示例填 openlist ,确定即可(如果你在 docker-compose 文件里换了 9009,这边就需要填 9009,以此类推)

56a42aff23098af08c1ae587e19739ae.png

查看端口是否被占用(以 5288 为例),输入:

lsof -i:5288  #查看 5288 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

5.4 启动 openlist

cd /root/data/docker_data/openlist

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:5288 访问了。

但是这边我们推荐先搞一下反向代理!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo上 6位数字的xyz续费永远都是0.99美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

6. 反向代理

6.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程

4b00cb7fe121c71233685dcc787fdf32.png

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

1a1ff8255bb0ae59f7dcb9b492fa3f11.pnge412c3244963f658bd1521eca54de921.png3f2b568516e72dab959680f84f40a83e.png3c9ea7731f53d6e51b7cf6cbe1c3c532.png

注意填写对应的 域名IP端口,按文章来的话,应该是 5288

IP 填写:

如果 Nginx Proxy Manager 和 openlist 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 openlist 所在的服务器 IP 就行。

6.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:5288/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

7. 使用教程

首先来输入命令:

docker compose logs

查看一下初始的登录密码:

3813385afd8b3e7c33c374f95c642d7b.png

这边的密码是OVoPTw5B

打开域名登录:

1ed1f3aeb85b7de9289c25f921a40340.png

默认用户名:admin
密码:OVoPTw5B

这个等下都可以自己修改。

登录之后发现是这样的,因为我们还没有添加任何的存储源:

b569358ee1fefe1b457c6c173dbf1ce7.png

点击首页下方的管理,来到后台。

我们来演示一下"添加存储"的操作,

eed7a56a23a3f2fa0269ee851714737d.png

这边先选择一个"本地存储",

挂载路径这边可以自己自定义,

WebDAV策略选择“本地代理”就行,

919e9cc5a6bab65898daa321583a3e65.png

根文件夹路径要填docker容器内部的路径,这边前面我们在docker-compose.yml里面映射了./share:/opt/openlist/share,所以其实这边填/opt/openlist/share即可。

其他的选项按需自己设置。

699adef16557fd910c5120f59f020c84.png

点击保存之后,再返回首页,就有显示了,后续可以自己把文件传到服务器,这边就会显示出来了。

293e180d47b86f783314960b790c9935.png

当然,AList之所以火爆,就是因为他可以添加很多个网盘的索引,

78a73028105f168bc635347f0a2265eb.png

0dce80aeb7a0f61fe8c8a0105e26c227.png

因为不同的小伙伴用的网盘也不一样,具体的细节,大家可以参考官方的文档来添加:https://docs.oplist.org/zh/guide/drivers/common.html

7.1 更新 openlist

cd /root/data/docker_data/openlist

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

7.2 卸载 openlist

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/openlist

docker compose down

cd ..

rm -rf /root/data/docker_data/openlist  # 完全删除

可以卸载得很干净。

8. 常见问题及注意点

目前 OpenList 已经发布了 4.0 正式版,但依然存在一些已知问题,不过大部分功能已可稳定使用,具体迁移进度可在 OpenList 迁移工作总结 中查看。

大家记得多多更新,使用最新版本的docker镜像。

a17367ce1aa891a163371be6f72c8b9f.png

目前项目的赞助页面还未建立:https://docs.oplist.org/zh/zh/guide/sponsor.html

后续建立了我也会支持,同时也希望有条件的小伙伴多多支持,赞赏开发者们一杯咖啡。这样也能让开源项目能够健康生存下去,少受商业的裹挟。

9. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,项目处于初期,有能力给项目做贡献的同学,也欢迎积极加入到 [项目]https://github.com/OpenListTeam/OpenList) 中来,贡献自己的一份力量!

最后,感谢开发人员们的辛苦付出,让我们能用到这么优秀的项目!也希望开源项目越来越好!

10. 参考资料

官方GitHub:https://github.com/OpenListTeam/OpenList

保护图片隐私!十分钟搭建一个小而美的离线图片处理工具——mazanoke|好玩儿的Docker项目

2025-05-09 10:56:04

1. 唠嗑

之前和大家分享过:一个本地化图片处理工具——Reubah

今天我们再来分享一个UI更简洁漂亮的支持docker自建的本地图像处理工具——mazanoke

2. mazanoke简介

1199394abe5998fca4e955a6de88e657.png

MAZANOKE 是一个简单的图像优化工具,可以在你的浏览器中运行,离线工作,并且始终保持你的图像私密,是市面上那些宣传“免费”在线图片处理工具的替代品。

2.1 功能

🖼️ 在浏览器中优化图像

  • 调整图像质量
  • 设置目标文件大小
  • 设置最大宽度/高度
  • 从剪贴板粘贴图像
  • 在 JPG、PNG、WebP 之间转换
  • 从 HEIC、AVIF、GIF、SVG 转换

🔒 注重隐私

  • 离线工作
  • 设备内处理图像
  • 删除 EXIF 数据(位置、日期等)
  • 无追踪
  • 可安装的网络应用程序

计划中的功能

  • 一次上传多个文件
  • 支持更多图像文件类型
    • 最近添加了从:HEIC、AVIF、GIF、SVG → JPG/PNG/WebP 的转换
  • 记住上次使用的设置
  • 裁剪图片

2.2 使用

官方Demo地址:MAZANOKE.com

cc6769191e8b166df0677018f4d76af8.png

29a023ebea96d7dcb6b64e30898cf42a.png

所见即所得,不多赘述。

其实,这个本质就是一个html页面,你可以直接点击右上角下载,这样就能离线使用了。

85e4bd6fbe3b94f1eb19ed78fcaa0eb8.png

45cc17bffdd5d8d699576a19c0cfd328.png

或者是在这边下载:https://github.com/civilblur/mazanoke/releases

然后打开里面的index.html也可以直接离线使用。

当然如果你看到这边还想自己用docker搭建一个,那我们就继续往下!

3. 相关地址

官方GitHub地址:https://github.com/civilblur/mazanoke (目前1K个star,欢迎大家去给项目点星星!)

4. 搭建环境

5. 搭建视频(过俩天补充 = =)

5.1 YouTube

视频地址:

5.2 哔哩哔哩

哔哩哔哩:

6. 搭建方式

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

6.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/mazanoke

cd /root/data/docker_data/mazanoke

接着我们来编辑下docker-compose.yml

vim docker-compose.yml
# Basic compose file for deploying MAZANOKE

services:
  mazanoke:
    container_name: mazanoke
    image: ghcr.io/civilblur/mazanoke:latest
    ports:
      - "3474:80"
  restart: unless-stopped

其中的左边的3474可以改成服务器上没有用过的端口,记得修改自己的用户名和密码,修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

6.3 查看端口是否被占用

查看端口是否被占用(以 3474 为例),输入:

lsof -i:3474  #查看 3474 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

6.4 启动 mazanoke

cd /root/data/docker_data/mazanoke

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

耐心等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:3474 访问了。

但是这边这个服务必须先搞一下反向代理!http使用明文传输太危险,我们部署在公网一定要考虑使用反向代理工具配置SSL!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo上 6位数字的xyz续费永远都是0.99美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

7. 反向代理

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)

dbbf5fa382d005f7f413603b4c0238f9.png

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

546316e8d575d6f70533e1e09eb412cd.pngc2075b8e6a85bff585396fd4c0bca1ed.png6cc81ae5550620c5aaf8444ab60ac58e.pngf5137b06b270769cc2ebca7019f47e35.png

注意填写对应的 域名IP端口,按文章来的话,应该是 3474

IP 填写:

如果 Nginx Proxy Manager 和 mazanoke 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 mazanoke 所在的服务器 IP 就行。

然后访问域名就可以访问了!

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:3474/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

非常简单,所见即所得。

8.1 更新 mazanoke

这个项目后续应该也会有更新,所以提供一个更新的方式。

cd /root/data/docker_data/mazanoke

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

8.2 卸载 mazanoke

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/mazanoke

docker compose down

cd ..

rm -rf /root/data/docker_data/mazanoke  # 完全删除

可以卸载得很干净。

9. 常见问题及注意点

大家有问题欢迎评论区交流。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!

最后,感谢作者@civilblur的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star ⭐️

参考资料

官方GitHub:https://github.com/civilblur/mazanoke

10分钟搭建一个高颜值的在线开发工具箱—— jisuxiang|好玩儿的Docker项目

2025-04-22 16:34:56

1. 唠嗑

之前和大家分享过【好玩儿的Docker项目】10分钟搭建一个高颜值的在线工具箱,用户体验很棒!

6bae1f25866c4f1b60943721f69796c1.png

功能很丰富,不过不支持中文。

这一期来介绍一个中文的,高颜值的在线开发工具箱。

2. jisuxiang简介

极速箱是一个高颜值的在线开发工具箱,提供各种程序员必备的开发工具,帮助开发者提升编程效率。本项目使用 Next.js 和 TailwindCSS 开发,拥有美观现代的界面设计。

在线演示: https://www.jisuxiang.com - 立即体验!

2.1 🚀 功能特点

  • 多种分类工具:JSON处理、编码解码、网络测试等多种实用工具
  • 响应式设计:适配各种设备尺寸,提供最佳用户体验
  • 暗色主题:保护眼睛的界面设计,适合长时间使用
  • 高效搜索:快速找到所需工具的强大搜索功能
  • 收藏系统:保存常用工具,方便快速访问
  • 多语言支持:支持中文和英文界面

2.2 🔧 包含工具

  • JSON格式化与验证
  • HTTP请求测试
  • 时间戳转换
  • 编码解码工具
  • 正则表达式测试
  • 加密解密工具
  • 颜色选择与转换
  • 代码格式化
  • JSON编辑器与转换器
  • IP地址查询
  • 日期计算器
  • 时区转换
  • 文本统计
  • HTML/Markdown转换
  • 图片压缩
  • 二维码生成
  • CSS渐变生成器
  • 更多实用工具...

2.3 使用

c86398679044dcdd3df5487fe7c0d560.png

338c4db9517abac9b37cdc226113f745.png
当然如果你看到这边想自己搭建一个,那我们就继续往下看!

3. 相关地址

官方GitHub地址:https://github.com/star7th/jisuxiang (目前261个star,欢迎大家去给项目点星星!)

4. 搭建环境

5. 搭建视频(过俩天补充 = =)

5.1 YouTube

视频地址:

5.2 哔哩哔哩

哔哩哔哩:

6. 搭建方式

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

6.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/jisuxiang

cd /root/data/docker_data/jisuxiang

接着我们来编辑下docker-compose.yml

vim docker-compose.yml
name: jisuxiang
services:
    jisuxiang:
        container_name: jisuxiang
        restart: always
        ports:
            - 3001:3000
        image: star7th/jisuxiang:latest

其中的左边的3001可以改成服务器上没有用过的端口,记得修改自己的用户名和密码,修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

6.3 查看端口是否被占用

查看端口是否被占用(以 3001 为例),输入:

lsof -i:3001  #查看 3001 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

6.4 启动 jisuxiang

cd /root/data/docker_data/jisuxiang

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

耐心等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:3001 访问了。

但是这边这个服务必须先搞一下反向代理!http使用明文传输太危险,我们部署在公网一定要考虑使用反向代理工具配置SSL!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo上 6位数字的xyz续费永远都是0.99美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

7. 反向代理

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)

image-20250422163001796

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

9a1e1688e15e1fa88303c4df48fdb85b.pngf49627216cee515fab28d95eac05b6f9.png9da4948e39b0777b72d7785d76b26cd6.pngc26132063961e0de1048995075192bca.png

注意填写对应的 域名IP端口,按文章来的话,应该是 3001

IP 填写:

如果 Nginx Proxy Manager 和 jisuxiang 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 jisuxiang 所在的服务器 IP 就行。

然后访问域名就可以访问了!

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:3001/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

非常简单,开箱即用。

8.1 更新 jisuxiang

这个项目后续应该也会有更新,所以提供一个更新的方式。

cd /root/data/docker_data/jisuxiang

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

8.2 卸载 jisuxiang

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/jisuxiang

docker compose down

cd ..

rm -rf /root/data/docker_data/jisuxiang  # 完全删除

可以卸载得很干净。

9. 常见问题及注意点

暂时没有。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!

最后,感谢作者@star7th的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star ⭐️

参考资料

官方GitHub:https://github.com/star7th/jisuxiang

Docker 一键部署网盘资源搜索与转存工具——CloudSaver|好玩儿的Docker项目

2025-04-16 21:15:51

1. 唠嗑

最近事情比较多,很长时间没和大家分享好玩儿的Docker项目了,今天来分享一个网盘资源搜索与转存工具——CloudSaver

2. cloudsaver简介

  • 🔍 多源资源搜索
    • 支持多个资源订阅源搜索
    • 支持关键词搜索与资源链接解析
    • 支持豆瓣热门榜单展示
  • 💾 网盘资源转存
    • 支持 115 网盘夸克网盘天翼网盘 一键转存
    • 支持转存文件夹展示与选择
  • 👥 多用户系统
    • 支持用户注册登录
    • 支持管理员与普通用户权限区分
  • 📱 响应式设计
    • 支持 PC 端与移动端自适应布局
    • 针对不同设备优化的交互体验

2.1 特别声明

  1. 本项目仅供学习交流使用,请勿用于非法用途
  2. 仅支持个人使用,不支持任何形式的商业使用
  3. 禁止在项目页面进行任何形式的广告宣传
  4. 所有搜索到的资源均来自第三方,本项目不对其真实性、合法性做出任何保证

2.2 使用

热门榜单

e8f72be3818444f667dca127dc190bdf.png

资源搜索

8fe62b57d3302defa6ba13cfcd6de7df.png

比如搜一个“甄嬛传”

9da44b07d7a5766171322a01b8e89ffc.png

ed735f7e731c8bc0f19ce0c1885226e4.png

转存

a8712fdc4810b3db84ecb00a8009c4f7.png

转存成功

4967cf7578df6a02493cc3a2376f5b6f.png

6714b19a5272c1d86f9e0c40f1386eaf.png

当然如果你看到这边想自己搭建一个,那我们就继续往下看!

3. 相关地址

官方GitHub地址:https://github.com/jiangrui1994/cloudsaver (目前3.6K个star,欢迎大家去给项目点星星!)

4. 搭建环境

  • 服务器:这边强烈建议用非大陆的服务器,不然必须要启用代理设置,否则会刷不到任何内容,咕咕这边用的香港的腾讯云轻量应用服务器,建议服务器内存1G以上,当然你也可以选择其他高性价比的服务器
  • 系统:Debian 11 (DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)
  • 安装好 Docker、Docker-compose(相关脚本
  • 【必需】域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程
  • 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址
  • 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程

5. 搭建视频(过俩天补充 = =)

5.1 YouTube

视频地址:

5.2 哔哩哔哩

哔哩哔哩:

6. 搭建方式

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

6.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/cloudsaver

cd /root/data/docker_data/cloudsaver

接着我们来编辑下docker-compose.yml

vim docker-compose.yml
services:
  cloudsaver:
    image: jiangrui1994/cloudsaver:latest
    container_name: cloud-saver
    ports:
      - "8009:8008"
    volumes:
      - ./data:/app/data
      - ./config:/app/config
    restart: unless-stopped

其中的左边的8009可以改成服务器上没有用过的端口,记得修改自己的用户名和密码,修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

6.3 查看端口是否被占用

查看端口是否被占用(以 8009 为例),输入:

lsof -i:8009  #查看 8009 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

6.4 启动 cloudsaver

cd /root/data/docker_data/cloudsaver

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

耐心等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:8009 访问了。

但是这边这个服务必须先搞一下反向代理!http使用明文传输太危险,我们部署在公网一定要考虑使用反向代理工具配置SSL!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo上 6位数字的xyz续费永远都是0.99美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

7. 反向代理

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)

763a1f9516de8f3696de76b708488a6b.png

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

014632b85d0fda607f46f81e0ec796fa.pngc2075b8e6a85bff585396fd4c0bca1ed.png09174f6d6ad957739017f97f42d7d184.pngf5137b06b270769cc2ebca7019f47e35.png

注意填写对应的 域名IP端口,按文章来的话,应该是 8009

IP 填写:

如果 Nginx Proxy Manager 和 cloudsaver 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 cloudsaver 所在的服务器 IP 就行。

然后访问域名就可以访问了!

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:8009/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

8.1 搜索与转存资源

登陆,开始注册。

9af544f6a382375205d3e75c249aa659.png

902ac98e6625f92856d6a3da78ae9958.png

默认注册码:

  • 管理员:230713
  • 普通用户:9527

我们是管理员就用230713

为了安全起见,登陆之后第一件事情就去更改一下默认的注册码。

2f41c48836c96cf2d7d25cc28d06676b.png

8.2 115 网盘 cookie获取

用户配置,这边就是看你转存到哪个网盘,

89f9fae000c28e144b7c346959186a7f.png

这边我们以115网盘为例子:

  • 从网页登录 115网盘
  • F12 打开 开发者工具
  • Network –> Filter 中输入 get,找到 warning_get,就可以获取到 cookie 的值;

915a61376931f64e734453c150f25318.png

如果115网盘空间不够,可以扫码开通会员,年付158元,可以扩容至5T。

IMG_6982.JPG

8.3 更新 cloudsaver

这个项目后续应该也会有更新,所以提供一个更新的方式。

cd /root/data/docker_data/cloudsaver

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

8.4 卸载 cloudsaver

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/cloudsaver

docker compose down

cd ..

rm -rf /root/data/docker_data/cloudsaver  # 完全删除

可以卸载得很干净。

9. 常见问题及注意点

咕咕实测,115资源最多,其他俩网盘有些资源可能失效。

另外,本项目仅供学习交流使用,请勿用于非法用途。

大家有问题欢迎评论区交流。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!

最后,感谢作者的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star ⭐️

参考资料

官方GitHub:https://github.com/jiangrui1994/cloudsaver

想用大厂的云服务器,如何省心又省钱?试试新加坡的云服务器代理商——Huichang Cloud

2025-04-13 09:22:47

云服务器代理商是个啥?

简单来说,云服务器代理商就是帮你搞定云服务器的“中间人”。你想用阿里云腾讯云这些大厂的服务器,但直接去官网买,可能觉得价格偏高,或者有些用户想要匿名购买或者是用加密货币或者美元购买。代理商呢,就相当于你的“云服务管家”,可以帮你选服务器、开账号、搞优惠,还能提供技术支持。省心省力,关键还能省钱!(他们虽然给你85折的充值优惠,但是由于走的渠道,你的账号是和他们关联的,他们还是有的赚!)

为啥选阿里云国际、腾讯云国际的服务器?

阿里云国际腾讯云国际有啥优势?

  1. 全球覆盖,速度快:不管你的业务在亚洲、欧洲还是美洲,这两家都有遍布全球的数据中心。尤其是新加坡节点,延迟低到飞起,特别适合东南亚市场的朋友。
  2. 稳定如老狗:大厂的服务器,硬件和网络都比较靠谱,宕机的概率比你家Wi-Fi断网还低。
  3. 功能多到炸:从存储、计算到AI、大数据,啥都能干。想搭网站、跑应用、存数据,都能搞定。
  4. 安全性拉满:防火墙、DDoS防护、数据加密,为你的业务保驾护航。

代理开户的优势

用大厂的机器,基本上就是“稳中带快,啥都能干”。但直接买,可能有点烧钱,这时候找个靠谱代理就显得特别重要了。

代理开户的优势如下:

  • 省钱第一名:代理商跟云厂商关系铁,能拿到大额折扣,即使扣除了他们自己赚的那部分,也比你自己官网充值便宜一大截。
  • 省心省力:提供匿名账号,保护客户隐私,免实名,免绑卡,从注册账号到配置服务器,代理帮你一条龙搞定。
  • 售后有保障:官网的客服有时候回复比较慢,代理商的响应速度快多了,随时帮你解决问题。
  • 灵活选择:代理商通常能提供更灵活的套餐,甚至还能定制,满足你的各种奇葩需求。

一句话,找代理就像找了个“云服务经纪人”,可以让你少走一点弯路,直接享受VIP待遇。

认识一下Huichang Cloud,来自新加坡的代理!

新加坡的云服务器代理——Huichang Cloud 在圈子里口碑不错,服务覆盖阿里云国际、腾讯云国际、AWS、华为云等大牌。

fe818c868c022dbc065486fb8eaa7e35.png

为什么选他们?

3499d60bdcdbd9b6f6c87325edd7b404.png

  1. 折扣大

Huichang Cloud跟云厂商深度合作,折扣力度能低到5折!买同样的配置,别人花一万,你可能只要五千。尤其是对于云服务器大户,一年下来可以省不少钱。

  1. 账号稳

用过云服务器的朋友可能遇到过账号被封的糟心事。Huichang Cloud的代理渠道账号稳定,合规操作,基本不用担心突然“人间蒸发”。

  1. 从开户到售后,一站式服务

不管你是小白还是老手,他们从账号注册、服务器选配到后期维护,全程陪跑。遇到问题?直接找他们,效率更高。

  1. 原厂工程师坐镇

Huichang Cloud的技术团队里有不少来自云厂商原厂的工程师,经验老道。不管是优化服务器性能,还是处理突发故障,他们都能给你稳稳地解决。

想了解更多细节,或者直接上手试试?

可以通过Telegram/Whatsapp/QQ(QQ群:901579741),联系到Huichang Cloud,里面有客服随时答疑。

如果充值购买,联系客服报优惠码gugu,可以获得额外5%的充值优惠。

聊聊体验

我特意去试了试Huichang Cloud的服务,打算选个阿里云国际的香港节点服务器。

这边直接点击官网链接,通过Bot机器人充值((建议可以都先联系一下客服再充值),

3f8f9fcc37b5459df83cade97c0bf609.png

5c3c86602790f6cb66c355c872bb7907.png

或者联系客服充值,(可以通过Telegram/Whatsapp/QQ(QQ群:901579741),联系到Huichang Cloud客服)

bf391a326cbc80c488d6477de61b31b9.png

之后会直接给到账户密码,用于直接在阿里云国际站官网登录。

646fd74b6e0d59c986c71ac5cf36e470.png

26f492372eed1045e115cc3979f5dde6.png

登录:

916baf0f7a8f80339a24df24044e6b87.png

选择通过邮箱认证:

9d2a2e65819024ceec3b0844e5e0287d.png

然后登录邮箱查看验证码:

1e2b06605d26b5f50514cec90f09be28.png

登录之后来到控制台,就可以开始选购服务了。

8fde9f641fd4588846698c263eefdff5.png

轻量云选购页面:

ec015ad658e27443340d35cdfa293bec.png

接下来就是正常和用阿里云一样使用就可以了。

当然,如果你有需求,也可以把账号绑定的手机号和邮箱改成自己的。

注意:更换手机号需要找客服拿到原来手机号的验证码并且只能更换同地区的手机号

全流程大概梳理如下:

通过Telegram、Whatsapp、qq,联系到Huichang Cloud——告诉Huichang Cloud需求(需要哪里的服务器)——付款(美元、USDT、RMB,这边会有相应的折扣)——Huichang Cloud 提供一个充值完成的成品账号,里面包含腾讯或者阿里的云服务器国际站官网的登录信息+对应绑定邮箱的登录信息(用于接收验证码)——用户利用该信息登录国际云的官网,进行服务器的购买操作(里面已经充值过了对应的金额)——后续用户可以根据自己的需求选择是否更换绑定的邮箱和手机号,更换手机号需要找客服拿到原来手机号的验证码并且只能更换同地区的手机号

总的来说,体验下来,Huichang Cloud还是比较“靠谱+省心”的。

最后

云服务器这玩意儿,选对了服务商,可以让你省不少事儿,少踩一堆坑。Huichang Cloud作为新加坡的实力派代理,折扣给力、服务贴心,挺值得一试。不管你是想搭个博客、跑个电商网站,还是搞点更复杂的业务,他们都能帮你安排得明明白白。国内小伙伴有需求的可以加入他们的QQ群:901579741 咨询更多细节。

48032968dca6e5b08f37ab9f1c5eb4a4.png

海外小伙伴可以通过Telegram/Whatsapp,联系到Huichang Cloud,里面有客服随时答疑。

让写简历变得简单且智能!十分钟搭建一个在线简历编辑器——Magic Resume|好玩儿的Docker项目

2025-03-14 16:36:36

1. 唠嗑

关注咕咕频道的有不少小伙伴还在大学念书,这一期我们带来一个实用的项目——帮助你轻松搞定一份简历!

2. magic-resume简介

f20b9633c197466de36998111097a76a.png

5d0fc094f1f8bde6c7c94428c702fa5e.png

现有特性

  • 🚀 基于 Next.js 14+ 构建
  • 💫 流畅的动画效果 (Framer Motion)
  • 🎨 自定义主题支持
  • 📱 响应式设计
  • 🌙 深色模式
  • 📤 导出为 PDF
  • 🔄 实时预览
  • 💾 自动保存
  • 🔒 本地存储

后续升级路线

  • AI 辅助编写
  • 多语言支持
  • 支持更多简历模板
  • 更多格式导出
  • 自定义模型
  • 智能一页
  • 导入 PDF, Markdown 等
  • 在线简历托管

使用

f20b9633c197466de36998111097a76a.png

0335a33ed59638de482c118eed96afc7.png

里面有常用的一些模版,可以选一个自己喜欢的,直接套用:

25b9cd2430d699ac26dd50046f79c532.png

支持文件夹同步:

247893858deebecd7c2ac4f301c51606.png

AI 辅助编写的功能已经上线,模型目前支持豆包和deepseek:

5be0a217d2bc6e45f788f881afc54a6b.png

简历的编辑页面是这样的:

ff0fc68e54003a82075149f5211b91ff.png

功能非常丰富,所见即所得:

e5602952d110ea46b65e3d1a1b5e645d.png

其实这个项目大家不用自己搭,可以直接使用作者搭好的Demo,Demo地址:https://magicv.art/app/dashboard/resumes

当然如果你看到这边想自己搭建一个,那我们就继续往下看!

3. 相关地址

官方GitHub地址:https://github.com/JOYCEQL/magic-resume (目前937个star,欢迎大家去给项目点星星!)

4. 搭建环境

  • 服务器:这边强烈建议用非大陆的服务器,不然很多网站访问不了,咕咕这边用的香港的腾讯云轻量应用服务器,建议服务器内存1G以上,当然你也可以选择其他高性价比的服务器
  • 系统:Debian 11 (DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)
  • 安装好 Docker、Docker-compose(相关脚本
  • 【必需】域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程
  • 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址
  • 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程

5. 搭建视频(过俩天补充 = =)

5.1 YouTube

视频地址:

5.2 哔哩哔哩

哔哩哔哩:

6. 搭建方式

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

6.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/magic-resume

cd /root/data/docker_data/magic-resume

接着我们来编辑下docker-compose.yml

vim docker-compose.yml
services:
  web:
    image: siyueqingchen/magic-resume:main
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    restart: always

其中的左边的3000可以改成服务器上没有用过的端口,记得修改自己的用户名和密码,修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

6.3 查看端口是否被占用

查看端口是否被占用(以 3000 为例),输入:

lsof -i:3000  #查看 3000 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

6.4 启动 magic-resume

cd /root/data/docker_data/magic-resume

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

耐心等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:3000 访问了。

但是这边这个服务必须先搞一下反向代理!http使用明文传输太危险,我们部署在公网一定要考虑使用反向代理工具配置SSL!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo上 6位数字的xyz续费永远都是0.99美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

7. 反向代理

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)

4d2314e0c40d184b1a0cec5f34090b8a.png

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

34aa06ba800fcdb0326ce3119f935500.png326e2860f6e6add70d2e5b13f9f7bb74.png1ce8c9e7098eda43319b44aa3201cb26.pngaaa2938d536a1ad5b876e1a268731600.png

注意填写对应的 域名IP端口,按文章来的话,应该是 3000

IP 填写:

如果 Nginx Proxy Manager 和 magic-resume 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 magic-resume 所在的服务器 IP 就行。

然后访问域名就可以访问了!

ceca284eca4b21300a8f6da7642b6a6d.png

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:3000/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

8.1 编辑简历

见视频或者自己琢磨一下,很简单。

8.2 更新 magic-resume

这个项目后续应该也会有更新,所以提供一个更新的方式。

cd /root/data/docker_data/magic-resume

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

8.3 卸载 magic-resume

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/magic-resume

docker compose down

cd ..

rm -rf /root/data/docker_data/magic-resume  # 完全删除

可以卸载得很干净。

9. 常见问题及注意点

咕咕个人感觉完成度已经挺高了,AI模型目前暂时只支持豆包和deepseek,后续可以考虑加入自定义或者海外的几个模型,走向国际化!

大家有问题欢迎评论区交流。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!

最后,感谢作者@JOYCEQL的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star ⭐️

参考资料

官方GitHub:https://github.com/JOYCEQL/magic-resume