Install on Azure App Services
Azure App Services runs Sentinel as a managed Linux container — no cluster or CLI required if you deploy through the portal template, and a familiar target if your infrastructure is already on Azure.
Prerequisites
- An active Microsoft Azure account.
Instance sizing
- Testing/small deployments — Basic B2 (3.5 GB RAM, 2 vCPU).
- Production — Premium tier, 2 vCPUs minimum. RAM beyond 16 GB provides no additional benefit.
Step 1 — Deploy the stack
The quickest path is the pre-built ARM template:
- Click Deploy to Azure (or open the template directly) from altcha-org/altcha-sentinel-deploy-azure.
- Follow the Azure portal instructions, proceeding with the default pre-configured values.
- Adjust the application version parameter if you want a specific release — see Releases for available versions.
Manual deployment
If you'd rather set it up by hand instead of using the template:
- In the Azure Portal, go to App Services → Create → Web App.
- Choose Container publishing, Linux as the OS, and Basic B2 or higher as the tier.
- Skip database configuration during setup — see Configuring a database below.
- On the container step, set:
- Image source: public registry
- Registry:
https://ghcr.io - Image and tag:
altcha-org/sentinel:<version>
Persistent storage
Sentinel needs /data to persist across restarts. Create an Azure Files share, then mount it under the Web App's Configuration → Path mappings → New Azure Storage Mount:
- Name:
altcha_sentinel_data - Type: Azure Files
- Protocol: SMB
- Mount path:
/data
Configuring a database
By default Sentinel uses its own embedded storage under /data. For an external database, add the connection string as an app setting (environment variable) under Configuration → Application settings — see Databases for supported engines and connection formats.
Step 2 — Access the application
Once deployed, Sentinel is reachable at:
- Web interface:
https://[your-app-name].azurewebsites.net/ - API:
https://[your-app-name].azurewebsites.net/v1 - API documentation:
https://[your-app-name].azurewebsites.net/v1/docs
App Service provides HTTPS on the azurewebsites.net domain by default; see Azure's own docs if you want to map a custom domain.
Sign in with the default credentials root / root and change the password immediately.
Production configuration
Production deployments should run multiple instances for high availability, which needs four app settings configured identically across every instance. Add them under Configuration → Application settings, or via the CLI:
az webapp config appsettings set \
--name <app-name> \
--resource-group <group> \
--settings \
SECRET_SEED="<a long random string, identical on every node>" \
LICENSE_KEY="<license key>" \
POSTGRES_URL="postgresql://user:password@your-db-host:5432/altcha_sentinel" \
REDIS_URL="redis://default@your-redis-host:6379"See Clustering for what each variable does, and ENV Variables for the full reference.
Upgrading Sentinel
Point the Web App at a new image tag and restart:
az webapp config container set \
--name <app-name> \
--resource-group <group> \
--docker-custom-image-name ghcr.io/altcha-org/sentinel:<version>
az webapp restart --name <app-name> --resource-group <group>Verify the running image:
az webapp config container show \
--name <app-name> \
--resource-group <group> \
--query "docker_image_name"Next steps
- Configure — set up your first Security Group and API Key.
- Monitoring & Logging — track Sentinel's health once it's live.