{"id":50344949,"url":"https://github.com/zaaack/joplin-server","last_synced_at":"2026-05-29T19:04:06.165Z","repository":{"id":358222778,"uuid":"1111936668","full_name":"zaaack/joplin-server","owner":"zaaack","description":"manually joplin-server for windows mini pc","archived":false,"fork":false,"pushed_at":"2026-05-16T10:38:46.000Z","size":1556,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-16T11:31:22.832Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zaaack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-07T22:46:05.000Z","updated_at":"2026-05-16T10:38:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zaaack/joplin-server","commit_stats":null,"previous_names":["zaaack/joplin-server"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zaaack/joplin-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaaack%2Fjoplin-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaaack%2Fjoplin-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaaack%2Fjoplin-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaaack%2Fjoplin-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zaaack","download_url":"https://codeload.github.com/zaaack/joplin-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaaack%2Fjoplin-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33666291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-29T19:04:05.220Z","updated_at":"2026-05-29T19:04:06.158Z","avatar_url":"https://github.com/zaaack.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# joplin-server Windows 部署\n\n将 [joplin-server](https://github.com/laurent22/joplin/tree/dev/packages/server) 直接部署到 Windows 主机，无需 Docker。\n\n## 工作原理\n\n```mermaid\nflowchart LR\n    A[WSL Linux] --\u003e|pnpm build| B[编译 server/]\n    B --\u003e|robocopy| C[Windows 远程主机]\n    C --\u003e|pnpm i -P| D[安装生产依赖]\n    D --\u003e|supervisorctl| E[启动服务]\n```\n\n部署流程在 `Foyfile.ts` 中定义：\n\n1. 在 `server/` 目录下执行 `pnpm install` 和 `pnpm build`，编译 joplin-server 后端\n2. 通过 `winrs` 远程停止目标 Windows 主机上的 supervisor 管理的 joplin-server 进程\n3. 使用 `robocopy` 将编译产物（`dist`、`package.json`、`pnpm-lock.yaml`、`public`、`stripeConfig.json`、`src/views`）同步到 Windows 主机\n4. 在 Windows 主机上执行 `pnpm i -P` 安装仅生产依赖（包括 `thirty-two` 包）\n5. 通过 supervisor 重启 joplin-server 并查看日志\n\n## 前置条件\n\n| 条件 | 说明 |\n|------|------|\n| WSL | 在 WSL 中运行部署脚本 |\n| pnpm | WSL 中安装 pnpm |\n| Windows 远程主机 | 目标部署机器（当前配置为 `DESKTOP-4PGV4PO`） |\n| winrs | Windows 远程管理服务（WinRM）已启用 |\n| supervisor | 远程主机上安装 supervisor 管理 joplin-server 进程 |\n\n## 环境变量\n\n| 变量 | 说明 |\n|------|------|\n| `MINIPC_HOST` | 远程 Windows 主机地址，`winrs` 通过此变量连接 |\n\n## 使用\n\n```bash\n# 部署到远程 Windows 主机\npnpm foy deploy\n```\n\n## 目录结构\n\n```\njoplin-server/\n├── Foyfile.ts          # 部署任务定义\n├── tasks/\n│   ├── utils.ts        # robocopy / winrs 工具函数\n│   ├── text-decode.ts  # GBK 编码解码\n│   └── wsl-path.ts     # WSL 路径转 Windows 路径\n├── server/             # joplin-server 源码（子项目）\n└── cache/              # 临时缓存目录\n```\n\n## 与官方 Docker 方案的区别\n\n| | 本方案 | 官方方案 |\n|--|--------|----------|\n| 依赖 | 无容器化依赖 | 需 Docker |\n| 部署目标 | Windows 主机 | 任意支持 Docker 的主机 |\n| 进程管理 | supervisor | Docker 容器编排 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaaack%2Fjoplin-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaaack%2Fjoplin-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaaack%2Fjoplin-server/lists"}