目录

  1. 本地obsidian设置,配置gitee同步内容
  2. 安装quartz

1. 本地obsidian设置,配置gitee同步内容

1.1 本地obsidian

  1. 创建valut

1.2 git到gitee

  • 远程地址信息
token:4eefa7486f07132ae85df43f5ef51213
https://gitee.com/jingzen/quartz.git


git config --global user.name 'Jing' 
git config --global user.email 'cicadaz@qq.com'

  • git 配置
  • .obsidian/不上传到gitee
git rm -r --cached .obsidian
echo ".obsidian/" >> .gitignore
git add .gitignore
git commit -m "Remove .obsidian from tracking"

提示词

1. 本地obsidian编辑
2. ubuntu服务器安装 quartz,服务器地址49.235.191.23,配置域名space.jingzen.cc
3. gitee托管,https://gitee.com/jingzen/obsidian.git, git config --global user.name 'Jing' 
git config --global user.email 'cicadaz@qq.com'
4. 内容放在 opt/kb/content下面,已经git https://jingzen:4eefa7486f07132ae85df43f5ef51213@gitee.com/jingzen/obsidian.git
5. node已经安装,版本 v22.21.0,npm已经安装,版本 10.9.4

cd /opt/kb git clone https://github.com/jackyzha0/quartz.git

# 创建软链接,指向你的 Gitee 克隆内容
ln -s /opt/kb/content /opt/kb/quartz/content
  • 文件地址 /opt/kb/content

  • 配置文件下载

cd /opt/kb/quartz
# 备份旧配置(如有)
mv quartz.config.ts quartz.config.ts.bak

# 从官方示例复制默认配置
curl -o quartz.config.ts https://raw.githubusercontent.com/jackyzha0/quartz/v4/quartz.config.ts
  • 下载quartz
cd /opt/kb
# 如果之前 clone 失败留下了空目录,先删除
rm -rf quartz

# 使用正确的地址克隆
git clone https://github.com/jackyzha0/quartz.git #官方的
git clone https://gitcode.com/GitHub_Trending/qua/quartz #  其他

二、在 Ubuntu 服务器上部署 Quartz

1. 安装 Quartz 框架

Bash

编辑

1cd /opt/kb
2git clone https://github.com/jackyzha0/quartz.git
3cd quartz
4npm install

注意:Quartz 默认会从 content/ 目录读取 Markdown 文件。你已经将笔记放在 /opt/kb/content,所以需要把内容目录软链接或移动到 Quartz 的 content 目录下。

2. 链接你的笔记内容

Bash

编辑

1# 删除默认的空 content 目录(如果存在)
2rm -rf /opt/kb/quartz/content
3
4# 创建软链接,指向你的 Gitee 克隆内容
5ln -s /opt/kb/content /opt/kb/quartz/content

3. 配置 Quartz(可选)

编辑 /opt/kb/quartz/quartz.config.ts,设置站点信息、域名等:

✅ 后续步骤(克隆成功后)

Bash

编辑

1cd /opt/kb/quartz
2
3# 切换到稳定版 v4.5.2
4git checkout v4.5.2
5
6# 恢复配置
7cp example/quartz.config.ts ./
8sed -i 's|example\.com|space.jingzen.cc|' quartz.config.ts
9
10# 创建软链接(确保 content 已存在)
11ln -s /opt/kb/content /opt/kb/quartz/content
12
13# 构建(无需 npm install)
14npx quartz build

能显示界面,不能显示内容问题的处理

解决方案:清理并合并配置

步骤 1:查看所有启用的站点

Bash

编辑

1ls -l /etc/nginx/sites-enabled/

你应该看到多个指向 space.jingzen.cc 的软链接,比如:

Text

编辑

1space.jingzen.cc
2space.jingzen.cc.conf
3default
4...

步骤 2:只保留一个主配置文件

建议删除多余的:

Bash

编辑

1# 备份(可选)
2sudo cp /etc/nginx/sites-enabled/space.jingzen.cc ~/space.bak
3
4# 删除所有相关配置
5sudo rm /etc/nginx/sites-enabled/space.jingzen.cc*

步骤 3:创建唯一、干净的配置

Bash

编辑

1sudo nano /etc/nginx/sites-available/space.jingzen.cc

粘贴以下内容(仅 HTTP,先不考虑 HTTPS):

Nginx

编辑

1server {
2    listen 80;
3    server_name space.jingzen.cc;
4
5    root /opt/kb/quartz/public;
6    index index.html;
7
8    location / {
9        # 支持 clean URL(目录模式)和 .html 回退
10        try_files $uri $uri/ $uri.html /index.html =404;
11    }
12
13    # 可选:自定义 404 页面(Quartz 已提供)
14    error_page 404 /404.html;
15}

然后启用它:

Bash

编辑

1sudo ln -sf /etc/nginx/sites-available/space.jingzen.cc /etc/nginx/sites-enabled/

步骤 4:测试并重载

Bash

编辑

1sudo nginx -t
2sudo systemctl reload nginx

🔍 同时确认:你到底是哪种生成模式?

运行:

Bash

编辑

1ls -l "/opt/kb/quartz/public/word22-01-李商隐"*

情况 A:输出是 .html 文件

Text

编辑

1-rw-r--r-- 1 ubuntu ... word22-01-李商隐.html

→ 用上面的 $uri.html 配置 ✅

情况 B:输出是目录

Text

编辑

1drwxr-xr-x 2 ubuntu ... word22-01-李商隐/

且里面有 index.html → 说明是 clean URL 模式,应使用:

Nginx

编辑

1try_files $uri $uri/ /index.html;

💡 官方 Quartz 默认是 情况 B(目录模式)
如果你是 GitCode 版本,可能是 情况 A(.html 模式)


🧪 快速判断模式(终极命令)

Bash

编辑

1if [ -f "/opt/kb/quartz/public/word22-01-李商隐.html" ]; then
2  echo "模式: .html 文件"
3elif [ -d "/opt/kb/quartz/public/word22-01-李商隐" ] && [ -f "/opt/kb/quartz/public/word22-01-李商隐/index.html" ]; then
4  echo "模式: clean URL (目录 + index.html)"
5else
6  echo "文件未生成!"
7fi

✅ 最终建议

  1. 清理重复的 Nginx 配置(这是当前最大障碍)
  2. 根据实际生成模式选择 try_files 策略
  3. 用 curl 测试,不要依赖浏览器

问题: 您的连接不是私密连接 攻击者可能会试图从 space.jingzen.cc 窃取您的信息(例如:密码、消息或信用卡信息)。详细了解此警告 net::ERR_CERT_COMMON_NAME_INVALID

你遇到的错误:

“您的连接不是私密连接”
net::ERR_CERT_COMMON_NAME_INVALID

说明:你正在通过 HTTPS (https://) 访问网站,但 SSL 证书无效或不匹配域名。


🔍 原因分析

从你之前的 Nginx 配置可以看出:

  • 你配置了 HTTP → HTTPS 重定向return 301 https://...
  • 但 SSL 证书未正确配置 或 证书的域名不匹配

具体来说:

  • 证书可能是为 example.com 签发的,但你访问的是 space.jingzen.cc
  • 或者你根本没有有效证书,Nginx 使用了自签名/默认证书

✅ 解决方案(二选一)


✅ 方案 A:暂时用 HTTP 访问(快速验证网站是否正常)

既然你现在主要问题是 内容 404,建议先关闭 HTTPS 强制跳转,用纯 HTTP 调试。

步骤:

  1. 禁用 HTTPS 重定向

    Bash

    编辑

    1sudo rm /etc/nginx/sites-enabled/space.jingzen.cc-https-redirect
    2# 或注释掉 return 301 那个 server 块
    
  2. 确保只保留一个 HTTP server 块(如上文所述)

  3. 重载 Nginx

    Bash

    编辑

    1sudo nginx -t && sudo systemctl reload nginx
    
  4. 访问 http://space.jingzen.cc(注意是 http)

✅ 这样可以绕过证书问题,直接测试你的 Quartz 内容是否能加载。


✅ 方案 B:正确配置免费 HTTPS(推荐长期使用)

使用 Let’s Encrypt + Certbot 免费获取有效证书。

步骤:

  1. 确保域名 DNS 已解析到服务器 IP

    Bash

    编辑

    1dig +short space.jingzen.cc
    2# 应返回 49.235.191.23
    
  2. 临时允许 HTTP(Certbot 需要 80 端口验证)

    • 保留一个简单的 HTTP server 块:

      Nginx

      编辑

      1server {
      2    listen 80;
      3    server_name space.jingzen.cc;
      4    root /var/www/html;  # Certbot 会自动改
      5    location /.well-known/acme-challenge/ {
      6        root /var/www/certbot;
      7    }
      8}
      
    • 或直接用 Certbot 的 standalone 模式(更简单)

  3. 安装 Certbot 并申请证书

    Bash

    编辑

    1sudo apt update
    2sudo apt install certbot python3-certbot-nginx -y
    3
    4# 自动申请并配置 Nginx
    5sudo certbot --nginx -d space.jingzen.cc
    
  4. Certbot 会自动:

    • 申请有效证书
    • 修改 Nginx 配置启用 HTTPS
    • 设置自动续期
  5. 完成后,访问 https://space.jingzen.cc 就不会再有警告


🛑 当前建议:先用 HTTP 调试

因为你还在解决 404 内容显示问题不要让 HTTPS 证书干扰调试

快速操作:

Bash

编辑

1# 1. 删除所有 HTTPS 相关配置(保留一个 HTTP server)
2sudo rm /etc/nginx/sites-enabled/space.jingzen.cc*
3
4# 2. 创建干净的 HTTP 配置
5cat << 'EOF' | sudo tee /etc/nginx/sites-available/space.jingzen.cc
6server {
7    listen 80;
8    server_name space.jingzen.cc;
9    root /opt/kb/quartz/public;
10    index index.html;
11    location / {
12        try_files $uri $uri/ $uri.html /index.html =404;
13    }
14}
15EOF
16
17# 3. 启用配置
18sudo ln -sf /etc/nginx/sites-available/space.jingzen.cc /etc/nginx/sites-enabled/
19
20# 4. 重载
21sudo nginx -t && sudo systemctl reload nginx

然后访问:

Text

编辑

1http://space.jingzen.cc/word22-01-李商隐

✅ 如果能打开,说明网站逻辑 OK,之后再配 HTTPS。
❌ 如果还是 404,请贴出:

Bash

编辑

1ls -l "/opt/kb/quartz/public/word22-01-李商隐"*

💡 补充:浏览器强制 HTTPS?

某些浏览器(如 Chrome)对已访问过的域名会缓存 HSTS,即使你关了 HTTPS 也会强制跳转。

解决方法:

  • 用 隐身模式 访问 http://space.jingzen.cc
  • 或清除 HSTS 缓存(Chrome 地址栏输入 chrome://net-internals/#hsts → Delete domain)

请先按 方案 A 操作,用 HTTP 验证内容是否可访问。成功后再用 Certbot 上 HTTPS!需

🛠️ 进阶:自动生成笔记列表(可选)

如果你不想手动维护 index.md,可以写一个脚本自动生成:

Bash

编辑

1cd /opt/kb/content
2
3# 生成 index.md(排除 index.md 自身)
4echo -e "---\ntitle: 首页\n---\n\n# 所有笔记\n" > index.md
5ls *.md | grep -v "^index.md$" | sed 's/\.md$/]]/; s/^/- [[/' >> index.md

第三步:彻底清理并重新构建

Quartz 有时会缓存文件树,建议强制清理:

Bash

编辑

1cd /opt/kb/quartz
2rm -rf .quartz-cache/ public/
3npx quartz build

💡 删除 .quartz-cache/public/ 能确保完全重新生成所有内容,包括 Explorer 树。

 总结操作清单

Bash

编辑

1# 1. 确保 content 目录扁平
2ls /opt/kb/content/
3
4# 2. 清理缓存并重建
5cd /opt/kb/quartz
6rm -rf .quartz-cache/ public/
7npx quartz build
8
9# 3. 重载 Nginx(虽非必须,但保险)
10sudo systemctl reload nginx
11
12# 4. 浏览器强制刷新 or 用 curl 验证
13curl -s http://space.jingzen.cc | grep "3230"
14# 应无输出

rm -rf .quartz-cache/ public/ && npx quartz build