* feat(halo): change config to support local domain * feat(hammond): change config to support local domain * feat(haven): change config to support local domain * feat(hedgedoc): change config to support local domain * feat(hello-world): change config to support local domain * feat(homarr): change config to support local domain * feat(homebox): change config to support local domain * feat(immich): change config to support local domain * feat(invidious): change config to support local domain * feat(it-tools): change config to support local domain * feat(jackett): change config to support local domain * feat(jellyseerr): change config to support local domain * feat(joplin): change config to support local domain * feat(kandboard): change config to support local domain * feat(kapowarr): change config to support local domain * feat(kavita): change config to support local domain * feat(libreddit): change config to support local domain * feat(librephotos): change config to support local domain * feat(libretranslate): change config to support local domain * feat(lidarr): change config to support local domain * feat(lidarr-deemix): change config to support local domain * feat(linkstack): change config to support local domain * feat(lodestone-core): change config to support local domain
		
			
				
	
	
		
			91 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: "3.7"
 | 
						|
 | 
						|
services:
 | 
						|
  linkstack:
 | 
						|
    container_name: linkstack
 | 
						|
    hostname: linkstack
 | 
						|
    entrypoint: "/bin/sh"
 | 
						|
    command:
 | 
						|
      - -c
 | 
						|
      - |
 | 
						|
        cp -n -r /htdocs/database/ /data/database
 | 
						|
        cp -n /htdocs/.env /data/.env
 | 
						|
        cp -n -r /htdocs/littlelink/images /data/images
 | 
						|
        cp -n -r /htdocs/themes /data/themes
 | 
						|
        cp -n -r /htdocs/img /data/img
 | 
						|
        chown -R apache:apache /data
 | 
						|
        rm -rf /htdocs/database/
 | 
						|
        rm /htdocs/.env
 | 
						|
        rm -rf /htdocs/littlelink/images
 | 
						|
        rm -rf /htdocs/themes
 | 
						|
        rm -rf /htdocs/img
 | 
						|
 | 
						|
        sed -i 's/FORCE_HTTPS=false/FORCE_HTTPS=true/g' /data/.env
 | 
						|
 | 
						|
        # uncomment this after first start
 | 
						|
        # to prevent the installing dialog coming up
 | 
						|
        # if the container is recreated
 | 
						|
        # rm /htdocs/INSTALLING
 | 
						|
        ln -s /data/database /htdocs/database
 | 
						|
        ln -s /data/.env /htdocs/.env
 | 
						|
        ln -s /data/images /htdocs/littlelink/images
 | 
						|
        ln -s /data/themes /htdocs/themes
 | 
						|
        ln -s /data/img/ /htdocs/img
 | 
						|
        cd /htdocs
 | 
						|
        php artisan migrate --force
 | 
						|
        exec /usr/local/bin/docker-entrypoint.sh server        
 | 
						|
    image: linkstackorg/linkstack:latest
 | 
						|
    environment:
 | 
						|
      - TZ=${TZ}
 | 
						|
      - SERVER_ADMIN=${LINKSTACK_CUSTOM_EMAIL}
 | 
						|
      - HTTP_SERVER_NAME=${APP_DOMAIN}
 | 
						|
      - HTTPS_SERVER_NAME=${APP_DOMAIN}
 | 
						|
      - LOG_LEVEL=info
 | 
						|
      - PHP_MEMORY_LIMIT=256M
 | 
						|
      - UPLOAD_MAX_FILESIZE=8M
 | 
						|
      - DB_CONNECTION=sqlite
 | 
						|
      - FORCE_HTTPS=true
 | 
						|
    volumes:
 | 
						|
      - "${APP_DATA_DIR}/data/linkstack:/data"
 | 
						|
    ports:
 | 
						|
      - 8184:80
 | 
						|
      - "${APP_PORT}:443"
 | 
						|
    restart: unless-stopped
 | 
						|
    networks:
 | 
						|
      - tipi_main_network
 | 
						|
    labels:
 | 
						|
      # Main
 | 
						|
      traefik.enable: true
 | 
						|
      traefik.http.services.linkstack.loadbalancer.server.port: 80
 | 
						|
      traefik.http.middlewares.linkstack-web-redirect.redirectscheme.scheme: https
 | 
						|
      traefik.http.middlewares.linkstack-security-headers.headers.contentSecurityPolicy: "upgrade-insecure-requests"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-Real-IP: "$remote_addr"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-Forwarded-For: "$proxy_add_x_forwarded_for"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-Forwarded-Proto: "https"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-VerifiedViaNginx: "yes"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.Upgrade: "$http_upgrade"
 | 
						|
      traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.Connection: "upgrade"
 | 
						|
 | 
						|
      # Web
 | 
						|
      traefik.http.routers.linkstack-insecure.rule: Host(`${APP_DOMAIN}`)
 | 
						|
      traefik.http.routers.linkstack-insecure.entrypoints: web
 | 
						|
      traefik.http.routers.linkstack-insecure.service: linkstack
 | 
						|
      traefik.http.routers.linkstack-insecure.middlewares: linkstack-web-redirect
 | 
						|
      # Websecure
 | 
						|
      traefik.http.routers.linkstack.rule: Host(`${APP_DOMAIN}`)
 | 
						|
      traefik.http.routers.linkstack.entrypoints: websecure
 | 
						|
      traefik.http.routers.linkstack.service: linkstack
 | 
						|
      traefik.http.routers.linkstack.middlewares: linkstack-security-headers,linkstack-forwarded-headers
 | 
						|
      traefik.http.routers.linkstack.tls.certresolver: myresolver
 | 
						|
      # Local domain
 | 
						|
      traefik.http.routers.linkstack-local-insecure.rule: Host(`linkstack.${LOCAL_DOMAIN}`)
 | 
						|
      traefik.http.routers.linkstack-local-insecure.entrypoints: web
 | 
						|
      traefik.http.routers.linkstack-local-insecure.service: linkstack
 | 
						|
      traefik.http.routers.linkstack-local-insecure.middlewares: linkstack-web-redirect
 | 
						|
      # Local domain secure
 | 
						|
      traefik.http.routers.linkstack-local.rule: Host(`linkstack.${LOCAL_DOMAIN}`)
 | 
						|
      traefik.http.routers.linkstack-local.entrypoints: websecure
 | 
						|
      traefik.http.routers.linkstack-local.service: linkstack
 | 
						|
      traefik.http.routers.linkstack-local.middlewares: linkstack-security-headers,linkstack-forwarded-headers
 | 
						|
      traefik.http.routers.linkstack-local.tls: true
 |