guysolamour/laravel-deploy

基于 ansible & ansistrano 构建的 Laravel 部署系统

v1.3 2024-02-17 09:50 UTC

This package is auto-updated.

Last update: 2024-09-17 11:06:38 UTC


README

Packagist Packagist Packagist

此包允许您通过安装网站运行所需的各种工具并自动化部署过程,在专用服务器或 VPS 上部署网站。

先决条件

  1. 适用于 Unix 类型系统(MacOs 和 Linux)
  2. Ubuntu Server 操作系统
  3. bash 版本 >= 4(您可以通过 bash --version 检查)否则更新 bash shell
  4. 安装 ansible (https://docs.ansible.org.cn/ansible/latest/installation_guide/intro_installation.html)
  5. 安装 anistrano (https://ansistrano.com)

安装

通过 composer 安装

composer require guysolamour/laravel-deploy

准备服务器

1- 连接到服务器

ssh root@000.000.000.000
# 000.000.000.000 must be changed with your server ip address

2- 创建一个运行任务的用户

sudo useradd user -s /bin/bash -d /home/user -m -G sudo
# user must be changed with your own user

3- 将创建的用户添加到 sudoers 文件中

sudo visudo
# Append user ALL=(ALL) NOPASSWD:ALL at the end of line
# user must be changed with your own user

4- 在远程服务器上安装 python

sudo apt install -y python-apt

5- 从远程机器断开连接并复制主机机器的 ssh 密钥给创建的用户

ssh-copy-id -i ~/.ssh/id_rsa.pub user@000.000.000.000
# If you dont have generate ssh key before use sshkeygen command to generate newly key
# 000.000.000.000 must be changed with your server ip address

脚手架

运行脚手架命令以生成必要的基文件。此命令必须只执行一次,并在最开始时执行。

./vendor/bin/deploy scaffold --host 000.001.002.003 --domain domain.com --application appname

不同步骤

1- 生成包含密码的文件

./vendor/bin/deploy password:create
# Enter the password that will be used for decryption
# This password must be saved in clear in the .vaultpass file
# This file must not be versioned.

2- 添加这些变量并使用正确数据

# The deployement user password. The user created on the server.
vault_user_password: "password"

# The deployment database password
vault_database_password: "password"

# The database root user password
vault_database_root_password: "password"

# The administrator password for admin panel in local
vault_admin_local_password: "password"

# The administrator password for admin panel in production
vault_admin_production_password: "password"

# The ftp password for backup. Can be blank.
vault_ftp_password: "password"

# Copy and paste the output of *php artisan key:generate --show command
vault_app_key: "base64:appkey"

3- 修改包含密码的文件

./vendor/bin/deploy password:edit

4- 查看文件内容

./vendor/bin/deploy password:view

4- 删除文件内容

./vendor/bin/deploy password:delete

可用命令

  1. help
  2. scaffold
  3. configure:server
  4. password:create
  5. password:view
  6. password:edit
  7. password:delete
  8. run
  9. rollback
  10. db:seed
  11. db:deploy
  12. db:dump
  13. db:run
  14. db:import
  15. storage:dump
  16. storage:import
  17. storage:deploy
  18. exec
  19. dkim
  20. clean
  21. ssh
  22. env:deploy

帮助

获取更多信息

./vendor/bin/deploy help

配置服务器

运行 configure:server 命令以在 VPS 上安装 Laravel 项目所需的所有软件(php、mysql、nginx ...)。

./vendor/bin/deploy configure:server

部署

./vendor/bin/deploy run

回滚

./vendor/bin/deploy rollback

数据库初始化

./vendor/bin/deploy db:seed

数据库部署

将本地数据库复制到远程数据库

./vendor/bin/deploy db:deploy

数据库导入

将远程数据库复制到本地数据库

./vendor/bin/deploy db:import

数据库转储

转储本地数据库

./vendor/bin/deploy db:dump

存储部署

将本地存储文件夹复制到远程存储文件夹

./vendor/bin/deploy storage:deploy

存储导入

将远程存储文件夹复制到本地存储文件夹

./vendor/bin/deploy storage:import

执行

在线运行 shell 命令

./vendor/bin/deploy exec "pwd"

Dkim

显示 DKIM 公钥

./vendor/bin/deploy dkim

清理

删除临时文件

./vendor/bin/deploy clean

SSH

SSH 进入远程项目

./vendor/bin/deploy ssh

如果您发现任何安全问题,请通过电子邮件 rolandassale@gmail.com 联系,而不是使用问题跟踪器。

致谢

此包是通过 melihovv/laravel-package-generator 的帮助启动的。