up
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
			
				
	
				Build Test Deploy / build-test (push) Has been cancelled
				
			
		
			
				
	
				Build Test Deploy / authority-container (push) Has been cancelled
				
			
		
			
				
	
				Build Test Deploy / docs (push) Has been cancelled
				
			
		
			
				
	
				Build Test Deploy / deploy (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			Build Test Deploy / build-test (push) Has been cancelled
				
			Build Test Deploy / authority-container (push) Has been cancelled
				
			Build Test Deploy / docs (push) Has been cancelled
				
			Build Test Deploy / deploy (push) Has been cancelled
				
			This commit is contained in:
		
							
								
								
									
										30
									
								
								deploy/compose/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								deploy/compose/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| # Stella Ops Compose Profiles | ||||
|  | ||||
| These Compose bundles ship the minimum services required to exercise the scanner pipeline plus control-plane dependencies. Every profile is pinned to immutable image digests sourced from `deploy/releases/*.yaml` and is linted via `docker compose config` in CI. | ||||
|  | ||||
| ## Layout | ||||
|  | ||||
| | Path | Purpose | | ||||
| | ---- | ------- | | ||||
| | `docker-compose.dev.yaml` | Edge/nightly stack tuned for laptops and iterative work. | | ||||
| | `docker-compose.stage.yaml` | Stable channel stack mirroring pre-production clusters. | | ||||
| | `docker-compose.airgap.yaml` | Stable stack with air-gapped defaults (no outbound hostnames). | | ||||
| | `env/*.env.example` | Seed `.env` files that document required secrets and ports per profile. | | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```bash | ||||
| cp env/dev.env.example dev.env | ||||
| docker compose --env-file dev.env -f docker-compose.dev.yaml config | ||||
| docker compose --env-file dev.env -f docker-compose.dev.yaml up -d | ||||
| ``` | ||||
|  | ||||
| The stage and airgap variants behave the same way—swap the file names accordingly. All profiles expose 443/8443 for the UI and REST APIs, and they share a `stellaops` Docker network scoped to the compose project. | ||||
|  | ||||
| ### Updating to a new release | ||||
|  | ||||
| 1. Import the new manifest into `deploy/releases/` (see `deploy/README.md`). | ||||
| 2. Update image digests in the relevant Compose file(s). | ||||
| 3. Re-run `docker compose config` to confirm the bundle is deterministic. | ||||
|  | ||||
| Keep digests synchronized between Compose, Helm, and the release manifest to preserve reproducibility guarantees. `deploy/tools/validate-profiles.sh` performs a quick audit. | ||||
							
								
								
									
										190
									
								
								deploy/compose/docker-compose.airgap.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								deploy/compose/docker-compose.airgap.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,190 @@ | ||||
| version: "3.9" | ||||
|  | ||||
| x-release-labels: &release-labels | ||||
|   com.stellaops.release.version: "2025.09.2-airgap" | ||||
|   com.stellaops.release.channel: "airgap" | ||||
|   com.stellaops.profile: "airgap" | ||||
|  | ||||
| networks: | ||||
|   stellaops: | ||||
|     driver: bridge | ||||
|  | ||||
| volumes: | ||||
|   mongo-data: | ||||
|   minio-data: | ||||
|   concelier-jobs: | ||||
|   nats-data: | ||||
|  | ||||
| services: | ||||
|   mongo: | ||||
|     image: docker.io/library/mongo@sha256:c258b26dbb7774f97f52aff52231ca5f228273a84329c5f5e451c3739457db49 | ||||
|     command: ["mongod", "--bind_ip_all"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MONGO_INITDB_ROOT_USERNAME: "${MONGO_INITDB_ROOT_USERNAME}" | ||||
|       MONGO_INITDB_ROOT_PASSWORD: "${MONGO_INITDB_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - mongo-data:/data/db | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   minio: | ||||
|     image: docker.io/minio/minio@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e | ||||
|     command: ["server", "/data", "--console-address", ":9001"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MINIO_ROOT_USER: "${MINIO_ROOT_USER}" | ||||
|       MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - minio-data:/data | ||||
|     ports: | ||||
|       - "${MINIO_CONSOLE_PORT:-29001}:9001" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   nats: | ||||
|     image: docker.io/library/nats@sha256:c82559e4476289481a8a5196e675ebfe67eea81d95e5161e3e78eccfe766608e | ||||
|     command: | ||||
|       - "-js" | ||||
|       - "-sd" | ||||
|       - /data | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "${NATS_CLIENT_PORT:-24222}:4222" | ||||
|     volumes: | ||||
|       - nats-data:/data | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   authority: | ||||
|     image: registry.stella-ops.org/stellaops/authority@sha256:5551a3269b7008cd5aceecf45df018c67459ed519557ccbe48b093b926a39bcc | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|     environment: | ||||
|       STELLAOPS_AUTHORITY__ISSUER: "${AUTHORITY_ISSUER}" | ||||
|       STELLAOPS_AUTHORITY__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       STELLAOPS_AUTHORITY__PLUGINDIRECTORIES__0: "/app/plugins" | ||||
|       STELLAOPS_AUTHORITY__PLUGINS__CONFIGURATIONDIRECTORY: "/app/etc/authority.plugins" | ||||
|     volumes: | ||||
|       - ../../etc/authority.yaml:/etc/authority.yaml:ro | ||||
|       - ../../etc/authority.plugins:/app/etc/authority.plugins:ro | ||||
|     ports: | ||||
|       - "${AUTHORITY_PORT:-8440}:8440" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   signer: | ||||
|     image: registry.stella-ops.org/stellaops/signer@sha256:ddbbd664a42846cea6b40fca6465bc679b30f72851158f300d01a8571c5478fc | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - authority | ||||
|     environment: | ||||
|       SIGNER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|       SIGNER__POE__INTROSPECTURL: "${SIGNER_POE_INTROSPECT_URL}" | ||||
|       SIGNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${SIGNER_PORT:-8441}:8441" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   attestor: | ||||
|     image: registry.stella-ops.org/stellaops/attestor@sha256:1ff0a3124d66d3a2702d8e421df40fbd98cc75cb605d95510598ebbae1433c50 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - signer | ||||
|     environment: | ||||
|       ATTESTOR__SIGNER__BASEURL: "https://signer:8441" | ||||
|       ATTESTOR__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${ATTESTOR_PORT:-8442}:8442" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   concelier: | ||||
|     image: registry.stella-ops.org/stellaops/concelier@sha256:29e2e1a0972707e092cbd3d370701341f9fec2aa9316fb5d8100480f2a1c76b5 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|       - minio | ||||
|     environment: | ||||
|       CONCELIER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       CONCELIER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       CONCELIER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       CONCELIER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       CONCELIER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|       CONCELIER__AUTHORITY__RESILIENCE__ALLOWOFFLINECACHEFALLBACK: "true" | ||||
|       CONCELIER__AUTHORITY__RESILIENCE__OFFLINECACHETOLERANCE: "${AUTHORITY_OFFLINE_CACHE_TOLERANCE:-00:30:00}" | ||||
|     volumes: | ||||
|       - concelier-jobs:/var/lib/concelier/jobs | ||||
|     ports: | ||||
|       - "${CONCELIER_PORT:-8445}:8445" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-web: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-web@sha256:3df8ca21878126758203c1a0444e39fd97f77ddacf04a69685cda9f1e5e94718 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|       - minio | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     ports: | ||||
|       - "${SCANNER_WEB_PORT:-8444}:8444" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-worker: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-worker@sha256:eea5d6cfe7835950c5ec7a735a651f2f0d727d3e470cf9027a4a402ea89c4fb5 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   excititor: | ||||
|     image: registry.stella-ops.org/stellaops/excititor@sha256:65c0ee13f773efe920d7181512349a09d363ab3f3e177d276136bd2742325a68 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|     environment: | ||||
|       EXCITITOR__CONCELIER__BASEURL: "https://concelier:8445" | ||||
|       EXCITITOR__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   web-ui: | ||||
|     image: registry.stella-ops.org/stellaops/web-ui@sha256:bee9668011ff414572131dc777faab4da24473fe12c230893f161cabee092a1d | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|     environment: | ||||
|       STELLAOPS_UI__BACKEND__BASEURL: "https://scanner-web:8444" | ||||
|     ports: | ||||
|       - "${UI_PORT:-9443}:8443" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
							
								
								
									
										188
									
								
								deploy/compose/docker-compose.dev.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								deploy/compose/docker-compose.dev.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,188 @@ | ||||
| version: "3.9" | ||||
|  | ||||
| x-release-labels: &release-labels | ||||
|   com.stellaops.release.version: "2025.10.0-edge" | ||||
|   com.stellaops.release.channel: "edge" | ||||
|   com.stellaops.profile: "dev" | ||||
|  | ||||
| networks: | ||||
|   stellaops: | ||||
|     driver: bridge | ||||
|  | ||||
| volumes: | ||||
|   mongo-data: | ||||
|   minio-data: | ||||
|   concelier-jobs: | ||||
|   nats-data: | ||||
|  | ||||
| services: | ||||
|   mongo: | ||||
|     image: docker.io/library/mongo@sha256:c258b26dbb7774f97f52aff52231ca5f228273a84329c5f5e451c3739457db49 | ||||
|     command: ["mongod", "--bind_ip_all"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MONGO_INITDB_ROOT_USERNAME: "${MONGO_INITDB_ROOT_USERNAME}" | ||||
|       MONGO_INITDB_ROOT_PASSWORD: "${MONGO_INITDB_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - mongo-data:/data/db | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   minio: | ||||
|     image: docker.io/minio/minio@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e | ||||
|     command: ["server", "/data", "--console-address", ":9001"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MINIO_ROOT_USER: "${MINIO_ROOT_USER}" | ||||
|       MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - minio-data:/data | ||||
|     ports: | ||||
|       - "${MINIO_CONSOLE_PORT:-9001}:9001" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   nats: | ||||
|     image: docker.io/library/nats@sha256:c82559e4476289481a8a5196e675ebfe67eea81d95e5161e3e78eccfe766608e | ||||
|     command: | ||||
|       - "-js" | ||||
|       - "-sd" | ||||
|       - /data | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "${NATS_CLIENT_PORT:-4222}:4222" | ||||
|     volumes: | ||||
|       - nats-data:/data | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   authority: | ||||
|     image: registry.stella-ops.org/stellaops/authority@sha256:a8e8faec44a579aa5714e58be835f25575710430b1ad2ccd1282a018cd9ffcdd | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|     environment: | ||||
|       STELLAOPS_AUTHORITY__ISSUER: "${AUTHORITY_ISSUER}" | ||||
|       STELLAOPS_AUTHORITY__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       STELLAOPS_AUTHORITY__PLUGINDIRECTORIES__0: "/app/plugins" | ||||
|       STELLAOPS_AUTHORITY__PLUGINS__CONFIGURATIONDIRECTORY: "/app/etc/authority.plugins" | ||||
|     volumes: | ||||
|       - ../../etc/authority.yaml:/etc/authority.yaml:ro | ||||
|       - ../../etc/authority.plugins:/app/etc/authority.plugins:ro | ||||
|     ports: | ||||
|       - "${AUTHORITY_PORT:-8440}:8440" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   signer: | ||||
|     image: registry.stella-ops.org/stellaops/signer@sha256:8bfef9a75783883d49fc18e3566553934e970b00ee090abee9cb110d2d5c3298 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - authority | ||||
|     environment: | ||||
|       SIGNER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|       SIGNER__POE__INTROSPECTURL: "${SIGNER_POE_INTROSPECT_URL}" | ||||
|       SIGNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${SIGNER_PORT:-8441}:8441" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   attestor: | ||||
|     image: registry.stella-ops.org/stellaops/attestor@sha256:5cc417948c029da01dccf36e4645d961a3f6d8de7e62fe98d845f07cd2282114 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - signer | ||||
|     environment: | ||||
|       ATTESTOR__SIGNER__BASEURL: "https://signer:8441" | ||||
|       ATTESTOR__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${ATTESTOR_PORT:-8442}:8442" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   concelier: | ||||
|     image: registry.stella-ops.org/stellaops/concelier@sha256:dafef3954eb4b837e2c424dd2d23e1e4d60fa83794840fac9cd3dea1d43bd085 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|       - minio | ||||
|     environment: | ||||
|       CONCELIER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       CONCELIER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       CONCELIER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       CONCELIER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       CONCELIER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|     volumes: | ||||
|       - concelier-jobs:/var/lib/concelier/jobs | ||||
|     ports: | ||||
|       - "${CONCELIER_PORT:-8445}:8445" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-web: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-web@sha256:e0dfdb087e330585a5953029fb4757f5abdf7610820a085bd61b457dbead9a11 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|       - minio | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     ports: | ||||
|       - "${SCANNER_WEB_PORT:-8444}:8444" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-worker: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-worker@sha256:92dda42f6f64b2d9522104a5c9ffb61d37b34dd193132b68457a259748008f37 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   excititor: | ||||
|     image: registry.stella-ops.org/stellaops/excititor@sha256:d9bd5cadf1eab427447ce3df7302c30ded837239771cc6433b9befb895054285 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|     environment: | ||||
|       EXCITITOR__CONCELIER__BASEURL: "https://concelier:8445" | ||||
|       EXCITITOR__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   web-ui: | ||||
|     image: registry.stella-ops.org/stellaops/web-ui@sha256:38b225fa7767a5b94ebae4dae8696044126aac429415e93de514d5dd95748dcf | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|     environment: | ||||
|       STELLAOPS_UI__BACKEND__BASEURL: "https://scanner-web:8444" | ||||
|     ports: | ||||
|       - "${UI_PORT:-8443}:8443" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
							
								
								
									
										188
									
								
								deploy/compose/docker-compose.stage.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								deploy/compose/docker-compose.stage.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,188 @@ | ||||
| version: "3.9" | ||||
|  | ||||
| x-release-labels: &release-labels | ||||
|   com.stellaops.release.version: "2025.09.2" | ||||
|   com.stellaops.release.channel: "stable" | ||||
|   com.stellaops.profile: "stage" | ||||
|  | ||||
| networks: | ||||
|   stellaops: | ||||
|     driver: bridge | ||||
|  | ||||
| volumes: | ||||
|   mongo-data: | ||||
|   minio-data: | ||||
|   concelier-jobs: | ||||
|   nats-data: | ||||
|  | ||||
| services: | ||||
|   mongo: | ||||
|     image: docker.io/library/mongo@sha256:c258b26dbb7774f97f52aff52231ca5f228273a84329c5f5e451c3739457db49 | ||||
|     command: ["mongod", "--bind_ip_all"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MONGO_INITDB_ROOT_USERNAME: "${MONGO_INITDB_ROOT_USERNAME}" | ||||
|       MONGO_INITDB_ROOT_PASSWORD: "${MONGO_INITDB_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - mongo-data:/data/db | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   minio: | ||||
|     image: docker.io/minio/minio@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e | ||||
|     command: ["server", "/data", "--console-address", ":9001"] | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       MINIO_ROOT_USER: "${MINIO_ROOT_USER}" | ||||
|       MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD}" | ||||
|     volumes: | ||||
|       - minio-data:/data | ||||
|     ports: | ||||
|       - "${MINIO_CONSOLE_PORT:-9001}:9001" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   nats: | ||||
|     image: docker.io/library/nats@sha256:c82559e4476289481a8a5196e675ebfe67eea81d95e5161e3e78eccfe766608e | ||||
|     command: | ||||
|       - "-js" | ||||
|       - "-sd" | ||||
|       - /data | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "${NATS_CLIENT_PORT:-4222}:4222" | ||||
|     volumes: | ||||
|       - nats-data:/data | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   authority: | ||||
|     image: registry.stella-ops.org/stellaops/authority@sha256:b0348bad1d0b401cc3c71cb40ba034c8043b6c8874546f90d4783c9dbfcc0bf5 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|     environment: | ||||
|       STELLAOPS_AUTHORITY__ISSUER: "${AUTHORITY_ISSUER}" | ||||
|       STELLAOPS_AUTHORITY__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       STELLAOPS_AUTHORITY__PLUGINDIRECTORIES__0: "/app/plugins" | ||||
|       STELLAOPS_AUTHORITY__PLUGINS__CONFIGURATIONDIRECTORY: "/app/etc/authority.plugins" | ||||
|     volumes: | ||||
|       - ../../etc/authority.yaml:/etc/authority.yaml:ro | ||||
|       - ../../etc/authority.plugins:/app/etc/authority.plugins:ro | ||||
|     ports: | ||||
|       - "${AUTHORITY_PORT:-8440}:8440" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   signer: | ||||
|     image: registry.stella-ops.org/stellaops/signer@sha256:8ad574e61f3a9e9bda8a58eb2700ae46813284e35a150b1137bc7c2b92ac0f2e | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - authority | ||||
|     environment: | ||||
|       SIGNER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|       SIGNER__POE__INTROSPECTURL: "${SIGNER_POE_INTROSPECT_URL}" | ||||
|       SIGNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${SIGNER_PORT:-8441}:8441" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   attestor: | ||||
|     image: registry.stella-ops.org/stellaops/attestor@sha256:0534985f978b0b5d220d73c96fddd962cd9135f616811cbe3bff4666c5af568f | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - signer | ||||
|     environment: | ||||
|       ATTESTOR__SIGNER__BASEURL: "https://signer:8441" | ||||
|       ATTESTOR__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     ports: | ||||
|       - "${ATTESTOR_PORT:-8442}:8442" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   concelier: | ||||
|     image: registry.stella-ops.org/stellaops/concelier@sha256:c58cdcaee1d266d68d498e41110a589dd204b487d37381096bd61ab345a867c5 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - mongo | ||||
|       - minio | ||||
|     environment: | ||||
|       CONCELIER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       CONCELIER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       CONCELIER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       CONCELIER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       CONCELIER__AUTHORITY__BASEURL: "https://authority:8440" | ||||
|     volumes: | ||||
|       - concelier-jobs:/var/lib/concelier/jobs | ||||
|     ports: | ||||
|       - "${CONCELIER_PORT:-8445}:8445" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-web: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-web@sha256:14b23448c3f9586a9156370b3e8c1991b61907efa666ca37dd3aaed1e79fe3b7 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|       - minio | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     ports: | ||||
|       - "${SCANNER_WEB_PORT:-8444}:8444" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   scanner-worker: | ||||
|     image: registry.stella-ops.org/stellaops/scanner-worker@sha256:32e25e76386eb9ea8bee0a1ad546775db9a2df989fab61ac877e351881960dab | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|       - nats | ||||
|     environment: | ||||
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|       SCANNER__STORAGE__S3__ENDPOINT: "http://minio:9000" | ||||
|       SCANNER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}" | ||||
|       SCANNER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}" | ||||
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   excititor: | ||||
|     image: registry.stella-ops.org/stellaops/excititor@sha256:59022e2016aebcef5c856d163ae705755d3f81949d41195256e935ef40a627fa | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - concelier | ||||
|     environment: | ||||
|       EXCITITOR__CONCELIER__BASEURL: "https://concelier:8445" | ||||
|       EXCITITOR__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
|  | ||||
|   web-ui: | ||||
|     image: registry.stella-ops.org/stellaops/web-ui@sha256:10d924808c48e4353e3a241da62eb7aefe727a1d6dc830eb23a8e181013b3a23 | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       - scanner-web | ||||
|     environment: | ||||
|       STELLAOPS_UI__BACKEND__BASEURL: "https://scanner-web:8444" | ||||
|     ports: | ||||
|       - "${UI_PORT:-8443}:8443" | ||||
|     networks: | ||||
|       - stellaops | ||||
|     labels: *release-labels | ||||
							
								
								
									
										17
									
								
								deploy/compose/env/airgap.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								deploy/compose/env/airgap.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| # Substitutions for docker-compose.airgap.yaml | ||||
| MONGO_INITDB_ROOT_USERNAME=stellaops | ||||
| MONGO_INITDB_ROOT_PASSWORD=airgap-password | ||||
| MINIO_ROOT_USER=stellaops-offline | ||||
| MINIO_ROOT_PASSWORD=airgap-minio-secret | ||||
| MINIO_CONSOLE_PORT=29001 | ||||
| AUTHORITY_ISSUER=https://authority.airgap.local | ||||
| AUTHORITY_PORT=8440 | ||||
| SIGNER_POE_INTROSPECT_URL=file:///offline/poe/introspect.json | ||||
| SIGNER_PORT=8441 | ||||
| ATTESTOR_PORT=8442 | ||||
| CONCELIER_PORT=8445 | ||||
| SCANNER_WEB_PORT=8444 | ||||
| UI_PORT=9443 | ||||
| NATS_CLIENT_PORT=24222 | ||||
| SCANNER_QUEUE_BROKER=nats://nats:4222 | ||||
| AUTHORITY_OFFLINE_CACHE_TOLERANCE=00:45:00 | ||||
							
								
								
									
										16
									
								
								deploy/compose/env/dev.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								deploy/compose/env/dev.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # Substitutions for docker-compose.dev.yaml | ||||
| MONGO_INITDB_ROOT_USERNAME=stellaops | ||||
| MONGO_INITDB_ROOT_PASSWORD=dev-password | ||||
| MINIO_ROOT_USER=stellaops | ||||
| MINIO_ROOT_PASSWORD=dev-minio-secret | ||||
| MINIO_CONSOLE_PORT=9001 | ||||
| AUTHORITY_ISSUER=https://authority.localtest.me | ||||
| AUTHORITY_PORT=8440 | ||||
| SIGNER_POE_INTROSPECT_URL=https://licensing.svc.local/introspect | ||||
| SIGNER_PORT=8441 | ||||
| ATTESTOR_PORT=8442 | ||||
| CONCELIER_PORT=8445 | ||||
| SCANNER_WEB_PORT=8444 | ||||
| UI_PORT=8443 | ||||
| NATS_CLIENT_PORT=4222 | ||||
| SCANNER_QUEUE_BROKER=nats://nats:4222 | ||||
							
								
								
									
										16
									
								
								deploy/compose/env/stage.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								deploy/compose/env/stage.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # Substitutions for docker-compose.stage.yaml | ||||
| MONGO_INITDB_ROOT_USERNAME=stellaops | ||||
| MONGO_INITDB_ROOT_PASSWORD=stage-password | ||||
| MINIO_ROOT_USER=stellaops-stage | ||||
| MINIO_ROOT_PASSWORD=stage-minio-secret | ||||
| MINIO_CONSOLE_PORT=19001 | ||||
| AUTHORITY_ISSUER=https://authority.stage.stella-ops.internal | ||||
| AUTHORITY_PORT=8440 | ||||
| SIGNER_POE_INTROSPECT_URL=https://licensing.stage.stella-ops.internal/introspect | ||||
| SIGNER_PORT=8441 | ||||
| ATTESTOR_PORT=8442 | ||||
| CONCELIER_PORT=8445 | ||||
| SCANNER_WEB_PORT=8444 | ||||
| UI_PORT=8443 | ||||
| NATS_CLIENT_PORT=4222 | ||||
| SCANNER_QUEUE_BROKER=nats://nats:4222 | ||||
		Reference in New Issue
	
	Block a user