Skip to content

Instantly share code, notes, and snippets.

@awantoch
Created March 5, 2022 01:55
Show Gist options
  • Save awantoch/e30d6369802720a0e2c058fc593a460f to your computer and use it in GitHub Desktop.
Save awantoch/e30d6369802720a0e2c058fc593a460f to your computer and use it in GitHub Desktop.
Quick IPFS Gateway Docker Compose
version: '3.9'
services:
traefik:
image: "traefik:v2.6"
restart: always
command:
- "--providers.docker"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=support@your.domain" # TODO
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "./data/letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
ipfs:
image: ipfs/go-ipfs:v0.9.1
restart: always
volumes:
- "./data/ipfs:/data/ipfs"
- "./data/out:/output"
environment:
- IPFS_PROFILE=server
ports:
- "4001:4001"
labels:
- "traefik.http.middlewares.ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.ratelimit.ratelimit.burst=50"
- "traefik.http.routers.ipfs-gateway.entrypoints=websecure"
- "traefik.http.routers.ipfs-gateway.rule=Host(`gateway.your.domain`)" # TODO
- "traefik.http.services.ipfs-gateway.loadbalancer.server.port=8080"
- "traefik.http.routers.ipfs-gateway.service=ipfs-gateway"
- "traefik.http.routers.ipfs-gateway.middlewares=ratelimit"
- "traefik.http.routers.ipfs-gateway.tls.certresolver=letsencrypt"
- "traefik.http.routers.ipfs-gateway.tls=true"
- "traefik.http.routers.ipfs-api.entrypoints=websecure"
- "traefik.http.routers.ipfs-api.rule=Host(`pin.your.domain`)" # TODO
- "traefik.http.services.ipfs-api.loadbalancer.server.port=5001"
- "traefik.http.routers.ipfs-api.service=ipfs-api"
- "traefik.http.routers.ipfs-api.tls.certresolver=letsencrypt"
- "traefik.http.routers.ipfs-api.middlewares=ratelimit"
- "traefik.http.routers.ipfs-api.tls=true"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment