PHP Other
Latest commit ea7de09 Oct 13, 2017 @fquffio fquffio Merge pull request #1355 from bedita/feature/v4/multi-project-urls
Multi project urls on same instance using BEDITA_BASE_URL
Failed to load latest commit information.
.github [minor] chore: minor desc improvements [ci skip] Jul 31, 2017
bin feat: update to cakephp/app 3.5 Sep 12, 2017
config chore: minor changes on environment sample [ci skip] Oct 6, 2017
logs chore: update `.gitattributes` and `.gitignore` Mar 3, 2016
plugins/BEdita feat: enable multi project urls on same instance via `BEDITA_BASE_URL… Oct 5, 2017
src feat: update to cakephp/app 3.5 Sep 12, 2017
tests feat: update to cakephp/app 3.5 Sep 12, 2017
tmp [minor] chore: add `tmp` folder to repo Mar 3, 2016
vendor chore: update `.gitattributes` and `.gitignore` Mar 3, 2016
webroot feat: update to cakephp/app 3.5 Sep 12, 2017
.codeclimate.yml chore: CodeClimate, baby! Jul 15, 2017
.dockerignore fix: fix `.dockerignore` Aug 3, 2017
.editorconfig [minor] chore: update `.editorconfig` settings Mar 3, 2016
.gitattributes chore: update `.gitattributes` for `git archive` command Aug 1, 2017
.gitignore chore: git ignore config/environment.php Oct 6, 2017
.heroku_apache.conf [minor] chore: enable CORS on Heroku Sep 6, 2017
.htaccess #947 chore: update app for 3.3.x Aug 5, 2016
.mailmap [minor] chore: add `.mailmap` to consolidate contributions stats May 13, 2017
.scrutinizer.yml fix: scrutinizer config, codesniffer removal May 17, 2017
.travis.yml [minor] chore: super secret heroku admin credentials Sep 6, 2017 [minor] chore: update ChangeLog - prepare for 4.0.0-alpha2 release [c… Sep 4, 2017
COPYING chore: [BE4] initial commit Mar 3, 2016
Dockerfile feat: CORS Headers added to .htaccess Sep 2, 2017
LICENSE.LGPL chore: [BE4] initial commit Mar 3, 2016
Makefile chore: restore `bedita` as owner Sep 28, 2017
Procfile [minor] chore: enable CORS on Heroku Sep 6, 2017 [minor] chore: gitter chat badge added [ci skip] Oct 2, 2017
composer.json chore: update cakephp required in composer.json Sep 12, 2017
docker-compose.yml #1312 chore: add Docker Compose template Aug 30, 2017 feat: add admin user and api key seeds Sep 2, 2017
index.php feat: update to cakephp/app 3.5 Sep 12, 2017
phpunit.xml.dist [minor] chore: process uncovered files from whitelist to solve segfault Aug 29, 2017

BEdita, a back-end API

Gitter Build Status Code Coverage Scrutinizer Code Quality Code Climate Dependency Status

BEdita 4 is a ready to use back-end API to handle the data of your mobile, IoT, web and desktop applications. It's also an extensible framework to build your custom back-end API via plugins.

It provides a complete content management solution with:

  • an HTTP driven server application with a complete REST API to model, create, modify and retrieve data
  • a default admin web application (not yet available)

BEdita 4 is built with CakePHP 3 and uses relational DBMS like MySQL, Postgres or SQLite in conjunction with (optional) NoSQL systems like Redis, Elastic Search or time series databases to boost performance and scale up to Big Data scenarios.

JSON-API is the primary exchange data format.

Development is currently in alpha stage - DON'T USE IT ON A PRODUCTION SYSTEM

The easiest and quickest way to try out BEdita4 is via Docker, read instructions below.


  • PHP 7 (recommended) or PHP 5.6
  • MySQL 5.7 (recommended) or MySQL 5.6, Postgres 9.5/9.6 or SQLite 3
  • Composer


For a detailed setup overview see Setup Documentation

Quick setup in three steps.

  1. Create project via composer
$ composer create-project -s dev bedita/bedita

If you are using a .zip or .tar.gz release file you just need to unpack it and then run composer install.

  1. Create an empty database either MySQL or PostgresSQL. Do nothing for SQLite.

  2. Change to the newly created folder and run this script to initialize the database and create first admin user:

$ bin/cake bedita setup

See Web Server setup to configure a virtualhost in your webserver. To see first /home endpoint response you may point to http://your-vhost/home

Curl example:

$ curl -H Accept:application/json http://your-vhost/home

Otherwise, only for development or test setups, you can take advantage of PHP builtin server with this simple command:

$ bin/cake server

and see /home endpoint response pointing to http://localhost:8765/home like this:

$ curl -H Accept:application/json http://localhost:8765/home

For an explanation on Accept headers usage read here.


See Docker setup documentation for a more detailed overview.

Pull official image

Get latest offical image build from Docker Hub

 $ docker pull bedita/bedita:latest

You may also use :4-cactus tag instead of :latest, they are currently synonyms.

Build image

If you want to build an image from local sources you can do it like this from BEdita root folder:

 $ docker build -t bedita4-local .

You may of course choose whatever name you like for the generated image instead of bedita4-local.


Run a Docker image setting an initial API KEY and admin username and password like this:

 $ docker run -p 8090:80 --env BEDITA_API_KEY=1029384756 \
    --env BEDITA_ADMIN_USR=admin --env BEDITA_ADMIN_PWD=admin \

This will launch a BEdita4 instance using SQLite as its storage backend. It should become available at http://localhost:8090/home almost instantly.

Replace bedita/bedita:latest with bedita4-local (or other chosen name) to lanch a local built image.


Developer documentation can be found here


BEdita is released under LGPL, Lesser General Public License v3.