Skip to main content
Geneva, Switzerland Call our support
English

Installation and first login

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

  1. Open .env and set database credentials.
  2. Set PHPAUTH_SITE_KEY to a random 32+ character string.
  3. Set PHPAUTH_SITE_URL to 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

  1. Navigate to /admin (or /login).
  2. Enter your email and password.
  3. 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.php on production
  • Run composer test to verify the environment

Import a starter blueprint (optional)

  1. Go to Tools → Blueprints.
  2. Choose Blog or Product store.
  3. Enable Import entries for sample content.
  4. 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_URL matches the URL in your browser.
  • Plugin activation fails — Run composer plugin-deps:prod for plugins with Composer dependencies.