Appearance
Self-hosting
Imaginook runs on a LEMP stack (nginx + PHP-FPM + PostgreSQL + Redis) and is fully self-hostable via three supported paths.
What you need
- PostgreSQL (required) and Redis (optional — the defaults are DB-backed).
- Long-running processes for a full instance: a
php artisan queue:workworker and a per-minutephp artisan schedule:runcron. - The two-origin serving model (load-bearing): the console (
imaginook.app) runs the Laravel app via PHP-FPM; user sites (*.imaginook.com|org|me) are served as static files by nginx with no PHP — the platform's no-RCE guarantee.
1. One-line installer (Ubuntu LEMP)
An idempotent installer provisions nginx, PHP-FPM, PostgreSQL, the app, the worker, and the scheduler on a fresh Ubuntu host. See installer/.
2. Docker Compose
The docker/ stack (compose.yaml) runs the app image with role-switching (php-fpm / queue / schedule / migrate) plus an nginx sidecar and named volumes. Copy compose.env.example, fill it in, and bring the stack up.
3. All-in-one image
The docker/all-in-one/ image bundles everything — app, worker, scheduler, and embedded PostgreSQL/Redis — under s6-overlay in a single container. Good for a quick single-box instance.
Configuration & operations
- Bootstrap from
.env.example; see the Configuration reference. - Storage roots (
SITES_ROOT, trash, scan store, staging) must point at persistent, writable volumes;SITES_ROOTand its trash must share one volume (publish/trash is a rename). - Set up Backups & disaster recovery before going live.