Welcome to the OParl developer platform codebase.
- php >= 7.1
- composer
- node >= 8.0
- npm
Additionally, the requirements for running the validator and building the specification must be met on the system.
git clone https://github.com/OParl/dev-website.git
composer install
cp .env.example .env
./artisan key:generate
./artisan deploy --fix-missing
./artisan setup
The OParl developer portal is comprised of several components. At the core, a Laravel 5 based web application acts as frontend and orchestrates updates to all the subcomponents. Behind the scenes, the repositories of the specification, liboparl, resources and the validator. Additionally, the server running the main component also provides the full build environments for the specification and liboparl, as well as the runtime environment for the validator.
Eventhough most configuration lives inside the versioned config/
-directory, some configuration
options must be set on a per host basis. These - for the most part - include all the security
related config options such as the application encryption key or the webhook secret for GitHub.
Variable | Default Value | Description |
---|---|---|
APP_ENV | production |
Application environment |
APP_DEBUG | false |
Toggles the debug mode |
APP_KEY | <none> |
Application encryption key |
APP_URL | http://localhost/ |
|
APP_LOG | daily |
Controls the builtin logfile rotation |
------------------------ | ----------------------- | --------------------------------------- |
DB_DEFAULT | sqlite |
Select db type for main db |
DB_HOST | Host for mysql connection | |
DB_DATABASE | Database name for mysql connection | |
DB_USERNAME | User name for mysql connection | |
DB_PASSWORD | ||
------------------------ | ----------------------- | --------------------------------------- |
CACHE_DRIVER | file |
Storage driver for the app cache |
SESSION_DRIVER | file |
Storage driver for sessions |
QUEUE_DRIVER | file |
Queue driver for background tasks |
------------------------ | ----------------------- | --------------------------------------- |
PIWIK_URL | URL for Piwik tracking | |
PIWIK_SITE_ID | Piwik site id | |
------------------------ | ----------------------- | --------------------------------------- |
SLACK_ENABLED | false |
Globally toggle Slack integration |
SLACK_ENDPOINT | ||
SLACK_CHANNEL_CI | #ci |
|
SLACK_CHANNEL_VALIDATION | #feedback |
|
------------------------ | ----------------------- | --------------------------------------- |
OPARL_BUILD_MODE | native |
Specification build mode |
LIBOPARL_PREFIX | /usr/local |
Install-dir for liboparl |
------------------------ | ----------------------- | --------------------------------------- |
GITHUB_WEBHOOK_SECRET | Secret for GitHub hook validation |
From GitHub:
- OParl/spec: will update specification downloads, schema assets and live version
on push; acts according to tags and branches, as configured in
config/oparl.php
- OParl/validator: will update the local validator repository on push; also adheres to config
- OParl/resources: will update the endpoints list in
endpoints.yml
on push - OParl/liboparl: will update the local liboparl repository and schedule a liboparl build job; adheres to config
TODO.
Locales are managed via Transifex with all the other localizable products of OParl.
The main application follows Laravel framework updates with roughly one to two months drag. This is done so that the release rush bugs will hopefully be fixed before the update. This policy was adopted after framework updates broke not-yet-updated third party packages. The third party packages fetched from Packagist and [npmjs][npmjs] are regularily checked for updates.
The development plaform itself is unversioned as it is under continuous development. The validator, liboparl and the specification however follow the [Semantic Versioning][semver] specification.
This program is being provided under the terms of the MIT License