[READ ONLY MIRROR] Spark Social AppView Server
github.com/sprksocial/server
atproto
deno
hono
lexicon
1services:
2 db:
3 image: mongo:8
4 environment:
5 MONGO_INITDB_ROOT_USERNAME: mongo
6 MONGO_INITDB_ROOT_PASSWORD: mongo
7 MONGO_INITDB_DATABASE: dev
8 ports:
9 - "27017:27017"
10 volumes:
11 - ./devdb:/data/db
12 # Generate with `openssl rand -base64 756 > mongo-keyfile && chmod 400 mongo-keyfile && sudo chown 999:999 mongo-keyfile`
13 - ./mongo-keyfile:/etc/mongo-keyfile:ro
14 command: ["--replSet", "rs0", "--keyFile", "/etc/mongo-keyfile", "--auth"]
15 healthcheck:
16 test: ["CMD", "mongosh", "--eval", '''db.adminCommand("ping")''']
17 interval: 10s
18 timeout: 5s
19 retries: 3
20 restart: unless-stopped
21
22 mongo-init-replica:
23 image: mongo:8
24 depends_on:
25 db:
26 condition: service_healthy
27 entrypoint: >
28 bash -c "
29 echo 'initiating replica set...';
30 mongosh --host db:27017 -u mongo -p mongo --eval '
31 rs.initiate({
32 _id: \"rs0\",
33 members: [{ _id: 0, host: \"db:27017\" }]
34 })
35 ';
36 echo 'replica set ready';
37 "
38 restart: "no"
39
40 app:
41 build:
42 context: .
43 dockerfile: Dockerfile.dev
44 environment:
45 NODE_ENV: development
46 HOST: 0.0.0.0
47 PORT: 3000
48 DB_HOST: db
49 DB_PORT: 27017
50 DB_USER: mongo
51 DB_PASSWORD: mongo
52 DB_NAME: dev
53 ADMIN_PASSWORD: "00000000000000000000000000000000"
54 env_file:
55 - .env
56 ports:
57 - "4000:3000"
58 depends_on:
59 db:
60 condition: service_healthy
61 develop:
62 watch:
63 - path: ./api
64 action: sync
65 target: /app/api
66 - path: ./lexicon
67 action: sync
68 target: /app/lexicon
69 - path: ./services
70 action: sync
71 target: /app/services
72 - path: ./utils
73 action: sync
74 target: /app/utils
75 - path: ./data-plane
76 action: sync
77 target: /app/data-plane
78 - path: ./main.ts
79 action: sync
80 target: /app/main.ts
81 restart: unless-stopped