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