Sign inSign up

lordraw/open-secureconfiguration

By lordraw

•Updated 7 months ago

Secure encrypted config manager with FastAPI API and Python client.

Image
0

2.9K

lordraw/open-secureconfiguration repository overview

⁠OpenSecureConf šŸ”

Encrypted Configuration Manager with Multi-Environment Support, Clustering, HTTPS & Real-time Events

Production-ready encrypted configuration management with multi-environment support, distributed clustering, HTTPS/SSL, Server-Sent Events, and Prometheus metrics.

Docker Pulls Python License


ā šŸš€ Quick Start

⁠Standalone (HTTP)
docker run -d -p 9000:9000 -v opensecureconf-data:/app/data \
  lordraw/open-secureconfiguration:latest
⁠With HTTPS
docker run -d -p 9443:9000 \
  -e OSC_HTTPS_ENABLED=true \
  -e OSC_SSL_CERTFILE=/app/certs/cert.pem \
  -e OSC_SSL_KEYFILE=/app/certs/key.pem \
  -v $(pwd)/cert.pem:/app/certs/cert.pem:ro \
  -v $(pwd)/key.pem:/app/certs/key.pem:ro \
  -v opensecureconf-data:/app/data \
  lordraw/open-secureconfiguration:latest
⁠3-Node Cluster (Production Ready)
version: '3.8'
services:
  node1:
    image: lordraw/open-secureconfiguration:latest
    ports: ["9001:9000"]
    environment:
      - OSC_CLUSTER_ENABLED=true
      - OSC_CLUSTER_MODE=replica
      - OSC_CLUSTER_NODE_ID=node1:9000
      - OSC_CLUSTER_NODES=node2:9000,node3:9000
      - OSC_API_KEY=your-secret-key
    volumes: [node1-data:/app/data]
    networks: [osc-network]
  # ... repeat for node2, node3

ā šŸ”‘ Features

⁠Core Security
  • šŸ” Military-Grade Encryption: AES-256-GCM + PBKDF2-HMAC-SHA256 (480k iterations)
  • šŸ”’ HTTPS/SSL: Let's Encrypt or self-signed certificates
  • šŸ”‘ API Key Auth: Optional endpoint authentication with configurable requirements
  • šŸ” Multi-Tenant: Different encryption keys per user/team
⁠Configuration Management
  • šŸŒ Multi-Environment: Isolated configs for production/staging/development
  • šŸ“ Category Support: Organize by database, api, features, etc.
  • šŸ” Advanced Filtering: Filter by key, environment, category, or combinations
  • šŸ“Š Pagination: Efficient listing with skip/limit parameters
⁠High Availability & Performance
  • 🌐 Clustering: REPLICA mode with active-active replication
  • šŸ”„ Auto-Sync: Background synchronization every 30s (configurable)
  • šŸ„ Health Checks: Multiple endpoints (/health, /ready, /cluster/health)
  • ⚔ High Performance: 200+ req/s with multi-worker support (Uvicorn)
  • 🧩 Load Balancing: Works with Nginx, HAProxy, Traefik
⁠Real-time & Monitoring
  • ⚔ Server-Sent Events (SSE): Real-time configuration change notifications
  • šŸŽÆ Event Filtering: Subscribe to specific keys, environments, or categories
  • šŸ”„ Auto-Reconnection: Client-side automatic reconnection with keep-alive
  • šŸ“Š Prometheus Metrics: Full observability with multiprocess support
  • šŸ“ˆ Statistics API: Detailed operation and cluster metrics
⁠Backup & Recovery
  • šŸ’¾ Encrypted Backups: Password-protected backup files
  • šŸ”„ Import/Restore: Restore with overwrite option
  • šŸŽÆ Selective Backup: Backup by environment or category
  • šŸ” Separate Encryption: Backup password independent from user keys
⁠Developer Experience
  • šŸ“ Structured Logging: JSON logs with structlog (async non-blocking)

  • šŸ” Detailed Error Messages: Comprehensive error responses with validation details

  • 🌐 CORS Support: Configurable origins for web clients

  • šŸ“š OpenAPI/Swagger: Auto-generated API documentation at /docs

  • šŸ Python Client: Official client library available


ā šŸ“Š Image Info

  • Base: python:3.11-slim
  • Port: 9000
  • Volumes:
    • /app/data - Database and encryption salt
    • /app/certs - SSL certificates (if HTTPS enabled)
    • /app/logs - Log files (if OSC_LOG_FILE set)
  • Size: ~150MB compressed
  • Architectures: amd64, arm64
⁠Tags
  • latest - Latest stable release
  • 3.1.0 - SSE
  • 3.0.0 - Multi-environment support (breaking changes)
  • 2.2.0 - HTTPS/SSL support
  • 2.1.0 - Clustering support
  • 2.0.0 - Initial stable release

  1. Import updated backup

ā šŸ“š Documentation

⁠Complete Documentation
⁠Interactive API Docs
  • Swagger UI: http://localhost:9000/docs
  • ReDoc: http://localhost:9000/redoc


⁠Development Setup
git clone https://github.com/lordraw77/OpenSecureConf.git
cd OpenSecureConf
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt

# Run tests
pytest

# Run with hot reload
uvicorn main:app --reload --port 9000

ā šŸ“„ License

MIT License - See LICENSE⁠ file for details

Built with: FastAPI, Uvicorn, Cryptography, SQLAlchemy, Prometheus Client, structlog, sse-starlette

Version 3.1.0 | Maintainer: lordraw77⁠


⭐ Star this repo if you find it useful! ⭐

Tag summary

Content type

Image

Digest

sha256:fc0f0b193…

Size

63.6 MB

Last updated

7 months ago

docker pull lordraw/open-secureconfiguration