webid / radis
Radis - 几秒内部署应用程序
Requires
- php: ^7.4|^8.0
- laravel/forge-sdk: ^3.10
Requires (Dev)
- nunomaduro/larastan: ^0.6.13
- orchestra/testbench: ^6.0
- phpstan/phpstan: ^0.12.70
- phpunit/phpunit: ^9.3
README
先决条件
- PHP 7.4 或更高版本
安装
使用 composer 需求此包。建议只为开发需求安装此包。
composer require webid/radis --dev
Laravel 使用包自动发现,因此不需要手动添加 ServiceProvider。
使用 publish 命令发布包配置和模板
php artisan vendor:publish --provider="WebId\Radis\RadisProvider"
配置
1. 配置
您需要首先配置环境变量以在 config/radis.php
中访问 Forge。
首先,在此处创建一个新的令牌: https://forge.laravel.net.cn/user/profile#/api 并将生成的复制品粘贴到 .env
文件中
RADIS_TOKEN="my-brand-new-forge-token"
return [ 'forge' => [ 'token' => env('RADIS_TOKEN'), 'server_name' => env('RADIS_SERVER_NAME'), 'server_domain' => env('RADIS_SERVER_DOMAIN'), 'site_php_version' => env('RADIS_SITE_VERSION', 'php80'), 'database_password' => env('RADIS_DATABASE_PASSWORD', 'root'), 'lets_encrypt_type' => env('RADIS_LETS_ENCRYPT_TYPE'), 'lets_encrypt_api_key' => env('RADIS_LETS_ENCRYPT_API_KEY'), 'timeout' => env('RADIS_FORGE_TIMEOUT'), ], 'git_repository' => env('RADIS_GIT_REPOSITORY') ];
lets_encrypt_type
和 lets_encrypt_api_key
不是必需的,但对于自动 HTTPS 是必需的。例如在 digitalocean 上(https://docs.digitalocean.com/reference/api/create-personal-access-token/)
RADIS_LETS_ENCRYPT_TYPE=digitalocean RADIS_LETS_ENCRYPT_API_KEY=EXEMPLE98edb566f9917d797fba2c0b05e2f2064ad7771422740181561322961
通配符证书
由于 Let's Encrypt 关于在注册域名上创建过多证书的限制(每周 50 个)(50 per week),如果在 Forge 的父站点上设置了通配符证书(通配符证书设置),则将自动用于审查应用程序,而不是创建一个新的特定证书。
2. .env
模板
之后,您需要通过修改模板 stubs/env.stub
来适应您审查应用程序所需的 .env 文件。
不要更改以 STUB_
开头的常量,它们将根据您的配置自动替换,或者根据 artisan 命令提供的参数替换。
3. 部署脚本模板
最后,您需要根据您的项目在模板 stubs/deployScript.stub
中调整 Forge 部署脚本。
用法
创建审查应用程序
⚠️ 如果已经存在具有此名称的审查应用程序,则将销毁并重新创建
php artisan radis:create mySiteName myGitBranch php artisan radis:create mySiteName myGitBranch customDatabaseName
更新现有审查应用程序
这将仅启动部署脚本
php artisan radis:update mySiteName
销毁审查应用程序
⚠️ 这将删除数据库及其相关用户数据库
php artisan radis:destroy mySiteName
更新 .env
文件
php artisan radis:env mySiteName php artisan radis:env mySiteName customDatabaseName
更新部署脚本
ℹ️ 这将更新脚本但不运行它
php artisan radis:deploy-script mySiteName myGitBranch