木偶's Blog

如果发现能力无法支撑自己的野心,那就静下心来学习吧

自部署了 T 佬的 GPT-Load 和 New API,一开始使用的是 MySQL,想迁移到 PostgreSQL,因此轻微折腾了一下,过程极其顺利,稍微写一篇记录一下。

相关版本:

  • MySQL:8.3.0
  • PostgreSQL 16.9.0
  • pgloader:3.6.7~devel

该方案理论适合多数项目服务的迁移,细节方面需要根据实际情况做调整,只在 T 佬的 GPT-Load 和 New API 测试操作成功,运行了一段时间也没有问题。

阅读全文 »

Claude Code 发布以来,编程能力是目前公认最强的,但是对国内不太友好,封控严重,国内一封一大片,我也在一直观望,否则秒封白折腾。

但是 7 月 11 号晚上 月之暗面发布 Kimi K2,总参数 1T,支持 Anthropic API,价格还便宜,可以替换 Claude Code 的默认模型,实现国内无痛用上 Claude Code

最新 7 月 28 号,智谱发布 GLM 4.5,综合评分全球第三、开源第一,总参数 3550 亿,高速低成本,API 调用价格低至输入 0.8 元/百万 tokens、输出 2 元/百万 tokens,同样也支持 anthropic 格式的 API,直接爽炸!

阅读全文 »

完全不懂编程,毫无经验,折腾了两个月的一些想法 (心得都算不上)。

1.1 适用人群

  • 啥叫 Python?啥叫 Java?前端,后端是个啥?你说的我都听不懂
  • 有能力搞定 GPT plus 个人账号
  • 不管什么途径,能够使用 Pro 账号权限下的 Gemini Deepresearch, Claude 4 的两个模型
  • 心态平和,无搞钱想法,未被类似“敏捷开发,MVP 先行”这种大厂思维植入

1.2 第一阶段:想法汇总

使用模型:chatgpt-4o

[!info] chatgpt-4o 与 gpt-4o 的区别
chatgpt-4o 是 OAI 给客户端聊天用的,实时更新,而 gpt-4o 则是给 API 调用的,更新速度比较慢。chatgpt-4o 相对比较贵,但效果更好

原因:GPT 跟其他大模型最有竞争力的地方就是他的记忆功能,以及最近加强的全局记忆,可以使我们在一个对话过长的情况下,新开一个对话,仍然能保留大部分进度对齐,对于前期零散,不成体系的想法阶段效率最高。这也是为什么需要有 plus 个人账号,这样才能使用管理对话记忆。

思路

  • 这个阶段就是随便聊,GPT 对普通人,特别是连提示词都不会怎么写的初学者支持最好,这也是 GPT 模型训练的思路。
  • 把自己的想法跟他聊,问问他建议,然后自己再想想,最终达到项目的想法雏形出来就可以了,只需要想法,其他别管,注意点就是遇到有价值的点一定要他记忆,便于后面总结。
  • 这个阶段可以慢慢来,今天想一点,明天想一点,别急。
  • 想法差不多了,让 GPT 总结自己的思路,直到达到要求为止。
  • 重要:告诉 GPT 你需要一个详细的提示词,根据想法去开发一个程序,需要 AI 去帮你做深度研究,出一份研究报告详细说明程序如何实现。

1.3 第二阶段:项目规划

使用模型:Gemini-2.5pro, Claude-Opus 4

原因:GPT-O3 降智厉害,如果是满血 O3,确实做深度研究还不错,但从实际使用上来看,O3 都不会思考太久,效果不太行。

思路

  • 拿着 GPT 写好的提示词和思路总结,分别对 Gemini 和 Claude 使用 Deepresearch 对话,帮你搭项目框架和实现逻辑,技术栈等等,一般他们都会给你很长的设计文档报告告诉你如何去做这个项目。
  • 注意点
    • Claude 如果你提示词不干预的话,他会直接扔给你很多代码,这个阶段其实不需要具体代码,所以给 Claude 的提示词要特别说明只做研究,不用写具体代码,这样生成的报告质量会比较好。
    • 这两个模型都会有个毛病,不太关注 UI 的设计,或者给个简单的 UI 实现方案,所以提示词这块也要注意 UI 的开发也是重点。
  • 拿着两份生成好的报告,这会自己要去做对比,理解,大概提取下哪些点符合你的要求,总结要点。
  • 将 Claude 生成的报告丢给 Gemini,同理将 Gemini 的报告丢给 Claude,让他们互相评价,同时给出你自己的观点,让他们修改报告。
  • 重新生成的两份报告,可以再新开一个对话,自我感觉 Opus 会更强,让他把两份报告合并成最终版,自己再微调,达到自己想要的效果。

1.4 第三阶段:代码编写

使用模型:Gemini-2.5pro, Claude-Sonnet 4

原因:Sonnet 4 代码能力足够,Opus 使用次数限制太多了。

思路
这里分两个阶段,

1.4.1 初步代码

  • 拿着生成的报告,开启 Gemini-2.5pro 新对话,让他理解报告内容并指定生成计划。
  • 这里也可以找任意一个模型写个提示词丢给他更好。
  • 根据计划,让 Gemini 一个文件一个文件的把代码丢给你,千万不要让他一次生成多个文件,他会很偷偷很多代码简写,幻觉很高,要给他定规则,不让他写什么占位这些。
  • 为什么选 Gemini,因为他单个对话的 token 最长,上下文记忆能力最强,一般来说一个对话足以把代码架构全部搭起来,实在不行可以开两,三个对话,基本能有一个很好的全局思维完成任务。

1.4.2 代码精修

  • 代码搭完后,让 Gemini 给个提示词,说明要新开对话对代码进行调整等,让他总结整个程序的逻辑等等,以及需要干什么。
  • 拿着提示词给到 Claude,然后告诉他一个代码一个代码的进行修改,这点 Claude 理解能力很强,会把代码的健壮性处理的很好,同时解决很多逻辑或者语法问题。
  • 这里要注意的就是单个对话可能处理不完,预感到 token 不够的时候,一定要提前让 Claude 写好提示词,用于新开对话衔接进度。
  • 遇到无法调试 / 报错提示看不懂时,不用自己查,直接截图 + 日志丢给 Claude 或 Gemini,它们会帮你解释。

1.5 第四阶段:全局微调

使用模型:GPT-Codex

原因:Gemini 和 Claude 都没有记忆功能,虽然都能接入 Github,但实际用起来他们也无法通读整个程序文件,所以代码在全局性上可能会出现一些错误,靠我们这种没基础的很难去做全局的微调。

思路

  • 使用 Codex 之前,记得 Git Push
  • 接入 Github,告诉 Codex 对整个程序文件进行解读,注意只用 Ask 功能,让他发现错误
  • Codex 发现几个错误创建不同任务之后,再运行 Coding,解决个别代码问题
  • 来过几轮之后,不再用报语法错误,开始运行程序
  • 如果发现问题,就再丢给 Codex,让他修复。如果是单个文件问题,也可以让 Claude 修复
  • 最终完成程序

1.6 总结

  • 为什么不用 Cursor, Roocode 或者新出的 CLI, Claude Code 这些? 因为… 没有程序基础,用不太明白,说个需求,要求更改都说不明白,这些更适合有程序开发基础的佬哥。
  • 为什么没有测试? 因为… 看不懂… 给我测试文件我也整不明白。。
  • 为什么不用 MCP? 因为… 还没学到这里….
  • 为什么不说版本控制策略? 懒得写…

几个模型互有优势,靠单一模型,或者就几个程序文件生成几千行代码,感觉也只能实现一些基础的应用。看 B 站好多 up 主就知道让大模型做个 to do list,或者打个飞机小游戏,这些不是真正的具体需求。虽然没有程序基础,但是想法大家都有,如何利用各大模型的优势去弥补自己编程能力的不足,从而完整的实现自己的想法才是个人的价值所在,AI 始终只是个工具,真正的核心还是人。

在 macOS 上设置开机或用户登录后自动执行 Shell 脚本,最现代且可靠的方法是使用 launchd。这是 Apple 官方推荐的用于管理守护进程和服务的系统。

相比于老旧的 crontab 或简单的“登录项”,launchd 提供了更强大的控制能力和稳定性。

阅读全文 »

本文档旨在提供一个全面的指南,介绍如何在 Ubuntu 24.04 服务器上使用 Nginx 设置反向代理(以 Emby 为例),并通过 Certbot 获取和管理 Let’s Encrypt 免费 SSL 证书,实现 HTTPS 安全访问。

1.1 前提条件

  • Ubuntu 24.04 LTS 服务器: 拥有 sudo 权限。

  • 域名: 拥有一个域名,并且其 DNS A 或 AAAA 记录已指向服务器公网 IP 地址。

  • 防火墙配置: 服务器防火墙(如 ufw)已允许外部访问 TCP 端口 80 (HTTP) 和 443 (HTTPS)。

    1
    2
    sudo ufw allow 'Nginx Full' # 或者分别允许 80 和 443
    sudo ufw reload

1.1.1 步骤一:安装 Nginx

1
sudo apt update && sudo apt install nginx

目前通过该方式安装 Nginx,Nginx 配置默认都是采用配置分离的方式,即 Nginx 推荐的最佳实践。我们只需要在 /etc/nginx/sites-available/ 中新增自己的站点配置,并建立软链接到 /etc/nginx/sites-enabled/ 即可。

1.1.2 Nginx 配置分离介绍

为了便于管理,Nginx 配置通常采用分离的方式。主配置文件 nginx.conf (通常在 /etc/nginx/) 会通过 include 指令加载其他目录下的配置文件。常见的做法有:

  • /etc/nginx/conf.d/*.conf: 任何在此目录下的 .conf 文件都会被加载。
  • /etc/nginx/sites-available//etc/nginx/sites-enabled/:
    • sites-available/ 中创建站点配置文件。

    • 通过在 sites-enabled/ 中创建指向 sites-available/ 中文件的符号链接来启用站点。

      1
      sudo ln -s /etc/nginx/sites-available/your-site.conf /etc/nginx/sites-enabled/your-site.conf

1.2 步骤二:安装 Certbot 及 Nginx 插件

1
2
3
4
sudo apt update && sudo apt install certbot python3-certbot-nginx

# 检查安装是否成功
certbot --version

1.3 步骤三:为域名申请证书

1.3.1 还没进行 Nginx 配置

1
sudo certbot --nginx -d emby.yourdomain.com --cert-name yourdomain.com
  • --nginx: 使用 Nginx 插件进行验证和安装。
  • -d emby.yourdomain.com: 指定要为其申请证书的域名。
  • --cert-name yourdomain.com: 关键参数。告诉 Certbot 使用或创建一个名为 yourdomain.com 的证书。这样,证书文件会存放在 /etc/letsencrypt/live/yourdomain.com/,与 Nginx 配置匹配。

回车后,Certbot 会引导:

  1. 输入邮箱地址。
  2. 同意服务条款。
  3. 选择是否将 HTTP 流量自动重定向到 HTTPS (推荐)。

过程中,Certbot 会:

  1. 检查名为 yourdomain.com 的证书是否存在。
  2. 确保 emby.yourdomain.com 被包含在该证书中(如果不存在则添加,如果证书本身不存在则创建)。
  3. 通过 Nginx 插件进行域名验证。
  4. 成功后,将证书文件保存在 /etc/letsencrypt/live/yourdomain.com/
  5. 自动更新 Nginx 配置中开放了 80 端口的站点配置中的 443 Server,并设置自动续期。即如果是刚安装的 Nginx,那么默认会更新 /etc/nginx/sites-available/default

执行完 Certbot 命令后,证书已经保存下来,最后根据模板对自己需要的站点配置进行定制即可。可以结合被自动修改过的 /etc/nginx/sites-available/default

建议让 AI 协助生成和优化,非常方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# /etc/nginx/sites-available/emby.conf

server {
listen 80;
listen [::]:80;
server_name emby.yourdomain.com;

# Let's Encrypt 续期验证需要
location /.well-known/acme-challenge/ {
root /var/www/html;
}

location / {
return 301 https://$host$request_uri;
}
}

# 3. HTTPS 服务配置
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name emby.yourdomain.com;

# SSL 证书路径 (由 Certbot 自动生成)
ssl_certificate /etc/letsencrypt/live/emby.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/emby.yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # Certbot 推荐的 SSL 安全配置
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Certbot 推荐的 DH 参数

# 其他配置...
}

1.3.2 已有 Nginx 配置

如果已经有 Nginx 配置了,那么需要在对应的站点配置上确保有如下监听 80 端口的 Server,例如:/etc/nginx/sites-available/emby.conf 中确保有以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# /etc/nginx/sites-available/emby.conf

server {
listen 80;
listen [::]:80;
server_name emby.yourdomain.com;

# Let's Encrypt 续期验证需要
location /.well-known/acme-challenge/ {
root /var/www/html;
}

location / {
return 301 https://$host$request_uri;
}
}

接着再执行 Certbot 命令:

1
sudo certbot --nginx -d emby.yourdomain.com --cert-name yourdomain.com

执行后,Certbot 会自动在 站点配置中的 443 Server 中生成例如以下的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# /etc/nginx/sites-available/emby.conf

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name emby.yourdomain.com;

# SSL 证书路径 (由 Certbot 自动生成)
ssl_certificate /etc/letsencrypt/live/emby.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/emby.yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # Certbot 推荐的 SSL 安全配置
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Certbot 推荐的 DH 参数

# 其他配置。。。
}

1.3.3 完整的配置示例:Emby

假设 Emby 运行在 http://127.0.0.1:8096,期望通过 https://emby.yourdomain.com 访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# /etc/nginx/sites-available/emby.conf

# HTTP 重定向到 HTTPS
server {
listen 80;
listen [::]:80;
server_name emby.yourdomain.com; ## 需要修改 ##: 替换为你的域名

# Certbot ACME challenge
location ~ /.well-known/acme-challenge/ {
allow all;
root /var/www/html; # Certbot 默认的 webroot 或你指定的路径
}

location / {
return 301 https://$host$request_uri;
}
}

# HTTPS & 反向代理配置
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name emby.yourdomain.com; ## 需要修改 ##: 替换为你的域名

# SSL 证书配置 (Certbot 会自动管理)
ssl_certificate /etc/letsencrypt/live/emby.yourdomain.com/fullchain.pem; ## 需要修改 ##
ssl_certificate_key /etc/letsencrypt/live/emby.yourdomain.com/privkey.pem; ## 需要修改 ##
include /etc/letsencrypt/options-ssl-nginx.conf; # Certbot 推荐的 SSL 安全配置
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

# 增强 SSL 安全性
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;

# 日志
access_log /var/log/nginx/emby.access.log;
error_log /var/log/nginx/emby.error.log;

location / {
proxy_pass http://127.0.0.1:8096; ## 需要修改 ##: Emby 实际 IP 和 HTTP 端口

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;

# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_buffering off;
proxy_connect_timeout 300;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
send_timeout 3600s;
client_max_body_size 0;
}
}

启用配置:

1
sudo ln -s /etc/nginx/sites-available/emby.conf /etc/nginx/sites-enabled/

1.3.4 理解 SSL 证书与 Certbot

1.3.4.1 如何确认是否使用了 Certbot?

  1. 检查 Certbot 命令: certbot --versionwhich certbot
  2. 检查 Let’s Encrypt 目录: ls -l /etc/letsencrypt/。如果存在 live, archive, renewal 等子目录,则很可能使用 Certbot。
  3. 检查 Nginx 配置: ssl_certificatessl_certificate_key 指令是否指向 /etc/letsencrypt/live/yourdomain.com/fullchain.pemprivkey.pem
  4. 检查自动续期任务:
    • Systemd Timers: systemctl list-timers | grep certbot
    • Cron Jobs: ls -l /etc/cron.d/certbotsudo crontab -l

1.3.4.2 SSL 证书一般放置位置

  • /etc/letsencrypt/ (由 Certbot 管理):
    • live/yourdomain.com/fullchain.pem: 完整的证书链(推荐使用)。
    • live/yourdomain.com/privkey.pem: 私钥。
    • live 目录下的文件是符号链接,指向 archive 目录中的最新版本。
  • /etc/ssl/certs//etc/ssl/private/ (Debian/Ubuntu 传统位置): 用于非 Certbot 管理的证书。
  • /etc/pki/tls/certs//etc/pki/tls/private/ (RHEL/CentOS 传统位置)。

始终通过检查 Nginx 配置文件中的 ssl_certificatessl_certificate_key 指令来确定实际使用的证书路径。

1.4 步骤四:验证与维护

1.4.1 测试 Nginx 配置

1
sudo nginx -t

确保输出 syntax is oktest is successful

1.4.2 重载 Nginx 服务

1
sudo systemctl reload nginx

1.4.3 验证 Certbot 自动续期

Certbot 包通常会自动设置 systemd timer 或 cron job 来处理续期。

模拟续期(不会真正续期,仅测试配置):

1
sudo certbot renew --dry-run

查看 systemd timer:

1
systemctl list-timers | grep certbot

1.5 步骤五:安全增强 (HSTS)

在确认 HTTPS 完全正常工作后,可以考虑在 Nginx 的 HTTPS server 块中添加 HSTS (HTTP Strict Transport Security) 头,强制浏览器始终使用 HTTPS 访问:

1
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

注意: 启用 HSTS 后,如果 SSL 配置出现问题,用户可能在 max-age 时间内无法通过 HTTP 访问你的站点。请谨慎操作,并确保 SSL 证书自动续期正常工作。

如果之前使用过其他激活方式,建议先彻底卸载 Typora 再重新安装。放心,卸载不会导致本地配置或笔记丢失。

1.1 步骤一:下载与安装

  1. 点击此处前往下载 Typora 安装包
  2. 运行 typora-setup-x64.exe,在安装选项中,请务必选择 “仅为当前用户安装” (Install for current user only)。
  3. 下载激活文件:version.dll

1.2 步骤二:放置激活补丁

  1. 将下载好的激活文件 version.dll 复制到 Typora 的安装目录中。
  2. 该目录的默认路径为:%AppData%\Local\Programs\Typora

1.3 步骤三:修改 Hosts 文件

此步骤的目的是屏蔽 Typora 的在线激活验证。

  1. 按下 Win + R 快捷键,打开 “运行” 对话框。

  2. 输入以下命令: notepad C:\Windows\System32\drivers\etc\hosts

  3. 紧接着按下 Ctrl + Shift + Enter 组合键,以 管理员身份 运行记事本。

  4. 在打开的 hosts 文件末尾,添加以下内容并保存:

    1
    2
    3
    127.0.0.1 store.typora.io
    127.0.0.1 typoraio.cn
    127.0.0.1 dian.typora.com.cn
  5. 按下 Win + R 快捷键,打开 “运行” 对话框。输入以下命令:powershell

  6. 在打开的终端输入,将会刷新缓存:ipconfig /flushdns

1.4 步骤四:生成并使用激活码

  1. 打开 Typora,在弹出的激活窗口中选择 “离线激活” (Enter License Manually)。
  2. 复制窗口中显示的 机器码 (Machine Code)。
  3. 访问 Typora 激活码生成器 (需要使用 LinuxDO 登录)。
  4. 输入您的邮箱和刚刚复制的机器码,点击 “生成激活码”
  5. 回到 Typora 的激活窗口,粘贴生成的激活码,完成激活。

访问地址:https://www.cursor.com/cn/students

12e0991659b16a51a4e874e40777f5f7

此时会跳转到以下页面:8e6a3fc97ab367d1d5ff71962162fec1

然后发现 Country 找不到 China,

1.1 借助浏览器 devtool 的 Overrides 找回 China

1.1.1 开启 Overrides

右键打开 Google 浏览器 devtool 82e993fdb546eb0302da87b31b76b2e5

Sources -> Overrides

a47a52af2afec762e85a7ad4d4bf3d67

电脑本地建一个空文件夹,例如“chrome-overrides”

e7d4e0994f129c87b70ea8a7c59c6af2

将空文件夹添加到 Overrides 中,并开启:a1868b12f708eb7e1fd7707b38881454

此时 Chrome 会在顶部提示 “DevTools requests full access to [你选择的文件夹路径]”。点击 “Allow” (允许)。

1.1.2 捕获目标 API 请求

  • 切换到 DevTools 的 “Network” (网络) 面板。
  • 确保 “Preserve log” (保留日志) 和 “Disable cache” (禁用缓存) 这两个选项是勾选的,这有助于在刷新页面时捕获所有请求并避免缓存问题。
  • 刷新网页,或者执行页面上的操作,以触发对 my.sheerid.com/rest/v2/program/xxxx/theme?locale=en-US 这个 API 的请求。
  • 在 “Network” 面板的请求列表中,找到这个特定的请求。可以使用顶部的 “Filter”,输入 theme?locale=en-US 定位 API

d5cc14a35e2f08871f2560f5b9559772

1.1.3 重写 API 请求内容

a6619c59ddd4427dc3ca48cb87db45c8

eeeae5b36bf609f0a7cdfa90c2a99d5a

找到 config.countries,添加 CN

3efca4984181d78fe1a090738067509b

Ctrl + S 保存,此时就 OK 了,回来刷新页面,输入 China:a18c8ff6ab5cfce78ceb0e232b06f588

1.2 继续填写

搜索你的学校:

303fa436c76c0bf6b091f882b3f1f1c8

如果有你的学校,那么恭喜你,可以继续下一步,如果没有,那就 sorry 了。

接着正常填写,提交,等待审核!

9ed059a5f43731cdca37eec145289faf



本教程适用于 2024 年之后的 Github 学生认证申请,因为现在的认证流程改变了很多,所以重新进行了总结这方面的指南。

[!important] 重要
学生认证优惠的审核是自动程序审核的,所以可以用一些 trick 来说服自动审核程序,帮助大家通过自动审核。

阅读全文 »

OMV NAS & NextCloud搭建私人网盘.webp

OpenMediaVault (OMV) 是一款基于 Debian 的开源网络附加存储(NAS)解决方案,它通过易于使用的界面提供数据存储、备份和共享服务。结合 Nextcloud,用户可以在 OMV 平台上搭建一个功能强大的私人网盘,实现文件同步、分享和协作。这种组合不仅增强了数据的可访问性和安全性,也为个人和小型企业提供了一个成本效益高、隐私保护好的云存储解决方案。通过 Docker 容器或直接安装,OMV 与 Nextcloud 的整合可以轻松完成,满足现代数字生活的存储需求。

阅读全文 »
0%