2026-03-13 05:51:05 -05:00
's'
2026-03-13 05:51:05 -05:00
's'
2026-03-13 05:51:05 -05:00
's'
2026-03-12 02:23:10 -05:00
;s;
2026-03-12 05:40:18 -05:00
2026-03-08 04:30:57 -05:00
2026-03-08 04:30:57 -05:00
's'
2026-03-08 10:27:28 -05:00
2026-03-13 04:41:51 -05:00
's'
2026-03-07 09:34:01 -06:00
''
2026-03-12 19:50:25 -05:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
''
2026-03-12 19:50:25 -05:00
s
2026-03-08 11:48:01 +08:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-08 10:27:28 -05:00
''
2026-03-12 19:50:25 -05:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-11 22:55:36 -05:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-08 01:10:31 -06:00
's'
2026-03-07 09:34:01 -06:00
2026-03-08 04:30:57 -05:00
2026-03-08 22:24:33 -05:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00
's'
2026-03-07 09:34:01 -06:00

Digital Nomad Guide | 数字游民指南

开源免费的数字游民资源平台,支持多主题切换、国际化、电子书、课程、加入申请与支付等能力。

功能特性

  • 多主题内置数字游民、一人公司、TikTok 运营、独立开发等主题,可快速克隆扩展
  • 国际化:中英双语,基于 next-intl 的 i18n 方案
  • 7 天路线图:首页展示数字游民入门路径,支持按天查看详情
  • 工具导航:按主题加载工具分类与链接
  • 电子书Markdown 电子书阅读,支持目录、懒加载、阅读进度
  • 课程页:视频课程大纲、学习进度、讲师介绍
  • 加入申请:表单提交 + PocketBase 存储 + 支付Z-Pay / XorPay
  • 暗色模式:跟随系统或手动切换

技术栈

  • 框架Next.js 16、React 19
  • 样式Tailwind CSS 4
  • 国际化next-intl
  • 后端服务PocketBase用户/申请、MinIO文件存储、自建支付 API

快速开始

环境要求

  • Node.js 20+
  • pnpm推荐

安装与运行

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build

# 生产运行
pnpm start

开发模式下访问 http://localhost:3000(或终端显示的端口)。

环境变量(可选)

创建 .env.local 覆盖默认配置:

变量名 说明 默认值
NEXT_PUBLIC_THEME 当前主题 digital-nomad
NEXT_PUBLIC_POCKETBASE_URL PocketBase 地址 https://pocketbase.hackrobot.cn
POCKETBASE_JOIN_COLLECTION 申请集合名 solan
PAYMENT_API_URL 支付 API 地址 开发 127.0.0.1:8700,生产 https://api.hackrobot.cn
PAYMENT_PROVIDER 支付提供商 zpay
MINIO_ENDPOINT MinIO 端点 minioweb.hackrobot.cn
MINIO_BUCKET 存储桶 hackrobot
NEXT_PUBLIC_SITE_URL 站点根地址(支付回跳等) 开发 http://localhost:3001
NEXT_PUBLIC_SHOP_URL 电商独立站链接 https://store.hackrobot.cn/

项目结构

├── app/
│   ├── [locale]/           # 多语言路由 (zh, en)
│   │   ├── page.tsx        # 首页
│   │   ├── about/          # 关于我们
│   │   ├── course/         # 课程页
│   │   ├── ebook/          # 电子书
│   │   ├── join/           # 加入申请
│   │   ├── jobs/           # 招聘
│   │   └── day/[id]/       # 路线图每日详情
│   ├── api/                # API 路由
│   │   ├── join/           # 申请提交
│   │   ├── pay/            # 支付
│   │   └── upload-media/   # 媒体上传
│   ├── components/         # 公共组件
│   ├── context/            # React Context
│   ├── data/               # 静态数据(如 ebook.md
│   └── lib/                # 工具与配置
├── config/
│   ├── site.config.ts      # 主题配置
│   └── services.config.ts  # 服务配置PocketBase、支付、MinIO
├── content/themes/         # 主题内容
│   └── digital-nomad/
│       ├── messages/       # 文案 (zh.json, en.json)
│       └── data/           # 工具等数据
└── i18n/                   # 国际化路由

主题配置

切换主题:设置 NEXT_PUBLIC_THEME 或修改 config/site.config.ts 中的 CURRENT_THEME

内置主题:digital-nomad | solo-company | tiktok-ops | indie-dev

新增主题步骤:

  1. config/site.config.tsTHEME_CONFIGS 中添加配置
  2. content/themes/[theme-id]/ 下添加 messagesdata
  3. app/lib/theme-data.ts 的 switch 中添加对应 case

脚本

命令 说明
pnpm dev 启动开发服务器
pnpm build 构建生产版本
pnpm start 启动生产服务器
pnpm lint 运行 ESLint

开源与致谢

Description
No description provided
Readme 1,009 KiB
Languages
TypeScript 55.3%
HTML 40.1%
CSS 3.2%
Python 1.1%
JavaScript 0.3%