-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcompose.yml
More file actions
92 lines (89 loc) · 2.98 KB
/
compose.yml
File metadata and controls
92 lines (89 loc) · 2.98 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
name: melodee
services:
melodee-db:
image: docker.io/library/postgres:17
environment:
POSTGRES_DB: melodeedb
POSTGRES_USER: melodeeuser
POSTGRES_PASSWORD: ${DB_PASSWORD}
PGUSER: melodeeuser
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U melodeeuser -d melodeedb"]
interval: 10s
timeout: 5s
retries: 5
melodee.blazor:
image: localhost/melodee:latest
build:
context: .
dockerfile: ${DOCKERFILE_PATH:-Dockerfile}
tags:
- "localhost/melodee:latest"
depends_on:
melodee-db:
condition: service_healthy
environment:
- DB_PASSWORD=${DB_PASSWORD}
- ConnectionStrings__DefaultConnection=Host=melodee-db;Port=5432;Database=melodeedb;Username=melodeeuser;Password=${DB_PASSWORD};Pooling=true;MinPoolSize=${DB_MIN_POOL_SIZE:-10};MaxPoolSize=${DB_MAX_POOL_SIZE:-50};SSL Mode=Disable;Include Error Detail=true
- ConnectionStrings__MusicBrainzConnection=Data Source=/app/storage/_search-engines/musicbrainz/musicbrainz.db
- ConnectionStrings__ArtistSearchEngineConnection=Data Source=/app/storage/_search-engines/artistSearchEngine.db;Cache=Shared
- DB_MIN_POOL_SIZE=${DB_MIN_POOL_SIZE:-10}
- DB_MAX_POOL_SIZE=${DB_MAX_POOL_SIZE:-50}
- MelodeeAuthSettings__Token=${MELODEE_AUTH_TOKEN:-ChangeMeToASecureRandomStringThatIsAtLeast64CharactersLongForHMACSHA512Security!}
- MelodeeAuthSettings__TokenHours=${MELODEE_AUTH_TOKEN_HOURS:-24}
- Jwt__Key=${MELODEE_AUTH_TOKEN:-ChangeMeToASecureRandomStringThatIsAtLeast64CharactersLongForHMACSHA512Security!}
- Jwt__Issuer=${JWT_ISSUER:-MelodeeApi}
- Jwt__Audience=${JWT_AUDIENCE:-MelodeeClient}
volumes:
- storage:/app/storage
- inbound:/app/inbound
- staging:/app/staging
- user_images:/app/user-images
- playlists:/app/playlists
- podcasts:/app/podcasts
- themes:/app/themes
- templates:/app/templates
- logs:/app/Logs
- data_protection_keys:/home/melodee/.aspnet/DataProtection-Keys
ports:
- "${MELODEE_PORT:-8080}:8080"
restart: unless-stopped
user: "0:0" # Start as root to fix permissions, then drops to melodee user
entrypoint: ["/entrypoint.sh"]
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:8080/health || exit 1"]
interval: 30s
timeout: 5s
start_period: 60s
retries: 3
deploy:
resources:
limits:
cpus: "1.00"
memory: 2g
volumes:
db_data:
name: melodee_db_data
storage:
name: melodee_storage
inbound:
name: melodee_inbound
staging:
name: melodee_staging
user_images:
name: melodee_user_images
playlists:
name: melodee_playlists
podcasts:
name: melodee_podcasts
themes:
name: melodee_themes
templates:
name: melodee_templates
logs:
name: melodee_logs
data_protection_keys:
name: melodee_data_protection_keys