Ftp-Deployment Extension for Nette.
$ composer require minetro/deployer-extension
extensions:
deployer: Minetro\Deployer\DI\DeployerExtension
Detailed configuration is described here ftp-deployment.
parameters:
deploy:
protocol: ftp # ftp|ftps
user: user1
password: mysecretpwd
scheme: example.com # example.com/www
deployer:
config:
mode: run
logFile: %appDir%/log/deployer.log
tempDir: %appDir%/temp
colors: off
# User specific variables
userdata:
# Plugins specification (see more in PLUGINS.md)
plugins:
# Web sections
sections:
web1:
remote: %deploy.protocol%://%deploy.user%:%deploy.password%@%deploy.scheme%
local: %wwwDir%
testMode: false
allowdelete: on
passiveMode: on
preprocess: off
ignore:
# Common
- .git*
- .idea*
- .bowerrc
- composer.*
- bower.json
- gulpfile.js
- package.json
# Application
- /app/config/config.local.neon
- /bin
- /tests
- /node_modules
- /log/*
- "!/log/.htaccess"
- /temp/*
- "!/temp/.htaccess"
# Public
- /www/*.scss
- /www/*.less
- /www/temp
- /www/uploaded
- /www/stats
before:
#- [@\TestBeforeListener, onBefore]
after:
#- [@\TestAfterListener, onAfter]
purge:
- temp/cache
- temp/myfolder
deployer:
section:
example.com:
...
test.cz:
...
You can register service which implement AfterListener
or BeforeListener
.
Example you can find here.
Or in special PLUGINS.md
readme file.
See example scripts here.
Config is automatic passed via extension.
# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->deploy();
You have to create your configuration by yourself.
# Create config
$config = new Config();
$config->setLogFile(..);
$config->setMode(..);
$section = new Section();
$section->setName(..);
$config->addSection($section);
# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->manualDeploy($config);
# Inject Deploy Manager
use Minetro\Deployer;
/** @var Deployer\Manager @inject */
public $dm;
public function actionDeploy()
{
$this->dm->manulDeploy($config);
}
Prepared deploy script (deploy.php & deploy)
Place it by yourself (for example root/deploy.php). Be careful about local
and tempDir
, there depend on location.
require __DIR__ . '/vendor/autoload.php';
# Configurator
$configurator = new Nette\Configurator;
$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->register();
# Configs
$configurator->addConfig(__DIR__ . '/config/config.neon');
# Create DI Container
$container = $configurator->createContainer();
# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->deploy();