Quick Start¶
Get Vectis Commerce running locally in under 5 minutes.
Prerequisites¶
- Docker + Docker Compose v2
- Python 3.12+
- Node.js 22+
1. Start Infrastructure¶
This starts PostgreSQL, Redis, Redpanda, Temporal, Meilisearch, Typesense, MinIO, and their UIs.
2. Install Dependencies¶
Or manually:
3. Initialize the Database¶
This runs Alembic migrations and seeds the database with a default channel, sample products, exchange rates, and admin user.
4. Start Dev Servers¶
Run each in a separate terminal:
make api # FastAPI on :8000
make worker # Temporal worker
make admin-dev # Admin on :5173
make storefront-dev # Storefront on :5174
5. Open the Apps¶
| App | URL | Credentials |
|---|---|---|
| Admin Panel | http://localhost:5173 | admin@vectis.local / admin |
| Storefront | http://localhost:5174 | Guest or create account |
| GraphQL IDE | http://localhost:8000/graphql | — |
| Redpanda Console | http://localhost:8080 | — |
| Temporal UI | http://localhost:8088 | — |
| Meilisearch (admin search) | http://localhost:7700 | Key: vectis-dev-key |
| Typesense (storefront search) | http://localhost:8108 | Key: vectis-dev-key |
| MinIO Console | http://localhost:9001 | minioadmin / minioadmin |
| Mailpit (dev email) | http://localhost:8025 | — |
Environment Variables¶
Copy the example env file and adjust as needed:
Key variables:
| Variable | Default | Description |
|---|---|---|
DATABASE_URL | postgresql+asyncpg://vectis:vectis@localhost:5432/vectis | PostgreSQL connection |
REDIS_URL | redis://localhost:6379/0 | Redis for sessions and cache |
REDPANDA_BROKER | localhost:19092 | Redpanda broker address |
TEMPORAL_HOST | localhost:7233 | Temporal server |
SECRET_KEY | (required) | JWT signing key — generate with python -c "import secrets; print(secrets.token_urlsafe(64))" |
MEILISEARCH_URL | http://localhost:7700 | Admin search engine (Meilisearch) |
MEILISEARCH_API_KEY | vectis-dev-key | Meilisearch admin key |
TYPESENSE_URL | http://localhost:8108 | Storefront search engine (Typesense) |
TYPESENSE_API_KEY | vectis-dev-key | Typesense admin key |
TYPESENSE_SEARCH_ONLY_KEY | vectis-search-key | Typesense search-only key (for scoped key generation) |
Docker Compose Services¶
The full docker-compose.yml includes 16 services:
| Service | Image | Purpose |
|---|---|---|
api | Custom (backend/) | FastAPI application server |
admin | Custom (admin/) | SvelteKit admin dashboard |
storefront | Custom (storefront/) | SvelteKit storefront |
postgres | postgres:16-alpine | Primary database |
redis | redis:7-alpine | Session store + cache |
redpanda | redpandadata/redpanda | Event streaming (Kafka-compatible) |
redpanda-console | redpandadata/console | Redpanda management UI |
temporal | temporalio/auto-setup | Workflow engine |
temporal-worker | Custom (backend/) | Temporal activity worker |
temporal-ui | temporalio/ui | Temporal management UI |
meilisearch | getmeili/meilisearch | Admin full-text search |
typesense | typesense/typesense:27.1 | Storefront product search |
minio | minio/minio | S3-compatible object storage |
minio-setup | minio/mc | One-shot init job that creates MinIO buckets/keys |
mailpit | axllent/mailpit | Dev SMTP + webmail UI at localhost:8025 |
event-consumer | Custom (backend/) | Redpanda event consumer |