Added PM2 and check if header response set.
This commit is contained in:
@@ -24,5 +24,7 @@ RUN apt-get update && apt-get install -y \
|
|||||||
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
RUN npm install pm2 -g
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
CMD [ "npm", "start" ]
|
CMD [ "pm2-runtime", "ecosystem.config.js" ]
|
||||||
@@ -1,36 +1,66 @@
|
|||||||
version: '2'
|
version: '2'
|
||||||
services:
|
|
||||||
|
services:
|
||||||
|
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
|
||||||
|
volumes:
|
||||||
|
- caddy_data:/data
|
||||||
|
- caddy_config:/config
|
||||||
ims:
|
ims:
|
||||||
|
container_name: ims
|
||||||
|
networks:
|
||||||
|
- c2_proxy
|
||||||
ports:
|
ports:
|
||||||
- 8000:8000
|
- 8000:8000
|
||||||
volumes:
|
volumes:
|
||||||
- ~:/root
|
- "/Users/pfic/Desktop/IMS:/media"
|
||||||
#- "C:\\IMS:/media"
|
|
||||||
- "/Users/pfic/Desktop/ISM:/media"
|
|
||||||
environment:
|
environment:
|
||||||
- MEDIA_PATH=/media
|
- MEDIA_PATH=/media
|
||||||
- DUPLICATE_BILL_TO_VENDOR=false
|
- DUPLICATE_BILL_TO_VENDOR=false
|
||||||
- IMS_TOKEN=ThisIsAnImEXSecretTokenToBeSent
|
- IMS_TOKEN=test
|
||||||
image: imexonline/media-server:latest
|
- CONVERT_QUALITY=0.5
|
||||||
#image: imexonline/media-server:beta
|
- KEEP_CONVERTED_ORIGINALS=TRUE
|
||||||
|
image: imexonline/media-server:beta
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
watchtower:
|
watchtower:
|
||||||
|
container_name: watchtower-ims
|
||||||
image: containrrr/watchtower
|
image: containrrr/watchtower
|
||||||
|
networks:
|
||||||
|
- c2_proxy
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- /root/.docker/config.json:/config.json
|
environment:
|
||||||
command: --interval 3600
|
- TZ=America/Vancouver
|
||||||
caddy:
|
- WATCHTOWER_CLEANUP=true
|
||||||
image: caddy:latest
|
- WATCHTOWER_REMOVE_VOLUMES=true
|
||||||
container_name: caddy-service
|
- WATCHTOWER_INCLUDE_STOPPED=true
|
||||||
restart: unless-stopped
|
- WATCHTOWER_INCLUDE_RESTARTING=true
|
||||||
ports:
|
- WATCHTOWER_NO_STARTUP_MESSAGE=false
|
||||||
- "80:80"
|
- WATCHTOWER_REVIVE_STOPPED=true
|
||||||
- "443:443"
|
- WATCHTOWER_ROLLING_RESTART=true
|
||||||
volumes:
|
- WATCHTOWER_TIMEOUT=60s
|
||||||
- $PWD/Caddyfile:/etc/caddy/Caddyfile
|
- WATCHTOWER_POLL_INTERVAL=3600
|
||||||
- caddy_data:/data
|
restart: unless-stopped
|
||||||
- caddy_config:/config
|
|
||||||
volumes:
|
volumes:
|
||||||
|
ims:
|
||||||
caddy_data:
|
caddy_data:
|
||||||
caddy_config:
|
caddy_config:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
c2_proxy:
|
||||||
|
name: c2_proxy
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.90.0/24
|
||||||
8
ecosystem.config.js
Normal file
8
ecosystem.config.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
module.exports = [
|
||||||
|
{
|
||||||
|
script: "dist/server.js",
|
||||||
|
name: "MediaServer",
|
||||||
|
exec_mode: "cluster",
|
||||||
|
instances: 0,
|
||||||
|
},
|
||||||
|
];
|
||||||
@@ -73,9 +73,9 @@ export async function JobsListMedia(req: Request, res: Response) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.json(ret);
|
if (!res.headersSent) res.json(ret);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Error listing job media.", { jobid, error });
|
logger.error("Error listing job media.", { jobid, error });
|
||||||
res.status(500).json(error);
|
if (!res.headersSent) res.status(500).json(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
|
import fs from "fs-extra";
|
||||||
import multer from "multer";
|
import multer from "multer";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { logger } from "../server";
|
import { logger } from "../server";
|
||||||
import GenerateThumbnail from "../util/generateThumbnail";
|
import GenerateThumbnail from "../util/generateThumbnail";
|
||||||
import generateUniqueFilename from "../util/generateUniqueFilename";
|
import generateUniqueFilename from "../util/generateUniqueFilename";
|
||||||
|
import { ConvertHeicFiles } from "../util/heicConverter";
|
||||||
import { PathToRoFolder } from "../util/pathGenerators";
|
import { PathToRoFolder } from "../util/pathGenerators";
|
||||||
import { JobsListMedia } from "./jobsListMedia";
|
import { JobsListMedia } from "./jobsListMedia";
|
||||||
import fs from "fs-extra";
|
|
||||||
import { ConvertHeicFiles } from "../util/heicConverter";
|
|
||||||
|
|
||||||
export const JobMediaUploadMulter = multer({
|
export const JobMediaUploadMulter = multer({
|
||||||
storage: multer.diskStorage({
|
storage: multer.diskStorage({
|
||||||
@@ -44,6 +44,7 @@ export async function jobsUploadMedia(req: Request, res: Response) {
|
|||||||
} else {
|
} else {
|
||||||
//If we want to skip waiting for everything, just send it back that we're good.
|
//If we want to skip waiting for everything, just send it back that we're good.
|
||||||
if (req.body.skip_thumbnail) {
|
if (req.body.skip_thumbnail) {
|
||||||
|
req.headers.skipReponse === "true";
|
||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user