Geddle is the AI & SaaS affiliate marketplace for creators.
- Backend: Rust + Axum
- Database: PostgreSQL + clorinde
- Payment Processing: Stripe
- Authentication: JWT
- Web Framework: Pure Axum routing
- Async Runtime: Tokio
- Connection Pooling: Deadpool
- Rust (2024 edition)
- PostgreSQL
- Stripe Account
- Clone the repository
git clone https://github.com/geddle/geddle-rust.git
cd geddle-rust- Create a
.envfile in the root directory with the following variables:
DATABASE_URL=postgres://username:password@localhost/geddle
DATA_DATABASE_URL=postgres://username:password@localhost/geddle_data
STRIPE_SECRET_KEY=sk_test_...
- Run database migrations
sqlx database create
sqlx migrate run- Build the project
cargo build- Run the services
# Terminal 1: Run the API server
cargo run --bin geddle
# or use alias:
cargo dev # development modeThe API will be available at http://127.0.0.1:5001.
The database schema is defined in the migrations directory. To add new migrations:
$ sqlx migrate add migration_name
$ sqlx migrate run
$ sqlx migrate revert # to revert the last migration (run carefully!)The database query code is generated using clorinde. After modifying SQL files in the queries directory, regenerate the code with:
$ cargo clean -p geddle-common # clean cache if necessary
$ cargo build -p geddle-common # build the common crate to generate geddle-dbDeployment is handled via GitHub Actions:
- Go to the Actions tab in GitHub
- Select "Deploy" workflow
- Click "Run workflow"
- The workflow will build and deploy all services automatically
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request