Installation
A complete installation guide for development and production environments. For a fast path, start with the Quick Start.
Prerequisites
Section titled “Prerequisites”Required software
Section titled “Required software”- Rust 1.88+ — install via rustup:
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shsource ~/.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
Development tools
Section titled “Development tools”# Auto-reload during developmentcargo install cargo-watch
# Database migrations (rustls avoids an OpenSSL dependency)cargo install sqlx-cli --no-default-features --features rustls,postgres --lockedFrontend npm dependencies are installed automatically by make setup.
Step-by-step installation
Section titled “Step-by-step installation”1. Clone and configure
Section titled “1. Clone and configure”git clone https://github.com/atomicjolt/atomic-forge.gitcd atomic-forge/atomic-reactorcp .env.example .envEdit .env with your settings. See Configuration for details.
2. Start database services
Section titled “2. Start database services”docker-compose up -d postgres redisdocker-compose ps3. Initialize the database
Section titled “3. Initialize the database”make db-migrate
# Optional: seed with test datamake db-seed4. Build and start
Section titled “4. Build and start”cargo buildmake dev# Access at http://localhost:8080Production installation
Section titled “Production installation”Docker production build
Section titled “Docker production build”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-reactorSee Configuration for the full list of environment variables and how to generate the required secrets.
Verification
Section titled “Verification”After installation, verify everything is working:
- Health check:
curl http://localhost:8080/health - Database connection:
make db-console - Metrics:
curl http://localhost:8080/metrics
Troubleshooting
Section titled “Troubleshooting”Database connection failed
Section titled “Database connection failed”docker-compose ps # check PostgreSQL is runningpsql $DATABASE_URL # verify the connection stringmake db-reset # reset the databaseBuild failures
Section titled “Build failures”cargo cleancargo updatecargo sqlx prepare # rebuild the SQLx cachePort conflicts
Section titled “Port conflicts”If port 8080 is in use, change it in .env:
PORT=8555