feat: add APISIX Cloudron package (API-Gateway)
- Create Dockerfile wrapping official Apache APISIX image - Add CloudronManifest.json with etcd addon and multiple TCP ports - Create start.sh script with etcd wait and auto-configuration - Include README.md with comprehensive usage documentation - Add config.yaml.example for reference configuration - Add CHANGELOG.md for version tracking - Add logo.png (Apache APISIX branding) APISIX is a dynamic, real-time, high-performance API Gateway that provides rich traffic management features. Package includes: - Official Apache APISIX Docker image wrapper (143MB) - Cloudron etcd addon integration for configuration storage - Automatic etcd connection wait and configuration - Multiple exposed ports (9180: Admin API, 9080: HTTP, 9443: HTTPS) - 1024MB memory limit for gateway operations - Comprehensive documentation with API usage examples - Plugin configuration examples Ports: - 9180: Admin API port (REST API for configuration) - 9080: HTTP proxy port (client requests) - 9443: HTTPS proxy port (client requests with SSL) Features supported: - Dynamic configuration without restarts - Multi-protocol (HTTP/HTTPS, TCP/UDP, Dubbo, MQTT, gRPC, WebSocket) - Load balancing with multiple strategies - Security (IP restrictions, JWT, API Key auth) - Traffic management (rate limiting, circuit breaking, canary releases) - 100+ plugins for extensibility - AI Gateway capabilities for LLM workloads 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush <crush@charm.land>
This commit is contained in:
95
Package-Workspace/API-Gateway/apisix/config.yaml.example
Normal file
95
Package-Workspace/API-Gateway/apisix/config.yaml.example
Normal file
@@ -0,0 +1,95 @@
|
||||
# APISIX Configuration Sample
|
||||
# This file is automatically generated by Cloudron package
|
||||
# Located at: /usr/local/apisix/conf/config.yaml
|
||||
|
||||
deployment:
|
||||
role: traditional
|
||||
role_traditional:
|
||||
config_provider: etcd
|
||||
|
||||
admin:
|
||||
# Admin API port
|
||||
port: 9180
|
||||
|
||||
# Allow admin access from all IPs
|
||||
# Restrict this in production to specific IPs
|
||||
allow_admin:
|
||||
- 0.0.0.0/0
|
||||
|
||||
# Admin API key (CHANGE THIS IN PRODUCTION)
|
||||
admin_key:
|
||||
- admin-key-secret-change-me
|
||||
|
||||
# Admin API version
|
||||
admin_api_version: v3
|
||||
|
||||
etcd:
|
||||
# Etcd hosts (automatically configured by Cloudron)
|
||||
host:
|
||||
- 127.0.0.1
|
||||
port: 2379
|
||||
prefix: "/apisix"
|
||||
timeout: 30
|
||||
|
||||
apisix:
|
||||
# SSL configuration
|
||||
ssl:
|
||||
ssl_trusted_certificate: /etc/ssl/certs/ca-certificates.crt
|
||||
ssl_protocols: "TLSv1.2 TLSv1.3"
|
||||
|
||||
# Main HTTP proxy port
|
||||
node_listen: 9080
|
||||
|
||||
# Disable IPv6
|
||||
enable_ipv6: false
|
||||
|
||||
# Enable CORS for admin API
|
||||
enable_admin_cors: true
|
||||
|
||||
# Enable HTTP/2
|
||||
enable_http2: true
|
||||
|
||||
# Nginx configuration
|
||||
nginx_config:
|
||||
# Error log file
|
||||
error_log: "logs/error.log"
|
||||
error_log_level: "warn"
|
||||
|
||||
# Worker processes
|
||||
worker_processes: auto
|
||||
|
||||
# Maximum open files
|
||||
worker_rlimit_nofile: 20480
|
||||
|
||||
# Event worker processes
|
||||
event_worker_processes: 2
|
||||
|
||||
# Worker shutdown timeout
|
||||
worker_shutdown_timeout: 240s
|
||||
|
||||
# Additional configuration options:
|
||||
#
|
||||
# Plugin configuration (default plugins enabled)
|
||||
# plugins:
|
||||
# - real-ip
|
||||
# - proxy-rewrite
|
||||
# - limit-req
|
||||
# - limit-conn
|
||||
# - prometheus
|
||||
# - node-status
|
||||
# - jwt-auth
|
||||
# - key-auth
|
||||
# - basic-auth
|
||||
# - ip-restriction
|
||||
# - cors
|
||||
# - proxy-cache
|
||||
# - limit-count
|
||||
# - request-id
|
||||
# - fault-injection
|
||||
# - consumer
|
||||
#
|
||||
# Stream plugins (for TCP/UDP):
|
||||
# stream_plugins:
|
||||
# - mqtt-proxy
|
||||
# - ip-restriction
|
||||
# - limit-conn
|
||||
Reference in New Issue
Block a user