version: "3"

services:
  web:
    image: iceshrimp.dev/iceshrimp/iceshrimp:dev
### If you want to build the image locally
#    build: .
### If you want to build the image locally AND use Docker 20.10
#		 build:
#      context: .
#      args:
#        DOCKER_BUILDKIT: 1
    container_name: iceshrimp_web
    restart: unless-stopped
    depends_on:
      - db
      - redis
### Uncomment one of the following to use a search engine
#     - meilisearch
#     - sonic
    ports:
      - "3000:3000"
    networks:
      - ishnet
#     - web
    environment:
      NODE_ENV: production
    volumes:
      - ./files:/iceshrimp/files
      - ./.config:/iceshrimp/.config:ro

  redis:
    restart: unless-stopped
    image: docker.io/redis:7.0-alpine
    container_name: iceshrimp_redis
    networks:
      - ishnet
    volumes:
      - ./redis:/data

  db:
    restart: unless-stopped
    image: docker.io/postgres:12.2-alpine
    container_name: iceshrimp_db
    networks:
      - ishnet
    env_file:
      - .config/docker.env
    volumes:
      - ./db:/var/lib/postgresql/data

### Search Engines
### Only one of the below should be used.
### Meilisearch is better overall, but resource-intensive. Sonic is a very light full text search engine.

#  meilisearch:
#    container_name: iceshrimp_meilisearch
#    image: docker.io/getmeili/meilisearch:v1.1.1
#    environment:
#      - MEILI_ENV=${MEILI_ENV:-development}
#    ports:
#      - "7700:7700"
#    networks:
#      - ishnet
#    volumes:
#      - ./meili_data:/meili_data
#    restart: unless-stopped

#  sonic:
#    container_name: iceshrimp_sonic
#    restart: unless-stopped
#    image: docker.io/valeriansaliou/sonic:v1.4.0
#    networks:
#      - ishnet
#    volumes:
#      - ./sonic:/var/lib/sonic/store
#      - ./sonic/config.cfg:/etc/sonic.cfg

networks:
  ishnet:
  #  web:
  #    external:
  #      name: web