generated from devjonatas/axum-template
Pixie log the backlog api
- HTML 55.5%
- Rust 41.9%
- CSS 1.5%
- Shell 0.7%
- Python 0.2%
- Other 0.2%
The /api/library/status/:status endpoint was returning plain UserGame records without name or cover_url, and the "all" status filter was doing a literal WHERE status = 'all' comparison (matching nothing). - get_games_by_status now JOINs games table and returns EnrichedUserGame - "all" is treated as no status filter via nullable SQL parameter - Added sqlx offline cache entry for the new query Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .cargo | ||
| .sqlx | ||
| .woodpecker | ||
| migrations | ||
| report_hurl | ||
| scripts | ||
| src | ||
| static | ||
| templates | ||
| tests | ||
| .audit.toml | ||
| .buildpacks | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| app.json | ||
| Cargo.toml | ||
| debug_render.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| init_db.sh | ||
| LICENSE | ||
| parse_lcov.py | ||
| Procfile | ||
| README.md | ||
| rust-toolchain | ||
| server.log | ||
| server_admin.log | ||
| server_final.log | ||
| test_output.txt | ||
| unit_test_final.log | ||
| unit_test_final_full.log | ||
| unit_test_run.log | ||
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