项目

添加项目

Joppa 如何分析文件夹、为项目命名、找到其开发服务器并为它们推荐域名。

三种添加方式

  • 拖放:把文件夹拖到窗口中的任意位置(「松开以添加项目」)。
  • 按钮或快捷键:侧边栏中 项目 旁边的 + 新建、首页上的 添加项目,或在任意位置按 N。
  • 终端:在 TUI 的“项目”部分按 a,或使用 MCP 工具 add_project。

添加项目 窗口会显示 Joppa 找到的内容;在你确认(⌘ ⏎)之前,不会保存任何内容。

名称和图标

名称取自 package.json 的 name 字段(去掉 @org/ scope),否则取文件夹名。它会被转换为不含重音和空格的小写形式:Kiné Santé 变为 kine-sante。

图标根据名称生成。你可以随时在项目页面按 I 更换它:生成的图案、首字母、图形,或你自己的图片(.svg、.png、.jpg、.webp,最大 180 KB),会以 Joppa 的配色进行抖动处理。

Joppa 能检测到什么

技术栈 线索 默认端口
Vite、Vite+(vp)、React Router、Remix、SvelteKit dev 脚本 5173,或 vite.config 中的 port:
Astro dev 脚本 4321,或 astro.config 中的 port:
Next.js dev 脚本 3000
Nuxt dev 脚本 3000
Angular、Nx(Angular、webpack) ng serve、Nx 目标 4200
Create React App、Docusaurus react-scripts start、docusaurus start 3000
Vue CLI、Gatsby、Storybook、Expo 各自的命令 8080、8000、6006、8081
Node(其他服务器) 脚本或代码中写明的端口 找到的端口
Laravel artisan 文件 8000(php artisan serve)
Symfony、其他 PHP public/index.php 和 composer.json 8000(php -S)
Bun bun.lock / bun.lockb —
Docker Compose compose.yaml、docker-compose.yml… 已发布的端口

Joppa 会读取根目录以及 monorepo 中每个包 的 dev 脚本:npm、yarn 或 bun 的 workspaces、pnpm-workspace.yaml、lerna.json、Nx 项目。端口可以写成以下形式:--port 3000、-p 3000、--port=3000、PORT=3000、${PORT:-3000}。详情见 进程。

对于 Laravel,基础域名指向 php artisan serve;只提供静态资源的 Vite 服务器不会获得域名。

推荐的子域名

如果只有一个服务器,项目会获得基础域名:myproject.test。在 monorepo 中,每个应用会根据其文件夹名获得一个子域名:

应用文件夹 域名
web、app、frontend、client、dashboard app.myproject.test
marketing、site、www、website、landing、home myproject.test
api、server、backend api.myproject.test
其他(docs、admin…) docs.myproject.test

如果两个应用会得到相同的名称,则会编号:app、app2。

Docker Compose 的 Web 界面

发布了已知 Web 界面的 Compose 服务也会获得自己的域名:

服务 端口 域名
Mailpit、MailHog 8025 mail.myproject.test
MinIO(控制台) 9001 minio.myproject.test
RabbitMQ(管理界面) 15672 rabbitmq.myproject.test
Adminer 8080 adminer.myproject.test
phpMyAdmin 80 phpmyadmin.myproject.test
pgAdmin 80 pgadmin.myproject.test

其他已发布的端口(数据库、缓存)会列为「未路由(非 Web 界面)」。如果 Compose 中包含 PostgreSQL、MySQL、MariaDB、Redis 或 Valkey,窗口还会提议将它们的数据导入 Joppa:参见 从 Docker Compose 导入。

带有 joppa.toml 的仓库

添加带有 joppa.toml 的项目:其域名,以及团队配置的计划

当文件夹中包含 joppa.toml(团队共享的配置)时,窗口会以它为准:

  • 名称 取自其 [project] 部分;
  • 域名 即其中的 [[domain]],显示的来源为「joppa.toml」;
  • 在 团队配置 · joppa.toml 下,计划逐行列出其余步骤:创建服务器或复用本机已有的服务器、创建数据库及其扩展、关联项目、写入 .env(查看差异)、固定 Node、包管理器和 PHP 的版本、设置 worktree。已经就绪的步骤会折叠在「已就绪」下。

取消勾选你不需要的内容:依赖它的步骤也会随之取消勾选。在此处无法完成的步骤会显示为灰色并注明原因:仅限 Joppa Pro 的引擎、已被其他项目占用的域名。差异会被提示,但不会阻止任何操作:本机上版本与要求不同的 PostgreSQL 服务器会被复用,仓库中的 .node-version 优先于 [runtime] 部分。

添加并准备(⌘ ⏎)会添加项目,然后执行勾选的步骤。不会删除或覆盖任何内容,也不会启动任何进程:它们会在 进程 标签页中等待。

之后,当 git pull 修改了该文件时,项目页面会提示并提议应用更改:参见 应用文件。

没有检测到服务器?

手动添加域名:一个子域名(admin)或完整域名,加上一个端口。之后你随时可以在 域名 标签页中添加更多。

项目页面

添加后,项目会有自己的页面和以下标签页:

标签页 快捷键 内容
域名 D 域名、目标和状态
进程 P 由 Joppa 启动的开发服务器和容器
环境 E 已关联的服务和 .env 编辑器
运行时 R Node、包管理器和 PHP 的版本
Worktree W 每个 git worktree 一个环境
分析 S 流量、延迟、错误和可用性
检查器 Q 最近的请求、其请求头和正文,以及重放

操作 菜单(⋯)提供 重命名…(可选「同时重命名域名」)、更换图标…、在 joppa.toml 中共享配置(参见 joppa.toml)、在访达中显示 和 从 Joppa 移除。移除项目会停止它的开发服务器并忘记其本地配置;它的文件夹以及可能存在的 joppa.toml 不会被改动。

getjoppa.com › support

加载中

发送不了?请写信至 [email protected]。只是简单的问题:[email protected]。