Files
devops/hostinger/dev-stack.yaml
T
Felix FaerberandClaude Opus 4.7 032a22b6ee init devops repo
Mirrors cipherdolls/devops layout. Hostinger Swarm stacks for the t4t
hosted-gateway and local docker-compose for development + e2e tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:31:30 +03:00

146 lines
3.4 KiB
YAML

version: '3.8'
# Staging environment — points at the `develop` image tag, mounted on a
# separate dev.t4t-gateway.com subdomain. Shares the same overlay networks
# but uses its own postgres/redis/bee volumes so prod data is untouched.
networks:
public:
external: true
internal:
external: true
volumes:
postgres-data-dev:
driver: local
redis-data-dev:
driver: local
bee-data-dev:
driver: local
services:
api:
image: ghcr.io/token-for-token/hosted-gateway:develop
command: ["bun", "run", "src/api.ts"]
env_file:
- .env.dev
environment:
DATABASE_URL: postgresql://hosted:hosted@postgres-dev:5432/hosted_gateway?schema=public
REDIS_HOST: redis-dev
REDIS_PORT: 6379
BEE_API_URL: http://bee-dev:1633
HOSTED_GATEWAY_PORT: 8080
networks:
- public
- internal
deploy:
replicas: 1
update_config:
parallelism: 1
order: start-first
resources:
limits:
memory: 256M
reservations:
memory: 128M
labels:
- "traefik.enable=true"
- "traefik.docker.network=public"
- "traefik.constraint-label=public"
- "traefik.http.routers.api-dev.rule=Host(`dev.t4t-gateway.com`)"
- "traefik.http.routers.api-dev.entrypoints=websecure"
- "traefik.http.routers.api-dev.tls.certresolver=le"
- "traefik.http.services.api-dev.loadbalancer.server.port=8080"
- "traefik.http.routers.api-dev.middlewares=redirect-to-https"
logging:
driver: loki
options:
loki-url: "https://loki.t4t-gateway.com/loki/api/v1/push"
worker:
image: ghcr.io/token-for-token/hosted-gateway:develop
command: ["bun", "run", "src/worker.ts"]
env_file:
- .env.dev
environment:
DATABASE_URL: postgresql://hosted:hosted@postgres-dev:5432/hosted_gateway?schema=public
REDIS_HOST: redis-dev
REDIS_PORT: 6379
BEE_API_URL: http://bee-dev:1633
networks:
- internal
deploy:
replicas: 1
resources:
limits:
memory: 256M
reservations:
memory: 128M
logging:
driver: loki
options:
loki-url: "https://loki.t4t-gateway.com/loki/api/v1/push"
postgres-dev:
image: postgres:16
networks:
- internal
environment:
POSTGRES_USER: hosted
POSTGRES_PASSWORD: hosted
POSTGRES_DB: hosted_gateway
volumes:
- postgres-data-dev:/var/lib/postgresql/data
deploy:
resources:
limits:
memory: 256M
reservations:
memory: 128M
logging:
driver: loki
options:
loki-url: "https://loki.t4t-gateway.com/loki/api/v1/push"
redis-dev:
image: redis:7
networks:
- internal
volumes:
- redis-data-dev:/data
deploy:
resources:
limits:
memory: 64M
reservations:
memory: 32M
logging:
driver: loki
options:
loki-url: "https://loki.t4t-gateway.com/loki/api/v1/push"
bee-dev:
image: ethersphere/bee:latest
command: dev
networks:
- internal
volumes:
- bee-data-dev:/home/bee/.bee
deploy:
resources:
limits:
memory: 256M
reservations:
memory: 128M
logging:
driver: loki
options:
loki-url: "https://loki.t4t-gateway.com/loki/api/v1/push"