ASP Docker Compose Deployment
This package deploys ASP on a single host with Docker Compose.
First deployment
-
Run
./scripts/init.sh. If.envdoes not exist, it is created from.env.examplewith random service secrets. -
Add custom Module, Playbook, SIEM YAML, or Python requirements under
custom/when needed. -
Initialize and start ASP. When
custom/requirements.txtis not empty, any arguments afterinit.share passed touv pip install:./scripts/init.sh --index-url https://pypi.org/simplePass standard proxy variables when required:
HTTP_PROXY=http://proxy.example:8080 HTTPS_PROXY=http://proxy.example:8080 \ ./scripts/init.sh --index-url https://pypi.org/simple -
If there are no custom Python dependencies, run:
./scripts/init.sh -
Create an administrator:
docker compose exec asp-web python manage.py createsuperuser
Review .env after initialization. You can edit it later to use custom passwords, host names, or ports. Do not keep change-me-* placeholder secrets in .env; init.sh refuses to start when placeholders are present.
HTTPS certificates
asp-frontend listens on HTTPS only. The host bind address and port are controlled by ASP_BIND and ASP_HTTPS_PORT in .env; both default to server-friendly values:
ASP_BIND=0.0.0.0
ASP_HTTPS_PORT=443
If certs/asp.crt and certs/asp.key do not exist, the frontend container generates a self-signed certificate on first start. The generated certificate uses ASP_PUBLIC_HOSTNAME plus localhost and 127.0.0.1 as SANs. Add extra SAN entries with ASP_CERT_EXTRA_SAN, for example:
ASP_CERT_EXTRA_SAN=DNS:asp.example.com,IP:10.0.0.10
To use a custom certificate, place both files before starting or restart the frontend after replacing them:
certs/asp.crt
certs/asp.key
docker compose restart asp-frontend
Management UIs
Redis Stack and RustFS provide their own management UIs. They are exposed directly with their official HTTP ports to avoid reverse proxy compatibility issues:
- Redis Stack UI:
http://<server>:8001 - RustFS Console:
http://<server>:9001
RustFS S3 API stays internal by default and is not mapped to the host.
The host bind address and ports are controlled by .env:
ASP_MANAGEMENT_BIND=0.0.0.0
ASP_REDIS_UI_PORT=8001
ASP_RUSTFS_CONSOLE_PORT=9001
The default bind address is 0.0.0.0 for server deployments. Use firewall or VPN controls when these management UIs should not be reachable from untrusted networks.
Custom definitions
custom/modules/*.pycontains custom Module scripts.custom/playbooks/*.pycontains custom Playbook scripts.custom/data/modules/<module_slug>/raw_alert_*.jsoncontains Module development samples.custom/data/siem/*.yamlcontains custom SIEM schema files.custom/data/playbooks/<playbook_slug>/*.mdcontains custom Playbook prompts.custom/requirements.txtcontains extra Python packages.
After changing only script or YAML definitions, use System Settings > Runtime > Refresh / Validate in ASP. After changing Python package dependencies or imported helper modules, rerun asp-custom-deps and restart related containers.
Logs
Backend process logs are mounted to ./logs:
logs/django.log
logs/asgi.log
logs/agentic-module-worker.log
logs/agentic-case-analysis-worker.log
logs/agentic-playbook-worker.log
logs/elk-action-worker.log
Container stdout and stderr are still available through docker compose logs.
Upgrade
Back up PostgreSQL, RustFS data, .env, and custom/, then replace this package or update image tags and run:
./scripts/upgrade.sh