Giter Club home page Giter Club logo

xibo-cms's Introduction

Introduction

Xibo - Digital Signage - http://www.xibo.org.uk Copyright (C) 2006-2017 Daniel Garner and Contributors.

This is the development branch and represents the next generation of the Xibo CMS.

Licence

Xibo is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

Xibo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with Xibo. If not, see http://www.gnu.org/licenses/.

Installation

Installing an official release is described in the manual and in the official release notes of each release.

Developing

** Please only install a Development environment if you intend make code changes to Xibo. Installing from the repository is not suitable for a production installation. **

Xibo uses Vagrant and Docker to ensure all contributers have a repeatable development environment which is easy to get up and running.

The very same Docker containers are used in our recommended end user installation to promote consistency from development to deployment.

To these ends this repository includes a Vagrantfile to spin up an environment.

Prerequisites

Clone the repository

Create a folder in your development workspace and clone the repository. If you intend to make changes and submit pull requests please Fork us first and create a new branch.

git clone [email protected]:xibosignage/xibo-cms.git xibo-cms

Install dependencies

Change into your new folder

cd xibo-cms

Install the external dependencies with Composer. Your local machine is unlikely to have the necessary dependencies to install the packages, hence the --ignore switch.

php composer.phar install --ignore-platform-reqs

Start Vagrant

vagrant up

Installation Wizard

Visit Xibo in the browser and follow the installation instructions. The CMS will be accessible at localhost. When asked for a database you should select to create a new database and enter these details:

  • Host: mysql
  • Admin User: root
  • Admin Password: root

When asked for a library location you should enter

  • /var/www/cms/library

Under the hood

Vagrant has created a virtual machine, installed Docker on it and then provisioned 3 Docker containers for Xibo to use. There is a container for the CMS web server, a container for the mysql database and a container for XMR.

Your cloned repository is mapped into the Vagrant VM under /data/web and the Docker container mounts this as /var/www/xibo. Changes you make to the source code on your host machine are immediately reflected in the nested VM and Docker container.

Database data is maintained in the guest VM and is persisted when the VM is power cycled (vagrant halt / vagrant up). For convenience the Docker MySQL container exposes mysql on port 3306 to the Vagrant VM. You can therefore connect to MySQL over SSH using 127.0.0.1 and the port/key file shown by vagrant ssh-config.

Application Structure

The Xibo CMS now follows MVC and is PSR-4 compliant.

The folder structure is as follows:

  • /bin - CLI entry point
  • /custom - A location for custom files, such as modules and middleware. Autoloaded as the \Xibo\Custom namespace
  • /install - Files related to install/upgrade
  • /lib/Controller - Controllers
  • /lib/Entity - Models
  • /lib/Exception - Exceptions
  • /lib/Factory - Factories for creating Models
  • /lib/Helper - Helper Classes
  • /lib/Middleware - Slim Application Middleware
  • /lib/Storage - Storage Interfaces
  • /lib/Widget - Controllers for Modules
  • /lib/Xmds - Xibo Media Distribution SOAP Service
  • /locale - Translations
  • /modules - Twig Views for Modules and other Module resources
  • /tests - PHPUnit Tests
  • /views - Twig Views
  • /web - Web Document Root
  • /web/index.php - Entry point for the WEB GUI
  • /web/api/index.php - Entry point for the API
  • /web/maintenance/index.php - Entry point for Maintenance
  • /web/modules - Web Serviceable Resources for modules
  • /web/theme/default - Web Portal Default Theme Files
  • /web/theme/compact - Web Portal Compact Menu Theme Override
  • /web/theme/custom - User Themes (overrides files in default theme)
  • /web/xmds.php - XMDS SOAP Service

Contributing

The standard licence for Xibo is the AGPLv3. For more information please see CONTRIBUTING.md.

Repository

This folder contains the Xibo CMS application.

Reporting Problems

Support requests can be reported on the Xibo Community Forum. Verified, re-producable bugs with this repository can be reported in the Xibo parent repository.

xibo-cms's People

Contributors

dasgarner avatar petermis avatar maurofmferrao avatar alexharrington avatar andyrogers2012 avatar laercionit avatar speedy-gonzalez avatar dnlferro avatar ajiwo avatar freibuis avatar maxcodefranco avatar nagyrobi avatar fogsag avatar timoa avatar medusadelft avatar michaelhoughton avatar pitbulk avatar fenrig avatar tarabass avatar jspreddy avatar tkimuranet avatar

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.