Referencia de capacidades y límites
La spec completa y siempre actual de cada producto de koigrid — versiones, features y límites de plan. Se genera desde la fuente de verdad en código, así que nunca se desincroniza de lo que la plataforma hace de verdad.
Databases
- PostgreSQL versions
- 14, 15, 16, 17 (default 16)
- pgvector
- pre-installed (embeddings / vector search, AI-native)
- Extensions
- pg_trgm, unaccent, uuid-ossp, pgcrypto, citext, hstore, pg_stat_statements (CREATE EXTENSION)
- High availability
- leader + standby, automatic failover (Patroni + etcd)
- Connection pooling
- PgBouncer (incluido)
- Logical replication / CDC
- enabled — CREATE SUBSCRIPTION (in) + publications (out)
- Backups
- automatic daily + on-demand, point-in-time restore (wal-g)
- Read replicas
- hot-scaling, separate read endpoint (readUri) on HA
- TLS
- verificado (sslmode=verify-ca con CA propia — sin rejectUnauthorized:false)
Cache / Redis
- Redis version
- 7
- High availability
- master + replica(s) + 3 Sentinels + master-aware HAProxy, auto-failover
- Eviction policies
- noeviction, allkeys-lru/lfu/random, volatile-lru
- Persistence
- RDB + AOF
- Backups
- RDB snapshots → S3, daily + on-demand, restore to a new cluster
- Security
- TLS (rediss://) + password (requirepass/masterauth)
Storage
- S3-compatible
- MinIO — PutObject, GetObject, ListObjectsV2, HeadObject, DeleteObject, presigned URLs
- Clients
- aws-cli, rclone, any S3 SDK (path-style / forcePathStyle:true)
- Endpoint
- https://s3.koigrid.com
- Access keys
- per-org scoped keys (secret shown once)
- Bandwidth
- included per plan, flat rate (no egress surprise)
Apps
- Sources
- container image OR git repo (Dockerfile or nixpacks buildpacks)
- Build
- sandboxed (rootless BuildKit / kaniko in gVisor)
- Deploys
- zero-downtime (new container promoted only if healthy) + rollback to exact image
- Custom domains
- CNAME/ALIAS + automatic TLS (Let’s Encrypt)
- Env vars
- encrypted at rest (envelope, AES-256-GCM), injected on redeploy
- Volumes
- persistent block storage per app (survives redeploys)
- Isolation
- gVisor syscall sandbox (untrusted code cannot escape)
- Runtime
- RAM/CPU limits, health checks, per-app logs; multi-runner with auto-failover
Cron jobs
- Schedule
- 5-field cron with timezone/DST (cron-parser)
- Runtime
- docker run per job in gVisor; RAM/CPU limits + timeout
- Output
- captured logs + exit code; manual trigger available
- Env vars
- encrypted at rest, injected per run
Observability
- Events
- timeline of every action, per org (GET /events)
- Metrics
- daily consumption series + cost (GET /metrics)
- Alarms
- threshold alarms → emit alarm.triggered (GET/POST /alarms)
- Scope
- observability:read / observability:write
- Model
- bring-your-own SMTP (Resend/SES/Postmark/Postfix…) — koigrid relays only
- Config
- SMTP per org, encrypted at rest, verified on save
- Sending
- POST /email/send with rate limit per plan + delivery ledger
- Cost
- zero email cost/reputation for koigrid; no per-domain limits
Límites por plan
| Plan | €/mo | Apps | Databases | Redis | Cron jobs | Storage | DB disk | Bandwidth |
|---|---|---|---|---|---|---|---|---|
| free | 0 | 1 | 1 | 1 | 2 | 1 GB | 1 GB | 100 GB |
| starter | 12 | 3 | 1 | 1 | 10 | 25 GB | 10 GB | 500 GB |
| pro | 35 | 8 | 3 | 3 | 50 | 100 GB | 50 GB | 2048 GB |
| scale | 89 | 20 | 10 | 10 | 200 | 500 GB | 200 GB | 5120 GB |