101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| 
								 | 
							
								version: "3.9"
							 | 
						||
| 
								 | 
							
								services:
							 | 
						||
| 
								 | 
							
								  penpot:
							 | 
						||
| 
								 | 
							
								    image: penpotapp/frontend:latest
							 | 
						||
| 
								 | 
							
								    container_name: penpot
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    ports:
							 | 
						||
| 
								 | 
							
								      - ${APP_PORT}:80
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/assets:/opt/data/assets
							 | 
						||
| 
								 | 
							
								    depends_on:
							 | 
						||
| 
								 | 
							
								      - penpot-backend
							 | 
						||
| 
								 | 
							
								      - penpot-exporter
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								    labels:
							 | 
						||
| 
								 | 
							
								      # Main
							 | 
						||
| 
								 | 
							
								      traefik.enable: true
							 | 
						||
| 
								 | 
							
								      traefik.http.middlewares.penpot-web-redirect.redirectscheme.scheme: https
							 | 
						||
| 
								 | 
							
								      traefik.http.services.penpot.loadbalancer.server.port:
							 | 
						||
| 
								 | 
							
								        80
							 | 
						||
| 
								 | 
							
								        # Web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-insecure.rule: Host(`${APP_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-insecure.entrypoints: web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-insecure.service: penpot
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-insecure.middlewares:
							 | 
						||
| 
								 | 
							
								        penpot-web-redirect
							 | 
						||
| 
								 | 
							
								        # Websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot.rule: Host(`${APP_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot.entrypoints: websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot.service: penpot
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot.tls.certresolver:
							 | 
						||
| 
								 | 
							
								        myresolver
							 | 
						||
| 
								 | 
							
								        # Local domain
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local-insecure.rule: Host(`penpot.${LOCAL_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local-insecure.entrypoints: web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local-insecure.service: penpot
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local-insecure.middlewares:
							 | 
						||
| 
								 | 
							
								        penpot-web-redirect
							 | 
						||
| 
								 | 
							
								        # Local domain secure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local.rule: Host(`penpot.${LOCAL_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local.entrypoints: websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local.service: penpot
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.penpot-local.tls: true
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - PENPOT_FLAGS=enable-registration enable-login-with-password
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  penpot-backend:
							 | 
						||
| 
								 | 
							
								    image: penpotapp/backend:latest
							 | 
						||
| 
								 | 
							
								    container_name: penpot-backend
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/assets:/opt/data/assets
							 | 
						||
| 
								 | 
							
								    depends_on:
							 | 
						||
| 
								 | 
							
								      - penpot-postgres
							 | 
						||
| 
								 | 
							
								      - penpot-redis
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification
							 | 
						||
| 
								 | 
							
								      - PENPOT_PUBLIC_URI=${APP_PROTOCOL:-http}://${APP_DOMAIN}:${APP_PORT}
							 | 
						||
| 
								 | 
							
								      - PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
							 | 
						||
| 
								 | 
							
								      - PENPOT_DATABASE_USERNAME=tipi
							 | 
						||
| 
								 | 
							
								      - PENPOT_DATABASE_PASSWORD=${PENPOT_POSTGRES_PASSWORD}
							 | 
						||
| 
								 | 
							
								      - PENPOT_REDIS_URI=redis://penpot-redis/0
							 | 
						||
| 
								 | 
							
								      - PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
							 | 
						||
| 
								 | 
							
								      - PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
							 | 
						||
| 
								 | 
							
								      - PENPOT_TELEMETRY_ENABLED=false
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  penpot-exporter:
							 | 
						||
| 
								 | 
							
								    image: penpotapp/exporter:latest
							 | 
						||
| 
								 | 
							
								    container_name: penpot-exporter
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - PENPOT_PUBLIC_URI=http://penpot
							 | 
						||
| 
								 | 
							
								      - PENPOT_REDIS_URI=redis://penpot-redis/0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  penpot-postgres:
							 | 
						||
| 
								 | 
							
								    image: postgres:14
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    container_name: penpot-postgres
							 | 
						||
| 
								 | 
							
								    stop_signal: SIGINT
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - POSTGRES_INITDB_ARGS=--data-checksums
							 | 
						||
| 
								 | 
							
								      - POSTGRES_DB=penpot
							 | 
						||
| 
								 | 
							
								      - POSTGRES_USER=tipi
							 | 
						||
| 
								 | 
							
								      - POSTGRES_PASSWORD=${PENPOT_POSTGRES_PASSWORD}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  penpot-redis:
							 | 
						||
| 
								 | 
							
								    image: redis:7
							 | 
						||
| 
								 | 
							
								    container_name: penpot-redis
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 |