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