- Language: Go 1.23+ (toolchain 1.24.4)
- Framework: Fiber v2.52.9 (High-performance HTTP web framework)
- Database: PostgreSQL 14+ / Redis 7+
- Cloud Platform: AWS (EKS, S3, RDS, ElastiCache)
- Build System: Make with modular Makefiles (dev, build, test, quality, docker, deps, tools, clean)
- Testing: Testify v1.10.0 with comprehensive integration and E2E tests
- Linting: golangci-lint (configured in quality.mk)
- Package Manager: Go modules
- Web Framework:
github.com/gofiber/fiber/v2v2.52.9 - Configuration:
github.com/spf13/viperv1.20.1,gopkg.in/yaml.v3v3.0.1 - Authentication:
github.com/golang-jwt/jwt/v5v5.2.2 - OAuth2 Providers: GitHub, GitLab, Google OAuth2 integration
- Multi-Factor Auth:
github.com/pquerna/otpv1.5.0 (TOTP support) - AWS SDK:
github.com/aws/aws-sdk-go-v2v1.36.5 (S3 caching) - HTTP Client:
github.com/valyala/fasthttpv1.63.0 - Validation:
github.com/go-playground/validator/v10v10.27.0 - Rate Limiting:
github.com/ulule/limiter/v3v3.11.2
- Testing:
github.com/stretchr/testifyv1.10.0 - Mocking:
github.com/go-playground/assert/v2v2.2.0 - CLI Framework:
github.com/spf13/cobrav1.9.1 - UUID Generation:
github.com/google/uuidv1.6.0 - QR Code:
github.com/skip2/go-qrcode(MFA setup)
- Structured Logging:
github.com/rs/zerologv1.34.0 - Classic Logging:
github.com/sirupsen/logrusv1.9.3 - High-Performance:
go.uber.org/zapv1.27.0 - Log Rotation:
gopkg.in/natefinch/lumberjack.v2v2.2.1
- Metrics:
github.com/prometheus/client_golangv1.22.0 - Template Engine:
github.com/gofiber/template/html/v2v2.1.3
ProxyND is a high-performance, multi-format package manager proxy server designed with Hexagonal Architecture (Ports and Adapters) pattern for maximum maintainability and testability:
┌─────────────────────────────────────────────────────────────┐
│ External Systems │
├─────────────────────────────────────────────────────────────┤
│ Web UI │ CLI │ Package Registries │ Cache │ Auth │
└─────────┬─────────┬───────────────────────┬───────┬─────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Adapters Layer │
├─────────────────────────────────────────────────────────────┤
│ HTTP/Fiber │ CLI │ NPM/Maven/APT │ S3/FS │ OAuth2 │
└─────────┬─────────┬───────────────────────┬───────┬─────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Ports Layer │
├─────────────────────────────────────────────────────────────┤
│ HTTPServer │ PackageManager │ CacheBackend │ Auth │
└─────────┬─────────┬───────────────────────┬───────┬─────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Use Cases Layer │
├─────────────────────────────────────────────────────────────┤
│ ProxyService │ CacheStrategy │ HealthService │
└─────────┬─────────┬───────────────────────┬───────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Domain Layer │
├─────────────────────────────────────────────────────────────┤
│ APT │ Maven │ NPM │ Docker │ PyPI │ YUM │ APK │
└─────────────────────────────────────────────────────────────┘
- HTTPServer: HTTP server abstraction independent of web framework
- PackageManager: Unified interface for all package manager types
- CacheBackend: Multi-tier caching strategy interfaces
- AuthService: Authentication and authorization abstractions
- Logger: Structured logging interface with observability
- ProxyService: Core proxy business logic (framework-independent)
- CacheStrategyService: Intelligent caching strategies per package type
- HealthService: Comprehensive health checking and monitoring
- HTTP/Fiber: Fiber framework adapter implementing HTTP ports
- Package Managers: Type-specific adapters (NPM, Maven, APT, etc.)
- Cache Backends: Filesystem and S3 adapter implementations
- Auth Providers: OAuth2 provider adapters (GitHub, GitLab, Google)
- Hexagonal architecture scaffolding created
- Ports interfaces defined (
internal/ports/) - Use case layer skeleton (
internal/usecase/) - Fiber adapter foundation (
internal/adapters/http/fiber/)
- Handler migration from
handlers/→internal/usecase/ - Middleware migration from
middlewares/→internal/adapters/http/fiber/middleware/ - Service layer integration
- Complete handler migration
- Dependency injection container setup
- Legacy code removal
- Performance optimization
- Single Responsibility: Each layer has a clear, focused purpose
- Dependency Inversion: High-level modules don't depend on low-level modules
- Interface Segregation: Clients depend only on interfaces they use
- Open/Closed Principle: Open for extension, closed for modification
- Maven (Java/Kotlin/Scala) - Repository proxy and mirroring
- NPM (Node.js) - Package proxy with metadata caching
- APT (Ubuntu/Debian) - Repository mirroring with signature verification
- Docker Registry - Container image proxy with blob management
- PyPI (Python) - Package index proxy and caching
- YUM (RedHat/CentOS) - Repository proxy with metadata processing
- APK (Alpine Linux) - Package proxy with signature verification
- Multi-tier Caching: Filesystem and S3-based caching strategies
- Health Monitoring: Comprehensive health checks with auto-recovery
- Security: OAuth2 integration, JWT authentication, MFA support
- Performance: Connection pooling, rate limiting, request optimization
- Observability: Prometheus metrics, structured logging, distributed tracing
- Primary Storage: Filesystem-based caching with S3 backup
- Session Management: Redis for authentication and rate limiting
- Load Balancing: Nginx for SSL termination and request distribution
- Service Discovery: Kubernetes-native with Helm chart deployment
- Docker: Multi-arch containers (AMD64, ARM64) with optimized builds
- Docker Compose: Production-ready stack with Redis, Prometheus, Grafana
- Base Images: Alpine Linux for minimal attack surface
- Helm Charts: Production-ready Helm v3 charts with comprehensive configuration
- Platform Support: EKS, GKE, AKS with cloud-specific optimizations
- Scaling: Horizontal Pod Autoscaler with custom metrics
- Storage: Persistent volumes for cache storage with S3 backup
- EKS Cluster: Managed Kubernetes with auto-scaling node groups
- RDS PostgreSQL: Metadata storage with automated backups
- ElastiCache Redis: Session and cache management
- S3 Buckets: Distributed cache storage with lifecycle policies
- Application Load Balancer: High-availability traffic distribution
- CloudWatch: Centralized logging and monitoring
- Prometheus: Metrics collection and alerting rules
- Grafana: Visualization dashboards for operations and security
- AlertManager: Alert routing and notification management
- Loki: Log aggregation and correlation (optional)
- TLS Termination: SSL/TLS encryption with automatic certificate management
- Access Control: Role-based access with OAuth2 provider integration
- Network Security: VPC isolation, security groups, network policies
- Secret Management: AWS SSM Parameter Store for secure configuration
- Compliance: Security scanning, vulnerability assessment integration