Skip to content

Installation

A complete installation guide for development and production environments. For a fast path, start with the Quick Start.

  • Rust 1.88+ — install via rustup:
    Terminal window
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source ~/.cargo/env
  • Docker & Docker Compose — for database services
  • Node.js 20+ — for frontend development
  • PostgreSQL 16+ — if not using Docker
  • Redis 7+ — optional; if not using Docker
Terminal window
# Auto-reload during development
cargo install cargo-watch
# Database migrations (rustls avoids an OpenSSL dependency)
cargo install sqlx-cli --no-default-features --features rustls,postgres --locked

Frontend npm dependencies are installed automatically by make setup.

Terminal window
git clone https://github.com/atomicjolt/atomic-forge.git
cd atomic-forge/atomic-reactor
cp .env.example .env

Edit .env with your settings. See Configuration for details.

Terminal window
docker-compose up -d postgres redis
docker-compose ps
Terminal window
make db-migrate
# Optional: seed with test data
make db-seed
Terminal window
cargo build
make dev
# Access at http://localhost:8080
Terminal window
docker build -t atomic-reactor .
docker run -d \
--name atomic-reactor \
-p 8080:8080 \
-e DATABASE_URL=postgresql://... \
-e SESSION_SECRET=... \
-e ENCRYPTION_MASTER_KEY=... \
-e JWT_SECRET=... \
atomic-reactor

See Configuration for the full list of environment variables and how to generate the required secrets.

After installation, verify everything is working:

  1. Health check: curl http://localhost:8080/health
  2. Database connection: make db-console
  3. Metrics: curl http://localhost:8080/metrics
Terminal window
docker-compose ps # check PostgreSQL is running
psql $DATABASE_URL # verify the connection string
make db-reset # reset the database
Terminal window
cargo clean
cargo update
cargo sqlx prepare # rebuild the SQLx cache

If port 8080 is in use, change it in .env:

Terminal window
PORT=8555