kunstmaan / skylab
Skylab 是 Kunstmaan 使用基于 Python 的托管脚本的 100% 兼容 PHP 版本。通过使用 Cilex、Symfony 组件以及来自 Composer 项目的众多优秀代码示例,我们希望创建一个我们的组织内每个人都可以使用的应用程序,如果出现问题或需要新功能,也能进行工作。
Requires
- cilex/cilex: ~1.1
- ckdarby/php-uptimerobot: ^0.1.0
- cleentfaar/slack: dev-master
- doctrine/annotations: v1.2.7
- doctrine/collections: v1.3.0
- edyan/neuralyzer: dev-0.1x-maintenance
- guzzlehttp/guzzle: 5.3.2
- kunstmaan/cilex-twig: 1.0.x
- kunstmaan/pwgen-php: 0.1.x
- padraic/phar-updater: ^1.0
- raven/raven: 0.12.*
- sgrodzicki/pingdom: dev-master
- stecman/symfony-console-completion: ~0.4.4
- symfony/debug: 2.8
- symfony/dependency-injection: 2.8
- symfony/filesystem: 2.8
- symfony/serializer: ~2.1
- symfony/yaml: ~2.1
- dev-master
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 2.0.0-alpha
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.0
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-oldserver
This package is auto-updated.
Last update: 2024-08-29 04:31:05 UTC
README
Skylab 是 Kunstmaan 使用基于 Python 的托管脚本的 100% 兼容 PHP 版本。通过使用 Cilex、Symfony 组件以及来自 Composer 项目的众多优秀代码示例,我们希望创建一个我们的组织内每个人都可以使用的应用程序,如果出现问题或需要新功能,也能进行工作。
如果我们不开源,Kunstmaan 就不是 Kunstmaan。所以,这里就是。 MIT 许可。
安装
要安装 Skylab,请运行此命令
$ curl -sSL https://raw.github.com/Kunstmaan/skylab/master/installer | php
这将仅检查一些 PHP 设置,然后下载 skylab.phar 到您的当前工作目录。此文件是 Skylab 二进制文件。它是一个 PHAR(PHP 存档),可以以命令行方式运行,等等。
您可以通过使用 --install-dir 选项并提供目标目录(可以是绝对路径或相对路径)将 Skylab 安装到特定目录
$ curl -sSL https://raw.github.com/Kunstmaan/skylab/master/installer | php -- --install-dir=/bin
您也可以通过运行以下命令全局安装 Skylab
$ curl -sSL https://raw.github.com/Kunstmaan/skylab/master/installer | php
$ mv skylab.phar /usr/local/bin/skylab
配置
您可以通过创建文件 /etc/skylab.yml 并给它一个安全的 chmod 来覆盖默认配置
sudo chmod 700 /etc/skylab.yml
例如,如果您在开发者的 OSX 机器上安装了 skylab
users:
wwwuser: apache
webserver:
engine: apache
hostmachine: XXXXX.kunstmaan.be
mysql:
user: root
password: XXXXXXXXX
postgresql:
user: postgres
password: XXXXXXXXX
debug: true
develmode: true
或者在 ubuntu 系统上
users:
wwwuser: www-data
webserver:
engine: apache
hostmachine: XXXXX.kunstmaan.be
mysql:
user: root
password: XXXXXXXXX
postgresql:
user: postgres
password: XXXXXXXXX
debug: true
develmode: true
特殊骨架
SSL 骨架
使用 ssl
骨架可以通过 config.xml 配置 Apache 中的 SSL 设置。
您首先需要将 <item value="ssl"/>
添加到 config.xml 中的骨架。然后您需要将 <var name="project.sslConfig">
添加到 config.xml 以配置 SSL 设置。
您可以为每个环境指定不同的 SSL 配置。每个环境的语法相同
<var name="{environment}">
<dir value="{the location of the ssl files (cert, key, ca)}"/>
<certFile value="{the name of the cert file}"/>
<certKeyFile value="{the name of the key file}"/>
<caCertFile value="{the name of the ca cert file}"/>
</var>
示例(我们假设有三个环境(dev、staging、prod))。
<var name="project.sslConfig">
<var name="dev">
<dir value="/home/myproject/ssl/dev/"/>
<certFile value="myproject_dev_ssl.crt"/>
<certKeyFile value="myproject_dev_ssl.key"/>
<caCertFile value="myproject_dev_ssl.ca-bundle"/>
</var>
<var name="staging">
<dir value="/home/myproject/ssl/staging/"/>
<certFile value="myproject_staging_ssl.crt"/>
<certKeyFile value="myproject_staging_ssl.key"/>
<caCertFile value="myproject_staging_ssl.ca-bundle"/>
</var>
<var name="prod">
<dir value="/home/myproject/ssl/prod/"/>
<certFile value="myproject_prod_ssl.crt"/>
<certKeyFile value="myproject_prod_ssl.key"/>
<caCertFile value="myproject_prod_ssl.ca-bundle"/>
</var>
</var>
使用的 SSL 配置取决于您 skylab.yml 文件中的 env
值。在本地,您应该在您的 skylab.yml 配置文件中具有 env: dev
。如果您这样做,则在运行维护时,它将在 Apache 中添加 dev SSL 配置。
### Let's Encrypt 骨架 letsencrypt
骨架可以用于使用 Let's Encrypt 服务为您的网站生成 SSL 证书。
要启用 letsenecrypt 的使用,您必须将 <item value="letsenecrypt"/>
添加到 config.xml。
该骨架将为 project.url
和 project.aliases
中的所有别名生成 SSL 证书。
重要说明
- letsenecrypt 骨架仅在生产服务器上运行命令。
- 请确保 URL 解析到命令运行的 IP,否则将失败。
- 您可以使用
ssl
和letsencrypt
骨架一起使用,但是当启用这两个骨架时,您必须删除 prod ssl 配置。如果 prod ssl 配置可用,它将使用该配置而不是运行 letsencrypt。 - letsenecrypt 骨架还创建了一个 cronjob 以更新证书(例如,0 0 * * 0 letsencrypt --apache -n certonly -d myproject.com)
命令
NewProjectCommand
用法: php skylab.phar new [--hideLogo] [--no-interactive] [--] [<name>]
使用 new
命令创建新项目。它将设置目录结构并应用 "base" 框架,负责设置用户、权限和所有权。
php skylab.phar new
php skylab.phar new testproject
完整详情请见 doc/NewProjectCommand.md
FetchCommand
用法:php skylab.phar fetch [--hideLogo] [--no-interactive] [-l|--location [LOCATION]] [--no-database] [--] [<project>] [<host>]
fetch
命令从服务器获取 Skylab 项目并将其放置在您的计算机的正确位置。它还会删除数据库,所以如果您想在生产服务器上使用此命令进行迁移,请务必小心。
php skylab.phar fetch
# 将提示您输入要获取的项目和服务器 php skylab.phar fetch testproject server1
# 将从 server1 获取 testproject
完整详情请见 doc/FetchCommand.md
ShareCommand
用法:php skylab.phar share [--hideLogo] [--no-interactive]
share
命令将显示您所有本地安装的项目列表,以及 xip.io URL。
php skylab.phar share
# 将显示 xip.io 表
完整详情请见 doc/ShareCommand.md
SetPermissionsCommand
用法:php skylab.phar permissions [--hideLogo] [--no-interactive] [--] <name>
permissions
命令将修复项目的权限。
php skylab.phar permissions testproject
完整详情请见 doc/SetPermissionsCommand.md
MaintenanceCommand
用法:php skylab.phar maintenance [--hideLogo] [--no-interactive] [--quick]
maintenance
命令将运行项目上所有框架的维护命令。最值得注意的是,它将创建 Apache 配置文件并确保数据库可用。
php skylab.phar maintenance
完整详情请见 doc/MaintenanceCommand.md
BackupCommand
用法:php skylab.phar backup [--hideLogo] [--no-interactive] [--quick] [--] [<project>]
backup
命令将转储所有数据库并为一个或多个项目创建一个 tarball。
php skylab.phar backup # Will backup all projects
php skylab.phar backup myproject # Will backup the myproject project
php skylab.phar backup myproject --quick # Will backup the myproject project, but not create the tar file.
php skylab.phar backup myproject --quick --anonymize # Will backup the myproject project, but not create the tar file, and anonymize the database with the edyan/neuralizer package.
完整详情请见 doc/BackupCommand.md
RemoveProjectCommand
用法:php skylab.phar remove [--hideLogo] [--no-interactive] [--force] [--no-backup] [--] [<name>]
remove
命令将在创建备份后删除项目。
php skylab.phar remove testproject
# 将删除 testproject 项目 php skylab.phar remove testproject --force
# 将执行相同的操作,但不会询问您是否确定。
完整详情请见 doc/RemoveProjectCommand.md
ApplySkeletonCommand
用法:php skylab.phar apply [--hideLogo] [--no-interactive] [-l|--list] [--] [<project>] [<skeleton>]
apply
命令将应用框架及其所有依赖项到项目上。它将运行框架中的 "create" 方法来设置该框架的所有要求。
php skylab.phar apply -l
# 列出所有可用的框架 php skylab.phar apply
# 将提示您输入要应用的项目和框架 php skylab.phar apply testproject anacron
# 将将 anacron 框架应用到 testproject
完整详情请见 doc/ApplySkeletonCommand.md
SelfUpdateCommand
用法:php skylab.phar self-update [--hideLogo] [--no-interactive] [-d|--dev] [-N|--non-dev] [-p|--pre] [-s|--stable] [-r|--rollback] [-c|--check]
self-update
命令将检查是否发布了更新的 skylab.phar,并在必要时进行更新。
php skylab.phar self-update
完整详情请见 doc/SelfUpdateCommand.md
编译新版本
- 首先,确保一切正常工作,Travis测试为绿色
- 使用来自 git-extras 的
git changelog
生成更新后的变更日志 - 提交这个新的变更日志
- 从Github界面创建一个新版本,在描述中添加新的变更日志部分,并以 列表中的下一颗亮星 命名版本
- 下载 box.par 以创建新版本
- 使用 box.phar 执行 box.phar build -v 构建新版本。注意:确保你已经拉取了最新的标签!!
- 将新的phar文件添加到GitHub上的版本中
- 更新 packagist
修改文档
- 大多数文本位于
gen-doc
中,请在那里编辑你想要的内容。 - doc/ 中的所有内容都是生成的,同样,在 Commands 下的 README.md 中的所有内容也是生成的
- 运行
./gen-doc > README.md
以更新文档 - 提交一个Pull Request
贡献
- Fork Skylab
- 做一些事情,然后发送一个Pull Request。但请确保Travis是绿色的,并且你的代码已经通过php-cs-fixer运行过!
文档生成于 2017-12-19 12:42:37