Run your own pixl
Open source, GPL-3.0. Run it on a laptop, a home server, or a host of your choosing.
What it is made of
A Vue app (the sequencer, layout and previews, all in the browser) and a Laravel API (accounts, projects, sequences, audio, the shader assistant, lyric timing) behind Postgres. One Docker image holds both behind nginx. The webXLights repository has the details; this is the short version.
On your own machine
git clone https://github.com/loganjmoore/webxlights.git
cd webxlights
docker compose up -d postgres # Postgres on localhost:5433
cd apps/api && cp .env.example .env && php artisan key:generate && php artisan migrate
php artisan serve --port=8000 # the API
# in another shell, from the repository root:
npm install && npm run dev # the app on http://localhost:5173
Needs PHP 8.4, Node 22 and Docker (for Postgres). Sign up on the first screen; the first account is yours.
As one container
docker build -t webxlights .
docker run -p 10000:10000 -e APP_KEY=... -e DB_URL=postgres://... webxlights
The image serves the app and the API on port 10000 and runs pending migrations on start. Audio is kept on a disk you mount; the render.yaml in the repository is a working blueprint for Render, and is what the hosted copy runs from.
The optional parts
| Feature | What it needs |
|---|---|
| Shader assistant | SHADER_API_KEY for Anthropic (default) or any OpenAI-compatible endpoint; a local model works too. People can bring their own key instead. SHADER_MONTHLY_LIMIT caps server-funded generations per person. |
| Automatic lyric timing | LYRICS_API_KEY for a speech-to-text endpoint with word timestamps (OpenAI whisper-1 by default). LYRICS_MONTHLY_LIMIT caps listens per person. |
Without a key, each feature says so in the app and everything else works.
Licence
The code behind pixl, webXLights, is licensed under the GNU General Public License v3.0, the same licence as xLights. You may run it, study it, change it and share it, and changes you distribute stay under the same licence. Security reports go to the address in SECURITY.md.