Getting Started
PixelCI is a self-hosted visual regression testing platform. It compares screenshots from your CI/CD pipeline against approved baselines and flags visual changes for review.
How It Works
- Upload Screenshots — your CI pipeline uploads screenshots after each build
- Automatic Comparison — PixelCI compares them against approved baselines
- Smart Analysis — matches against previously approved changes across branches
- Review & Approve — team members review changes in the web UI
- Build Status — CI passes if all changes are approved, fails if review is needed
Quick Start
1. Deploy PixelCI
Run the server with Docker:
docker run -d \
--name pixelci \
-p 7924:7924 \
-e APP_ENV=production \
-e ENABLE_JOB_RUNNER=true \
-e AUTH_JWT_SECRET=your-secret-key \
-e REDIS_HOST=redis \
-e REDIS_PREFIX=pixelci \
-e MYSQL_HOST=mysql \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD_SECRET=your-password \
-e MYSQL_DATABASE=pixelci \
-e S3_ENDPOINT=https://s3.amazonaws.com \
-e S3_REGION=us-east-1 \
-e S3_ACCESS_KEY_ID=your-access-key \
-e S3_ACCESS_SECRET=your-secret-key \
-e S3_BUCKET=pixelci \
ghcr.io/signal24/pixelci:latestThen run migrations:
docker exec pixelci node . migration:runSee the Deployment Guide for Docker Compose, Kubernetes, and full configuration reference.
2. Set Up Authentication
PixelCI uses GitLab OAuth for authentication. See the GitLab Setup Guide to configure OAuth and create your first app.
3. Add to Your CI Pipeline
visual-regression:
stage: test
image: ghcr.io/signal24/pixelci/cli:latest
variables:
PIXELCI_API_URL: https://pixelci.example.com
script:
- pixelci ./screenshotsSee the GitLab Setup Guide for detailed CI configuration.
4. Review Results
Open the PixelCI web UI to review builds, compare screenshots, and approve changes. See the Usage Guide for a walkthrough.
License
PixelCI is source-available under the PixelCI Source Available License. It is free for internal use within your organization. A commercial license is required to offer it as a hosted service, distribute it, or embed it in products sold to others.