Giter Club home page Giter Club logo

docs's Introduction

EasyEngine Logo

EasyEngine v4

Build ๐Ÿ”จ + Test ๐Ÿ‘จโ€๐Ÿ”ง Latest Stable Version License

EasyEngine makes it greatly easy to manage nginx, a fast web-server software that consumes little memory when handling increasing volumes of concurrent users.

Requirements

  • Docker
  • Docker-Compose
  • PHP CLI (>=7.1)
  • PHP Modules - curl, sqlite3, pcntl

Installing

Linux

For Linux, we have created an installer script that will install all the dependencies for you. We have tested this on Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04 and Debian 8, Debian 10.

wget -qO ee https://rt.cx/ee4 && sudo bash ee

Even if the script doesn't work for your distribution, you can manually install the dependencies and then run the following commands to install EasyEngine

wget -O /usr/local/bin/ee https://raw.githubusercontent.com/EasyEngine/easyengine-builds/master/phar/easyengine.phar
chmod +x /usr/local/bin/ee

Tab completions

EasyEngine also comes with a tab completion script for Bash and ZSH. Just download ee-completion.bash and source it from ~/.bash_profile:

source /FULL/PATH/TO/ee-completion.bash

Don't forget to run source ~/.bash_profile afterwards.

If using zsh for your shell, you may need to load and start bashcompinit before sourcing. Put the following in your .zshrc:

autoload bashcompinit
bashcompinit
source /FULL/PATH/TO/ee-completion.bash

Usage

To get started with EasyEngine and create a wordpress site, run

ee site create example.com --type=wp

Need a wordpress site with caching? Try

ee site create example.com --type=wp --cache

Need a wordpress multi-site with page cache?

ee site create example.com --type=wp --mu=subdir --cache

Need a plain and simple html site?

ee site create example.com

Want to play around with your new site?

ee shell example.com

Want to know more? Checkout readme of these commands -

Note: โš ๏ธ EasyEngine will currently only run with root privileges. You can run ee help, ee help site and ee help site create --type=wp to get all the details about the various commands and subcommands that you can run.

Development

Development of easyengine is done entirely on GitHub.

We've used wp-cli framework as a base and built EasyEngine on top of it.

This repo contains the main core of easyengine (the framework). All top level commands(except ee cli) i.e. ee site, ee shell have their own repos.

Currently, we have the following commands which are bundled by default in EasyEngine:

In future, the community will be able to make their own packages and commands!

Contributing

We warmheartedly welcome all contributions however and in whatever capacity you can either through Pull Requests or by reporting Issues. You can contribute here or in any of the above mentioned commands repo.

Donations

PayPal-Donate

Does this interest you?

Handcrafted Enterprise WordPress Solutions by rtCamp

docs's People

Contributors

kirtangajjar avatar mbtamuli avatar mrrobot47 avatar nitun avatar rahul286 avatar rahulsprajapati avatar sagarnasit avatar traviscibot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

wp-cli

  • wp-cli origin
  • changes
  • current status
  • how we try to keep two project in sync

Solution for Cannot create/start proxy container

Issues like: https://community.easyengine.io/t/cannot-create-start-proxy-container-please-make-sure-port-80-and-443-are-free-only-2-sites-are-on-server/11818 got reported after EasyEngine v4.0.8 update. Which switched to using global-services with docker-compose generated names post this update.

This issue is very specific on to docker-compose version 1.23.0 and 1.23.1, version 1.23.0 had a naming scheme update: the old scheme project>_<service>_<index> was updated to
<project>_<service>_<index>_<slug>, where <slug> is a randomly-generated
hexadecimal string.

This change is present for people who had installed EasyEngine between 31st October 2018 to 29th November 2018. Which crosses over with the time line of rc and stable release.

On 29th November this change was reverted back in docker-compose version 1.23.2.

A blogpost needs to written stating this issue and manual steps to resolve them need to be give. Due to this no existing sites got affected, only creation of new sites got hampered.

Steps to resolve this issue: (To be provided in blog for users):

  1. Update docker-compose to latest version.
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  1. Restart global-services:
cd /opt/easyengine/services && \
docker-compose down && \
docker-compose up -d 
  1. Restart sites:
for site in $(ee site list --format=text); do ee site disable $site && ee site enable $site; done

New site creation should start after this.

Admin tools

List of admin tools
Dependencies
Usage tips

A request cycle

How a client browser request processed inside EasyEngine. Use Draw.io. Show differences for different site type. For WordPress, show full page cache variation. So total 4 images.

Rough outline to doc automatation

Final docs might look like:

Option - 1

https://easyengine.io/docs/ <= a landing page, manually created using Gutenberg! โค๏ธ๐Ÿค˜
https://easyengine.io/docs/commands/ <= auto-generated based on php docblocks
https://easyengine.io/docs/handbook/ <= auto-generated based on markdown files here
https://easyengine.io/docs/v3/ <= v3 docs will be moved here manually

docs itself will be a CPT in WordPress.

Option - 2

https://easyengine.io/docs/ <= a landing page, manually created using Gutenberg! โค๏ธ๐Ÿค˜
https://easyengine.io/commands/ <= auto-generated based on php docblocks
https://easyengine.io//handbook/ <= auto-generated based on markdown files here

v3 docs will live at a current place for now.

/docs/ will be a normal page
/command/ and /handbook/ will be two CPTs in WordPress.

Install

How to install EasyEngine. Requirement. Troubleshooting for common errors that user may run into.

Github Repos

Covers the number of repos responsible for the EasyEngine v4 project. URL and Purpose purpose of each repo in a tabular format.

Site Structure

Filesystem structure for each site. Config and log locations for different site type.

Document frequently asked questions

Following are the most frequently asked questions in EE4 setup and usage and have a need to be documented as soon as possible:

  1. How to use wp-cli in EasyEngine sites. (People don't know ee shell. Need to document this and it's importance.)
  2. How to modify and update php ini.
  3. How to update nginx configuration.

Custom command development

How developers can create custom commands. May include:

  • Command structure
  • Starter/skeleton package
  • installing own commands
  • distributing own commands to others
  • some notes about site type command
  • what if command needs additional docker images

Cron

  • how EE manages cron?
  • how to add own cron job?
  • for a site?
  • global cron?

Mails

  • What does mailhog command do?
  • What does postfix work?
  • Mailhog & postfix together?
  • How do I use AWS SES?

Filesystem

Covers files and folders created by EasyEngine. Path and purpose of each.

Migration from EasyEngine V3

@kirtangajjar this should be documented as a separate doc "Migration from V3" in handbook

Refer EasyEngine/easyengine#783

Checklist:

  • Migration script for v3 -> v4 - remote/local other options
  • Breaking changes - removed features/commands.
  • Breaking changes - Command whose syntax is changed
  • Similar stuff - commands/features which are carried forward without change
  • V3 Roadmap - how we plan to support/discontinue v3

Update Docs

Checklist to update existing docs

  • If somebody wants to install ee3, there should be a doc with clear instructions. We can also setup rt.cx/ee3 URL.
  • Migration guide from ee3 > ee4
  • HHVM deprecation #778
  • Syntax change for --key=value #778
  • Mail stack support drop (or moved to package). #778
  • Remove experimental status #779
  • Update README.md in GitHub Project.
  • Update EasyEngine Homepage

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.