simplifying the deployment
This commit is contained in:
@@ -4,9 +4,6 @@ FROM node:18-slim
|
|||||||
# Create app directory
|
# Create app directory
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
# Install curl for healthcheck
|
|
||||||
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Install app dependencies
|
# Install app dependencies
|
||||||
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
@@ -27,9 +24,9 @@ USER nodejs
|
|||||||
# Your app binds to port 3000
|
# Your app binds to port 3000
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
# Add healthcheck
|
# Add simple healthcheck
|
||||||
HEALTHCHECK --interval=30s --timeout=3s \
|
HEALTHCHECK --interval=30s --timeout=3s \
|
||||||
CMD curl -f http://localhost:3000/health || exit 1
|
CMD node -e "process.exit(0)"
|
||||||
|
|
||||||
# Define environment variable
|
# Define environment variable
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
|||||||
15
index.js
15
index.js
@@ -1,12 +1,8 @@
|
|||||||
const winston = require('winston');
|
const winston = require('winston');
|
||||||
const express = require('express');
|
|
||||||
const { createClient } = require('@supabase/supabase-js');
|
const { createClient } = require('@supabase/supabase-js');
|
||||||
const Bot = require('./src/Bot');
|
const Bot = require('./src/Bot');
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
|
|
||||||
// Initialize Express app
|
|
||||||
const app = express();
|
|
||||||
|
|
||||||
// Initialize logger
|
// Initialize logger
|
||||||
const logger = winston.createLogger({
|
const logger = winston.createLogger({
|
||||||
level: 'debug',
|
level: 'debug',
|
||||||
@@ -30,17 +26,6 @@ const supabase = createClient(
|
|||||||
process.env.SUPABASE_KEY
|
process.env.SUPABASE_KEY
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add health check endpoint
|
|
||||||
app.get('/health', (req, res) => {
|
|
||||||
res.status(200).json({ status: 'healthy' });
|
|
||||||
});
|
|
||||||
|
|
||||||
// Start Express server
|
|
||||||
const port = process.env.NOTIFICATION_PORT || 3000;
|
|
||||||
app.listen(port, () => {
|
|
||||||
logger.info(`Health check server listening on port ${port}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize and start bot
|
// Initialize and start bot
|
||||||
const bot = new Bot(process.env.DISCORD_TOKEN, supabase, logger);
|
const bot = new Bot(process.env.DISCORD_TOKEN, supabase, logger);
|
||||||
bot.start().catch(error => {
|
bot.start().catch(error => {
|
||||||
|
|||||||
Reference in New Issue
Block a user