forked from Sudashiii/Sake
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.selfhost.yaml
More file actions
107 lines (104 loc) · 3.2 KB
/
docker-compose.selfhost.yaml
File metadata and controls
107 lines (104 loc) · 3.2 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
services:
sake:
build:
context: .
dockerfile: ./sake/dockerfile
args:
PUBLIC_WEBAPP_VERSION: dev-selfhost
PUBLIC_WEBAPP_GIT_TAG: ""
PUBLIC_WEBAPP_COMMIT_SHA: ""
PUBLIC_WEBAPP_RELEASED_AT: ""
image: sake
container_name: sake-selfhost
ports:
- "5173:3000"
env_file:
- ./sake/.env.docker.selfhosted
environment:
PUBLIC_WEBAPP_VERSION: dev-selfhost
PUBLIC_WEBAPP_GIT_TAG: ""
PUBLIC_WEBAPP_COMMIT_SHA: ""
PUBLIC_WEBAPP_RELEASED_AT: ""
volumes:
- ./.data/selfhost/libsql:/data
- ./koreaderPlugins/sake.koplugin:/app/koreaderPlugins/sake.koplugin:ro
depends_on:
seaweedfs-init:
condition: service_completed_successfully
sake-migrator:
condition: service_completed_successfully
sake-migrator:
build:
context: .
dockerfile: ./sake/dockerfile
args:
PUBLIC_WEBAPP_VERSION: dev-selfhost
PUBLIC_WEBAPP_GIT_TAG: ""
PUBLIC_WEBAPP_COMMIT_SHA: ""
PUBLIC_WEBAPP_RELEASED_AT: ""
image: sake
container_name: sake-selfhost-migrator
command: ["bun", "run", "db:migrate"]
env_file:
- ./sake/.env.docker.selfhosted
volumes:
- ./.data/selfhost/libsql:/data
restart: "no"
seaweedfs:
image: chrislusf/seaweedfs:4.17
container_name: sake-seaweedfs
env_file:
- ./sake/.env.docker.selfhosted
entrypoint:
- /bin/sh
- -ec
command:
- |
mkdir -p /etc/seaweedfs
SEAWEEDFS_ACCESS_KEY="$${S3_ACCESS_KEY_ID:?missing S3_ACCESS_KEY_ID}"
SEAWEEDFS_SECRET_KEY="$${S3_SECRET_ACCESS_KEY:?missing S3_SECRET_ACCESS_KEY}"
cat >/etc/seaweedfs/s3.conf <<EOF
{
"identities": [
{
"name": "sake",
"credentials": [
{
"accessKey": "$$SEAWEEDFS_ACCESS_KEY",
"secretKey": "$$SEAWEEDFS_SECRET_KEY"
}
],
"actions": ["Admin", "Read", "Write", "List", "Tagging"]
}
]
}
EOF
exec weed server -dir=/data -ip=seaweedfs -ip.bind=0.0.0.0 -s3 -s3.port=8333 -s3.config=/etc/seaweedfs/s3.conf
environment:
WEED_SERVER_VOLUME_MAX: 0
ports:
- "8333:8333"
- "9333:9333"
volumes:
- ./.data/selfhost/seaweedfs:/data
seaweedfs-init:
image: amazon/aws-cli:2.34.7
container_name: sake-seaweedfs-init
env_file:
- ./sake/.env.docker.selfhosted
depends_on:
seaweedfs:
condition: service_started
entrypoint:
- /bin/sh
- -ec
- |
export AWS_ACCESS_KEY_ID="$${S3_ACCESS_KEY_ID:?missing S3_ACCESS_KEY_ID}"
export AWS_SECRET_ACCESS_KEY="$${S3_SECRET_ACCESS_KEY:?missing S3_SECRET_ACCESS_KEY}"
export AWS_DEFAULT_REGION="$${S3_REGION:-us-east-1}"
until aws --endpoint-url http://seaweedfs:8333 s3api list-buckets >/dev/null 2>&1; do
sleep 1
done
aws --endpoint-url http://seaweedfs:8333 s3api head-bucket --bucket "$${S3_BUCKET:-sake}" >/dev/null 2>&1 || \
aws --endpoint-url http://seaweedfs:8333 s3api create-bucket --bucket "$${S3_BUCKET:-sake}"
restart: "no"