diff --git a/dist/SHA256SUMS-20260520 b/dist/SHA256SUMS-20260520 index 21435ca..cd2c42c 100644 --- a/dist/SHA256SUMS-20260520 +++ b/dist/SHA256SUMS-20260520 @@ -1,3 +1,3 @@ fa3b2b64a9afd7af60f57cfda8431af4e171cc1cdba4a6a2b89d50000a574f54 reactive-resume-clean-install-20260520.zip 4e95c039777ae2af6a216528ebd97911f59aa8a80c7816acde7ec8424eb6e59d reactive-resume-personal-direct-20260520.zip -708209d2ea066633ebd099dfe6554e41681be114f124e2656fc1233496aad534 reactive-resume-personal-qnap-nas-20260520.zip +559c9c14dd939f1ca0406f9089060ade9d20d3279d8fac96b6d966b5a5185c37 reactive-resume-personal-qnap-nas-20260520.zip diff --git a/dist/reactive-resume-personal-qnap-nas-20260520.zip b/dist/reactive-resume-personal-qnap-nas-20260520.zip index 775aaaf..039b0cb 100644 Binary files a/dist/reactive-resume-personal-qnap-nas-20260520.zip and b/dist/reactive-resume-personal-qnap-nas-20260520.zip differ diff --git a/packages/reactive-resume-personal-qnap-nas/README.md b/packages/reactive-resume-personal-qnap-nas/README.md index 853f8c4..6569146 100644 --- a/packages/reactive-resume-personal-qnap-nas/README.md +++ b/packages/reactive-resume-personal-qnap-nas/README.md @@ -2,37 +2,38 @@ 这套包面向威联通 QNAP QTS / Container Station,已按以下参数预置: -- NAS 数据目录:`/share/Container/Reactive_Resume_Personal` -- 本地端口:`3004:3000` -- 公网域名:`https://isiseg.huijutec.cn` -- 当前公开简历:`https://isiseg.huijutec.cn/audience/resume` +- NAS 数据目录:`/share/Container/reactive_resume` +- 本地端口:`3003:3000` +- 公网域名:`https://me.huijutec.cn` +- 当前公开简历:`https://me.huijutec.cn/audience/resume` - FRP 服务器:`82.157.255.195:7000` -- FRP remotePort:`10004` +- FRP remotePort:`10003` +- 容器运行时代理:`HTTP_PROXY=http://192.168.3.12:7893`、`HTTPS_PROXY=http://192.168.3.12:7893`,并已配置 `NO_PROXY` 绕过局域网和内部服务名 包内已包含当前简历初始化数据、头像和作品集图片,首次启动后会由 `reactive_resume_seed` 自动导入。 ## 部署 -1. 将本安装包内容放到 `/share/Container/Reactive_Resume_Personal` -2. 打开 Container Station,导入 `/share/Container/Reactive_Resume_Personal/compose-Nas.yml` +1. 将本安装包内容放到 `/share/Container/reactive_resume` +2. 打开 Container Station,导入 `/share/Container/reactive_resume/compose-Nas.yml` 3. 启动项目 -4. 访问 `https://isiseg.huijutec.cn/audience/resume` +4. 访问 `https://me.huijutec.cn/audience/resume` -发布归档中的顶层目录已经命名为 `Reactive_Resume_Personal/`,正常解压到 `/share/Container/` 下即可匹配上述路径。 +发布归档中的顶层目录已经命名为 `reactive_resume/`,正常解压到 `/share/Container/` 下即可匹配上述路径。 ## 反向代理要求 公网服务器上的 Nginx Proxy Manager / 反向代理应配置: -- Domain Names:`isiseg.huijutec.cn` +- Domain Names:`me.huijutec.cn` - Scheme:`http` - Forward Hostname / IP:`82.157.255.195` -- Forward Port:`10004` +- Forward Port:`10003` - Websockets Support:开启 ## 数据目录 -- PostgreSQL:`/share/Container/Reactive_Resume_Personal/data/postgres` -- 上传与本地存储:`/share/Container/Reactive_Resume_Personal/data/uploads` -- 初始化种子:`/share/Container/Reactive_Resume_Personal/seed` -- 运行时补丁:`/share/Container/Reactive_Resume_Personal/patches` +- PostgreSQL:`/share/Container/reactive_resume/data/postgres` +- 上传与本地存储:`/share/Container/reactive_resume/data/uploads` +- 初始化种子:`/share/Container/reactive_resume/seed` +- 运行时补丁:`/share/Container/reactive_resume/patches` diff --git a/packages/reactive-resume-personal-qnap-nas/compose-Nas.yml b/packages/reactive-resume-personal-qnap-nas/compose-Nas.yml index 282a3b3..fcaa918 100644 --- a/packages/reactive-resume-personal-qnap-nas/compose-Nas.yml +++ b/packages/reactive-resume-personal-qnap-nas/compose-Nas.yml @@ -1,7 +1,7 @@ # Reactive Resume 个人简历 / QNAP QTS 直接部署版。 -# 本文件已按 /share/Container/Reactive_Resume_Personal、 -# https://isiseg.huijutec.cn、192.168.31.5:3004 本地访问、 -# frpc 公网映射 82.157.255.195:10004 预置。 +# 本文件已按 /share/Container/reactive_resume、 +# https://me.huijutec.cn、192.168.31.5:3003 本地访问、 +# frpc 公网映射 82.157.255.195:10003 预置。 name: reactive-resume-personal-nas @@ -9,19 +9,32 @@ services: reactive_resume_permissions: image: alpine:3.20 restart: "no" + environment: + HTTP_PROXY: http://192.168.3.12:7893 + HTTPS_PROXY: http://192.168.3.12:7893 + http_proxy: http://192.168.3.12:7893 + https_proxy: http://192.168.3.12:7893 + NO_PROXY: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc + no_proxy: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc command: ["sh", "-c", "mkdir -p /app/data && chown -R 1000:1000 /app/data"] volumes: - - /share/Container/Reactive_Resume_Personal/data/uploads:/app/data + - /share/Container/reactive_resume/data/uploads:/app/data reactive_resume_db: image: postgres:16-alpine restart: unless-stopped environment: + HTTP_PROXY: http://192.168.3.12:7893 + HTTPS_PROXY: http://192.168.3.12:7893 + http_proxy: http://192.168.3.12:7893 + https_proxy: http://192.168.3.12:7893 + NO_PROXY: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc + no_proxy: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc POSTGRES_DB: reactive_resume POSTGRES_USER: reactive_resume POSTGRES_PASSWORD: 5b341c0ca29fefd6d648661150c00fa4 volumes: - - /share/Container/Reactive_Resume_Personal/data/postgres:/var/lib/postgresql/data + - /share/Container/reactive_resume/data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U reactive_resume -d reactive_resume"] interval: 10s @@ -42,13 +55,19 @@ services: reactive_resume_db: condition: service_healthy ports: - - "3004:3000" + - "3003:3000" volumes: - - /share/Container/Reactive_Resume_Personal/data/uploads:/app/data - - /share/Container/Reactive_Resume_Personal/patches/reactive-resume-runtime-patch.sh:/opt/reactive-resume-patches/reactive-resume-runtime-patch.sh:ro + - /share/Container/reactive_resume/data/uploads:/app/data + - /share/Container/reactive_resume/patches/reactive-resume-runtime-patch.sh:/opt/reactive-resume-patches/reactive-resume-runtime-patch.sh:ro environment: + HTTP_PROXY: http://192.168.3.12:7893 + HTTPS_PROXY: http://192.168.3.12:7893 + http_proxy: http://192.168.3.12:7893 + https_proxy: http://192.168.3.12:7893 + NO_PROXY: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc + no_proxy: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc TZ: Asia/Shanghai - APP_URL: https://isiseg.huijutec.cn + APP_URL: https://me.huijutec.cn DATABASE_URL: postgresql://reactive_resume:5b341c0ca29fefd6d648661150c00fa4@reactive_resume_db:5432/reactive_resume AUTH_SECRET: c76b0eaf79f731e9ee95918dc69d41696aec9d1deffeabc122944898037bfab1 ENCRYPTION_SECRET: df3a460fa2f92f6e8765927a169322980e18f63a88fbcfedb090819b5afb2408 @@ -73,7 +92,7 @@ services: SMTP_PORT: "587" SMTP_USER: "" SMTP_PASS: "" - SMTP_FROM: "Reactive Resume " + SMTP_FROM: "Reactive Resume " SMTP_SECURE: "false" S3_ACCESS_KEY_ID: "" S3_SECRET_ACCESS_KEY: "" @@ -109,10 +128,16 @@ services: chown -R 1000:1000 /app/data/uploads || true psql -h reactive_resume_db -U reactive_resume -d reactive_resume -v ON_ERROR_STOP=1 -f /seed/seed.sql environment: + HTTP_PROXY: http://192.168.3.12:7893 + HTTPS_PROXY: http://192.168.3.12:7893 + http_proxy: http://192.168.3.12:7893 + https_proxy: http://192.168.3.12:7893 + NO_PROXY: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc + no_proxy: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc PGPASSWORD: 5b341c0ca29fefd6d648661150c00fa4 volumes: - - /share/Container/Reactive_Resume_Personal/data/uploads:/app/data - - /share/Container/Reactive_Resume_Personal/seed:/seed:ro + - /share/Container/reactive_resume/data/uploads:/app/data + - /share/Container/reactive_resume/seed:/seed:ro depends_on: reactive_resume_permissions: condition: service_completed_successfully @@ -124,6 +149,13 @@ services: reactive_resume_frpc: image: snowdreamtech/frpc:latest restart: unless-stopped + environment: + HTTP_PROXY: http://192.168.3.12:7893 + HTTPS_PROXY: http://192.168.3.12:7893 + http_proxy: http://192.168.3.12:7893 + https_proxy: http://192.168.3.12:7893 + NO_PROXY: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc + no_proxy: localhost,127.0.0.1,192.168.0.0/16,reactive_resume_db,reactive_resume_app,reactive_resume_seed,reactive_resume_frpc entrypoint: ["/bin/sh"] command: - -c @@ -139,11 +171,11 @@ services: transport.heartbeatTimeout = -1 [[proxies]] - name = "Reactive_Resume_Personal_NAS" + name = "Reactive_Resume_NAS" type = "tcp" localIP = "reactive_resume_app" localPort = 3000 - remotePort = 10004 + remotePort = 10003 EOF exec frpc -c /tmp/frpc.toml depends_on: diff --git a/packages/reactive-resume-personal-qnap-nas/seed/resume-data.json b/packages/reactive-resume-personal-qnap-nas/seed/resume-data.json index c10deae..500aeae 100644 --- a/packages/reactive-resume-personal-qnap-nas/seed/resume-data.json +++ b/packages/reactive-resume-personal-qnap-nas/seed/resume-data.json @@ -4,8 +4,8 @@ "email": "zub572701190@stu.xjtu.edu.cn", "phone": "+86 139-4611-2059", "website": { - "url": "https://isiseg.huijutec.cn/audience/resume", - "label": "isiseg.huijutec.cn/audience/resume" + "url": "https://me.huijutec.cn/audience/resume", + "label": "me.huijutec.cn/audience/resume" }, "headline": "AI 医工交叉博士|智能外科与微创手术导航|多模态大模型与临床转化", "location": "陕西西安|西安交通大学", diff --git a/packages/reactive-resume-personal-qnap-nas/seed/seed.sql b/packages/reactive-resume-personal-qnap-nas/seed/seed.sql index 83e503c..9222a49 100644 --- a/packages/reactive-resume-personal-qnap-nas/seed/seed.sql +++ b/packages/reactive-resume-personal-qnap-nas/seed/seed.sql @@ -1,6 +1,6 @@ -- Reactive Resume personal seed data. -- Generated from the current resume and bundled uploads so fresh deployments can open: --- https://isiseg.huijutec.cn/audience/resume +-- https://me.huijutec.cn/audience/resume BEGIN; @@ -66,8 +66,8 @@ INSERT INTO resume ( "email": "zub572701190@stu.xjtu.edu.cn", "phone": "+86 139-4611-2059", "website": { - "url": "https://isiseg.huijutec.cn/audience/resume", - "label": "isiseg.huijutec.cn/audience/resume" + "url": "https://me.huijutec.cn/audience/resume", + "label": "me.huijutec.cn/audience/resume" }, "headline": "AI 医工交叉博士|智能外科与微创手术导航|多模态大模型与临床转化", "location": "陕西西安|西安交通大学",