A lightweight, full-stack template for building content-driven web applications with Rust, SQLite, Astro, and TypeScript. This template uses Astro for a highly performant frontend with flexible component support (React, Vue, Svelte) and SQLite for a serverless database.
- Backend: Rust (Axum for REST APIs, SQLx for database access)
- Database: SQLite (file-based, serverless)
- Frontend: Astro with TypeScript (Tailwind CSS for styling)
- Tools: GitHub Actions for CI/CD, optional Docker support
Before you begin, ensure you have the following installed:
- Rust: Stable version (install via rustup)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Node.js: v20 or higher (install via nvm or official installer)
- SQLite: v3.40 or higher (install via package manager, e.g.,
brew install sqliteon macOS) - Git: For version control
git clone https://github.com/SHA888/RSAT.git
cd RSAT# Navigate to backend directory
cd backend
# Copy environment file
cp .env.example .env
# Edit .env with your database configuration
# DATABASE_URL=sqlite://./database/rsat.db
# Install SQLx CLI (if not already installed)
cargo install sqlx-cli
# Run database migrations
sqlx migrate run
# Start the backend
cargo runThe backend will be available at: http://localhost:3000
# Navigate to frontend directory
cd frontend
# Copy environment file
cp .env.example .env
# Edit .env with your API URL
# PUBLIC_API_URL=http://localhost:3000
# Install dependencies
npm install
# Start the development server
npm run devThe frontend will be available at: http://localhost:4321
SQLite will automatically create the database file at database/rsat.db during the first migration. No additional setup is required.
For containerized development:
- Ensure Docker and Docker Compose are installed
- Run the full stack:
docker-compose -f docker/docker-compose.yml up --build
Access the services:
- Backend: http://localhost:3000
- Frontend: http://localhost:4321
cd backend
cargo testcd frontend
npm test- Backend: Deploy to Fly.io, Render, or AWS ECS
- Frontend: Deploy to Vercel, Netlify, or Cloudflare Pages
- Database: SQLite is included for development. For production, consider PostgreSQL or another managed database service.
Remember to update environment variables in .env files for production URLs.
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Commit your changes:
git commit -m "Add feature" - Push to the branch:
git push origin feature-name - Open a pull request
Found a bug or have a suggestion? Please open an issue.
This project is licensed under the MIT License. See the LICENSE file for details.