Clone, configure, migrate, and sign in to the admin.
Quick start (from git)
git clone https://github.com/struxa/struxa.git
cd struxa
cp .env.example .env
# Edit DB_* and PHPAUTH_* values
composer install
composer plugin-deps:prod
composer migrate
Configure environment
- Open
.envand set database credentials. - Set
PHPAUTH_SITE_KEYto a random 32+ character string. - Set
PHPAUTH_SITE_URLto your public URL (e.g.https://example.com).
Web root
Configure Apache, Nginx, or Caddy so the site root is public/. All requests should route to index.php.
Nginx sketch
root /var/www/struxa/public;
location / {
try_files $uri /index.php?$query_string;
}
Run migrations
composer migrate
This applies ordered SQL files from database/migrations/. Re-run safely after pulling updates—only pending migrations execute.
First admin user
After migrations, register the first staff user via the installer or admin registration flow. Assign a role with full permissions (e.g. Administrator or Super Admin).
Sign in
- Navigate to
/admin(or/login). - Enter your email and password.
- Enable two-factor authentication under your profile if available.
Post-install checklist
- Settings — Set site name, default meta title and description
- Appearance → Themes — Activate a theme (default theme ships with the repo)
- Appearance → Menus — Configure header and footer links
- Extensions → Plugins — Activate plugins you need
- Remove
public/install.phpon production - Run
composer testto verify the environment
Import a starter blueprint (optional)
- Go to Tools → Blueprints.
- Choose Blog or Product store.
- Enable Import entries for sample content.
- Review imported content types before publishing.
Troubleshooting
- 500 on first load — Check PHP error log; often missing
vendor/or bad DB credentials. - CSRF errors on login — Ensure
PHPAUTH_SITE_URLmatches the URL in your browser. - Plugin activation fails — Run
composer plugin-deps:prodfor plugins with Composer dependencies.