-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompose.yml
91 lines (84 loc) · 2.67 KB
/
compose.yml
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
name: misskey
services:
web:
container_name: misskey_web
image: docker.io/misskey/misskey:2025.2.0@sha256:0c6c256b7b9ab3040bb3509620b6a65e083628a473fdca174d20959dca9dab10
environment:
MISSKEY_URL: $MISSKEY_URL
DATABASE_DB: $DB_DATABASE_NAME
DATABASE_USER: $DB_USERNAME
DATABASE_PASSWORD: $DB_PASSWORD
configs:
- source: misskey_config
target: /misskey/.config/default.yml
depends_on:
database:
condition: service_healthy
redis:
condition: service_healthy
restart: always
database:
container_name: misskey_database
image: docker.io/postgres:16.8@sha256:12c827ab26d9929e1fcf3439ed8f5af8616726d8a605d4dbb010abb797af1821
environment:
POSTGRES_HOST: $DB_HOSTNAME
POSTGRES_DB: $DB_DATABASE_NAME
POSTGRES_USER: $DB_USERNAME
POSTGRES_PASSWORD: $DB_PASSWORD
volumes:
- database:/var/lib/postgresql/data
- backup:/tmp/backup
healthcheck:
test: pg_isready -d '$DB_DATABASE_NAME' -U '$DB_USERNAME' || exit 1
labels:
docker-volume-backup.archive-pre: pg_dump -d '$DB_DATABASE_NAME' -U '$DB_USERNAME' -f /tmp/backup/misskey.sql
restart: always
redis:
container_name: misskey_redis
image: docker.io/redis:7.2.5-alpine3.19@sha256:8f157725f8eee31e65a8d4765f1f986d76aedc1a0503345dfb63a2b1b5a441ee
healthcheck:
test: redis-cli ping || exit 1
restart: always
backup:
container_name: misskey_backup
image: docker.io/offen/docker-volume-backup:v2.43.2@sha256:3f477b6cd246d63292800746e1dc417034cf9d9977145028f7fbda4e25c24211
environment:
BACKUP_CRON_EXPRESSION: 0 5 * * *
BACKUP_FILENAME: misskey_%Y%m%d.{{ .Extension }}
BACKUP_SKIP_BACKENDS_FROM_PRUNE: s3
AWS_S3_BUCKET_NAME: $R2_BUCKET_NAME
AWS_S3_PATH: $R2_PATH
BACKUP_RETENTION_DAYS: 7
GPG_PASSPHRASE: $DB_PASSWORD
env_file:
- path: ../.env
required: true
volumes:
- backup:/backup:ro
- $BACKUP_DIR/database:/archive
configs:
- source: docker-socket
target: /var/run/docker.sock
- source: timezone
target: /etc/localtime
depends_on:
database:
condition: service_healthy
restart: always
cloudflare-tunnel:
container_name: misskey_cloudflare-tunnel
image: docker.io/cloudflare/cloudflared:2025.2.0@sha256:6e2df069aaf5a8c0bf304b674ff31c0ed07c974534b4303a8c6e57d93c6c9224
command: tunnel --no-autoupdate run
environment:
TUNNEL_TOKEN: $TUNNEL_TOKEN
restart: always
volumes:
database:
backup:
configs:
docker-socket:
file: /var/run/docker.sock
timezone:
file: /etc/localtime
misskey_config:
file: ./config/misskey.yml