services: web: build: context: . dockerfile: ./docker/nginx/Dockerfile container_name: vichan_frontend restart: unless-stopped ports: - "9090:80" # - "9092:443" # optional for SSL depends_on: - db - php volumes: - ./local-instances/${INSTANCE:-0}/www:/var/www/html - ./docker/nginx/vichan.conf:/etc/nginx/conf.d/default.conf - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf - ./docker/nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf # - ./docker/nginx/ssl:/etc/nginx/ssl # optional For SSL links: - php php: build: context: . dockerfile: ./docker/php/Dockerfile container_name: vichan_php restart: unless-stopped volumes: - ./local-instances/${INSTANCE:-0}/www:/var/www - ./docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf - ./docker/php/jit.ini:/usr/local/etc/php/conf.d/jit.ini - ./docker/php/php.ini:/usr/local/etc/php/php.ini environment: # Database settings VICHAN_MYSQL_HOST: ${VICHAN_MYSQL_HOST} VICHAN_MYSQL_USER: ${VICHAN_MYSQL_USER} VICHAN_MYSQL_NAME: ${VICHAN_MYSQL_NAME} VICHAN_MYSQL_PASSWORD: ${VICHAN_MYSQL_PASSWORD} # Security VICHAN_SECURE_LOGIN_ONLY: ${VICHAN_SECURE_LOGIN_ONLY} # Redis settings VICHAN_REDIS_HOST: ${VICHAN_REDIS_HOST} VICHAN_REDIS_PORT: ${VICHAN_REDIS_PORT} VICHAN_REDIS_PASSWORD: ${VICHAN_REDIS_PASSWORD} # Cookies VICHAN_COOKIES_MOD: ${VICHAN_COOKIES_MOD} # Flood Control VICHAN_FLOOD_TIME: ${VICHAN_FLOOD_TIME} VICHAN_FLOOD_TIME_IP: ${VICHAN_FLOOD_TIME_IP} VICHAN_FLOOD_TIME_SAME: ${VICHAN_FLOOD_TIME_SAME} VICHAN_MAX_BODY: ${VICHAN_MAX_BODY} VICHAN_REPLY_LIMIT: ${VICHAN_REPLY_LIMIT} VICHAN_MAX_LINKS: ${VICHAN_MAX_LINKS} # Images VICHAN_IMAGES_MAX_FILESIZE: ${VICHAN_IMAGES_MAX_FILESIZE} VICHAN_IMAGES_THUMB_WIDTH: ${VICHAN_IMAGES_THUMB_WIDTH} VICHAN_IMAGES_THUMB_HEIGHT: ${VICHAN_IMAGES_THUMB_HEIGHT} VICHAN_IMAGES_MAX_WIDTH: ${VICHAN_IMAGES_MAX_WIDTH} VICHAN_IMAGES_MAX_HEIGHT: ${VICHAN_IMAGES_MAX_HEIGHT} # Display VICHAN_DISPLAY_THREADS_PER_PAGE: ${VICHAN_DISPLAY_THREADS_PER_PAGE} VICHAN_DISPLAY_MAX_PAGES: ${VICHAN_DISPLAY_MAX_PAGES} VICHAN_DISPLAY_THREADS_PREVIEW: ${VICHAN_DISPLAY_THREADS_PREVIEW} # Directories VICHAN_DIRECTORIES_ROOT: ${VICHAN_DIRECTORIES_ROOT} depends_on: - db db: image: mariadb:latest container_name: vichan_mariadb restart: unless-stopped ports: - "9091:3306" environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - ./local-instances/${INSTANCE:-0}/db:/var/lib/mysql redis: image: redis:latest container_name: vichan_redis restart: unless-stopped environment: REDIS_PASSWORD: ${VICHAN_REDIS_PASSWORD} volumes: - ./local-instances/${INSTANCE:-0}/redis:/data command: redis-server --requirepass ${VICHAN_REDIS_PASSWORD} healthcheck: test: ["CMD", "redis-cli", "-a", "${VICHAN_REDIS_PASSWORD}", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 30s