🔧 Fixes
This commit is contained in:
@@ -1,24 +1,11 @@
|
|||||||
import { createClient } from "redis";
|
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 pubClient = createClient({
|
||||||
const client = createClient(url);
|
url: process.env.REDIS_URI || 'redis://localhost:6379'
|
||||||
|
});
|
||||||
client.on("error", (err) => console.error("Redis Client Error", err));
|
(async () => {
|
||||||
client.on("connect", () => console.log("Connected to Redis:", url));
|
await pubClient.connect();
|
||||||
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 subClient = pubClient.duplicate();
|
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 };
|
export { subClient, pubClient };
|
||||||
|
|||||||
@@ -3,7 +3,14 @@ LOGGER=true
|
|||||||
LOGLEVEL=info
|
LOGLEVEL=info
|
||||||
SERVICEDIR=dist/services
|
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
|
CACHER=Memory
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
services:
|
||||||
|
core-services:
|
||||||
api:
|
|
||||||
build:
|
build:
|
||||||
context: .
|
context: https://github.com/rishighan/threetwo-core-service.git
|
||||||
image: threetwo-library-service
|
image: frishi/threetwo-core-service
|
||||||
env_file: docker-compose.env
|
container_name: core-services
|
||||||
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"
|
|
||||||
ports:
|
ports:
|
||||||
- 3000:80
|
- "3000:3000"
|
||||||
- 3001:8080
|
- "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:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- *comics-volume
|
||||||
|
- *userdata-volume
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- proxy
|
||||||
- default
|
|
||||||
|
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:
|
networks:
|
||||||
internal:
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
mongodb_data:
|
||||||
|
driver: local
|
||||||
|
elasticsearch:
|
||||||
|
driver: local
|
||||||
|
|||||||
Reference in New Issue
Block a user