Skip to content

Hosting

Deploy Huddle on any server with PHP 8.2+, Apache (recommended), and SQLite or MySQL/MariaDB.

Requirements

ComponentVersion
PHP8.2+ (8.4 recommended)
DatabaseSQLite, MySQL, or MariaDB
Web serverApache with mod_rewrite

Required extensions: pdo, mbstring, openssl, tokenizer, xml, ctype, json, fileinfo, curl, gd, intl

Document root

Point the web server at huddle/public/, not the repository root.

/var/www/huddle/huddle/public/   ← document root

Only public/ should be web-accessible.

Web installer

  1. Upload files (or use a deployment build)
  2. Ensure storage/, bootstrap/cache/, and database/ are writable
  3. Copy setup htaccess if this is a fresh install:
bash
cp public/.htaccess.setup public/.htaccess
  1. Visit https://your-domain.example/setup.php
  2. Complete requirements, database, and admin steps

Production .env

dotenv
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.example

MAIL_MAILER=smtp
# ... mail settings ...

GDPR_CONTROLLER_NAME="Your Organization"
GDPR_CONTACT_EMAIL=privacy@your-domain.example

Cron and queue

text
* * * * * cd /path/to/huddle && php artisan schedule:run >> /dev/null 2>&1

Run a queue worker for emails and background jobs:

bash
php artisan queue:work

Updates

bash
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache

Restart queue workers after deploying code changes.

Native tools, weird experiments, and practical performance work.