-
-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
129 lines (120 loc) · 3.84 KB
/
docker-compose.yml
File metadata and controls
129 lines (120 loc) · 3.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Ensure a consistent project name regardless of how the repo directory is named
name: philomena
volumes:
postgres_data: {}
opensearch_data: {}
caddy_data: {}
s3_data: {}
shell_history: {}
cargo_registry: {}
cargo_git: {}
services:
app:
build:
context: .
dockerfile: ./docker/app/Dockerfile
environment:
# Use this env variable to control the logs levels from different modules.
# The syntax is `{module.function}=level,...`. The filter evaluation stops
# on the first `{module.function}` that has a prefix match against the log
# event's module and function. The last entry in the list of filters should
# be a bare `level` which will be used as a catch-all for all other log
# events that do not match any of the previous filters.
- PHILOMENA_LOG=${PHILOMENA_LOG-Ecto=debug,Exq=none,PhilomenaMedia.Objects=info,debug}
- MIX_ENV=dev
- PGPASSWORD=postgres
- ANONYMOUS_NAME_SALT=2fmJRo0OgMFe65kyAJBxPT0QtkVes/jnKDdtP21fexsRqiw8TlSY7yO+uFyMZycp
- HCAPTCHA_SECRET_KEY=0x0000000000000000000000000000000000000000
- HCAPTCHA_SITE_KEY=10000000-ffff-ffff-ffff-000000000001
- PASSWORD_PEPPER=dn2e0EpZrvBLoxUM3gfQveBhjf0bG/6/bYhrOyq3L3hV9hdo/bimJ+irbDWsuXLP
- TUMBLR_API_KEY=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4
- OTP_SECRET_KEY=Wn7O/8DD+qxL0X4X7bvT90wOkVGcA90bIHww4twR03Ci//zq7PnMw8ypqyyT/b/C
- ADVERT_FILE_ROOT=adverts
- AVATAR_FILE_ROOT=avatars
- BADGE_FILE_ROOT=badges
- IMAGE_FILE_ROOT=images
- TAG_FILE_ROOT=tags
- AVATAR_URL_ROOT=/avatars
- ADVERT_URL_ROOT=/spns
- IMAGE_URL_ROOT=/img
- BADGE_URL_ROOT=/badge-img
- TAG_URL_ROOT=/tag-img
- MEDIAPROC_ADDR=mediaproc:1500
- OPENSEARCH_URL=http://opensearch:9200
- REDIS_HOST=valkey
- DATABASE_URL=ecto://postgres:postgres@postgres/philomena_dev
- CDN_HOST=localhost
- MAILER_ADDRESS=noreply@philomena.local
- START_ENDPOINT=true
- SITE_DOMAINS=localhost
- S3_SCHEME=http
- S3_HOST=files
- S3_PORT=80
- S3_BUCKET=philomena
- AWS_ACCESS_KEY_ID=local-identity
- AWS_SECRET_ACCESS_KEY=local-credential
working_dir: /srv/philomena
tty: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- .:/srv/philomena
- shell_history:/shell-history
- cargo_registry:/root/.cargo/registry
- cargo_git:/root/.cargo/git
ports:
- '5173:5173'
postgres:
image: postgres:18.3-alpine
environment:
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql
opensearch:
image: opensearchproject/opensearch:3.5.0
volumes:
- opensearch_data:/usr/share/opensearch/data
- ${HOST_WORKSPACE:-.}/docker/opensearch/opensearch.yml:/usr/share/opensearch/config/opensearch.yml
attach: false
ulimits:
nofile:
soft: 65536
hard: 65536
valkey:
image: valkey/valkey:9.0.3-alpine
attach: false
files:
image: andrewgaul/s3proxy:sha-44129c8
environment:
- JCLOUDS_FILESYSTEM_BASEDIR=/data
- S3PROXY_IGNORE_UNKNOWN_HEADERS=true
volumes:
- s3_data:/data
attach: false
mediaproc:
build:
context: .
dockerfile: ./docker/mediaproc/Dockerfile
attach: false
deploy:
resources:
limits:
cpus: '4'
memory: 8gb
pids: 8192
web:
build:
context: .
dockerfile: ./docker/web/Dockerfile
volumes:
- ${HOST_WORKSPACE:-.}:/srv/philomena
- ${HOST_WORKSPACE:-.}/docker/web/config:/etc/caddy
- caddy_data:/data
environment:
- APP_DIR=/srv/philomena
- S3_ENDPOINT=http://files:80
- S3_BUCKET=philomena
- AWS_ACCESS_KEY_ID=local-identity
- AWS_SECRET_ACCESS_KEY=local-credential
attach: false
ports:
- '8080:80'