Something something like soundcloud but not like soundcloud.
Log in, upload records, done.
Simple, easy, KISS.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

145 lines
3.8 KiB

version: "3"
services:
front:
build: front
env_file:
- .env.dev
- .env
environment:
- "HOST=0.0.0.0"
- "REEL2BITS_HOSTNAME=${REEL2BITS_HOSTNAME-localhost}"
- "REEL2BITS_HOSTNAME_SUFFIX=reel2bits.test"
- "REEL2BITS_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
ports:
- "8081:8081"
volumes:
- ./front:/app
- /app/node_modules
- ./deploy/docker/local.json:/app/config/local.json.template:ro
networks:
- internal
postgres:
env_file:
- .env.dev
- .env
image: postgres:${POSTGRES_VERSION-11}
command: postgres -c log_min_duration_statement=0
volumes:
- "./data/${COMPOSE_PROJECT_NAME-node1}/postgres:/var/lib/postgresql/data"
networks:
- internal
redis:
env_file:
- .env.dev
- .env
image: redis:3.0
volumes:
- "./data/${COMPOSE_PROJECT_NAME-node1}/redis:/data"
networks:
- internal
api:
env_file:
- .env.dev
- .env
build: &backend
context: ./api
dockerfile: Dockerfile
entrypoint: docker/dev-entrypoint.sh
command: flask run --host 0.0.0.0 --port 8000
volumes:
- ./api:/app
- ./data/uploads:/data/uploads
environment:
- "SQLALCHEMY_DATABASE_URI=postgresql://postgres@postgres/postgres"
- "AUTHLIB_INSECURE_TRANSPORT=1"
- "CELERY_BROKER_URL=redis://redis:6379/0"
- "CELERY_RESULT_BACKEND=redis://redis:6379/0"
- "REEL2BITS_HOSTNAME=${REEL2BITS_HOSTNAME-localhost}"
- "REEL2BITS_HOSTNAME_SUFFIX=reel2bits.test"
- "REEL2BITS_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
- "REEL2BITS_PROTOCOL=${REEL2BITS_PROTOCOL-http}"
depends_on:
- postgres
- redis
networks:
- internal
cap_add:
- SYS_PTRACE
celeryworker:
env_file:
- .env.dev
- .env
build: *backend
depends_on:
- postgres
- redis
command: celery -A tasks.celery worker -l error -B
environment:
- "SQLALCHEMY_DATABASE_URI=postgresql://postgres@postgres/postgres"
- "CELERY_BROKER_URL=redis://redis:6379/0"
- "CELERY_RESULT_BACKEND=redis://redis:6379/0"
- "REEL2BITS_HOSTNAME=${REEL2BITS_HOSTNAME-localhost}"
- "REEL2BITS_HOSTNAME_SUFFIX=reel2bits.test"
- "REEL2BITS_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
- "REEL2BITS_PROTOCOL=${REEL2BITS_PROTOCOL-http}"
volumes:
- ./api:/app
- ./data/uploads:/data/uploads
networks:
- internal
nginx:
command: /entrypoint.sh
env_file:
- .env.dev
- .env
image: nginx
ports:
- "8000:80"
environment:
- "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
- "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }"
- "REEL2BITS_API_PORT=${REEL2BITS_API_PORT-8000}"
- "REEL2BITS_API_IP=${REEL2BITS_API_IP-api}"
- "REEL2BITS_HOSTNAME=${REEL2BITS_HOSTNAME-localhost}"
depends_on:
- api
- front
volumes:
- ./deploy/docker/nginx/conf.dev:/etc/nginx/nginx.conf.template:ro
- ./deploy/docker/nginx/entrypoint.sh:/entrypoint.sh:ro
- ./deploy/reel2bits_proxy.conf:/etc/nginx/reel2bits_proxy.conf:ro
- ./front/dist:/frontend:ro
- ./data/uploads:/datas/uploads:ro
networks:
- federation
- internal
labels:
traefik.backend: "${COMPOSE_PROJECT_NAME-node1}"
traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.reel2bits.test,${NODE_IP-127.0.0.1}"
traefik.enable: "true"
traefik.federation.protocol: "http"
traefik.federation.port: "80"
traefik.frontend.passHostHeader: true
traefik.docker.network: federation
docs:
build: docs
command: python serve.py
volumes:
- .:/app/
ports:
- "35730:35730"
- "8001:8001"
networks:
? internal
federation:
external:
name: federation