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.shOur 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
