A lightweight, high-performance backend service built with Rust's cutting-edge technologies. Perfect for enthusiasts and developers looking to explore modern backend development practices.
- Blazing Fast: Built with Rust and Axum framework
- Lightweight: Docker image only 4.3MB!
- Modern Stack:
- PostgreSQL for reliable data storage
- Axum web framework for HTTP services
- Utoipa for OpenAPI documentation
- RapiDoc for beautiful API documentation
- Test Ready: 14 pre-configured API tests
- Easy Deployment: Docker-compose setup included
- Docker & Docker Compose
- Bash shell (for helper scripts)
-
Clone the repository
git clone https://github.com/yourusername/speer-test-backend.git cd speer-test-backend
-
Start services
./start-server.sh
-
Access services
- API Documentation: http://localhost:8080
.
├── api_test/ # API test scripts
│ └── all_tests_run.sh # Run 14 API tests
├── sql/scripts/ # Database schema management
│ └── update_v1.sql # Initial database setup
├── docker-compose.yml # Container orchestration
└── start-server.sh # One-click startup script
cd api_test
./all_tests_run.sh
Our API documentation is automatically generated and presented using:
-
Utoipa: Rust OpenAPI documentation generator
-
RapiDoc: Modern API documentation viewer
Access live documentation after startup: http://localhost:8080
Database Schema
Modify SQL scripts in sql/scripts/:
-- Create new incremental update file
-- Example: update_v2.sql
BEGIN;
ALTER TABLE your_table ADD COLUMN new_feature VARCHAR;
INSERT INTO db_version(name, version)
VALUES ('speer-test', 2); -- Don't forget increase update version
COMMIT;
Persistent Storage
Add volume to PostgreSQL service in docker-compose.yml:
services:
postgres:
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
-
PostgreSQL Container: Contains your database instance
-
Backend Container: Ultra-slim 4.3MB Rust service
-
Networking: Pre-configured bridge network for inter-container communication
MIT License - see LICENSE for details