Owner Site Settings
Updated: 2026-09-05
The Owner Site Settings page lets the Owner edit safe, non-secret site behavior and display settings without editing code or .env.
URL
/admin/site-settings.php
Only Owner users should be able to access this page.
What This Page Is For
Use Owner Site Settings for safe site-specific values such as:
- site name
- header title and subtitle
- logo/favicon/default recipe image paths
- contact email and contact-page behavior
- account-request behavior
- account-approval notification address
- whether account requests require email verification
- default paper size
- recipe image size guidance
- public-viewing flag
- search and normal feedback-footer labels/text
Project credit is not a Site Setting
Recipe Site includes a small separate footer credit linking back to the official Your Kitchen Library project page:
Like this site? Want a version for yourself? About Your Kitchen Library
That project credit is intentionally not exposed as an Owner Site Setting. Normal site branding remains fully owner-editable, but the project link is part of the free-use terms and must remain unless the original author grants written permission to remove or materially alter it. See Use Licensing Terms.
Account Requests
The Account Requests section controls three non-secret values:
- Allow Account Requests — whether visitors may submit self-service account requests.
- Account Approval Email — address notified when a request is ready for administrator approval.
- Require Email Verification — whether the requester must confirm control of the submitted email address before the request can be approved.
When verification is enabled, the requester receives a single-use verification link that expires after 24 hours. The verification token itself is never stored; only its SHA-256 hash and expiration are stored. After successful verification, the request moves from Awaiting Email Verification to Pending Approval, and the authorization address is notified.
When verification is disabled, a successful request goes directly to Pending Approval, and the authorization address is notified immediately.
The approval address is safe to store in site_settings. SMTP credentials are not.
Fresh product installations
The v1 installer loads generic, non-secret defaults from sql/baseline/v1.sql. After creating the first Owner, review Admin -> Site Settings and customize the visible identity and account-request policy. The generic baseline does not copy contact or authorization addresses from another installation.
Email / SMTP Secrets
Mail transport belongs in .env, not Owner Site Settings. Expected installation variables are:
MAIL_ENABLED
MAIL_HOST
MAIL_PORT
MAIL_USERNAME
MAIL_PASSWORD
MAIL_ENCRYPTION
MAIL_FROM_ADDRESS
MAIL_FROM_NAME
MAIL_PASSWORD must never be stored in site_settings, committed to Git, printed in diagnostics, or included in backups intended for public distribution.
Do not enable Require Email Verification until SMTP has been configured and tested. If verification is required and the verification message cannot be sent, the account request fails rather than creating an unusable pending account.
Header logo vs. default recipe image
These are intentionally separate concepts.
- Header logo: may point to a small web-optimized copy because it is displayed at very small size on every page.
- Default recipe image: should be a normal/full-size site image, because the site intentionally uses it when a recipe does not have its own image.
Do not point the default recipe image at the tiny header-only asset just to reduce header page weight.
What Does Not Belong Here
Keep secrets in .env, including:
- database passwords
- SMTP password
- root password
- API secrets
- deployment-only credentials
Site Settings Storage
Settings are stored in:
site_settings
Run database migrations as part of the normal install/update process.
Basic Test
As Owner:
- Log in.
- Open the account menu.
- Click Settings.
- Confirm the Account Requests section is present.
- Save a valid approval email address.
- Confirm the verification checkbox can be enabled/disabled.
- Confirm a harmless display setting still saves normally.
- Confirm the Your Kitchen Library project credit remains visible and is not presented as an editable site setting.
When mail is configured, test the complete account flow separately before enabling verification for normal visitors.
As a non-Owner or anonymous user:
curl -I http://127.0.0.1:8080/admin/site-settings.php
Expected: redirect to login or denial, not the settings form.
Notes
These settings improve portability. A new installation can be rebranded and can choose its own account-approval policy without editing PHP files. The small project credit remains separate from that site identity.
Portability
Owner-editable identity, contact, and account-request policy live in the database; container names/ports and deployment secrets remain installation configuration in .env.
See also:
- Installation and Upgrade Guide
- First Owner Setup
- Use Licensing Terms
- Security Notes
