Skip to main content
This option runs Noxus services as managed containers while leveraging cloud-native managed data services. This architecture provides high availability and automatic scaling with reduced operational overhead.

Supported Platforms

Noxus provides production-ready Terraform configurations in the noxus-infra repository for the following platforms:

Google Cloud Run

Deploy on GCP using Cloud Run, Cloud SQL (PostgreSQL), Memorystore (Redis), and Cloud Storage.

Azure Container Apps

Deploy on Azure using Container Apps, Azure Database for PostgreSQL, Azure Cache for Redis, and Blob Storage.

Infrastructure as Code

We recommend using our Terraform modules to ensure a consistent and secure deployment. These modules handle the creation of container services, networking, IAM roles, and managed data services.

Deployment Steps

  1. Clone the noxus-infra repository.
  2. Navigate to the terraform/gcp/cloud-run or terraform/azure/container-apps directory.
  3. Configure your terraform.tfvars with your project details and desired resource sizes.
  4. Run terraform init and terraform apply.

The platform is split into several independent container services to allow for granular scaling and resource allocation.

Practical Notes

Keep worker containers warm enough for your queue profile. Avoid pure scale-to-zero for latency-sensitive run execution. Consider setting a minimum number of instances for production workloads.
Ensure exactly one active scheduler instance for Noxus Beat to avoid duplicate periodic jobs. Most serverless platforms support “Jobs” or singleton service configurations for this purpose.
Only enable Noxus Relays if you need webhook/event receiver endpoints for external integrations.

Configuration Strategy

  • Secrets Management: Inject sensitive credentials (database passwords, API keys) via cloud-native secret bindings (GCP Secret Manager or Azure Key Vault).
  • Environment Variables: Keep non-sensitive configuration in the platform’s environment variables.
  • Service Naming: Maintain consistent names (noxus-frontend, noxus-backend, etc.) across all environments to simplify monitoring and operations.