🔧 Fixes

This commit is contained in:
2024-05-15 21:27:38 -05:00
parent 66f9d63b44
commit 03f6623ed0
3 changed files with 111 additions and 68 deletions

View File

@@ -1,24 +1,11 @@
import { createClient } from "redis";
console.log(`REDIS_URI: ${process.env.REDIS_URI}`);
const redisURL = process.env.REDIS_URI;
if (!redisURL) throw new Error("REDIS_URI environment variable is not set.");
const createRedisClient = (url) => {
const client = createClient(url);
client.on("error", (err) => console.error("Redis Client Error", err));
client.on("connect", () => console.log("Connected to Redis:", url));
client.on("reconnecting", () => console.log("Reconnecting to Redis..."));
client.connect().catch((err) => console.error("Failed to connect to Redis:", err));
return client;
};
const pubClient = createRedisClient(redisURL);
const pubClient = createClient({
url: process.env.REDIS_URI || 'redis://localhost:6379'
});
(async () => {
await pubClient.connect();
})();
const subClient = pubClient.duplicate();
subClient.on("error", (err) => console.error("Redis Subscriber Client Error", err));
subClient.connect().catch((err) => console.error("Failed to connect Redis Subscriber:", err));
export { subClient, pubClient };

View File

@@ -3,7 +3,14 @@ LOGGER=true
LOGLEVEL=info
SERVICEDIR=dist/services
TRANSPORTER=nats://nats:4222
TRANSPORTER=redis://redis:6379
COMICS_DIRECTORY=/Users/rishi/work/threetwo-core-service/comics
USERDATA_DIRECTORY=/Users/rishi/work/threetwo-core-service/userdata
REDIS_URI=redis://redis:6379
ELASTICSEARCH_URI=http://elasticsearch:9200
MONGO_URI=mongodb://mongo:27017/threetwo
UNRAR_BIN_PATH=/opt/homebrew/bin/unrar
SEVENZ_BINARY_PATH=/opt/homebrew/bin/7za
CACHER=Memory

View File

@@ -1,58 +1,107 @@
version: "3.3"
x-userdata-volume: &userdata-volume
type: bind
source: ${USERDATA_DIRECTORY}
target: /userdata
x-comics-volume: &comics-volume
type: bind
source: ${COMICS_DIRECTORY}
target: /comics
services:
api:
core-services:
build:
context: .
image: threetwo-library-service
env_file: docker-compose.env
environment:
SERVICES: api
PORT: 3000
depends_on:
- nats
labels:
- "traefik.enable=true"
- "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
- "traefik.http.services.api-gw.loadbalancer.server.port=3000"
networks:
- internal
greeter:
build:
context: .
image: threetwo-library-service
env_file: docker-compose.env
environment:
SERVICES: greeter
depends_on:
- nats
networks:
- internal
nats:
image: nats:2
networks:
- internal
traefik:
image: traefik:v2.1
command:
- "--api.insecure=true" # Don't do that in production!
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
context: https://github.com/rishighan/threetwo-core-service.git
image: frishi/threetwo-core-service
container_name: core-services
ports:
- 3000:80
- 3001:8080
- "3000:3000"
- "3001:3001"
depends_on:
- db
- redis
- elasticsearch
- kafka
- zookeeper
environment:
name: core-services
SERVICES: api,library,jobqueue,settings,search,socket,imagetransformation,torrentjobs,opds
env_file: docker-compose.env
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- *comics-volume
- *userdata-volume
networks:
- internal
- default
- proxy
zookeeper:
image: zookeeper:latest
container_name: zookeeper
ports:
- "2181:2181"
networks:
- proxy
kafka:
image: apache/kafka:latest
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
networks:
- proxy
db:
image: "bitnami/mongodb:latest"
container_name: database
networks:
- proxy
ports:
- "27017:27017"
volumes:
- "mongodb_data:/bitnami/mongodb"
redis:
image: "bitnami/redis:latest"
container_name: redis
environment:
ALLOW_EMPTY_PASSWORD: "yes"
networks:
- proxy
ports:
- "6379:6379"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.2
container_name: elasticsearch
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "xpack.security.enabled=true"
- "xpack.security.authc.api_key.enabled=true"
- "ELASTIC_PASSWORD=password"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
networks:
- proxy
networks:
internal:
proxy:
external: true
volumes:
data:
mongodb_data:
driver: local
elasticsearch:
driver: local