{"id":18293178,"url":"https://github.com/getolympus/olympus","last_synced_at":"2025-04-05T11:30:54.718Z","repository":{"id":3393197,"uuid":"49335457","full_name":"GetOlympus/Olympus","owner":"GetOlympus","description":"Ὄλυμπος — **START HERE** — The Olympus framework, a simple, easy to use, secured and powerful framework to deploy and work with WordPress — An ideal way to build enterprise solutions with WordPress.","archived":false,"fork":false,"pushed_at":"2024-06-23T08:39:22.000Z","size":336,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-21T03:21:43.723Z","etag":null,"topics":["capistrano","composer","container","dionysos","hades","hera","hermes","hestia","olympus","php","wordpress","wordpress-plugin","wordpress-theme","wordpress-website","zeus"],"latest_commit_sha":null,"homepage":"https://getolympus.me","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GetOlympus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-09T18:10:49.000Z","updated_at":"2024-06-23T08:39:25.000Z","dependencies_parsed_at":"2023-11-08T10:41:39.229Z","dependency_job_id":"27349fd2-7884-42ca-b9e2-bc8ce7eadc00","html_url":"https://github.com/GetOlympus/Olympus","commit_stats":{"total_commits":188,"total_committers":5,"mean_commits":37.6,"dds":0.473404255319149,"last_synced_commit":"8f30912e692e0a3e3a12740282509e1c59517c6b"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetOlympus%2FOlympus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetOlympus%2FOlympus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetOlympus%2FOlympus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetOlympus%2FOlympus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GetOlympus","download_url":"https://codeload.github.com/GetOlympus/Olympus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247330472,"owners_count":20921636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capistrano","composer","container","dionysos","hades","hera","hermes","hestia","olympus","php","wordpress","wordpress-plugin","wordpress-theme","wordpress-website","zeus"],"created_at":"2024-11-05T14:23:06.166Z","updated_at":"2025-04-05T11:30:54.377Z","avatar_url":"https://github.com/GetOlympus.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/GetOlympus/olympus/blob/master/web/apple-touch-icon.png\" align=\"left\" /\u003e\n\n# Olympus\n\n[![Olympus Component][olympus-image]][olympus-url]\n[![CodeFactor Grade][codefactor-image]][codefactor-url]\n[![Packagist Version][packagist-image]][packagist-url]\n![PHP Version][php-image]\n[![Travis Status][travis-image]][travis-url]\n[![MIT][license-image]][license-blob]\n\n\u003e The **Olympus** package is the **easiest and secure** way to install **WordPress** websites with the powerfull **Zeus Core** framework.\n\u003e All WordPress optimizations are listed and enabled here. You can use theme easily.\n\n```sh\n# Quick install ~ See #install-olympus-in-2-steps section for details\ngit clone https://github.com/GetOlympus/Olympus.git projectname \u0026\u0026 cd $_\ncomposer install\n```\n\n---\n\n**Table of Contents**\n\n- [What is Olympus?](#what-is-olympus)\n- [Features](#features)\n- [Get started](#get-started)\n  - [Install Olympus in 2 steps](#install-olympus-in-2-steps)\n  - [Update Vhost](#update-vhost)\n  - [Build database](#build-database)\n- [Get started with Capistrano](#get-started-with-capistrano)\n  - [Build scripts](#build-scripts)\n  - [Update Vhost with Capistrano](#update-vhost-with-capistrano)\n  - [Build database with Capistrano](#build-database-with-capistrano)\n- [Advanced details](#advanced-details)\n  - [Application Structure](#application-structure)\n  - [Configuration files](#configuration-files)\n  - [Variables definitions](#variables-definitions)\n  - [Log levels](#log-levels)\n- [Release History](#release-history)\n- [Authors and Copyright](#authors-and-copyright)\n- [Contributing](#contributing)\n\n---\n\n## What is Olympus?\n\nThe **Olympus** package is a set of line codes that provides a secure WordPress application structure with better tools to developers. It is aimed to WordPress developers of any levels.\n\nIn order to provide those tools, the **Olympus** package uses dependency manager and remote server automation tool such as **Composer** and **Capistrano**. A bunch of auto-generated files and auto-loaded plugins make your WordPress website more secure and faster.\n\n---\n\n## Features\n\n+ Better and secure folder structure\n+ Autoloader for mu-plugins\n+ Auto-generated configuration files with `composer install`\n+ Dependency management with [**Composer**](https://getcomposer.org)\n+ Remote server automation tool with [**Capistrano**](http://capistranorb.com/) and [**Olympus Hestia Capistrano**](https://github.com/GetOlympus/Hestia-Capistrano)\n\n---\n\n## Get started\n\n### Install Olympus in 2 steps\n\n**1st step**, clone the repository (use SSH key if you want on git@github.com:GetOlympus/Olympus.git):\n\n```bash\n# Change \"projectname\" to your root website folder name\ngit clone https://github.com/GetOlympus/Olympus.git projectname \u0026\u0026 cd $_\n```\n\n**2nd step**, install package vendors via **Composer** and set your parameters when it's asked:  \n_See [this documentation](https://getcomposer.org/doc/00-intro.md) to know how to install Composer_\n\n```bash\ncomposer install\n```\n\n### Update Vhost\n\nThis is quite simple: make the `web/` folder as your docroot.  \nThe `web/index.php` file will bootstrap WordPress with all your configuration files.  \nRestart your server and That's all folkes.\n\n### Build database\n\nGo to your website homepage URL to launch your WordPress install.\n\n---\n\n## Get started with Capistrano\n\n\u003e Capistrano is a remote server automation tool.  \n\u003e It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows.\n\nYou can find all details on [**Capistrano website**](https://capistranorb.com).\n\n### Build scripts\n\nYou'll need to create your deployments scripts for all your environments. These scripts are written in Ruby programming language.  \nThe **Olympus** package provides you 2 examples you can easily copy/paste in the `app/deploy/stages/` folder:\n\n```bash\n# You can find all explanations as comments in the `app/deploy/stages/staging.rb.dist` file.\ncp app/deploy/stages/production.rb.dist app/deploy/stages/production.rb\ncp app/deploy/stages/staging.rb.dist app/deploy/stages/staging.rb\n```\n\nFeel free to read the `README.md` file of the [**Olympus Hestia Capistrano**](https://github.com/GetOlympus/Hestia-Capistrano) repository to know more.\n\n### Update Vhost with Capistrano\n\nAs seen on the [\"Update Vhost\"](#update-vhost) section, you'll need to set the `current/web/` folder as your docroot this time.  \nRestart your server and That's all folkes.\n\n### Build database with Capistrano\n\nGo to your website homepage URL to launch your WordPress website install.\n\n---\n\n## Advanced details\n\n### Application Structure\n\nThe **Olympus** package is structured as this:\n\n```bash\n+-- app/                        # ~ main application folder\n|  +-- cache/                   # stores cache files generated by WordPress plugins and Olympus components\n|  +-- components/              # stores custom components used to autoload mu-plugins and error logger\n   |  +-- Autoloader\n   |  +-- Error\n   |  +-- Handler\n|  +-- config/                  # stores custom configuration files\n   |  +-- env.php.dist\n   |  +-- opts.php.dist\n   |  +-- own.php.dist\n   |  +-- salt.php.dist\n|  +-- deploy/                  # stores Capistrano workflows deployments\n   |  +-- stages/\n      |  +-- production.rb.dist\n      |  +-- staging.rb.dist\n   |  +-- config.rb.dist\n|  +-- environments/            # stores WordPress constants definitions\n   |  +-- cache.php\n   |  +-- configuration.php\n   |  +-- cookies.php\n   |  +-- database.php\n   |  +-- debug.php\n   |  +-- multisite.php\n   |  +-- website.php\n|  +-- logs/                    # stores log file generated by Monolog package\n|  +-- app.php\n|  +-- autoload.php\n|  +-- environment.php\n|  +-- error.php\n+-- vendor/                     # ~ vendors downloaded with composer\n+-- web/                        # ~ web server doc root\n|  +-- cms/                     # stores default WordPress installation\n|  +-- resources/               # stores assets files expected by Olympus bundles\n   |  +-- dist/\n|  +-- statics/                 # stores default \"wp-content\" folder contents\n   |  +-- languages/\n   |  +-- mu-plugins/\n   |  +-- plugins/\n   |  +-- themes/\n   |  +-- uploads/\n   |  +-- advanced-cache.php\n|  +-- .htaccess.dist\n|  +-- constants.php            # defines default Olympus package constants\n|  +-- favicon.ico              # custom favicon.ico made by anischouk.com\n|  +-- index.php                # ~ main file, bootstraps WordPress\n|  +-- robots.txt.dist\n|  +-- wp-config.php\n|  +-- xmlrpc.php\n+-- .gitattributes\n+-- .gitignore\n+-- .travis.yml\n+-- Capfile\n+-- CHANGELOG.md\n+-- composer.json\n+-- Gemfile\n+-- LICENCE\n+-- phpcs.xml\n+-- README.md\n+-- wp-cli.yml\n```\n\n### Configuration files\n\nGo to your `app/config/` folder and make sure to find:\n+ `env.php`, contains WordPress website environment configuration\n+ `own.php`, a simple blank PHP file you can fill with your own constants definitions\n+ `salt.php`, contains WordPress authentication unique keys and salts\n\nAn other file you can create if needed is:\n+ `opts.php`, contains WordPress constants overrides. Simply copy the `opts.php.dist` file to `opts.php` and edit it.  \n**Be carefull** with this file: you can change your WordPress core functions  \nSee [Variables definitions](#variables-definitions) to know more about this `opts.php` file contents.\n\n### Variables definitions\n\n**Configuration section**, sets memory limit, some security and features options:\n\n| Variable               | Type    | Default value | Description                                                   |\n| ---------------------- | ------- | ------------- | ------------------------------------------------------------- |\n| `wp_memory_limit`      | String  | `'128M'`      | frontend PHP `memory_limit`                                   |\n| `wp_max_memory_limit`  | String  | `'256M'`      | backend PHP `memory_limit`                                    |\n| `autosave_interval`    | Integer | `60`          | interval in seconds between 2 autosaves                       |\n| `wp_cron_lock_timeout` | Integer | `60`          | interval in seconds to unlock cron tasks                      |\n| `media_trash`          | Boolean | `true`        | enable or not trash in media page                             |\n| `disallow_file_mods`   | Boolean | `false`       | allow users to update core, themes or plugins                 |\n| `image_edit_overwrite` | Boolean | `false`       | allow editing images to replace the originals                 |\n| `enforce_gzip`         | Boolean | `false`       | enforce GZIP encoding                                         |\n| `fs_method`            | String  | `false`       | FS method: `'direct'`, `'ssh2'`, `'ftpext'` or `'ftpsockets'` |\n| `fs_chmod_dir`         | Integer | `0755`        | Change mode on directories                                    |\n| `fs_chmod_file`        | Integer | `0644`        | Change mode on files                                          |\n| `wp_temp_dir`          | String  | `''`          | Temp directory ~ We recommand to leave this empty             |\n\n**Cookies section**, sets all cookies names.  \nIn these examples, you can replace:\n- `olympus` by the result of `md5('olympus')`\n- `domaintld` by the result of `md5('https://www.domain.tld/cms/')`\n\n| Variable               | Type    | Default value                       | Description                 |\n| ---------------------- | ------- | ----------------------------------- | --------------------------- |\n| `cookiehash`           | String  | `'domaintld'`                       | current domain cookie hash  |\n| `user_cookie`          | String  | `'olympusu_domaintld'`              | user cookie hash            |\n| `pass_cookie`          | String  | `'olympusp_domaintld'`              | password cookie hash        |\n| `auth_cookie`          | String  | `'olympusa_domaintld'`              | auth cookie hash            |\n| `secure_auth_cookie`   | String  | `'olympuss_domaintld'`              | secure auth cookie hash     |\n| `logged_in_cookie`     | String  | `'olympusl_domaintld'`              | logged in cookie hash       |\n| `recovery_mode_cookie` | String  | `'olympusr_domaintld'`              | recovery mode cookie hash   |\n| `cookiepath`           | String  | `'www.domain.tld'`                  | home cookie hash            |\n| `sitecookiepath`       | String  | `'www.domain.tld/cms/'`             | site cookie hash            |\n| `admin_cookie_path`    | String  | `'www.domain.tld/cms/wp-admin/'`    | admin panel cookie hash     |\n| `plugins_cookie_path`  | String  | `'www.domain.tld/statics/plugins/'` | plugins url cookie hash     |\n| `cookie_domain`        | Boolean | `false`                             | enable or not cookie domain |\n| `test_cookie`          | String  | `'olympusis_trying'`                | testing cookie hash         |\n\n**Debug section**, sets all debug options:\n\n| Variable              | Type    | Default value | Description                                |\n| --------------------- | ------- | ------------- | ------------------------------------------ |\n| `concatenate_scripts` | Boolean | `false`       | enable or not scripts concatenation        |\n| `compress_scripts`    | Boolean | `false`       | enable or not scripts compression          |\n| `compress_css`        | Boolean | `false`       | enable or not stylesheets compressions     |\n| `wp_sandbox_scraping` | Boolean | `true`        | turn off WSOD default protection           |\n| `error_level`         | Integer | `200`         | error level, see [Log levels](#log-levels) |\n\n**Multisite section**, sets default current site definitions in multisite case\n\n| Variable               | Type    | Default value      | Description                       |\n| ---------------------- | ------- | ------------------ | --------------------------------- |\n| `subdomain_install`    | Boolean | `true`             | use or not sub domain display     |\n| `domain_current_site`  | String  | `'www.domain.tld'` | url to the current (main) website |\n| `path_current_site`    | String  | `'/cms/'`          | path to current (main) website    |\n| `site_id_current_site` | Integer | `1`                | site id of the main website       |\n| `blog_id_current_site` | Integer | `1`                | blog id of the main website       |\n\n**Website section**, sets all statics folder names:\n\n| Variable          | Type    | Default value                                  | Description                       |\n| ----------------- | ------- | ---------------------------------------------- | --------------------------------- |\n| `wp_content_dir`  | String  | `'/path/to/web_docroot/statics/'`              | path to your `statics` folder     |\n| `wp_content_url`  | String  | `'https://www.domain.tld/statics/'`            | url to your `statics` folder      |\n| `contentdir`      | String  | `'../statics'`                                 | path from ABSPATH to `statics`    |\n| `wpmu_plugin_dir` | String  | `'/path/to/web_docroot/statics/mu-plugins/'`   | path to your `mu-plugins` folder  |\n| `wpmu_plugin_dir` | String  | `'https://www.domain.tld/statics/mu-plugins/'` | url to your `mu-plugins` folder   |\n| `muplugindir`     | String  | `'../statics/mu-plugins'`                      | path from ABSPATH to `mu-plugins` |\n| `wp_plugin_dir`   | String  | `'/path/to/web_docroot/statics/plugins/'`      | path to your `plugins` folder     |\n| `wp_plugin_url`   | String  | `'https://www.domain.tld/statics/plugins/'`    | url to your `plugins` folder      |\n| `plugindir`       | String  | `'../statics/plugins'`                         | path from ABSPATH to `plugins`    |\n| `wp_theme_dir`    | String  | `'/path/to/web_docroot/statics/themes/'`       | path to your `themes` folder      |\n| `wp_theme_url`    | String  | `'https://www.domain.tld/statics/themes/'`     | url to your `themes` folder       |\n| `themedir`        | String  | `'../statics/themes'`                          | path from ABSPATH to `themes`     |\n\n### Log levels\n\n* `100` Detailed debug information.\n* `200` Interesting events, like User logs in, SQL logs.\n* `250` Uncommon events.\n* `300` Exceptional occurrences that are not errors, like use of deprecated APIs, poor use of an API, etc.\n* `400` Runtime errors.\n* `500` Critical conditions.\n* `550` Action must be taken immediately.\n* `600` Urgent alert.\n\n---\n\n## Release History\n\nSee [**CHANGELOG.md**][changelog-blob] for all details.\n\n---\n\n## Contributing\n\n1. Fork it (\u003chttps://github.com/GetOlympus/Olympus/fork\u003e)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\n\n---\n\n**Built with ♥ by [Achraf Chouk](https://github.com/crewstyle \"Achraf Chouk\") ~ (c) since a long time.**  \n**Logo design made lovely by [Anis Chouk](https://anischouk.com/ \"Anis Chouk\")**\n\n\u003c!-- links \u0026 imgs dfn's --\u003e\n[olympus-image]: https://img.shields.io/badge/for-Olympus-44cc11.svg?style=flat-square\n[olympus-url]: https://github.com/GetOlympus\n[changelog-blob]: https://github.com/GetOlympus/Olympus/blob/master/CHANGELOG.md\n[codefactor-image]: https://www.codefactor.io/repository/github/getolympus/olympus/badge?style=flat-square\n[codefactor-url]: https://www.codefactor.io/repository/github/getolympus/olympus\n[license-blob]: https://github.com/GetOlympus/Olympus/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-MIT_License-blue.svg?style=flat-square\n[packagist-image]: https://img.shields.io/packagist/v/getolympus/olympus.svg?style=flat-square\n[packagist-url]: https://packagist.org/packages/getolympus/olympus\n[php-image]: https://img.shields.io/travis/php-v/GetOlympus/Olympus.svg?style=flat-square\n[travis-image]: https://img.shields.io/travis/GetOlympus/Olympus/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/GetOlympus/Olympus","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetolympus%2Folympus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetolympus%2Folympus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetolympus%2Folympus/lists"}