Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kaisermann/arke

A static/WordPress website setup-deploy tool
https://github.com/kaisermann/arke

deploy deployment project setup static-site wordpress

Last synced: about 2 months ago
JSON representation

A static/WordPress website setup-deploy tool

Awesome Lists containing this project

README

        

# Arke documentation

## Requirements
* [Fabric](http://www.fabfile.org/)
* [Jinja2](http://jinja.pocoo.org/)
* [pathspec](https://pypi.python.org/pypi/pathspec)
* A [SSH Config](http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/)
* `unzip` CLI command

## Usage

```
fab {environment/scope} {task} [-u {user}] [-p {password}]

Remote-only:

fab {environment} setup
fab {environment} deploy
fab {environment} deploy:git
fab {environment} deploy:git,branchName
fab {environment} checkRequisites
fab {environment} fixPermissions
fab {environment} cleanup_releases
fab {environment} service_restart
fab {environment} service_reload

Project-environment-only:

fab project setup
fab project bundle
fab project install
fab project reset
fab project import_db
```

## Documentation

### `arke.json` example

```json
{
"project": {
"repo": "[email protected]:user/repo.git",
"type": "bedrock-wordpress",
"fileStructure": {
"shared": [
["robots.txt"],
[".htaccess"],
[".env"],
["web/app/uploads", "uploads"]
]
},
"cmds": {
"install": [
["", "composer install"],
["web/app/themes/selene", "composer install"]
],
"afterDeploy": [
["", "rm -rf fabfile.py arke.json readme.md .editorconfig"],
["", "composer install"],
["web/app/themes/selene", "composer install"]
],
},
"maxReleases": 5
},
"hosts": {
"production": {
"hosts": ["127.0.0.1"],
"name": "example.staging.com",
"projectDir": "/var/www",
"projectPublicDir": "",
"webRootDir": "web",
"hostnames": "example.staging.com www.example.staging.com",
"webServerUser": "www-data",
"webServerGroup": "www-data",
"services": {
"toRestart": ["php5-fpm"],
"toReload": ["nginx"]
}
}
}
}
```

#### Project configuration



Field


Description



repo
The project's repository url


type
The project's type.



Available options: html, php, simple-wordpress, bedrock-wordpress


fileStructure.shared
A list of symbolic links to be created after each deploy. You can set a different name for the link by passing a second string to the link array. See example above.



Syntax: [projectPath, sharedPath]



Examples:



['robots.txt'] creates a link on the project's root directory to a robots.txt file on the root of the project's shared folder.




["web/app/uploads", "uploads"] creates a links on the projects web/app/ directory to a uploads directory on the root of the project's shared folder.



cmds.install
A list of commands to be executed when 'fab local install' is executed.



Syntax: [executionPath, commandString]



Examples:



["", "composer install"] runs a composer install on the project's root.



["web/app/themes/selene", "composer install"] runs a composer install on the web/app/themes/selene directory.



cmds.afterDeploy
A list of commands to be executed after each successfull deploy. Can use sudo.



Syntax: [executionPath, commandString]



Examples:



["", "rm -rf fabfile.py arke.json readme.md .editorconfig"] runs a rm command on the project's root.



["web/app/themes/selene", "composer install"] runs a composer install on the web/app/themes/selene directory.



maxReleases
Number of releases to keep on the remote server.

#### Host(s) configuration



Field


Description



hosts
A list of the server ips/hostnames


name
The project name. Used to create the server folder.


projectDir
The project folder directory.



Example: /var/www



projectPublicDir
The project public html directory.



Relative to {projectDir}/{name}.



webRootDir
The project website directory.



Relative to {projectDir}/{name}/{projectPublicDir}. Can be an empty string.


hostnames
The project hostnames that nginx will listen to. Can be overwritten in @task {environment}.


webServerUser
User for nginx/apache (usually www-data)


webServerGroup
User for nginx/apache (usually www-data)


services.toRestart
Server's services to restart after each deploy.


services.toReload
Server's services to reload after each deploy