Skip to content

Commit

Permalink
Merge branch 'release/v0.10.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
ambroisemaupate committed Aug 4, 2015
2 parents d91dbef + d5c26c1 commit bc57b4b
Show file tree
Hide file tree
Showing 86 changed files with 849 additions and 290 deletions.
8 changes: 4 additions & 4 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
os.chdir(cwd)

# Remove theme demo docs avoid PDF and ePub issues
shutil.rmtree('_themes/roadiz_rtd_theme/demo_docs', ignore_errors=True)
# shutil.rmtree('_themes/roadiz_rtd_theme/demo_docs', ignore_errors=True)

sys.path.append(os.path.abspath('_themes/roadiz_rtd_theme'))

Expand Down Expand Up @@ -90,9 +90,9 @@
# built documents.
#
# The short X.Y version.
version = '0.9.0'
version = '0.10.0'
# The full version, including alpha/beta/rc tags.
release = 'alpha 0.9.0'
release = 'alpha 0.10.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -314,7 +314,7 @@

# Bibliographic Dublin Core info.
epub_title = u'Roadiz'
epub_author = u'Ambroise Maupate, Maxime Constantinian, Julien Blanchet'
epub_author = u'Ambroise Maupate, Maxime Constantinian, Julien Blanchet, Thomas Aufresne'
epub_publisher = u'REZO ZERO'
epub_copyright = u'2015, Ambroise Maupate & Julien Blanchet'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ If you want to contribute to Roadiz project by reporting issues or hacking code,
Reporting issues
----------------

When you encounter an issue with Roadiz we’d love to hear about it.
Because thank to you we can make the most awesome and stable CMS!
When you encounter an issue with Roadiz we would love to hear about it.
Because thanks to you, we can make the most awesome and stable CMS!
If you submit a bug report please include all informations available to you, here are some things you can do:

- Try to simplify the things you are doing until getting a minimal set of actions reproducing the problem.
- Do not forget to join a screenshot or a trace of your error.

Running the tests
Running tests
-----------------

If you developed a new feature or simply want to try out an installation of Roadiz you can run the unit-tests.
If you developed a new feature or simply want to try out an installation of Roadiz you can run unit-tests.
For this you will need to install the testing framework, this can easily be done using:

.. code-block:: console
Expand Down Expand Up @@ -50,4 +50,4 @@ You can copy and paste the following command-lines to check easily:
-p ./
Please take those rules into account, we aim to have a clean codebase. A coherent codestyle will contribute to Roadiz stability.
Your code will be checked when we’ll consider your pull requests.
Your code will be checked when we will be considering your pull requests.
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,45 @@
Getting started
===============

Roadiz is a polymorphic CMS based on a node system which can handle many types of services.
It’s based on *Symfony* components, *Doctrine ORM*, *Twig* and *Pimple* for maximum performances and security.
Roadiz is a polymorphic CMS based on a node system that can handle many types of services.
It is based on *Symfony* components, *Doctrine ORM*, *Twig* and *Pimple* for maximum performances and security.

Roadiz node system allows you to create your data schema and to organise your content as you want.
Roadiz node system allows you to create your data schema and to organize your content as you want.
We designed it to break technical constraints when you create tailor-made websites architectures and layouts.

Imagine you need to display your graphic design portfolio and… sell some t-shirts. With Roadiz you’ll be able
to create your content forms from scratch and choose the right fields you need. Images and texts for your projects.
Imagine you need to display your graphic design portfolio and… sell some t-shirts. With Roadiz you will be able to create your content forms from scratch and choose the right fields you need. Images and texts for your projects.
Images, texts, prices and even geolocation for your products. That’s why it’s called *polymorphic*.

.. _philosophy:

Philosophy
----------

When you’ll discover Roadiz back-office interface, you’ll notice that there aren’t any Rich text editor also called
*WYSIWYG* editors. We made the choice to promote *Markdown* syntax in order to focus on content hierarchy and quality
instead of content style. Our guideline is to preserve and respect the webdesigners and graphic designers work.
When discovering Roadiz back-office interface, you will notice that there aren’t any Rich text editor also called *WYSIWYG* editors. We made the choice to promote *Markdown* syntax in order to focus on content hierarchy and quality
instead of content style. Our guideline is to preserve and respect the webdesigners' and graphic designers' work.

You’ll see that we built Roadiz as webdesigners and for webdesigners. It will allow you to create really quickly website
prototypes using *Twig* templates. But as the same time you will be able to get the power of the *Symfony* and *Doctrine* core components
to build complex applications.

We also decided to be really strict about Plugins and other addons modules. How many of yours do not upgrade your Wordpress
website because of plugins dependencies? We decided not to build Roadiz around a “Plugin” system but a **Theme system**, as every Roadiz extensions will have to serve a theme’s features. Themes will enable you to create awesome website layouts but also great back-office additions for your customers. You will be able to centralize all your custom code at one place, so you can use a versioning tool such as Git.
We also decided to be really strict about Plugins and other addons modules. How many of yours do not upgrade your Wordpress website because of plugin dependencies? We decided not to build Roadiz around a “Plugin” system but a **Theme system**, as every Roadiz extensions will have to serve a theme’s features. Themes will enable you to create awesome website layouts but also great back-office additions for your customers. You will be able to centralize all your custom code in one place, so you can use a versioning tool such as Git.

Roadiz theme system will allow you to daisy-chain themes and dispatch features on multiple code. As our CMS is built on Pimple dependency injection container, Roadiz can merge every available themes on the same website. For example, you will be able to create one portfolio theme using Node-system Urls and unlimited static themes which will use a static routing scheme, for a Forum or a Blog or both! Theme system will even allow you to create additional Doctrine entities and extend our back-office. Yes, just sat on your theme code and you can extend Roadiz to create a manager for your Forum. Cherry on the cake, you can assign each theme to a specific domain name to create mobile or media specific layouts. Believe me, this cake is not a lie.
Roadiz theme system will allow you to daisy-chain themes and dispatch features on multiple code. As our CMS is built on Pimple dependency injection container, Roadiz can merge every available themes on the same website. For example, you will be able to create one portfolio theme using Node-system Urls and unlimited static themes which will use a static routing scheme, for a Forum or a Blog or even both! Theme system will even allow you to create additional Doctrine entities and extend our back-office. Yes, just sit on your theme code and you can extend Roadiz to create a manager for your Forum. Cherry on the cake, you can assign each theme to a specific domain name to create mobile or media specific layouts. Believe me, this cake is not a lie.

We want Roadiz to be a great tool for designers and developers to build strong experiences together. But we thought about editors too! Roadiz back-office theme “Rozier” has been designed to offer every back-users a great writing and administrating experience.
We want Roadiz to be a great tool for designers and developers to build strong web experiences together. But we thought of editors too! Roadiz back-office theme “Rozier” has been designed to offer every back-users a great writing and administrating experience.

CMS Structure
-------------

* ``bin/`` : Contains the Roadiz CLI executable
* ``cache/`` : Every caches files for *Twig* templates and *SLIR* images (this folder must be writable for PHP)
* ``cache/`` : Every cache file for *Twig* templates and `Intervention Request <https://github.com/roadiz/roadiz/releases>`_ images (this folder must be writable for PHP)
* ``conf/`` : Your setup configuration file(s) (this folder must be writable for PHP)
* ``files/`` : Documents and fonts files root (this folder must be writable for PHP)
* ``files/`` : Documents and font files root (this folder must be writable for PHP)
* ``gen-src/`` : Generated PHP code for Doctrine and your Node-types entities (this folder must be writable for PHP)
* ``samples/`` : This folder contains useful configuration and example files for Apache or Nginx webservers
* ``src/`` : Roadiz CMS logic and core source code
* ``tests/`` : PHP Unit tests root
* ``themes/`` : Contains your themes and systems themes such as *Rozier* and *Install*
* ``themes/`` : Contains your themes and system themes such as *Rozier* and *Install*
* ``vendor/`` : Dependencies folder managed by *Composer*
* ``logs/`` : *Monolog* logs folder

Expand All @@ -54,16 +51,13 @@ CMS Structure
Requirements
------------

Roadiz is a web application running with PHP. It requires an HTTP server for static assets
and SSH with out/ingoing allowed connections.
Roadiz is a web application running with PHP. It requires an HTTP server for static assets and SSH with out/ingoing allowed connections.

.. note::
If you are using a *shared hosting plan*, make sure that your server’s SSH connection
allows external connections. You can verify with a simple ``ping google.com``.
If you are using a *shared hosting plan*, make sure that your server’s SSH connection allows external connections. You can verify with a simple ``ping google.com``.
If you get request timeouts, your hosting provider might be blocking your SSH connectivity.
You should consider using at least a VPS-like hosting.
If you really need to setup Roadiz on a simple shared-hosting plan, we encourage you to
make the install on your own computer and to send it with SFTP/FTP (it will be long) or *rsync* it.
If you really need to setup Roadiz on a simple shared-hosting plan, we encourage you to install it on your own computer and send it with SFTP/FTP (it might take a long time) or *rsync* it.

Here is a short summary of mandatory elements before installing Roadiz:

Expand All @@ -73,7 +67,7 @@ Here is a short summary of mandatory elements before installing Roadiz:
* ``php5-intl`` extension
* ``php5-curl`` extension
* PHP cache (APC/XCache) + Var cache (strongly recommended)
* MySQL/PostgreSQL or SQLite database (do not forget to install ``php5-xxxsql`` extension according to your database driver flavor)
* MariaDB/MySQL/PostgreSQL or SQLite database (do not forget to install ``php5-xxxsql`` extension according to your database driver flavor)
* Zip/Unzip
* cUrl
* Composer
Expand All @@ -82,52 +76,49 @@ Here is a short summary of mandatory elements before installing Roadiz:
For Nginx users
^^^^^^^^^^^^^^^

If you are using Nginx, you don’t have to activate any extensions.
If you are using Nginx, you don’t have to enable any extensions.
You only need to create your *virtual host* using our example file ``/samples/nginx.conf``.

For Apache users
^^^^^^^^^^^^^^^^

If you are using *Apache* do not forget to activate these mods:
If you are using *Apache* do not forget to enable these mods:

* ``mod_rewrite``: for activating Roadiz front-controller system.
* ``mod_expires``: to activate http cache headers on static assets.
* ``mod_rewrite``: enabling Roadiz front-controller system.
* ``mod_expires``: enabling http cache headers on static assets.

And do not use built-in ``mod_php``, prefer *PHP-FPM* ;-)

Then use ``/samples/apache.conf`` template to create your *virtual host* configuration file. It shows how to set rewrite and
secure private folders from being view from public visitors.
secure private folders from being viewed from public visitors.

Installation
------------

Roadiz can be installed in two ways:
Roadiz can be installed in two different ways:

* The Good one : using **Git** and **Composer** (needs a SSH connnexion to your server)
* The Good one : using **Git** and **Composer** (needs an SSH connnexion to your server)
* The Easy one : using a bundled Zip archive with composer dependencies.

Using Git (recommended)
^^^^^^^^^^^^^^^^^^^^^^^

First you’ll have to setup properly your server virtual host. You can either use *Apache* or *Nginx* with Roadiz.
First you will have to setup properly your server virtual host. You can either use *Apache* or *Nginx* with Roadiz.
An example virtual host is provided in source-code for each server:

* ``samples/apache.conf``
* ``samples/nginx.conf``

You just have to customize your root path and server name. *Nginx* has built-in support for *php-fpm* whereas *Apache*
must be configured with *fastcgi* to do the same.
You just have to customize your root path and server name. *Nginx* has built-in support for *php-fpm* whereas *Apache* must be configured with *fastcgi* to do the same.

These example files will provide basic security configuration for private access folders:
such as ``conf`` or ``files/fonts`` folders. They will also configure your server to redirect all non static requests
to Roadiz *front-controller*.

.. note::
**For shared hosting plan owners**, if you can’t modify your virtual host definition.
Don’t panic, Roadiz has a built-in CLI command to generate ``.htaccess`` files for you.
Just execute ``bin/roadiz config --generate-htaccess`` after you cloned Roadiz sources and run Composer.
In the other hand, if you are using *Apache* and have access to your virtual host, we strongly recommend you
to use our sample configuration and to disable ``.htaccess`` files: performances are at their best
**For shared hosting plan owners**, if you can’t modify your virtual host definition, don’t panic, Roadiz has a built-in CLI command to generate ``.htaccess`` files for you.
Just execute ``bin/roadiz config --generate-htaccess`` after cloning Roadiz sources and running Composer.
In the other hand, if you are using *Apache* and have access to your virtual host, we strongly recommend you to use our sample configuration and disable ``.htaccess`` files: performances are at their best
without them.

When your HTTP server is ready to go, download *Roadiz* latest version using Git:
Expand All @@ -137,8 +128,7 @@ When your HTTP server is ready to go, download *Roadiz* latest version using Git
cd your/webroot/folder;
git clone git@github.com:roadiz/roadiz.git ./;
Use `Composer <https://getcomposer.org/doc/00-intro.md#globally>`_ to download Roadiz dependencies
and to build PHP class autolader.
Use `Composer <https://getcomposer.org/doc/00-intro.md#globally>`_ to download Roadiz dependencies and to build PHP class autolader.

.. code-block:: bash
Expand All @@ -150,7 +140,7 @@ Then copy `conf/config.default.yml` file to `conf/config.yml`.
cp conf/config.default.yml conf/config.yml;
When your virtual host is ready, just go to your website to begin with the setup assistant.
When your virtual host is ready, just go to your website to start with the setup assistant.

.. note::
Once your website will be ready to be pushed to production you will be able to
Expand All @@ -163,11 +153,10 @@ This method must be used if you have to work on your own computer with softwares
if you need to setup your website on a shared hosting plan without any SSH or Git.

If you downloaded Roadiz on the `Github release <https://github.com/roadiz/roadiz/releases>`_ page or
`directly from our website <http://www.roadiz.io>`_, you should get a bundled
Zip containing every Roadiz files and Composer dependencies. We even have generated ``.htaccess`` files
and a ``conf/config.yml`` file for you.
`directly from our website <http://www.roadiz.io>`_, you should get a bundled Zip containing every
Roadiz files and Composer dependencies. We even generated ``.htaccess`` files and a ``conf/config.yml`` file for you.

If you can unzip directly on your server, that’s cool. It will save you time,
If you can unzip directly on your server, that is cool. It will save you time,
if not, just unzip it on your desktop and upload files to your server via FTP.

.. warning::
Expand All @@ -180,6 +169,6 @@ tool with your Internet browser by typing your new website address. If you are w
with MAMP, WAMP or other easy-server tool, just type ``http://localhost:8888/roadiz-folder`` in your browser (the port may change
according to your server settings).

You have to understand that using Zip archive way with FTP transfers will make updates Roadiz more difficult to be done.
You have to understand that using Zip archive way with FTP transfers will make updating Roadiz harder.
If you have a dedicated server or a VPS, we highly recommend you to use Git and Composer to install Roadiz. That way,
you will be able to upgrade Roadiz just by typing ``git pull origin master``.
12 changes: 12 additions & 0 deletions developer/first-steps/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
===========
First steps
===========

.. toctree::
:maxdepth: 2

getting_started
manual_config
upgrading
moving
contributing

0 comments on commit bc57b4b

Please sign in to comment.