Code Monkey home page Code Monkey logo

docs's Introduction

easyengine/docs

โš ๏ธ WIP: This repo is currently work in progress! ๐Ÿšง

The purpose of this repo is to hold EasyEngine v4 documentation as of now. Over the time, we hope to make all tutorials published on EasyEngine.io available here.

V4 Docs

EasyEngine v4 documentation is divided into two parts.

Commands reference

This part is automatically generated by parsing PHP docblock. Please do not edit markdown files in commands folder as they may get overwritten any time.

If you want to send a fix for a command documentation, the best way to do is send a pull request with changes to PHP docblock on its respective repo.

Alternatively, is to create a new issue in this repo with details such as:

  1. EE Command for which you are sending a fix
  2. Mention the wrong part (screenshot is also fine)
  3. Mention the correct part (optional)

Handbook

EasyEngine v4 has a lot to it. The docker magic, new filesystem layouts a lot more. This is a part which is independent of any command.

For now, we are creating issues labeled documentation for each such aspect which we feel needs documentation.

You can help in the following ways:

Write a new documentation

If you are familiar with EasyEngine v4

  1. Pick an issue labeled documentation.
  2. Please post a comment on the issue saying something like "working on this". So others will not pick the same issue.
  3. Fork this repo!
  4. Create a new markdown file for the issue in folder handbook/. Please avoid spaces in filename. Use - as a separator. Keep all characters lowercase.
  5. Once you are done writing markdown file, submit it via pull request (PR).

If for some reason, you can't send PR, you can write down documentation as comment on relevant issue. Please use markdown. We will copy your comment manually!

Update existing documentation

You can help with documentation update in two ways:

  1. English is not a primary language of any core team member. So if you can improve langauge of the documentation so it becomes easy to understand, that would be a great help.
  2. Send updates to improve accuracy, add more information or even fix typos!

Documentation Hosting

We are not using Github pages or any static site generator. Instead another team at rtCamp is working on a solution which will seamlessly publish these markdown files in a WordPress site as pages.

Their WordPress custom code will take care of all the bells & whistles a documentation sites need such as:

  • stylining (theming),
  • table of content
  • listing subpages
  • breadcrumb
  • search
  • related pages
  • meta data such as title, discription, slug

We will be open sourcing WordPress custom code also so that any other project which wish to make use of such documentation flow will benefit from this. We are using some codes from wp-cli. wp-cli project documenation is also built like this.

Once we have documentation site ready, we will add its URL here.

The good part is - we are writing in markdown files which if nothing else works (by Nov 15, 2018), can be quickly converted into Github Pages! ๐Ÿ˜‰

The proposed build process

  1. All EasyEngine comamnds repos and this docs repo will have CI/CD setup.
  2. Whenever something changes, a build process will run which will invoke a wp-cli command (WordPress custom code).
  3. That wp-cli command will take care of updating WordPress sites in appropriate way.

Legacy flow

The documentation is located in GitHub to enable a pull request-based editing workflow. Long-form documentation can be edited directly. Command pages are generated dynamically from the EasyEngine codebase using the ee handbook gen_commands series of commands. ee handbook gen-all will regenerate all of the command pages and handbook pages.

All documentation is imported automatically into docs.easyengine.io in a two step process:

  1. WordPress reads commands-manifest.json and handbook-manifest.json to understand all pages that need to be created.
  2. Each WordPress page has a markdown_source attribute specifying a Markdown file to be fetched, converted to HTML, and saved in the database.

For docs.easyengine.io, the import process is running a WP Cron job on every push to github repo.

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

Cron

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

Filesystem

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

Github Repos

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

Admin tools

List of admin tools
Dependencies
Usage tips

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

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.

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.

Site Structure

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

wp-cli

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

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.

Install

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

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

Mails

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

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.

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

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.