wip: add redis
This commit is contained in:
parent
2f853017ee
commit
4bf0801ed9
@ -25,6 +25,8 @@ spec:
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: REDIS_URL
|
||||
value: redis://happy-redis:6379
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: handy-secrets
|
||||
|
75
deploy/happy-redis.yaml
Normal file
75
deploy/happy-redis.yaml
Normal file
@ -0,0 +1,75 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: happy-redis
|
||||
labels:
|
||||
app: happy-redis
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
name: redis
|
||||
selector:
|
||||
app: happy-redis
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: happy-redis-config
|
||||
data:
|
||||
redis.conf: |
|
||||
dir /data
|
||||
appendonly yes
|
||||
appendfsync everysec
|
||||
save 900 1
|
||||
save 300 10
|
||||
save 60 10000
|
||||
maxmemory-policy noeviction
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: happy-redis
|
||||
spec:
|
||||
serviceName: happy-redis
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: happy-redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: happy-redis
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
image: redis:7-alpine
|
||||
command:
|
||||
- redis-server
|
||||
- "/etc/redis/redis.conf"
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: redis
|
||||
volumeMounts:
|
||||
- name: redis-data
|
||||
mountPath: /data
|
||||
- name: redis-config
|
||||
mountPath: /etc/redis
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
volumes:
|
||||
- name: redis-config
|
||||
configMap:
|
||||
name: happy-redis-config
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: redis-data
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
@ -31,6 +31,7 @@
|
||||
"@fastify/bearer-auth": "^10.1.1",
|
||||
"@fastify/cors": "^10.0.1",
|
||||
"@prisma/client": "^6.11.1",
|
||||
"@socket.io/redis-streams-adapter": "^0.2.2",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"axios": "^1.6.8",
|
||||
"chalk": "4.1.2",
|
||||
@ -39,13 +40,14 @@
|
||||
"elevenlabs": "^1.54.0",
|
||||
"fastify": "^5.2.0",
|
||||
"fastify-type-provider-zod": "^4.0.2",
|
||||
"ioredis": "^5.4.1",
|
||||
"ioredis": "^5.6.1",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"pino-pretty": "^13.0.0",
|
||||
"prisma": "^6.11.1",
|
||||
"prisma-json-types-generator": "^3.5.1",
|
||||
"privacy-kit": "^0.0.23",
|
||||
"socket.io": "^4.8.1",
|
||||
"socket.io-adapter": "^2.5.5",
|
||||
"tmp": "^0.2.3",
|
||||
"tsx": "^4.19.2",
|
||||
"tweetnacl": "^1.0.3",
|
||||
@ -55,4 +57,4 @@
|
||||
"zod": "^3.24.2",
|
||||
"zod-to-json-schema": "^3.24.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,14 +3,19 @@ import { log } from "@/utils/log";
|
||||
import { awaitShutdown } from "@/utils/shutdown";
|
||||
import { db } from './storage/db';
|
||||
import { startTimeout } from "./app/timeout";
|
||||
import { redis } from "./services/redis";
|
||||
|
||||
async function main() {
|
||||
|
||||
// Storage
|
||||
await db.$connect();
|
||||
await redis.connect();
|
||||
await redis.ping();
|
||||
|
||||
//
|
||||
// Start
|
||||
//
|
||||
|
||||
await db.$connect();
|
||||
const { app, io } = await startApi();
|
||||
startTimeout();
|
||||
|
||||
|
3
sources/services/redis.ts
Normal file
3
sources/services/redis.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { Redis } from 'ioredis';
|
||||
|
||||
export const redis = new Redis();
|
23
yarn.lock
23
yarn.lock
@ -352,6 +352,11 @@
|
||||
"@jridgewell/resolve-uri" "^3.0.3"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
|
||||
"@msgpack/msgpack@~2.8.0":
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9"
|
||||
integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==
|
||||
|
||||
"@noble/curves@1.5.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.5.0.tgz#7a9b9b507065d516e6dce275a1e31db8d2a100dd"
|
||||
@ -671,6 +676,14 @@
|
||||
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
|
||||
integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
|
||||
|
||||
"@socket.io/redis-streams-adapter@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@socket.io/redis-streams-adapter/-/redis-streams-adapter-0.2.2.tgz#149a46c546be0bd080b7a9dedb993ec75f0c1827"
|
||||
integrity sha512-BMPa6oGC0wFgpMXoGksbJ75zMBwk+79pxjHc2YusdoK+X0BxN4fTsqEBuFV7yeXi9ekbi87rwlsT61+WZGVW9g==
|
||||
dependencies:
|
||||
"@msgpack/msgpack" "~2.8.0"
|
||||
debug "~4.3.1"
|
||||
|
||||
"@stablelib/base64@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@stablelib/base64/-/base64-2.0.1.tgz#f1546ab26896b3490d1ab531373c0dc39e12cee1"
|
||||
@ -1624,10 +1637,10 @@ ieee754@^1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||
|
||||
ioredis@^5.4.1:
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40"
|
||||
integrity sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==
|
||||
ioredis@^5.6.1:
|
||||
version "5.6.1"
|
||||
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.6.1.tgz#1ed7dc9131081e77342503425afceaf7357ae599"
|
||||
integrity sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==
|
||||
dependencies:
|
||||
"@ioredis/commands" "^1.1.1"
|
||||
cluster-key-slot "^1.1.0"
|
||||
@ -2254,7 +2267,7 @@ signal-exit@^3.0.3:
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
|
||||
|
||||
socket.io-adapter@~2.5.2:
|
||||
socket.io-adapter@^2.5.5, socket.io-adapter@~2.5.2:
|
||||
version "2.5.5"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082"
|
||||
integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==
|
||||
|
Loading…
Reference in New Issue
Block a user