把搭建中间件的时间,留给写代码。
Code Ark(代码方舟)收集了 16 套 Docker Compose 配置,覆盖数据库、缓存、消息队列、工作流、搜索、对象存储和监控。适合 Java、Go、Python、Node.js 开发者进行本地开发、接口联调和集成测试:选择需要的服务目录,按对应说明启动。
English · 快速开始 · 服务目录 · 日常使用 · 参与贡献
先运行一个不需要 .env 的 Redis 示例。需要 Docker Engine / Docker Desktop、Docker Compose v2 及以上版本,以及 Git。
git clone https://github.com/StephenQiu30/code-ark.git
cd code-ark/redis-start-local
docker compose up -d
docker compose exec redis redis-cli ping看到 PONG,就可以让本机应用连接 localhost:6379。用完运行 docker compose stop;Redis 的 AOF 数据保存在当前目录的 data/ 中。
其他服务可能需要
.env、初始化 SQL 或已有数据库。每个目录的 README 都说明了自己的启动条件;无需同时启动整套环境。
- 后端接口开发 → PostgreSQL、MySQL、Redis、MinIO。
- 消息与异步任务 → Kafka、RabbitMQ、Temporal。
- 服务发现与分布式应用 → Nacos、Sentinel、Seata。
- 搜索、日志与指标 → Elastic Stack、Prometheus / Grafana。
- RSS 与搜索 API → RSSHub、SearXNG。
按目录选择服务。 每个服务有自己的 Compose 和说明文件,方便按应用需求组合;需要复用数据库的服务会明确列出依赖。
配置与数据位置可见。 需要环境变量的目录提供 .env.example,文档说明连接端口、初始化、数据目录或命名卷,便于团队复用。
沿用熟悉的 Docker 命令。 多数服务使用 docker compose up -d 启动;Elastic Stack 提供构建和内存预检脚本,复杂服务的步骤留在各自文档中。
下面列出默认宿主机端口;点击服务名查看凭据、资源需求和启动步骤。端口有冲突时,按对应服务配置调整。
| 服务 | 默认端口 | 用途 |
|---|---|---|
| PostgreSQL 18 | 5432 |
SQL、关系型数据、初始化脚本 |
| MySQL 8.0 | 3306 |
关系型数据与应用联调 |
| Redis | 6379 |
缓存、锁与消息实验;AOF 持久化 |
| MinIO | 9000 / 9001 |
S3 兼容接口与管理控制台 |
| 服务 | 默认端口 | 用途 |
|---|---|---|
| Kafka + Kafka UI | 9092 / 19000 |
事件流、主题与消费者组观察 |
| RabbitMQ | 5672 / 15672 |
AMQP 消息与管理控制台 |
| RocketMQ | 15876 / 15909 / 15911 / 15912 / 18180 |
NameServer、Broker 与 Console |
| Temporal + UI | 7233 / 18080 |
持久化工作流;复用本仓库 PostgreSQL |
| XXL-Job | 18081 |
调度中心;需 MySQL 与初始化 SQL |
| 服务 | 默认端口 | 用途 |
|---|---|---|
| Nacos | 8840 / 8848 / 9848–9850 |
注册与配置中心;先创建外部数据卷 |
| Sentinel | 8858 / 8719 |
流控、熔断与规则实验 |
| Seata | 7091 / 8091 |
分布式事务;需 MySQL 元数据表 |
| Elastic Stack | 9200 / 5601 / 5044 |
搜索、IK 分词、日志与 Kibana |
| Prometheus + Grafana | 19090 / 13000 |
指标采集、告警与仪表盘 |
Logstash 还发布 5000(TCP / UDP)和 9600,详见服务文档。
| 服务 | 默认端口 | 用途 |
|---|---|---|
| RSSHub | 1200 |
RSS 路由;Chromium bundled 镜像 |
| SearXNG | 8888 |
聚合搜索与 JSON API |
另有 MediaCrawler 固定版本与补丁说明,用于宿主机运行的采集工具,不提供 Compose 服务。历史目录名 mysql-start-lcoal、rabbitmq-start-lcoal 保留以兼容已有使用方式。
在选定的服务目录中运行:
docker compose ps -a # 容器状态,包括一次性初始化任务
docker compose logs -f # 查看日志
docker compose stop # 停止容器
docker compose up -d # 再次启动
docker compose down # 移除当前项目容器和网络需要 .env 的服务,首次复制 .env.example 并填写自己的配置;已有 .env 时保留它。PowerShell 可使用 Copy-Item .env.example .env。密码、Token、API Key 不应提交到 Git。
数据会保留吗?容器里的应用连接哪个地址?
stop和普通down不删除持久化目录或命名卷。down -v会删除本项目命名卷,不会删除宿主机绑定目录,也不会清空外部数据库。- 宿主机应用使用发布端口;容器里的
localhost指向容器自己,应按服务 README 使用服务名、容器端口或宿主机入口。 - Temporal 复用
pgsql-start-local,先启动 PostgreSQL。Seata、XXL-Job 需要可访问的 MySQL 和对应表结构。 - Nacos 使用外部命名卷,首次运行
docker volume create nacos-start-local-data;详情见其 README。 - Elastic Stack 建议通过
./start.sh启动。脚本要求 Docker 虚拟机至少有 6 GB 内存,Windows 下使用 WSL / 兼容 Shell。
这些配置面向本地开发与学习。生产部署需结合实际环境补充认证、TLS、备份、高可用与容量规划;部分目录使用 latest,团队复现前可自行固定兼容版本。
缺一个你常用的服务?欢迎 提交需求 或按 贡献指南 添加模板。修复启动问题、校准文档和分享使用反馈同样有帮助;自动化协作约定见 AGENTS.md。
如果 Code Ark 帮你省下了搭建环境的时间,欢迎 给项目一个 Star。 收藏这份工具箱,下次搭建新项目时可以直接回来找需要的服务。
仓库配置与文档采用 MIT License。第三方软件、镜像及 MediaCrawler 的使用需分别遵循各自上游许可。
