Skip to content
Snippets Groups Projects
Verified Commit 58016ee4 authored by creations's avatar creations :earth_africa:
Browse files

add docker support, move to env file, add example

parent 608f4d5e
Branches
No related tags found
No related merge requests found
PORT=6600
HOST=0.0.0.0
#NODE_ENV=development
#REDIS_HOST=127.0.0.1
#REDIS_PORT=6379
REDIS_PASSWORD=pasw0rd
/node_modules
bun.lockb
/config/secrets.ts
.env
# docker/dev.Dockerfile
FROM oven/bun:latest
WORKDIR /app/booru-api
COPY package.json ./
COPY bun.lockb ./
RUN bun install
COPY . .
ENV NEXT_TELEMETRY_DISABLED 1
CMD bun run start
services:
booru-api:
container_name: booru-api
build:
context: .
volumes:
- .:/app/booru-api
restart: unless-stopped
ports:
- "${PORT:-6600}:${PORT:-6600}"
env_file:
- .env
depends_on:
- dragonfly-redis
networks:
- booru-network
dragonfly-redis:
container_name: dragonfly-redis
image: docker.dragonflydb.io/dragonflydb/dragonfly
restart: unless-stopped
environment:
REDIS_PASSWORD: ${redis_password:-pasw0rd}
command: ["--requirepass", "${redis_password:-pasw0rd}"]
networks:
- booru-network
networks:
booru-network:
driver: bridge
import dotenv from "dotenv";
import { logger } from "@/helpers/logger";
try {
dotenv.config();
} catch {
logger.error("No .env file found consider creating one");
}
export const environment: Environment = {
port: 6600,
host: "127.0.0.1",
development:
process.argv.includes("--dev") ||
process.argv.includes("--development"),
port: parseInt(process.env.PORT || "6600", 10),
host: process.env.HOST || "0.0.0.0",
development: process.env.NODE_ENV === "development",
};
export const redisConfig: RedisConfig = {
host: process.env.REDIS_HOST || "dragonfly-redis",
port: parseInt(process.env.REDIS_PORT || "6379", 10),
password: process.env.REDIS_PASSWORD || undefined,
};
......@@ -27,6 +27,7 @@
},
"type": "module",
"dependencies": {
"dotenv": "^16.4.7",
"redis": "^4.7.0"
}
}
import { redisConfig } from "@config/secrets";
import { redisConfig } from "@config/environment";
import { logger } from "@helpers/logger";
import { createClient, type RedisClientType } from "redis";
......@@ -23,6 +23,7 @@ class RedisJson {
RedisJson.instance.client.on("error", (err: Error) => {
logger.error("Redis connection error:");
logger.error((err as Error) || "Unknown error");
logger.error(redisConfig.host);
process.exit(1);
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment