Skip to content

jmusal/trellis

This branch is 1327 commits behind roots/trellis:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fc44e94 · Mar 29, 2016
Nov 2, 2015
Mar 28, 2016
Mar 29, 2016
Mar 29, 2016
Feb 5, 2016
Mar 29, 2016
Feb 18, 2016
Mar 11, 2016
Jan 13, 2016
Mar 29, 2016
Oct 26, 2015
Apr 16, 2014
Mar 22, 2016
Mar 25, 2016
Dec 28, 2015
Dec 28, 2015
Mar 29, 2016
Jan 17, 2016
Mar 3, 2016
Dec 28, 2015
Mar 22, 2016
Dec 30, 2015
Mar 6, 2016

Repository files navigation

Trellis

Build Status

Ansible playbooks for setting up a LEMP stack for WordPress.

  • Local development environment with Vagrant
  • High-performance production servers
  • One-command deploys for your Bedrock-based WordPress sites

What's included

Trellis will configure a server with the following and more:

  • Ubuntu 14.04 Trusty LTS
  • Nginx (with optional FastCGI micro-caching)
  • PHP 7.0
  • MariaDB (a drop-in MySQL replacement)
  • SSL support (scores an A+ on the Qualys SSL Labs Test)
  • Let's Encrypt integration for free SSL certificates
  • HTTP/2 support (requires SSL)
  • Composer
  • WP-CLI
  • sSMTP (mail delivery)
  • MailHog
  • Memcached
  • Fail2ban
  • ferm

Requirements

Make sure all dependencies have been installed before moving on:

Installation

The recommended directory structure for a Trellis project looks like:

example.com/      # → Root folder for the project
├── trellis/      # → Your clone of this repository
└── site/         # → A Bedrock-based WordPress site
    └── web/
        ├── app/  # → WordPress content directory (themes, plugins, etc.)
        └── wp/   # → WordPress core (don't touch!)

See a complete working example in the roots-example-project.com repo.

  1. Create a new project directory: $ mkdir example.com && cd example.com
  2. Clone Trellis: $ git clone --depth=1 git@github.com:roots/trellis.git && rm -rf trellis/.git
  3. Clone Bedrock: $ git clone --depth=1 git@github.com:roots/bedrock.git site && rm -rf site/.git
  4. Install the Ansible Galaxy roles: $ cd trellis && ansible-galaxy install -r requirements.yml

Windows user? Read the Windows docs for slightly different installation instructions. VirtualBox is known to have poor performance in Windows — use VMware or see some possible solutions.

Documentation

Trellis documentation is available at https://roots.io/trellis/docs/.

Local development setup

  1. Configure your WordPress sites in group_vars/development/wordpress_sites.yml and in group_vars/development/vault.yml
  2. Run vagrant up

Read the local development docs for more information.

Remote server setup (staging/production)

A base Ubuntu 14.04 server is required for setting up remote servers.

  1. Configure your WordPress sites in group_vars/<environment>/wordpress_sites.yml and in group_vars/<environment>/vault.yml (see the Vault docs for how to encrypt files containing passwords)
  2. Add your server IP/hostnames to hosts/<environment>
  3. Specify public SSH keys for users in group_vars/all/users.yml (see the SSH Keys docs)
  4. Run ansible-playbook server.yml -e env=<environment> to provision the server

Read the remote server docs for more information.

Deploying to remote servers

  1. Add the repo (Git URL) of your Bedrock WordPress project in the corresponding group_vars/<environment>/wordpress_sites.yml file
  2. Set the branch you want to deploy
  3. Run ./deploy.sh <environment> <site name>
  4. To rollback a deploy, run ansible-playbook rollback.yml -e "site=<site name> env=<environment>"

Read the deploys docs for more information.

Contributing

Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Community

Keep track of development and community news.

About

Ansible playbooks for a WordPress LEMP stack.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 92.1%
  • Shell 7.9%