Configuration
VerdinCore combines environment settings, PHP configuration classes, and per-brand files. Secrets belong in the deployment environment, not in a brand or theme.
Environment groups
Prefix | Purpose |
|---|---|
| Base URL, locale, and HTTPS behavior |
| MariaDB or MySQL connection |
| Activation email sender and SMTP transport |
| Cookie security |
| Active brand selection |
| Theme, features, limits, cache, and editorial behavior |
| Image output quality |
The supplied env file is the current setting template. Copy it to .env and keep .env out of version control.
Application settings
CI_ENVIRONMENT = production
app.baseURL = 'https://example.com/'
app.defaultLocale = en
app.forceGlobalSecureRequests = true
cookie.secure = trueUse the canonical HTTPS URL, including the trailing slash. Production should force secure requests and use secure cookies. Confirm reverse-proxy and trusted-host behavior for the actual infrastructure.
Brand and theme
brand.name = verdincore
verdincore.theme = tomgineerThe brand must be registered by the application. The theme name must match available public views and source assets. See Brands and themes.
Public features
verdincore.allowRegistration = false
verdincore.topics = true
verdincore.blog = false
verdincore.archive = false
verdincore.footer.pages = trueSetting | Effect |
|---|---|
| Adds or removes the public registration route |
| Displays topic data in public presentation |
| Enables the separate |
| Adds |
| Shows eligible featured pages in the footer |
Topic and topic-group routes remain declared, while the topics flag controls their use in site presentation and post data.
Content lists and sidebars
verdincore.posts.itemsPerPage = 10
verdincore.sidebar.itemsPerSection = 10
verdincore.dashboard.itemsPerPage = 10
verdincore.dashboard.analyticsChartDays = 30Use positive, conservative values. Large pages increase query, rendering, and response cost.
Post behavior
verdincore.post.related.enabled = true
verdincore.post.related.limit = 6
verdincore.post.flags = true
verdincore.post.minViewsToShow = 50
verdincore.post.autoFeature = false
verdincore.post.autoFeatureRatio = 15
verdincore.post.autoFeatureThreshold = 70Related posts are selected from shared topics. The flag setting controls visible labels such as featured and video. The minimum-views setting prevents very small counts from being displayed.
Automatic featuring runs during cron. The ratio controls featured capacity relative to the eligible cohort, and the threshold controls the promotion score. Test changes against representative content before enabling it.
Editorial settings
verdincore.content.allowAuthorOverride = falseWhen enabled, the editor can select another non-deleted user as the author. Route permissions still govern who can edit the content.
RSS
verdincore.rss.enabled = false
verdincore.rss.itemsPerFeed = 20
verdincore.rss.includeContent = falseEnabling RSS adds GET and HEAD handling for /feed. The feed contains published public posts. Full content can be included with includeContent, otherwise items use their excerpt when available.
Page cache
verdincore.cache.enabled = true
verdincore.cache.duration = 3600Full-page caching is effective only in production. It applies to guest GET and HEAD requests outside /admin, and only when the controller marks a response as cacheable. Authenticated requests bypass both cache reads and writes.
Images
images.quality = 55The environment overrides the image quality used when saving generated files. Collection dimensions and accepted original formats are defined in Config\Images and are not exposed as environment settings.
email.fromEmail = 'no-reply@example.com'
email.fromName = 'Example Brand'
email.SMTPHost = 'smtp.example.com'
email.SMTPPass = 'secret-from-a-secure-store'Configure the remaining CodeIgniter email settings required by the provider. Test activation delivery, resend behavior, sender alignment, and bounce handling before allowing registration.
Configuration checklist
No example password remains.
.envis excluded from Git and protected by filesystem permissions.The base URL, brand domain, and HTTPS behavior agree.
The selected brand and theme exist.
Registration is disabled unless email activation is operational.
Member-only pages return private cache headers.
Page caching has been tested with both guest and logged-in requests.
Cron uses the same environment and PHP version as the web application.