Run WorkFlow on any Linux, Windows, macOS, or Cloud server in under 2 minutes using Docker!
Ensure you have Docker and Docker Compose installed, then run:
cp .env.example .envEdit .env and set WORKFLOW_DB_ROOT_PASSWORD / WORKFLOW_DB_PASSWORD to real values (e.g. generate one with openssl rand -base64 24) — Docker Compose refuses to start without them, on purpose, so no install ever runs on a known default password. Leave WORKFLOW_ENCRYPTION_KEY blank; the installer generates one for you.
docker compose up -d --buildThis single command will spin up 3 isolated, connected containers:
workflow_app— Apache 2.4 + PHP 8.2 (Running at http://localhost:8080/)workflow_db— MariaDB 10.11 / MySQL (Port 3306)workflow_pma— phpMyAdmin Database Manager (Running at http://localhost:8081/)
Once your containers are running, open your web browser and navigate to:
http://localhost:8080/setup/Step 2 (Database & Branding Setup) is pre-filled with the connection details Docker Compose already knows — host db, database workflow_platform, username workflow, and the password you set in .env — so there's nothing to type there, just review and continue.
Then customize your Workspace Name, Motto, and Admin Login Credentials, and click "🚀 Run Installation →"!
The database password and a freshly-generated encryption key end up in .env (gitignored, chmod 600) — config.php itself never contains a literal secret, only getenv(...) calls (see config.sample.php).
Your data is completely safe across container restarts, rebuilds, and server reboots:
- Database Storage: Stored in the Docker volume
workflow_db_data. - Uploaded Files & Attachments: Stored in the Docker volume
workflow_uploads(mapped to/var/www/html/uploads). - Configuration & Lockfiles: Mapped directly to your local working directory so you can inspect or reset them at any time.
- View live logs:
docker compose logs -f app
- Stop containers without losing data:
docker compose down
- Restart containers:
docker compose restart
- Complete Reset (Wipes database and start fresh):
docker compose down -v