单个 docker-compose.yml 编排 nginx:1.27、php:8.3-fpm、mariadb:11.4、redis:7 及队列 worker、调度器容器
laravel-prod-starter — Laravel 启动器模板
作者 asadtahta95
基于 Docker Compose 的 Laravel 部署模板,集成 PHP 8.3-FPM、Nginx、MariaDB、Redis、队列 worker、调度器和备份脚本,README 给出了完整的目录结构与部署命令。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
镜像版本固定,密码通过 .env 的 DB_PASS、DB_ROOT_PASS、REDIS_PASS 必填注入,不使用硬编码凭据
MariaDB 使用带健康检查的卷,并通过 depends_on 的 service_healthy 控制启动顺序
提供 scripts/deploy.sh(composer install、migrate、缓存)与 scripts/backup-db.sh(带时间戳的 mariadb-dump)
备份容器通过 compose 的 tools profile 按需运行,备份文件输出到 backups/ 目录
README 列出相对旧仓库的具体改动,包括移除 links/version、改用相对 ./src 挂载、补充 opcache 与队列 worker
模板详细介绍
这是一个把 Laravel 应用放进容器运行的生产向起步模板。README 说明它由单个 docker-compose.yml 组织:客户端请求先到 nginx:1.27 容器,再转发到 php:8.3-fpm 应用容器(含扩展与 opcache);应用连接带健康检查卷的 mariadb:11.4 和启用 AOF 与密码的 redis:7;队列 worker 与调度器以独立容器运行,复用同一个 PHP 镜像;备份通过 compose 的 tools profile 按需执行。
仓库结构包含 docker-compose.yml、.env.example、php/Dockerfile 与 opcache.ini、nginx/default.conf、用于放置 Laravel 代码的 src/ 目录,以及 scripts/deploy.sh(composer install、migrate、缓存)、scripts/backup-db.sh(带时间戳的 mariadb-dump)和 Makefile。README 提供的安装流程是克隆仓库后执行 make up,把代码放入 ./src,复制 .env.example 为 .env 并设置 DB_PASS、DB_ROOT_PASS、REDIS_PASS,再执行 make up 与 make deploy,最后访问 localhost:8080。
README 明确列出相对旧仓库 Docker_Compose_Laravel 的改动:固定镜像版本、移除硬编码密码改为 .env 必填变量、把绝对路径挂载改为相对 ./src、去掉已废弃的 links 与 version 键、为 MariaDB 增加 service_healthy 依赖,并补充 opcache、队列 worker、调度器、带密码与 AOF 的 Redis、健康检查、备份 sidecar 和 deploy.sh。安全说明要求不提交 .env 与 backups/*.gz、首次启动前修改所有 change-me-* 密码,并指出生产环境不应暴露 MariaDB(未发布 3306)或 phpMyAdmin(已按设计移除)。README 未提供具体 Laravel 版本、CI 配置细节、TLS 终止方式或反向代理的完整配置,这些需自行确认。
适合你的项目吗?
适用场景
- 把已有 Laravel 项目放入 ./src 后,用 make up 与 make deploy 在本地或服务器上启动完整容器栈
- 需要队列 worker 与调度器作为独立容器与 Web 应用一起运行的部署场景
- 通过 make backup 生成带时间戳的数据库备份,并用 mariadb 命令从压缩文件恢复
- 在 Traefik 或 Nginx Proxy Manager 等反向代理后方,将流量指向模板暴露的 8080 端口
适合人群
- 希望用 Docker Compose 部署 Laravel 并需要队列、调度、Redis 与数据库备份组件的开发者
- 需要固定镜像版本、避免硬编码密码的部署环境
- 接受把应用代码放在 src/ 目录、通过 Makefile 与脚本完成部署和备份的团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后执行 make up,把 Laravel 代码放入 ./src(或在该目录克隆应用)
- 2
复制 .env.example 为 .env,设置 DB_PASS、DB_ROOT_PASS、REDIS_PASS,首次启动前修改所有 change-me-* 密码
- 3
依次执行 make up 与 make deploy,然后访问 http://localhost:8080
- 4
备份使用 make backup,恢复时用 gunzip -c backups/full-YYYY-MM-DD-HHMM.sql.gz | docker compose exec -T db mariadb -uroot -p"$DB_ROOT_PASS"
- 5
不要提交 .env 或 backups/*.gz;README 说明生产环境不应暴露 MariaDB 或 phpMyAdmin
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 部署前必须复制 .env.example 为 .env 并手动设置 DB_PASS、DB_ROOT_PASS、REDIS_PASS 等数据库与 Redis 密码,否则无法正常启动。
- 若需通过 HTTPS 对外提供服务,需自行准备并配置 Traefik 或 Nginx Proxy Manager 等反向代理,将流量指向模板暴露的 8080 端口。
- 首次执行 up 之前必须修改所有 change-me-* 默认密码,否则存在安全风险。
- 生产环境不应对外暴露 MariaDB(未发布 3306 端口)或 phpMyAdmin(已按设计移除),需自行确保网络隔离。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
vim .env # set DB_PASS, DB_ROOT_PASS, REDIS_PASS
README 原文
Behind TLS: point your `reverse-proxy-lab` Traefik/NPM at `http://<host>:8080`.
README 原文
- Change all `change-me-*` passwords before first `up`.
README 原文
https://github.com/asadtahta95/laravel-prod-starter/blob/main/LICENSEhttps://github.com/asadtahta95/laravel-prod-starter/blob/main/README.md- Do not expose MariaDB (no published 3306) or phpMyAdmin in production — removed by design.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 80 / 100
- 技术栈
- Laravel
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-30
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Laravel。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: e56da323271cd3c12eee1b632c8838fad5efe0d32b43db1fac97a704fd89f0a2
2026-10-14T05:02:47.059Z
来源文件 / 仓库# Laravel Prod Starter Production-ready **Laravel (PHP 8.3-FPM + Nginx + MariaDB 11 + Redis + queue + scheduler + backups)** in one Compose file. Upgrades the old `Docker_Compose_Laravel` (dev-only, hardcoded passwords, `latest` tags) into a deployable starter. ## Architecture ``` client -> web (nginx:1.27) -> app (php:8.3-fpm, extensions + opcache) app -> db (mariadb:11.4, healthchecked volume) + redis:7 (AOF + password) queue worker + scheduler run as separate containers from the same PHP image backup runs on demand via compose profile "tools" ``` ## Structure ``` laravel-prod-starter/ ├── docker-compose.yml ├── .env.example ├── php/Dockerfile + opcache.ini ├── nginx/default.conf ├── src/ # put your Laravel app here ├── scripts/deploy.sh # composer install + migrate + caches ├── scripts/backup-db.sh # timestamped mariadb-dump └── Makefile ``` ## Quick Installation (One Line setup) ```bash git clone https://github.com/asadtahta95/laravel-prod-starter.git && cd laravel-prod-starter && make up ``` Then put your code in `./src` (or clone your app there), and deploy: ```bash cp .env.example .env vim .env # set DB_PASS, DB_ROOT_PASS, REDIS_PASS make up make deploy open http://localhost:8080 ``` Backup and restore: ```bash make backup ls backups/ gunzip -c backups/full-YYYY-MM-DD-HHMM.sql.gz | docker compose exec -T db mariadb -uroot -p"$DB_ROOT_PASS" ``` Behind TLS: point your `reverse-proxy-lab` Traefik/NPM at `http://<host>:8080`. ## What changed from the old repo 1. **Pinned versions:** `mariadb:latest` + `phpmyadmin` + unpinned PHP -> `mariadb:11.4`, `php:8.3-fpm-alpine`, `nginx:1.27-alpine`, `redis:7-alpine`. 2. **No hardcoded secrets:** `testdock/passdock` in compose -> required `DB_PASS`/`DB_ROOT_PASS`/`REDIS_PASS` via `.env` (fail-fast `:?`). 3. **Portable volume:** absolute `/var/www/html` host mount -> relative `./src`. 4. **Removed `links` + `version`:** deprecated keys dropped; `depends_on` with `service_healthy` for MariaDB. 5. **Added prod pieces missing before:** opcache, queue worker, scheduler, Redis with password+AOF, healthcheck, backup sidecar, `deploy.sh`. 6. Added `Makefile`, `.env.example`, CI compose validation. ## Security notes - Never commit `.env` or `backups/*.gz`. - Change all `change-me-*` passwords before first `up`. - Do not expose MariaDB (no published 3306) or phpMyAdmin in production — removed by design. ## License MIT
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

sage
WordPress starter theme with Laravel Blade components and templates, Tailwind CSS, and block editor support
Laravel · 启动器

wave
Wave - The Software as a Service Starter Kit, designed to help you build the SAAS of your dreams 🚀 💰
Laravel · SaaS

filament-starter
A beautiful starting point for your next TALL stack project using Filament. ⚡
Laravel · 启动器

electrik
Laravel SaaS starter kit: auth, teams, Stripe billing, and Slate 3 — Composer package for Laravel 12
Laravel · SaaS

php-saas
The everything-included starter kit for your next idea
Laravel · SaaS

filament-jetstream
A Laravel starter kit built with Filament inspired by Jetstream.
Laravel · 启动器
