Giter VIP home page Giter VIP logo

bootstrap-cms's Introduction

Bootstrap CMS

Build Status Coverage Status Software License Latest Version Scrutinizer Quality Score SensioLabsInsight

This Code Is Licensed Under The GNU AGPLv3

I'd appreciate it if you'd leave my name in the footer unless you have changed my source significantly. If you do feel you have changed it significantly, I'd still appreciate some kind of link back, and remember that attribution is still required as stated in the license. Feel free to checkout the screenshots!

What Is Bootstrap CMS?

Bootstrap CMS is a PHP CMS powered by Laravel 4.1 and Sentry 2.1.

System Requirements

Bootstrap CMS was designed to run on a Linux machine with PHP 5.5 and MySQL 5.5.

  • PHP 5.4.7+ or HHVM 3.0+.
  • You will need Composer installed to load the dependencies of Bootstrap CMS.
  • You will need to configure the site in the app/config folder before production.
  • Some features require a cache server like Redis and a queuing server like Beanstalkd.

Installation

Please check the system requirements before installing Bootstrap CMS.

  1. You may install by cloning from github, or via composer.
  • Github: git clone [email protected]:GrahamCampbell/Bootstrap-CMS.git
  • Composer: composer create-project graham-campbell/bootstrap-cms --prefer-dist -s dev
  1. See the Laravel Queuing readme for extra requirements before continuing.
  2. From a command line open in the folder, run composer install.
  3. Enter your database details into app/config/databse.php.
  4. Run php artisan app:install to setup and seed your database.
  5. You will need to enter your mail server details into app/config/mail.php.
  • You can disable verification emails in app/config/packages/graham-campbell/navigation/config.php
  • Mail is still required for other functions like password resets and the contact form
  • You must set the contact email in app/config/packages/graham-campbell/contact/config.php
  • I'd recommend queuing email sending for greater performance (see below)
  1. Finally, setup an Apache VirtualHost to point to the "public" folder.
  • For development, you can simply run php artisan serve
  1. Additionally, you may to setup some of Bootstrap CMS's other features (see below).
  • Some things, like caching and queuing, are disabled out of the box
  • This is to allow Bootstrap CMS to work with minimal setup
  • Please note that queuing is required in order to use the cron functionality which can do things like notify users of upcoming events, or send out weekly activity digests
  • Also note, without caching asset generation will cause page load delay - to reduce this, I have turned off minification in app/config/packages/lightgear/asset/config.php by default

Setting Up Queuing

Bootstrap CMS provides queuing functionality, and when enabled, requires 3 separate queues.

  • One queue (the mail queue) will be used for sending emails
  • One queue (the cron queue) will be used for all cron jobs
  • One queue (the default queue) will be used for all other jobs
  • These queues must be separate to avoid unexpected functionality

Note that beanstalkd requires a local server, while sqs and iron are cloud based. Also note that sqs and redis support is not 100% complete and is mainly untested.

For most uses, sync queuing will actually by sufficient because the queuing package will execute the jobs after the response has been sent (on application shutdown), so the end user will see no slowdown, we just won't be able to re-entry failed jobs.

  1. Choose your poison - I'd recommend IronMQ.
  2. Enter your queuing server details into app/config/queue.php.
  3. You can also set a separate mail queue in app/config/mail.php.
  4. For IronMQ, you can run the command php artisan queue:iron, and the php artisan cron:start.
  5. You can find out more about queuing by heading over to the Laravel Docs.

Setting Up Caching

Bootstrap CMS provides caching functionality, and when enabled, requires a caching server. Note that caching will not work with Laravel's file or database cache drivers.

  1. Choose your poison - I'd recommend Redis.
  2. Enter your cache server details into app/config/cache.php.
  3. You will probably want to enabled minification in app/config/packages/lightgear/asset/config.php.
  4. Setting the driver to array will effectively disable caching if you don't want the overhead.

Setting Up Themes

Bootstrap CMS also ships with 17 themes, 15 from Bootswatch.

  1. You can set your theme in app/config/theme.php.
  2. You can also set your nav bar style in app/config/theme.php.
  3. After making theme changes, you will have to run php artisan app:update.

Setting Up Google Analytics

Bootstrap CMS natively supports Google Analytics.

  1. Setup a web property on Google Analytics.
  2. Enter your tracking id into app/config/analytics.php.
  3. Enable Google Analytics in app/config/analytics.php.

Setting Up CloudFlare Analytics

Bootstrap CMS can read CloudFlare analytic data through a package.

  1. Follow the install instructions for my Laravel CloudFlare package.
  2. Remember to add your credentials to app/config/packages/graham-campbell/cloudflare-api/config.php.
  3. Bootstrap CMS will auto-detect the package, only allow admin access, and add links to the navigation bar.

Usage

There is currently no usage documentation besides the API Documentation for Bootstrap CMS.

Updating Your Fork

Before submitting a pull request, you should ensure that your fork is up to date.

You may fork Bootstrap CMS:

git remote add upstream git://github.com/GrahamCampbell/Bootstrap-CMS.git

The first command is only necessary the first time. If you have issues merging, you will need to get a merge tool such as P4Merge.

You can then update the branch:

git pull --rebase upstream master
git push --force origin <branch_name>

Once it is set up, run git mergetool. Once all conflicts are fixed, run git rebase --continue, and git push --force origin <branch_name>.

Pull Requests

Please review these guidelines before submitting any pull requests.

  • When submitting bug fixes, check if a maintenance branch exists for an older series, then pull against that older branch if the bug is present in it.
  • Before sending a pull request for a new feature, you should first create an issue with [Proposal] in the title.
  • Please follow the PSR-2 Coding Style and PHP-FIG Naming Conventions.

License

GNU AFFERO GENERAL PUBLIC LICENSE

Bootstrap CMS Is A PHP CMS Powered By Laravel And Sentry 2.1 Copyright (C) 2013-2014 Graham Campbell

This program 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 (at your option) any later version.

This program 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 this program. If not, see http://www.gnu.org/licenses/.

bootstrap-cms's People

Contributors

bitdeli-chef avatar grahamcampbell avatar rverrips avatar

Watchers

 avatar  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.