gzero/platform

GZERO CMS 平台。


README

GZERO CMS 平台是一个在 GZERO CMS 上构建自定义应用程序的基础。

该项目使用 Docker 容器将整个应用程序及其所有依赖项打包成一个标准化的单元。

该项目使用 Ansible 自动化引擎来部署整个应用程序。

安装

使用 composer 创建新项目

composer create-project --prefer-dist gzero/platform platform
目录权限

设置存储和引导缓存权限

chmod 777 -R storage/
chmod 777 -R bootstrap/cache/
chmod 777 -R uploads/
chmod 777 -R public/

[可选]

如果你系统中有 www-data 组,你可以考虑将其添加到组中。这将允许你写入由 php 创建的文件,因为这些文件在开发模式下设置了 umask 002。

sudo usermod -a -G www-data user

生成应用程序密钥
./develop artisan key:genarate
环境配置。

环境配置存储在 .env 文件中(在创建项目阶段从 .env.example 复制而来)。

设置本地域名

为了与 API 正确通信,需要修改操作系统中的 hosts 文件。在 Ubuntu 中,hosts 文件应如下所示

# /etc/hosts
127.0.0.1 localhost
...
127.0.0.1 dev.gzero.pl
127.0.0.1 api.dev.gzero.pl
...
安装并运行 Docker 引擎

Docker 引擎支持 Linux、云、Windows 和 OS X。安装说明可在 Docker 文档页面 上找到

为平台构建 Docker 容器

安装 Docker 引擎后,您需要启动 docker 容器,转到项目目录并运行

  • 启动 Docker 容器
./develop up -d

这将运行所有应用程序容器(请等待 ssl 证书生成一些时间)

Starting platform_db_1
Starting platform_redis_1
Starting platform_db_tests_1
Starting platform_web_1
  • 创建数据库模式和所需数据
./develop artisan migrate
  • 您还可以使用此命令使用示例数据填充数据库
./develop artisan db:seed --class='Gzero\\Cms\\CMSSeeder'
  • 您可能还想发布供应商资产
./develop artisan vendor:publish --tag=public --force
  • 完成

停止 Docker

如果您想停止 docker 容器,只需运行

./develop stop

这将停止所有运行的应用程序容器

Stopping platform_web_1 ... done
Stopping platform_db_tests_1 ... done
Stopping platform_redis_1 ... done
Stopping platform_db_1 ... done

要删除已停止的容器,请运行

./develop rm

查看 Docker 日志

如果您想查看 Docker 日志,可以运行

./develop logs web

更新平台 Docker 容器

要检查平台 Docker 容器中的更改,您可以偶尔运行

./develop pull

测试

要运行测试,请使用

./develop test
./develop test-debug # it runs xdebug
./develop test-frontend # it runs frontend tests using AVA framework
./develop test-acceptance # it runs acceptance tests using local Google Chrome
./develop test-profile # it runs xdebug profiler and saves output in storage dir

前端工作

安装所需的 npm 模块

./develop npm install

运行 webpack

./develop npm run dev

./develop npm run watch

前端测试

仅运行 ava 测试

./develop npm test

./develop npm run test:watch

仅运行 eslint

./develop npm lint

./develop npm run lint:watch

更新 composer 依赖项

您可以直接从 docker 运行 composer

./develop composer update

持续集成

我们提供了一些用于 travis 和 gitlab-ci 的样板配置,以便您可以修改它们以满足您的需求。

部署

我们使用 Ansible 作为自动化工具。我们包含了一些示例 playbooks。

一些示例用法

ansible-playbook -i staging provision.yml 
ansible-playbook -i staging deploy-stack.yml \
 -e "APP_ENV='$(cat example.env)'"
 -e DOMAIN=docker-test.example.com \
 -e LETSENCRYPT_EMAIL=office@example.com \
 -e DB_NAME=gzero_cms \
 -e DB_USER=gzero_cms \
 -e DB_PASSWORD=test \
 -e GITLAB_REPO=example/project
ansible-playbook -i staging deploy-app.yml \
 -e TAG=0.0.5 \
 -e GITLAB_REPO=example/project \
 -e "APP_ENV='$(cat example.env)'"