What is Ophal?

Ophal is highly scalable web platform, which aims to be easy to maintain, learn, extend and is open to improvements. Developers can create modules to alter and extend Ophal’s core capabilities and add new features or customize Ophal’s behavior and appearance. Zophin and DBA are examples of that. Ophal core supports themes, which customize the “look and feel” of Ophal sites.

Download here!

Summary of changes

  • Mobile support (thanks to Mobile_Detect)
  • Sessions and cookies support
  • Nutria Seawolf moved into Ophal Project!
  • Several bugs fixes
  • Less dependencies
  • Installation instructions

Changes detailed in sections (below):

  • Back-end
  • Front-end / Theming and
  • Installation / Deployment.

The future

Ophal’s next version will be the first beta release, which shall include:

  • CGIC: File Uploads(RFCs 1867 & 2388)
  • Software documentation
  • Core API documentation
  • Core tests


  • Met the community at #ophal Freenode’s channel
  • Read our Ophal Code of Conduct
  • Contribute modules, themes and patches, contact info [at] ophal.org
  • Contribute logo and mockups for ophal.org, contact info [at] ophal.org
  • Contribute documentation, contact info [at] ophal.org
  • We appreciate your feedback! reply with your comments here



  • Implement native Lua function ‘rawget’ to jailed environment
  • Add parameter ‘db_id’ to function db_connect(), it allows to connection to arbitrary databases pre-configured in settings.lua
  • Add lua _VERSION to cgi header ‘X-Powered-By’
  • Implement session handling API (supports static cache), function session_start() called right after CGI init
  • Implement HTTP headers handler (supports output buffering)
  • Set status header 404 when can’t find menu item handler
  • Remove luajson and luaposix from dependencies
  • Make rex_pcre an optional dependency

CGIC - Ophal’s CGI library

  • Add lua call to function: formRadio(). Implement C function cgi_luaL_checktable()
  • Add lua call to function: cookies() and cookieString() (Cookie support!)
  • Better cross-platform compilation options in Makefile
  • Make code compatible with C89, still some work pending


  • Move Nutria Seawolf into Ophal Project, released as “Seawolf 0.6”
  • Implement function temp_dir(), from Nutria Nemo
  • Implement file handling functions: safe_open(), safe_write() and safe_close()
  • New version of function is_writable(), copied from Luarocks 2.0.10
  • Add function table_dump, copied and adapted from CGILua Project
  • Make load of rex_pcre optional along with all functions that use it
  • Move functions preg_split(), preg_match(), preg_replace() and preg_replace_callback() into seawolf.text.preg sub-module

Front-end / Theming

  • Implement functions add_js(), get_js, add_css() and get_css()
  • Implement function path_to_theme()
  • Implement functions pairs() and _SERVER() to theme environment. As well as Debug API
  • Implement mobile support primitives (ported PHP’s Mobile_Detect library)
  • Allow to render external images in theming function img() using key ‘external’ in ‘options’ parameter

Installation / Deployment