Skip to content
PHP HTML JavaScript
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

DevAAC by for TFS 1.0

Quick facts:

  • This AAC (Automatic Account Creator) is built as a SPA (Single Page Application) on the front-end and a RESTful API on the back-end.
  • It is supposed to be easily extensible via plugins (check plugins/example.php.
  • The core of this AAC does not modify TFS' database schema. News are loaded as static markdown files from public_html/news.
  • The REST API is planned to be utilized by many external projects like OT server lists and OT Client.

Check out the REST API documentation!

This software is designed to:


  • PHP >= 5.4
  • PHP JSON extension
  • PHP MySQL NATIVE DRIVER (mysqlnd) extension (or this will happen)
  • PHP APC or APCu extension (if you want plugins/ratelimiter.php to work)

Installation (zip-bundle release) - stable

  • Download zip-bundle release from GitHub (green button)
  • Unpack to a directory higher than your web root, so that public_html is the web root (you can rename it if you need)
  • If you use nginx, you can find sample vhost config in our wiki
  • Web server MUST be configured to serve public_html as Document Root, DevAAC won't work in a subdirectory!
  • Rename config.sample.php to config.php and follow instructions in it

Installation (development)

  • Get composer curl -sS | php -- --install-dir=/usr/local/bin
  • Clone this repo: git clone
  • Install dependencies: composer.phar install
  • Set up your web server to serve DevAAC/public_html as document root and add required rewrites
  • Rename config.sample.php to config.php and follow instructions


  • Receive JSON
  • Send JSON with Content-Type: application/json or form input with Content-Type: application/x-www-form-urlencoded but don't mix them!
  • You can override method with X-HTTP-Method-Override header
  • Actions return the modified object
  • HTTP status codes are meaningful, most common ones: 400 (missing params/bad params), 401 (not logged in), 403 (permission denied)
  • If rate limiting is active, it will return 503 with text/plain! 429 is planned but is not supported by all web servers (e.g. nginx)


You can generate Swagger API docs manually:

php vendor/zircote/swagger-php/swagger.phar DevAAC/ -o api-docs


Contributions are always welcome, please submit pull requests! We are looking for back-end plugins and front-end functionality of themes. (It is proper to keep non-essential functionality in the form of plugins.)

Released under MIT license.

You can’t perform that action at this time.