pixwel CLI. Both run the same containers — API, MongoDB, Redis, ElasticSearch, ElasticMQ, and the background workers.
Codespaces (one-click)
Everything is preconfigured in.devcontainer/, so a Codespace boots the whole stack with no manual setup.
Open the Codespace
Open the repo as a Codespace in VS Code desktop (avoid the in-browser version). It requests an 8-CPU / 16 GB machine.
Wait for provisioning
The dev container builds and runs
./install.sh automatically (the postCreateCommand). This mounts the Docker socket and sets up the workspace at /workspaces/platform.Local Docker setup
Prerequisites
- Docker
- Node.js
- AWS CLI, configured with credentials
- Linux only: raise the ElasticSearch mmap limit —
sysctl -w vm.max_map_count=262144(persist it in/etc/sysctl.conf)
Install
Add the environment file
Obtain
development.env and place it inside docker/, then export your GitHub packages token:Load data
The stack starts empty. To seed it from a database dump:What’s in the stack
pixwel up runs docker-compose.yml (the app image is ghcr.io/pixwel/platform). The dev override (docker-compose.override.yml) exposes service ports for local access:
| Service | Purpose | Local port |
|---|---|---|
| app | The PHP API (and web) | 8080 → 80 |
| mongo | Primary database | 27017 |
| redis | Cache + queues | 6379 |
| elasticsearch | Search index | 9200 |
| elasticmq | Local SQS-compatible queue | 9324 |
| workers | Background jobs — email sending, embargo expiry, notifications, feedback, and integrations | — |
docker-compose.minio.yml (local S3-compatible storage), docker-compose.debug.yml, and docker-compose.override.yml. Dockerfiles live under docker/ (docker/app/Dockerfile, Dockerfile-dev, docker/Dockerfile-ui, docker/mongo/, docker/elasticmq/).
Common commands
| Command | Does |
|---|---|
pixwel up | Start the full stack (recommended). |
pixwel stop / pixwel down | Stop / tear down the stack. |
pixwel bash | Shell inside the API container. |
pixwel logs | Tail application logs. |
pixwel dlogs | Tail Docker logs. |
pixwel debug | Run the API with xdebug enabled (slower). See Xdebug. |
pixwel kahlan [--debug] [--watch] | Run the API specs (Kahlan). |
pixwel li3 <cmd> | Run Lithium console commands (e.g. pixwel li3 index-rebuild). |
pixwel migrate | Run database migrations. |
pixwel karma | Run the UI 2.x tests. |
Running the UI
The frontend runs outside Docker:See also
- Architecture — how the API, UI, workers, and services fit together.
- Services — the background workers and what each does.
- Environments — staging, production, and how config differs.