68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: '3'
 | 
						|
 | 
						|
services:
 | 
						|
  planka:
 | 
						|
    image: ghcr.io/plankanban/planka:1.15.6
 | 
						|
    container_name: planka
 | 
						|
    command: >
 | 
						|
      bash -c
 | 
						|
        "for i in `seq 1 30`; do
 | 
						|
          ./start.sh &&
 | 
						|
          s=$$? && break || s=$$?;
 | 
						|
          echo \"Tried $$i times. Waiting 5 seconds...\";
 | 
						|
          sleep 5;
 | 
						|
        done; (exit $$s)"      
 | 
						|
    restart: unless-stopped
 | 
						|
    volumes:
 | 
						|
      - ${APP_DATA_DIR}/data/user-avatars:/app/public/user-avatars
 | 
						|
      - ${APP_DATA_DIR}/data/project-background-images:/app/public/project-background-images
 | 
						|
      - ${APP_DATA_DIR}/data/attachments:/app/private/attachments
 | 
						|
    ports:
 | 
						|
      - ${APP_PORT}:1337
 | 
						|
    environment:
 | 
						|
      - BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
 | 
						|
      - TRUST_PROXY=1
 | 
						|
      - DATABASE_URL="postgresql://postgres@postgres/planka"
 | 
						|
      - SECRET_KEY="${PLANKA_SECRET_KEY}"
 | 
						|
    networks:
 | 
						|
      - tipi_main_network
 | 
						|
    labels:
 | 
						|
      # Main
 | 
						|
      traefik.enable: true
 | 
						|
      traefik.http.middlewares.planka-web-redirect.redirectscheme.scheme: https
 | 
						|
      traefik.http.services.planka.loadbalancer.server.port: 1337
 | 
						|
      # Web
 | 
						|
      traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`)
 | 
						|
      traefik.http.routers.planka-insecure.entrypoints: web
 | 
						|
      traefik.http.routers.planka-insecure.service: planka
 | 
						|
      traefik.http.routers.planka-insecure.middlewares: planka-web-redirect
 | 
						|
      # Websecure
 | 
						|
      traefik.http.routers.planka.rule: Host(`${APP_DOMAIN}`)
 | 
						|
      traefik.http.routers.planka.entrypoints: websecure
 | 
						|
      traefik.http.routers.planka.service: planka
 | 
						|
      traefik.http.routers.planka.tls.certresolver: myresolver
 | 
						|
      # Local domain
 | 
						|
      traefik.http.routers.planka-local-insecure.rule: Host(`planka.${LOCAL_DOMAIN}`)
 | 
						|
      traefik.http.routers.planka-local-insecure.entrypoints: web
 | 
						|
      traefik.http.routers.planka-local-insecure.service: planka
 | 
						|
      traefik.http.routers.planka-local-insecure.middlewares: planka-web-redirect
 | 
						|
      # Local domain secure
 | 
						|
      traefik.http.routers.planka-local.rule: Host(`planka.${LOCAL_DOMAIN}`)
 | 
						|
      traefik.http.routers.planka-local.entrypoints: websecure
 | 
						|
      traefik.http.routers.planka-local.service: planka
 | 
						|
      traefik.http.routers.planka-local.tls: true
 | 
						|
    depends_on:
 | 
						|
      - postgres
 | 
						|
 | 
						|
  postgres:
 | 
						|
    image: postgres:14-alpine
 | 
						|
    container_name: planka-db
 | 
						|
    restart: unless-stopped
 | 
						|
    volumes:
 | 
						|
      - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
 | 
						|
    environment:
 | 
						|
      POSTGRES_DB: "planka"
 | 
						|
      POSTGRES_HOST_AUTH_METHOD: "trust"
 | 
						|
    networks:
 | 
						|
      - tipi_main_network
 |