Giter Site home page Giter Site logo

regolith's Introduction

Regolith

Regolith is a WordPress installation template that employs best practices, but is also tailored for less demanding projects, and aims to automate as much maintenance as possible.

  • Organized file system layout.
    • WordPress is installed in a subfolder, and the content directory is separate from it.
    • Shell scripts, configuration files, docs, etc all live outside of the web root.
  • Designed to work with Apache and shared hosting (but mostly compatible with Nginx).
  • Version your custom code and configuration in Git.
    • Includes optional configuration and integration for several security and performance plugins/services.
    • Includes optional configuration for Multisite with domain mapping. Automatically loads site-specific mu-plugins.
  • Manage 3rd party plugin/theme dependencies with a simple text file and WP-CLI.
    • The list of dependencies is tracked in Git, but their code is not, so your repository stays lean and uncluttered.
  • Core/plugin/theme updates are installed automatically every hour (including major releases of Core).
  • Deploy to production with a simple shell script, which automatically backs up the database, pulls the latest Git commits, purges various caches, and runs smoke tests to catch fatal errors.
  • Send transactional emails via SMTP for better reliability.
  • Automatically backup production database on a customizable schedule, and before every deployment.
  • Run a script to import the production database and uploads into your local development environment. The local database is sanitized to remove passwords, email addresses, etc.
  • Outputs a content flag designed for external monitoring services.
  • Displays the current environment in the Admin Bar (i.e., development or production).

Check out the screenshots page to see some of the above features.

Documentation

regolith's People

Contributors

iandunn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

regolith's Issues

Update to Deployer v5 and change docs

Deployer 5 is now using "hosts" instead of servers. It also now supports relative symlinks but not in a great way as it just checks if it can use ln --relative as far as I can tell. The current regolith implementation of relative symlinks is better in my view as it works on more shared hosts.

Also the Deployer wrapper included with regolith tripped me up a bit as it uses /usr/bin/php all the time, whereas I had my path set to use my MAMP php and its php.ini . Also it seems Deployer likes to use dep as the binary name and v5 can be called anywhere in the project so there may not be much need for the wrapper anymore.

I am working on the move to v5 and will probably put a PR in.

deploy:install_dependencies doesn't download the WP Core

In deploy:shared an empty /web/wordpress folder is created.

This is before deploy:install_dependencies where install_dependencies.sh checks and conditionally installs core based on the existence of the /web/wordpress folder. Because of the previous task creating the folder to make it available to symlink in to shared, core is never installed.

I'm not 100% sure why web/wordpress is included as a shared folder in $other_shared around line 55 in regolith-recipe.php. It could be removed from here if not needed to solve the issue, or install_dependancies.sh can be modified to check for the presence of another folder inside /web/wordpress such as wp-admin as the deploy:shared task is just making an empty folder.

Add docs and recipe for git submodules

Using git submodules for plugins and themes not on the wordpress.org repo is a great workflow for us and solves the issue of things not being on the .org repo quite nicely.

However there aren't any docs for this just now really, barring something in the TODO.md.

Also the deployer recipe can probably be adjusted a bit as the submodules are not in the .gitignore so are not symlinked as shared:

Global REGOLITH_ROOT_DIR not defined for use in regolith-recipe.php

When running deployer deploy my fresh install was complaining about not being able to find .gitignore to get the dependancies.

Seems to be this line:

$potential_dependencies = file( REGOLITH_ROOT_DIR . '/.gitignore', FILE_IGNORE_NEW_LINES );

Changing to this sorts it out:
$potential_dependencies = file( dirname( dirname( __DIR__ ) ) . '/.gitignore', FILE_IGNORE_NEW_LINES );

Not 100% sure if this is related to 048806b

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.