page:guides:axum:database connection

Connect Postgres for Axum

Summary

Database connection for an Axum app on Ample. Verified on Axum: a managed PostgreSQL database auto-provisioned and injected as DATABASE_URL, with real queries succeeding at request time (records=ok). Build and start using the following command:

cargo build --release

This should be run in the Rust builder image (stable toolchain, Cargo.lock committed, pure-Rust dependencies), then the release binary on the ubuntu-24.04 template reading PORT and DATABASE_URL.

Prerequisites

Resource Requirements

Workload

Steps to Connect Postgres

  1. Build and start:

    cargo build --release
    

    The server must bind 0.0.0.0 on PORT.

  2. Read DATABASE_URL at runtime: Open connections from the environment inside handlers or a pool; omit DATABASE_URL to auto-provision a managed database or pass --env DATABASE_URL=... for an existing one.

  3. Verify: Fetch the live URL and /p/relational-records on the example; on failure read the build and runtime logs.

    ample logs --kind build
    

Limitations

Cost Estimate

Note: Always-on monthly price of the tested sizes; apps auto-pause when idle.

Success Checks

Evidence Summary

Next Actions