1. Docker Compose
Preferred method for simple deployment
Free Commit only
version: '3.2'
services:
free-commit-api:
image: romainlavabre/free-commit-api:latest
port:
- "8080:8080"
environment:
DATASOURCE_URL: ${DATASOURCE_URL}
DATASOURCE_USERNAME: ${DATASOURCE_USERNAME}
DATASOURCE_PASSWORD: ${DATASOURCE_PASSWORD}
DATASOURCE_DIALECT: ${DATASOURCE_DIALECT}
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
JWT_SECRET: ${JWT_SECRET}
JWT_LIFE_TIME: ${JWT_LIFE_TIME}
DEFAULT_ADMIN_USERNAME: ${DEFAULT_ADMIN_USERNAME}
DEFAULT_ADMIN_PASSWORD: ${DEFAULT_ADMIN_PASSWORD}
MAIL_HOST: ${MAIL_HOST}
MAIL_PORT: ${MAIL_PORT}
MAIL_FROM: ${MAIL_FROM}
MAIL_PASSWORD: ${MAIL_PASSWORD}
MAX_PARALLEL_EXECUTOR: ${MAX_PARALLEL_EXECUTOR}
networks:
- free-commit-api
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# Only if you use openStackDriver
#- {Your OpenVPN dir}:/ovpn
restart: always
container_name: free-commit-api
free-commit-client:
image: romainlavabre/free-commit-client:latest
port:
- 9090:80
environment:
REACT_APP_API_URL: ${FREE_COMMIT_API_URL}
networks:
- free-commit-client
restart: always
container_name: free-commit-client
networks:
free-commit-api:
name: free-commit-api
free-commit-client:
name: free-commit-client
With the best reverse proxy on the market
Documentation: https://traefik.io/traefik/
version: '3.2'
services:
service-reverse-proxy:
image: library/traefik:latest
ports:
- 80:80
- 443:443
networks:
- service-reverse-proxy
- free-commit-api
- free-commit-client
volumes:
- ${PWD}/traefik:/etc/traefik/
- /var/docker-volume/service-reverse-proxy:/tlsKey
- /var/run/docker.sock:/var/run/docker.sock
restart: always
container_name: service-reverse-proxy
free-commit-api:
image: romainlavabre/free-commit-api:latest
environment:
DATASOURCE_URL: ${DATASOURCE_URL}
DATASOURCE_USERNAME: ${DATASOURCE_USERNAME}
DATASOURCE_PASSWORD: ${DATASOURCE_PASSWORD}
DATASOURCE_DIALECT: ${DATASOURCE_DIALECT}
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
JWT_SECRET: ${JWT_SECRET}
JWT_LIFE_TIME: ${JWT_LIFE_TIME}
DEFAULT_ADMIN_USERNAME: ${DEFAULT_ADMIN_USERNAME}
DEFAULT_ADMIN_PASSWORD: ${DEFAULT_ADMIN_PASSWORD}
MAIL_HOST: ${MAIL_HOST}
MAIL_PORT: ${MAIL_PORT}
MAIL_FROM: ${MAIL_FROM}
MAIL_PASSWORD: ${MAIL_PASSWORD}
MAX_PARALLEL_EXECUTOR: ${MAX_PARALLEL_EXECUTOR}
labels:
- "traefik.enable=true"
- "traefik.http.routers.free-commit-api.rule=PathPrefix(`/api`)"
- "traefik.docker.network=free-commit-api"
- "traefik.http.middlewares.free-commit-api-replace-prefix.stripprefix.prefixes=/api"
- "traefik.http.routers.free-commit-api.middlewares=free-commit-api-replace-prefix@docker"
- "traefik.http.routers.free-commit-api.entrypoints=websecure"
- "traefik.http.routers.free-commit-api.tls=true"
- "traefik.http.routers.free-commit-api.tls.certresolver=fairfair"
- "traefik.http.services.free-commit-api.loadbalancer.server.port=8080"
networks:
- free-commit-api
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# Only if you use openStackDriver
#- {Your OpenVPN dir}:/ovpn
restart: always
container_name: free-commit-api
free-commit-client:
image: romainlavabre/free-commit-client:latest
environment:
REACT_APP_API_URL: ${FREE_COMMIT_API_URL}
networks:
- free-commit-client
labels:
- "traefik.enable=true"
- "traefik.http.routers.free-commit-client.rule=PathPrefix(`/`)"
- "traefik.docker.network=free-commit-client"
- "traefik.http.routers.free-commit-client.entrypoints=websecure"
- "traefik.http.routers.free-commit-client.tls=true"
- "traefik.http.routers.free-commit-client.tls.certresolver={your-resolver-name}"
- "traefik.http.services.free-commit-client.loadbalancer.server.port=80"
restart: always
container_name: free-commit-client
networks:
service-reverse-proxy:
name: service-reverse-proxy
free-commit-api:
name: free-commit-api
free-commit-client:
name: free-commit-client
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
exposedByDefault: false
# API and dashboard configuration
api:
insecure: false
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
certificatesResolvers:
fairfair:
acme:
email: {your-email}
storage: "/tlsKey/acme.json"
httpChallenge:
entryPoint: web
log:
level: ERROR
⚠️Our compose file is not intended to include a database, any persistent storage should be managed outside of Docker
Last updated