generated from devjonatas/axum-template
Pixie log the backlog api
| .woodpecker | ||
| migrations | ||
| scripts | ||
| src | ||
| templates | ||
| tests | ||
| .audit.toml | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| Cargo.toml | ||
| docker-compose.yml | ||
| init_db.sh | ||
| LICENSE | ||
| parse_lcov.py | ||
| README.md | ||
Pixie API
A Rust-based API for Pixielog, featuring Keyrunes authentication, email confirmation, and Femtocat-styled views.
Prerequisites
- Rust (latest stable)
- Docker and Docker Compose
- Postgres client (optional, for debugging)
Configuration
The application requires the following environment variables. A .env file can be used locally.
| Variable | Description | Example |
|---|---|---|
DATABASE_URL |
Postgres connection string | postgres://postgres:password@localhost:5432/pixielog |
SMTP_URL |
SMTP server URL | smtp://localhost:1025 |
KEYRUNES_URL |
Keyrunes service URL | http://localhost:3000 (internal) or http://keyrunes:3000 (docker) |
APP_URL |
Public URL of this app | http://localhost:8000 |
Running the Application
1. Start Infrastructure
Start Postgres, Mailhog, and Keyrunes using Docker Compose:
docker-compose up -d
2. Initialize Keyrunes (First Run Only)
Setup superuser and organization in Keyrunes:
docker compose exec keyrunes sh /setup.sh
3. Run Database Migrations
Initialize the pixielog database schema:
sqlx migrate run
3. Run Locally (Development)
Start the API server:
cargo run
The server will be available at http://localhost:8000.
4. Run via Docker
To run the entire stack including the API in Docker (if a Dockerfile is provided, otherwise mostly used for deps):
docker-compose up -d
(Note: Ensure your config or env vars point to the keyrunes container name if running inside docker network)
Development
View Docs
Swagger UI is available at: http://localhost:8000/swagger-ui/
Running Tests
Run unit and integration tests:
# Unit tests
cargo test
# Hurl Integration tests (requires running server)
hurl --test tests/auth.hurl