Added PM2 and check if header response set.

This commit is contained in:
Patrick Fic
2022-06-02 14:44:04 -07:00
parent 5c2e08ae15
commit 4ae4092490
5 changed files with 67 additions and 26 deletions

View File

@@ -24,5 +24,7 @@ RUN apt-get update && apt-get install -y \
RUN npm run build
RUN npm install pm2 -g
EXPOSE 8000
CMD [ "npm", "start" ]
CMD [ "pm2-runtime", "ecosystem.config.js" ]

View File

@@ -1,36 +1,66 @@
version: '2'
services:
ims:
ports:
- 8000:8000
volumes:
- ~:/root
#- "C:\\IMS:/media"
- "/Users/pfic/Desktop/ISM:/media"
environment:
- MEDIA_PATH=/media
- DUPLICATE_BILL_TO_VENDOR=false
- IMS_TOKEN=ThisIsAnImEXSecretTokenToBeSent
image: imexonline/media-server:latest
#image: imexonline/media-server:beta
restart: unless-stopped
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.docker/config.json:/config.json
command: --interval 3600
caddy:
caddy-ims:
image: caddy:latest
container_name: caddy-service
restart: unless-stopped
command: caddy reverse-proxy --from imexmedia.duckdns.org --to ims:8000
networks:
c2_proxy:
ipv4_address: 192.168.90.254
ports:
- "80:80"
- "443:443"
- 80:80
- 443:443
volumes:
- $PWD/Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
ims:
container_name: ims
networks:
- c2_proxy
ports:
- 8000:8000
volumes:
- "/Users/pfic/Desktop/IMS:/media"
environment:
- MEDIA_PATH=/media
- DUPLICATE_BILL_TO_VENDOR=false
- IMS_TOKEN=test
- CONVERT_QUALITY=0.5
- KEEP_CONVERTED_ORIGINALS=TRUE
image: imexonline/media-server:beta
restart: unless-stopped
watchtower:
container_name: watchtower-ims
image: containrrr/watchtower
networks:
- c2_proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=America/Vancouver
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
- WATCHTOWER_INCLUDE_STOPPED=true
- WATCHTOWER_INCLUDE_RESTARTING=true
- WATCHTOWER_NO_STARTUP_MESSAGE=false
- WATCHTOWER_REVIVE_STOPPED=true
- WATCHTOWER_ROLLING_RESTART=true
- WATCHTOWER_TIMEOUT=60s
- WATCHTOWER_POLL_INTERVAL=3600
restart: unless-stopped
volumes:
ims:
caddy_data:
caddy_config:
networks:
c2_proxy:
name: c2_proxy
driver: bridge
ipam:
config:
- subnet: 192.168.90.0/24

8
ecosystem.config.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = [
{
script: "dist/server.js",
name: "MediaServer",
exec_mode: "cluster",
instances: 0,
},
];

View File

@@ -73,9 +73,9 @@ export async function JobsListMedia(req: Request, res: Response) {
);
}
res.json(ret);
if (!res.headersSent) res.json(ret);
} catch (error) {
logger.error("Error listing job media.", { jobid, error });
res.status(500).json(error);
if (!res.headersSent) res.status(500).json(error);
}
}

View File

@@ -1,13 +1,13 @@
import { Request, Response } from "express";
import fs from "fs-extra";
import multer from "multer";
import path from "path";
import { logger } from "../server";
import GenerateThumbnail from "../util/generateThumbnail";
import generateUniqueFilename from "../util/generateUniqueFilename";
import { ConvertHeicFiles } from "../util/heicConverter";
import { PathToRoFolder } from "../util/pathGenerators";
import { JobsListMedia } from "./jobsListMedia";
import fs from "fs-extra";
import { ConvertHeicFiles } from "../util/heicConverter";
export const JobMediaUploadMulter = multer({
storage: multer.diskStorage({
@@ -44,6 +44,7 @@ export async function jobsUploadMedia(req: Request, res: Response) {
} else {
//If we want to skip waiting for everything, just send it back that we're good.
if (req.body.skip_thumbnail) {
req.headers.skipReponse === "true";
res.sendStatus(200);
}