8000 GitHub - khoahuynhdev/eca · GitHub
[go: up one dir, main page]

Skip to content
khoahuynhdevPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ECA - Easy Certificate Authority

A production-ready Certificate Authority system designed for Kubernetes environments with X.509 and SSH certificate support.

Features

  • Root CA creation with YubiKey support (air-gapped security)
  • Intermediate CA management
  • Certificate issuance with predefined profiles
  • Certificate revocation and CRL generation
  • REST API for automated certificate management
  • Pretty-printed certificate viewing
  • HashiCorp Vault integration for key storage

Quick Start

Prerequisites

  • Go 1.22+
  • Task (task runner): go install github.com/go-task/task/v3/cmd/task@latest
  • Docker and Docker Compose (for development environment)

Build

# Build CLI and server
task build

# Run CLI
./bin/eca --help

# Run server
./bin/eca-server

Development Environment

Start the development environment with PostgreSQL, Vault, and MinIO:

# Start services
task compose:up

# View logs
task compose:logs

# Stop services
task compose:down

Available Tasks

task --list

Key tasks:

Task Description
task build Build CLI and server binaries
task test Run all tests
task lint Run linters
task compose:up Start dev environment
task docker:build Build Docker images

Project Structure

eca/
├── cmd/
│   ├── eca/           # CLI entrypoint
│   └── eca-server/    # API server entrypoint
├── pkg/
│   ├── ca/            # Core CA operations
│   ├── storage/       # Storage backends
│   ├── crypto/        # Cryptographic operations
│   ├── config/        # Configuration management
│   └── ui/            # Terminal UI utilities
├── internal/
│   ├── cli/           # CLI commands
│   └── server/        # API server
├── configs/
│   └── profiles/      # Certificate profiles
├── deployments/       # Docker and K8s configs
└── docs/              # Documentation

Configuration

Configuration can be provided via:

  1. YAML config file (~/.eca/config.yaml or /etc/eca/config.yaml)
  2. Environment variables (prefixed with ECA_)
  3. CLI flags

See configs/config.example.yaml for all options.

Documentation

License

MIT License - see LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0