服务概览
Joppa 在容器中运行的数据库、缓存、邮件服务器和搜索引擎,以及如何添加它们。
服务是由你的项目共享的服务器,Joppa 在你的 容器运行时 中运行它。在侧边栏中打开 服务:页面会先列出你的服务,然后是服务目录。

服务目录
| 服务 | 版本 | 默认端口 | 账号或密钥 |
|---|---|---|---|
| PostgreSQL | 18、17、16、15、14 | 5432 | postgres / postgres |
| MySQL | 9.7、8.4、8.0 | 3306 | root / root |
| MariaDB | 12.3、11.8、11.4、10.11 | 3306 | root / root |
| Redis | 8.10、8.8、7.4 | 6379 | — |
| Valkey | 9.2、9.1、8.1 | 6379 | — |
| Mailpit | 1.31 | SMTP 1025,网页收件箱 8025 | — |
| Typesense | 30.2、29.1 | 8108 | API 密钥 joppa-local-key-0000 |
| Meilisearch | 1.55、1.54 | 7700 | 主密钥 joppa-local-key-0000 |
列出的第一个版本即默认提供的版本。
添加服务
在服务目录中点击 + 添加 PostgreSQL(或其他服务)。选择版本和端口:Joppa 会从默认端口开始推荐第一个空闲端口(第二个 MySQL 服务器会使用 3307)。服务会在名为 joppa-<engine> 的容器中启动。
所有服务都只监听 127.0.0.1:网络上的其他设备看不到它们。
服务页面
- 启动 / 停止,以及已运行多长时间。
- 复制服务器 URL(根据服务不同,也可能是地址、API 密钥或主密钥)。
- 数据库和缓存可 在 TablePlus 中打开,Mailpit 可 打开收件箱,Meilisearch 可 打开预览。
- 项目:使用该服务的项目,以及 连接项目 和 取消关联。Joppa 会把服务地址写入这些项目的
.env,并保持更新。 - 日志:容器日志,可开启 跟随。
- 操作 菜单:版本和端口…(PostgreSQL 为 版本、端口和扩展…)以及 移除服务…。

更换版本或端口
更改会在下次启动时生效;页面会提供 ↻ 应用更改(容器会被重新创建,数据保留)。
- 每个版本都有自己的数据,保存在一个卷中(
joppa-postgres-17)。从 17 切换到 18 会启动一个空的服务器;切回 17 即可找回其数据库。 - 更换端口 会更新已关联项目的
.env。
移除服务
移除服务… 会删除容器。数据保留在其卷中:重新添加同一服务即可找回。
端口被占用
如果端口已被占用,页面会显示「✕ 端口 5432 被 … 占用。」并提供两个选项:更换端口 或 释放端口。Joppa 会找出占用者并提供相应的操作:
| 占用者 | 提供的操作 |
|---|---|
| Docker 容器、Compose 或 Lerd | 停止它 |
| Homebrew 服务 | brew services stop …(登录时将不再自动启动) |
| Postgres.app | 无法在 Joppa 中操作:请在 Postgres.app 中点击“Stop” |
| 其他进程 | 确认后直接停止它 |