116 lines
2.9 KiB
Text
116 lines
2.9 KiB
Text
version: "3"
|
|
|
|
services:
|
|
web:
|
|
image: iceshrimp.dev/iceshrimp/iceshrimp:dev
|
|
### If you want to build the image locally
|
|
# build: .
|
|
container_name: iceshrimp_web
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
### Uncomment one of the following to use a search engine
|
|
# - meilisearch
|
|
# - sonic
|
|
### Uncomment one of the following to use a cache server
|
|
# - dragonflydb
|
|
# - keydb
|
|
# - redis_cache
|
|
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
|
|
|
|
### Cache Servers
|
|
### Only one of the below should be used.
|
|
### DragonflyDB is the fastest overall, however it is NOT open source, but source-available (BSL). KeyDB is still faster than pure Redis, and it's BSD-licensed.
|
|
# dragonflydb:
|
|
# container_name: iceshrimp_dragonflydb
|
|
# restart: unless-stopped
|
|
# image: 'docker.dragonflydb.io/dragonflydb/dragonfly:v1.8.0'
|
|
# ulimits:
|
|
# memlock: -1
|
|
# networks:
|
|
# - ishnet
|
|
# volumes:
|
|
# - ./dragonflydb:/data
|
|
|
|
# keydb:
|
|
# container_name: iceshrimp_keydb
|
|
# restart: unless-stopped
|
|
### Choose an image depending on your architecture, keydb doesn't build alpine for arm, and the way they do tags is very weird in general
|
|
## image: 'docker.io/eqalpha/keydb:alpine_x86_64_v6.3.3'
|
|
## image: 'docker.io/eqalpha/keydb:arm64_v6.3.3'
|
|
# networks:
|
|
# - ishnet
|
|
# volumes:
|
|
# - ./keydb:/data
|
|
|
|
# redis_cache:
|
|
# restart: unless-stopped
|
|
# image: docker.io/redis:7.0-alpine
|
|
# container_name: iceshrimp_redis_cache
|
|
# networks:
|
|
# - ishnet
|
|
# volumes:
|
|
# - ./redis_cache:/data
|
|
|
|
networks:
|
|
ishnet:
|
|
# web:
|
|
# external:
|
|
# name: web
|