2018-10-09 15:09:50 +09:00
version: "3"
services:
web:
2023-08-14 00:58:41 +09:00
image: iceshrimp.dev/iceshrimp/iceshrimp:dev
2023-08-04 01:36:11 +09:00
### If you want to build the image locally
2023-08-05 04:40:06 +09:00
# build: .
2023-08-16 05:35:22 +09:00
### If you want to build the image locally AND use Docker 20.10
# build:
# context: .
# args:
# DOCKER_BUILDKIT: 1
2023-07-22 20:32:57 +09:00
container_name: iceshrimp_web
2022-12-13 13:32:12 +09:00
restart: unless-stopped
2022-11-07 12:04:57 +09:00
depends_on:
2019-04-07 21:50:36 +09:00
- db
2019-04-14 12:05:12 +09:00
- redis
2023-06-05 06:55:35 +09:00
### Uncomment one of the following to use a search engine
2023-06-05 05:29:24 +09:00
# - meilisearch
2023-06-05 06:55:35 +09:00
# - sonic
2023-08-14 00:58:41 +09:00
### Uncomment one of the following to use a cache server
# - dragonflydb
# - keydb
# - redis_cache
2018-10-09 15:09:50 +09:00
ports:
2022-05-15 16:39:23 +09:00
- "3000:3000"
2018-10-09 15:09:50 +09:00
networks:
2023-07-22 20:32:57 +09:00
- ishnet
2022-12-13 13:32:12 +09:00
# - web
environment:
NODE_ENV: production
2020-07-30 21:13:38 +09:00
volumes:
2023-07-22 20:32:57 +09:00
- ./files:/iceshrimp/files
- ./.config:/iceshrimp/.config:ro
2018-10-09 15:09:50 +09:00
2019-04-14 12:05:12 +09:00
redis:
2022-12-13 13:32:12 +09:00
restart: unless-stopped
2022-12-08 23:17:00 +09:00
image: docker.io/redis:7.0-alpine
2023-07-22 20:32:57 +09:00
container_name: iceshrimp_redis
2019-04-14 12:05:12 +09:00
networks:
2023-07-22 20:32:57 +09:00
- ishnet
2019-04-14 12:05:12 +09:00
volumes:
- ./redis:/data
2018-10-09 15:09:50 +09:00
2019-04-07 21:50:36 +09:00
db:
2022-12-13 13:32:12 +09:00
restart: unless-stopped
2022-12-19 09:57:51 +09:00
image: docker.io/postgres:12.2-alpine
2023-07-22 20:32:57 +09:00
container_name: iceshrimp_db
2018-10-09 15:09:50 +09:00
networks:
2023-07-22 20:32:57 +09:00
- ishnet
2019-04-07 21:50:36 +09:00
env_file:
2022-12-17 06:59:10 +09:00
- .config/docker.env
2018-10-09 15:09:50 +09:00
volumes:
2019-04-07 21:50:36 +09:00
- ./db:/var/lib/postgresql/data
2018-10-09 15:09:50 +09:00
2023-08-14 00:58:41 +09:00
### Search Engines
2023-05-26 17:05:46 +09:00
### 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:
2023-08-14 00:58:41 +09:00
# container_name: iceshrimp_meilisearch
# image: docker.io/getmeili/meilisearch:v1.1.1
2023-05-26 17:05:46 +09:00
# environment:
# - MEILI_ENV=${MEILI_ENV:-development}
# ports:
# - "7700:7700"
# networks:
2023-07-22 20:32:57 +09:00
# - ishnet
2023-05-26 17:05:46 +09:00
# volumes:
# - ./meili_data:/meili_data
# restart: unless-stopped
# sonic:
2023-08-14 00:58:41 +09:00
# container_name: iceshrimp_sonic
2023-05-26 17:05:46 +09:00
# restart: unless-stopped
# image: docker.io/valeriansaliou/sonic:v1.4.0
# networks:
2023-07-22 20:32:57 +09:00
# - ishnet
2023-05-26 17:05:46 +09:00
# volumes:
# - ./sonic:/var/lib/sonic/store
# - ./sonic/config.cfg:/etc/sonic.cfg
2018-10-09 15:09:50 +09:00
2023-08-14 00:58:41 +09:00
### 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
2018-10-09 15:09:50 +09:00
networks:
2023-07-22 20:32:57 +09:00
ishnet:
2023-05-26 17:05:46 +09:00
# web:
# external:
# name: web