From 8ef362ba09352c2414dc50d4107096fffa03a412 Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Fri, 6 Jul 2018 10:53:16 -0700 Subject: [PATCH] Separate out cache + data servers --- .dockerignore | 11 ----------- .gitignore | 3 ++- docker-compose.yml | 25 +++++++++++++++++-------- server/AuthAPI.js | 2 +- server/BlacklistAPI.js | 2 +- server/StatsAPI.js | 2 +- server/ingestLogs.js | 2 +- server/utils/cache.js | 9 +++++++++ server/utils/createCache.js | 2 +- server/utils/data.js | 9 +++++++++ server/utils/incrementCounter.js | 2 +- server/utils/redis.js | 12 ------------ 12 files changed, 43 insertions(+), 38 deletions(-) delete mode 100644 .dockerignore create mode 100644 server/utils/cache.js create mode 100644 server/utils/data.js delete mode 100644 server/utils/redis.js diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index fe74f2e..0000000 --- a/.dockerignore +++ /dev/null @@ -1,11 +0,0 @@ -.env -.git -.gitignore -.travis.yml -data -deploy -node_modules -private.key -scripts -tokens -unpkg.sketch diff --git a/.gitignore b/.gitignore index 3e6ac2d..47fa7eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store .env -/data + +/redis /node_modules /public/_assets /stats.json diff --git a/docker-compose.yml b/docker-compose.yml index 7e8b2d9..ddd877f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,34 +8,43 @@ services: cache: image: redis volumes: - - ./data:/data - ports: - - "6379:6379" + - ./redis/cache:/data + networks: + - localnet + + data: + image: redis + volumes: + - ./redis/data:/data networks: - localnet server: build: . - image: server command: nodemon --ignore client server.js + environment: + - CACHE_URL=redis://cache:6379 + - DATA_URL=redis://data:6379 env_file: .env volumes: - .:/app depends_on: - cache - ports: - - "8080:5000" + - data networks: - localnet + ports: + - "8080:5000" worker: build: . - image: worker command: nodemon --ignore client server/ingestLogs.js + environment: + - DATA_URL=redis://data:6379 env_file: .env volumes: - .:/app depends_on: - - cache + - data networks: - localnet diff --git a/server/AuthAPI.js b/server/AuthAPI.js index 91913c9..3fd1af1 100644 --- a/server/AuthAPI.js +++ b/server/AuthAPI.js @@ -1,7 +1,7 @@ const crypto = require("crypto"); const jwt = require("jsonwebtoken"); -const db = require("./utils/redis"); +const db = require("./utils/data"); const secretKey = require("./secretKey"); function getCurrentSeconds() { diff --git a/server/BlacklistAPI.js b/server/BlacklistAPI.js index 9344818..7863518 100644 --- a/server/BlacklistAPI.js +++ b/server/BlacklistAPI.js @@ -1,4 +1,4 @@ -const db = require("./utils/redis"); +const db = require("./utils/data"); const blacklistSet = "blacklisted-packages"; diff --git a/server/StatsAPI.js b/server/StatsAPI.js index 3f2330f..3e6d8d8 100644 --- a/server/StatsAPI.js +++ b/server/StatsAPI.js @@ -1,4 +1,4 @@ -const db = require("./utils/redis"); +const db = require("./utils/data"); const CloudflareAPI = require("./CloudflareAPI"); const BlacklistAPI = require("./BlacklistAPI"); diff --git a/server/ingestLogs.js b/server/ingestLogs.js index 2aa1a14..d3471f4 100644 --- a/server/ingestLogs.js +++ b/server/ingestLogs.js @@ -3,7 +3,7 @@ const startOfDay = require("date-fns/start_of_day"); const startOfMinute = require("date-fns/start_of_minute"); const addDays = require("date-fns/add_days"); -const db = require("./utils/redis"); +const db = require("./utils/data"); const isValidPackageName = require("./utils/isValidPackageName"); const parsePackageURL = require("./utils/parsePackageURL"); diff --git a/server/utils/cache.js b/server/utils/cache.js new file mode 100644 index 0000000..4a5734f --- /dev/null +++ b/server/utils/cache.js @@ -0,0 +1,9 @@ +const redis = require("redis"); + +redis.debug_mode = process.env.DEBUG_REDIS != null; + +const client = redis.createClient( + process.env.CACHE_URL || process.env.OPENREDIS_URL || "redis://localhost:6379" +); + +module.exports = client; diff --git a/server/utils/createCache.js b/server/utils/createCache.js index caf2483..3d49b45 100644 --- a/server/utils/createCache.js +++ b/server/utils/createCache.js @@ -1,4 +1,4 @@ -const db = require("./redis"); +const db = require("./cache"); /** * A persistent cache for JSON values, using Redis. diff --git a/server/utils/data.js b/server/utils/data.js new file mode 100644 index 0000000..ecd33e7 --- /dev/null +++ b/server/utils/data.js @@ -0,0 +1,9 @@ +const redis = require("redis"); + +redis.debug_mode = process.env.DEBUG_REDIS != null; + +const client = redis.createClient( + process.env.DATA_URL || process.env.OPENREDIS_URL || "redis://localhost:6379" +); + +module.exports = client; diff --git a/server/utils/incrementCounter.js b/server/utils/incrementCounter.js index 0868061..2e599d5 100644 --- a/server/utils/incrementCounter.js +++ b/server/utils/incrementCounter.js @@ -1,4 +1,4 @@ -const db = require("./redis"); +const db = require("./data"); function incrementCounter(counter, key, by = 1) { return new Promise((resolve, reject) => { diff --git a/server/utils/redis.js b/server/utils/redis.js deleted file mode 100644 index c7f4719..0000000 --- a/server/utils/redis.js +++ /dev/null @@ -1,12 +0,0 @@ -const redis = require("redis"); - -redis.debug_mode = process.env.DEBUG_REDIS != null; - -const redisURL = - process.env.OPENREDIS_URL || - process.env.REDIS_URL || - "redis://localhost:6379"; - -const client = redis.createClient(redisURL); - -module.exports = client;