$ -weight: 500;">curl -fsSL https://raw.githubusercontent.com/-weight: 500;">docker-secret-operator/dso/main/-weight: 500;">install.sh | -weight: 600;">sudo bash
-weight: 500;">curl -fsSL https://raw.githubusercontent.com/-weight: 500;">docker-secret-operator/dso/main/-weight: 500;">install.sh | -weight: 600;">sudo bash
-weight: 500;">curl -fsSL https://raw.githubusercontent.com/-weight: 500;">docker-secret-operator/dso/main/-weight: 500;">install.sh | -weight: 600;">sudo bash
providers: aws-prod: type: aws region: us-east-1 # Change to your AWS region auth: method: iam_role agent: cache: true watch: polling_interval: 5m defaults: inject: type: env rotation: enabled: true strategy: rolling # Default strategy for all secrets secrets: - name: arn:aws:secretsmanager:REGION:ACCOUNT:secret:YOUR_SECRET_NAME provider: aws-prod rotation: strategy: -weight: 500;">restart # Override global default for this specific secret mappings: DB_USER: MYSQL_USER DB_PASSWORD: MYSQL_PASSWORD
providers: aws-prod: type: aws region: us-east-1 # Change to your AWS region auth: method: iam_role agent: cache: true watch: polling_interval: 5m defaults: inject: type: env rotation: enabled: true strategy: rolling # Default strategy for all secrets secrets: - name: arn:aws:secretsmanager:REGION:ACCOUNT:secret:YOUR_SECRET_NAME provider: aws-prod rotation: strategy: -weight: 500;">restart # Override global default for this specific secret mappings: DB_USER: MYSQL_USER DB_PASSWORD: MYSQL_PASSWORD
providers: aws-prod: type: aws region: us-east-1 # Change to your AWS region auth: method: iam_role agent: cache: true watch: polling_interval: 5m defaults: inject: type: env rotation: enabled: true strategy: rolling # Default strategy for all secrets secrets: - name: arn:aws:secretsmanager:REGION:ACCOUNT:secret:YOUR_SECRET_NAME provider: aws-prod rotation: strategy: -weight: 500;">restart # Override global default for this specific secret mappings: DB_USER: MYSQL_USER DB_PASSWORD: MYSQL_PASSWORD
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start dso-agent.-weight: 500;">service
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start dso-agent.-weight: 500;">service
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start dso-agent.-weight: 500;">service
services: api: image: my-app:latest environment: - DB_USER # DSO will fill this - DB_PASSWORD # DSO will fill this
services: api: image: my-app:latest environment: - DB_USER # DSO will fill this - DB_PASSWORD # DSO will fill this
services: api: image: my-app:latest environment: - DB_USER # DSO will fill this - DB_PASSWORD # DSO will fill this
-weight: 500;">docker dso up -d
-weight: 500;">docker dso up -d
-weight: 500;">docker dso up -d - DSO Agent: Runs as a systemd -weight: 500;">service. It authenticates with your provider, fetches secrets, and keeps them in an in-memory RAM cache. They never touch the physical disk.
- CLI Plugin: You use -weight: 500;">docker dso up instead of -weight: 500;">docker compose up.
- Communication: The CLI talks to the agent over a secure Unix domain socket (/var/run/dso.sock).
- Injection: The plugin overlays the secrets onto your container's environment just as it starts. - Zero-Persistence: Secrets live in RAM, never on disk.
- Multi-Cloud: Native support for AWS Secrets Manager, Azure Key Vault, HashiCorp Vault, and Huawei CSMS.
- Auto-Rotation: Refreshes the cache and can trigger rolling restarts when a secret changes.
- Native UX: It’s a Docker plugin, so it works seamlessly with the standard -weight: 500;">docker command.
- Tiny Footprint: Written in Go with minimal resource usage. - GitHub: -weight: 500;">docker-secret-operator/dso
- Documentation: https://dso.skycloudops.in/docs/