Sub2API is an AI API Gateway Platform for distributing and managing AI product subscription API quotas.
docker run -d \
--name sub2api \
-p 8080:8080 \
-e DATABASE_URL="postgres://user:pass@host:5432/sub2api" \
-e REDIS_URL="redis://host:6379" \
weishaw/sub2api:latest
version: '3.8'
services:
sub2api:
image: weishaw/sub2api:latest
ports:
- "8080:8080"
environment:
- DATABASE_URL=postgres://postgres:postgres@db:5432/sub2api?sslmode=disable
- REDIS_URL=redis://redis:6379
depends_on:
- db
- redis
db:
image: postgres:15-alpine
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=sub2api
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
Sub2API runs database migrations while starting. PostgreSQL may still be recovering briefly after a host or Docker daemon restart. The application retries transient PostgreSQL startup and connection errors with bounded exponential backoff, then continues startup when the database is ready. Permanent errors such as invalid credentials, migration checksum mismatches, SQL errors, and incompatible data fail immediately.
The Compose deployment also checks PostgreSQL readiness with both pg_isready
and a simple SQL query. depends_on: condition: service_healthy helps order a
fresh Compose start, but application-level retries are still required when
Docker restores existing containers after a host restart.
| Variable | Description | Required | Default |
|---|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes | - |
REDIS_URL | Redis connection string | Yes | - |
PORT | Server port | No | 8080 |
GIN_MODE | Gin framework mode (debug/release) | No | release |
linux/amd64linux/arm64latest - Latest stable releasex.y.z - Specific versionx.y - Latest patch of minor versionx - Latest minor of major versionContent type
Image
Digest
sha256:3500ec5a4…
Size
81.9 MB
Last updated
3 days ago
docker pull sunchaowang/sub2api