Developer Guide
Technical context for implementation and extension.
<!-- Opero.art Source-Available Notice: Licensed under BSL 1.1. Free for individual artists; commercial hosting/redistribution for a fee is prohibited. See /LICENSE.md. -->
Developer Guide
Purpose
Define development conventions and extension strategy.
Scope
Foundation project structure, run commands, and extension points.
Local Setup
- Ensure PHP 8.x is installed with required extensions (
pdo_mysql,json,mbstring, andgdorimagick;zipfor backups). - From the repository root, start a local PHP server:
php -S localhost:8000. - Open
http://localhost:8000/opero/installer/and complete setup. - Sign in at
http://localhost:8000/opero/admin/.
Key Paths
opero/includes: backend services, auth, generator, media processing, upgrade helpersopero/installer: setup flow and install lock handlingopero/admin: admin shell sections, JS, CSS, and API actionsopero/modules: reserved directory for module registry expansionopero/themes/default: default presentation assetsopero/templates/layouts/default: public page templatesopero/public: public web entry assetsopero/storage: runtime state and audit logs
Extension Rules
- New features should be introduced as modules where applicable
- Keep backend contracts stable and versioned
- Avoid mixing public presentation with core platform logic
Demo Mode
- Repository defaults must remain non-demo for GitHub distribution.
- To enable demo mode on a server, upload a private
opero/storage/system/demo-mode.jsonfile that matches the example atopero/storage/system/demo-mode.example.json. - The real
demo-mode.jsonfile is gitignored and can safely contain demo-only credentials, database values, and hidden analytics configuration. - Removing that file returns the installer and admin login to normal fresh-setup behavior.