Storage Guide
This guide covers persistent storage and database configuration for Drone deployments on Kubernetes.
Persistent Volume (PVC)
By default, Drone uses a PersistentVolumeClaim (PVC) for stateful data (e.g., SQLite database, logs):
server:
persistentVolume:
enabled: true
size: 8Gi
storageClass: ""
accessModes:
- ReadWriteOnce
- Set
enabled: false
if using an external database (Postgres, MySQL). - Use
existingClaim
to use a pre-created PVC.
Database Backend
Drone supports SQLite (default), Postgres, and MySQL. To use an external DB:
server:
env:
DRONE_DATABASE_DRIVER: postgres
secrets:
DRONE_DATABASE_DATASOURCE: "postgres://user:pass@host:5432/dbname?sslmode=disable"
- Supported drivers:
sqlite3
,postgres
,mysql
- For production, use Postgres or MySQL.
Encryption Secret
Set a database encryption secret for sensitive data:
server:
secrets:
DRONE_DATABASE_SECRET: <random-hex>
Generate with: openssl rand -hex 16
tip
Never store secrets in git. Use Kubernetes secrets or Helm --set
for sensitive values.