chore(compose): refactor django environment next to its manifest
This commit is contained in:
		
							parent
							
								
									a19e0ac98c
								
							
						
					
					
						commit
						ddfa7fc64e
					
				
							
								
								
									
										72
									
								
								compose.yml
								
								
								
								
							
							
						
						
									
										72
									
								
								compose.yml
								
								
								
								
							| 
						 | 
					@ -4,39 +4,6 @@ networks:
 | 
				
			||||||
    external: true
 | 
					    external: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
x-django: &django
 | 
					x-django: &django
 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    - DEBUG
 | 
					 | 
				
			||||||
    - DEFAULT_FROM_EMAIL
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - DJANGO_SETTINGS_MODULE
 | 
					 | 
				
			||||||
    - DJANGO_SECRET_KEY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - EXTERNAL_REQUESTS_VERIFY_SSL
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - 'FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}'
 | 
					 | 
				
			||||||
    - FUNKWHALE_PROTOCOL
 | 
					 | 
				
			||||||
    - 'FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - DATABASE_URL
 | 
					 | 
				
			||||||
    - CACHE_URL
 | 
					 | 
				
			||||||
    - EMAIL_CONFIG
 | 
					 | 
				
			||||||
    - TYPESENSE_API_KEY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - 'STATIC_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/static/'
 | 
					 | 
				
			||||||
    - 'MEDIA_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/media/'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - STATIC_ROOT
 | 
					 | 
				
			||||||
    - MEDIA_ROOT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - FUNKWHALE_SPA_HTML_ROOT
 | 
					 | 
				
			||||||
    - LDAP_ENABLED
 | 
					 | 
				
			||||||
    - BROWSABLE_API_ENABLED
 | 
					 | 
				
			||||||
    - 'MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - C_FORCE_ROOT
 | 
					 | 
				
			||||||
    - PYTHONDONTWRITEBYTECODE
 | 
					 | 
				
			||||||
    - PYTHONTRACEMALLOC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  dns: 172.17.0.1
 | 
					  dns: 172.17.0.1
 | 
				
			||||||
  dns_search: funkwhale.test
 | 
					  dns_search: funkwhale.test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,14 +13,17 @@ services:
 | 
				
			||||||
      context: ./front
 | 
					      context: ./front
 | 
				
			||||||
      dockerfile: Dockerfile.dev
 | 
					      dockerfile: Dockerfile.dev
 | 
				
			||||||
    ports:
 | 
					    ports:
 | 
				
			||||||
      - '${VUE_PORT:-8080}:${VUE_PORT:-8080}'
 | 
					      - "${VUE_PORT:-8080}:${VUE_PORT:-8080}"
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
 | 
					      - HOST
 | 
				
			||||||
      - VUE_PORT
 | 
					      - VUE_PORT
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - './front:/app'
 | 
					      - "./front:/app"
 | 
				
			||||||
      - '/app/node_modules'
 | 
					      - "/app/node_modules"
 | 
				
			||||||
 | 
					      - "./po:/po"
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      - internal
 | 
					      - internal
 | 
				
			||||||
 | 
					    command: "yarn dev --host"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  api:
 | 
					  api:
 | 
				
			||||||
    extends:
 | 
					    extends:
 | 
				
			||||||
| 
						 | 
					@ -72,8 +42,8 @@ services:
 | 
				
			||||||
      file: ./compose/app.nginx.yml
 | 
					      file: ./compose/app.nginx.yml
 | 
				
			||||||
      service: nginx
 | 
					      service: nginx
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - 'MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}'
 | 
					      - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}"
 | 
				
			||||||
      - 'FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}'
 | 
					      - "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - FUNKWHALE_PROTOCOL
 | 
					      - FUNKWHALE_PROTOCOL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,34 +56,34 @@ services:
 | 
				
			||||||
      - NGINX_MAX_BODY_SIZE
 | 
					      - NGINX_MAX_BODY_SIZE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - STATIC_ROOT
 | 
					      - STATIC_ROOT
 | 
				
			||||||
      - 'MEDIA_ROOT=${MEDIA_ROOT:-/data/media}'
 | 
					      - "MEDIA_ROOT=${MEDIA_ROOT:-/data/media}"
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      - web
 | 
					      - web
 | 
				
			||||||
      - internal
 | 
					      - internal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    labels:
 | 
					    labels:
 | 
				
			||||||
      - 'traefik.enable=true'
 | 
					      - "traefik.enable=true"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)"
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)"
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true"
 | 
				
			||||||
      - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}'
 | 
					      - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  postgres:
 | 
					  postgres:
 | 
				
			||||||
    image: 'postgres:${POSTGRES_VERSION:-15}-alpine'
 | 
					    image: "postgres:${POSTGRES_VERSION:-15}-alpine"
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - POSTGRES_HOST_AUTH_METHOD
 | 
					      - POSTGRES_HOST_AUTH_METHOD
 | 
				
			||||||
    command: postgres ${POSTGRES_ARGS:-}
 | 
					    command: postgres ${POSTGRES_ARGS:-}
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data'
 | 
					      - "./.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data"
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      - internal
 | 
					      - internal
 | 
				
			||||||
    healthcheck:
 | 
					    healthcheck:
 | 
				
			||||||
      test: ['CMD-SHELL', 'pg_isready -U postgres']
 | 
					      test: ["CMD-SHELL", "pg_isready -U postgres"]
 | 
				
			||||||
      interval: 10s
 | 
					      interval: 10s
 | 
				
			||||||
      timeout: 5s
 | 
					      timeout: 5s
 | 
				
			||||||
      retries: 5
 | 
					      retries: 5
 | 
				
			||||||
| 
						 | 
					@ -121,11 +91,11 @@ services:
 | 
				
			||||||
  redis:
 | 
					  redis:
 | 
				
			||||||
    image: redis:7-alpine
 | 
					    image: redis:7-alpine
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data'
 | 
					      - "./.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data"
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      - internal
 | 
					      - internal
 | 
				
			||||||
    healthcheck:
 | 
					    healthcheck:
 | 
				
			||||||
      test: ['CMD', 'redis-cli', 'ping']
 | 
					      test: ["CMD", "redis-cli", "ping"]
 | 
				
			||||||
      interval: 10s
 | 
					      interval: 10s
 | 
				
			||||||
      timeout: 5s
 | 
					      timeout: 5s
 | 
				
			||||||
      retries: 3
 | 
					      retries: 3
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
x-django: &django
 | 
					x-django: &django
 | 
				
			||||||
  image: funkwhale-api
 | 
					  image: funkwhale-api
 | 
				
			||||||
 | 
					  networks:
 | 
				
			||||||
 | 
					    - internal
 | 
				
			||||||
  volumes:
 | 
					  volumes:
 | 
				
			||||||
    - ../api:/app
 | 
					    - ../api:/app
 | 
				
			||||||
    - ../.env:/app/.env
 | 
					    - ../.env:/app/.env
 | 
				
			||||||
| 
						 | 
					@ -13,8 +15,38 @@ x-django: &django
 | 
				
			||||||
      condition: service_healthy
 | 
					      condition: service_healthy
 | 
				
			||||||
    redis:
 | 
					    redis:
 | 
				
			||||||
      condition: service_healthy
 | 
					      condition: service_healthy
 | 
				
			||||||
  networks:
 | 
					  environment:
 | 
				
			||||||
    - internal
 | 
					    - DEBUG
 | 
				
			||||||
 | 
					    - DEFAULT_FROM_EMAIL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - DJANGO_SETTINGS_MODULE
 | 
				
			||||||
 | 
					    - DJANGO_SECRET_KEY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - EXTERNAL_REQUESTS_VERIFY_SSL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - "FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}"
 | 
				
			||||||
 | 
					    - FUNKWHALE_PROTOCOL
 | 
				
			||||||
 | 
					    - "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - DATABASE_URL
 | 
				
			||||||
 | 
					    - CACHE_URL
 | 
				
			||||||
 | 
					    - EMAIL_CONFIG
 | 
				
			||||||
 | 
					    - TYPESENSE_API_KEY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - "STATIC_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/static/"
 | 
				
			||||||
 | 
					    - "MEDIA_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/media/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - STATIC_ROOT
 | 
				
			||||||
 | 
					    - MEDIA_ROOT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - FUNKWHALE_SPA_HTML_ROOT
 | 
				
			||||||
 | 
					    - LDAP_ENABLED
 | 
				
			||||||
 | 
					    - BROWSABLE_API_ENABLED
 | 
				
			||||||
 | 
					    - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - C_FORCE_ROOT
 | 
				
			||||||
 | 
					    - PYTHONDONTWRITEBYTECODE
 | 
				
			||||||
 | 
					    - PYTHONTRACEMALLOC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
  api:
 | 
					  api:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue