包含 apps/web 与 apps/admin 两个 Next.js 应用,分别映射到 3000 与 3001 端口
monorepo-template — Next.js 企业官网模板
作者 dknalp
面向 Go + Next.js 的 monorepo 起步模板,包含 web 与 admin 两个前端应用、api/auth/storage 三个 Go 服务、共享 Go 与 UI 包,以及 Docker Compose 与 GitHub Actions CI 配置。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
包含 services/api、services/auth、services/storage 三个 Go 服务,分别映射到 8080、8081、8082 端口
packages/go-api-lib 提供共享 Go 中间件、响应辅助与错误处理,packages/ui 提供共享 React 组件与 Tailwind 预设
使用 Turborepo + pnpm workspaces 管理 JS 侧,使用 go.work 管理 Go 侧
infra 目录提供 docker-compose.yml 与每个服务对应的 Dockerfile
README 列出五条项目规则:main.go 仅做引导、数据库按服务隔离、共享 Go 代码只放 go-api-lib、共享 UI 代码只放 ui、internal 为私有
模板详细介绍
该模板是一个 Go + Next.js + Tailwind CSS 的 monorepo 起步项目,README 建议为每个新项目克隆使用,并先阅读 CONTRIBUTING.md。仓库结构分为 apps(web 运行于 localhost:3000、admin 运行于 localhost:3001)、services(api 8080、auth 8081、storage 8082)、packages(go-api-lib 提供 Go 中间件、响应辅助与错误处理;ui 提供共享 React 组件与 Tailwind 预设)、infra(docker-compose.yml 与每个服务一个 Dockerfile)以及 .github/workflows/ci.yml。JS 侧使用 Turborepo 与 pnpm workspaces,Go 侧使用 go.work 原生工作区,数据库为 PostgreSQL 且每个服务一个数据库。README 列出了本地开发命令(pnpm install、pnpm dev、go run ./cmd/api、docker compose up)、新项目首次配置步骤(修改 go.mod 模块名、package.json 包名、复制 .env.example 为 .env、执行 go work sync),以及新增服务与新增前端应用的操作步骤。README 未说明各服务的具体业务功能、数据库表结构、环境变量清单、部署到生产环境的方式,也未说明测试覆盖情况。
适合你的项目吗?
适用场景
- 需要同时维护多个 Next.js 前端与多个 Go 后端服务的新项目起步
- 希望用 go.work 与 pnpm workspaces 在同一仓库中分别管理 Go 与 JS 依赖
- 需要为每个服务独立配置 PostgreSQL 数据库并避免跨服务共享 schema
- 希望通过 Docker Compose 在本地一次性启动全部前端与后端服务
- 需要基于 GitHub Actions 的 CI 配置作为持续集成起点
适合人群
- 使用 Go 与 Next.js 构建多服务应用的开发团队
- 需要按服务拆分数据库并共享 Go 与 UI 代码的 monorepo 项目
- 熟悉 pnpm、Turborepo、Docker Compose 与 Go workspaces 的开发者
- 希望以模板方式统一新项目结构与协作规范的团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
前置要求:Go 1.22+、Node.js 20+、pnpm 9+、Docker 与 Docker Compose
- 2
克隆后执行 pnpm install 安装 JS 依赖,使用 pnpm dev 启动前端热重载,进入 services/api 执行 go run ./cmd/api 运行 Go 服务,或在 infra 目录执行 docker compose up 启动全部服务
- 3
新项目首次配置需修改所有 go.mod 中的模块名(github.com/agency/* 改为自己的组织与项目路径)、修改 package.json 中的包名(@agency/* 改为自己的作用域)、复制 .env.example 为 .env 并填写值,然后执行 go work sync
- 4
新增服务需创建 services/<name>/cmd/<name> 与 internal/{handler,service,repository} 目录,复制 go.mod 并更新模块名,在 go.work 中添加入口,在 infra/docker-compose.yml 与 infra/dockerfiles 中补充对应配置
- 5
新增前端应用需在 apps 目录执行 pnpm create next-app 并指定 TypeScript、Tailwind、app 与 no-src-dir,添加 @agency/ui 的 workspace 依赖,并将 tailwind.config.ts 改为扩展 packages/ui/tailwind-preset
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
https://github.com/dknalp/monorepo-template/blob/main/LICENSEhttps://github.com/dknalp/monorepo-template/blob/main/README.mdPermission is hereby granted, free of charge
许可证原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Next.js · React
- 网站类型
- 企业官网 · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-09
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: 42d9ef67d7df9d4f14bf98985d1f7d7e8c6283bb429ac307751e92ea7620c4a1
2026-10-14T00:24:53.328Z
来源文件 / 仓库# Agency Monorepo Template
> Production-ready monorepo starter for Go + Next.js + Tailwind CSS.
> Clone this for every new project. Read `CONTRIBUTING.md` before writing any code.
[](https://github.com/dknalp/monorepo-template/actions/workflows/ci.yml)
[](./LICENSE)
---
## Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 4 |
| Backend | Go 1.22, stdlib `net/http` |
| Monorepo (JS) | Turborepo + pnpm workspaces |
| Monorepo (Go) | `go.work` (native Go workspaces) |
| Database | PostgreSQL — **one DB per service** |
| Containers | Docker + Docker Compose |
| CI | GitHub Actions |
---
## Structure
```
.
├── apps/
│ ├── web/ # Main Next.js app → localhost:3000
│ └── admin/ # Admin Next.js app → localhost:3001
│
├── services/
│ ├── api/ # API gateway → localhost:8080
│ ├── auth/ # Auth service → localhost:8081
│ └── storage/ # Storage service → localhost:8082
│
├── packages/
│ ├── go-api-lib/ # Shared Go: middleware, response helpers, errors
│ └── ui/ # Shared React components + Tailwind preset
│
├── infra/
│ ├── docker-compose.yml
│ └── dockerfiles/ # One Dockerfile per service
│
├── .github/workflows/ci.yml
├── go.work # Ties all Go modules together
├── turbo.json
└── pnpm-workspace.yaml
```
---
## Getting Started
### Prerequisites
- Go 1.22+
- Node.js 20+
- pnpm 9+
- Docker + Docker Compose
### Local Development
```bash
# Clone
git clone https://github.com/dknalp/monorepo-template.git my-project
cd my-project
# Install JS deps
pnpm install
# Run all frontends (hot reload)
pnpm dev
# Run a Go service
cd services/api && go run ./cmd/api
# Run everything with Docker
cd infra && docker compose up
```
### First-time Setup for a New Project
```bash
# 1. Update module names in all go.mod files
# Change: github.com/agency/* → github.com/yourorg/yourproject/*
# 2. Update package names in package.json files
# Change: @agency/* → @yourorg/*
# 3. Copy .env.example → .env and fill in values
# 4. Run go work sync
go work sync
```
---
## The 5 Rules (must be followed on every project)
1. **`cmd/<service>/main.go` is bootstrap only** — no business logic ever
2. **Database-per-service** — never share schemas across services
3. **Shared Go code** → `packages/go-api-lib` only
4. **Shared UI code** → `packages/ui` only
5. **`internal/` is private** — Go enforces this at compile time
See [CONTRIBUTING.md](./CONTRIBUTING.md) for full standards.
---
## Adding a New Service
```bash
mkdir -p services/myservice/cmd/myservice
mkdir -p services/myservice/internal/{handler,service,repository}
# Copy go.mod from services/api, update module name
# Add entry to go.work
# Add service to infra/docker-compose.yml
# Add infra/dockerfiles/myservice.Dockerfile
```
## Adding a New Frontend App
```bash
cd apps && pnpm create next-app myapp --typescript --tailwind --app --no-src-dir
# Add "@agency/ui": "workspace:*" to dependencies
# Replace tailwind.config.ts to extend packages/ui/tailwind-preset
```
---
## License
[MIT](./LICENSE)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
