Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
JGeek00 committed Jul 6, 2023
2 parents 06b2f21 + 1d17585 commit bc2e887
Show file tree
Hide file tree
Showing 13 changed files with 128 additions and 11 deletions.
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "my-server-status",
"version": "1.1.0",
"version": "1.2.0",
"description": "REST API to get information about your server",
"main": "src/index.ts",
"scripts": {
Expand All @@ -18,7 +18,7 @@
"dotenv": "^16.0.3",
"execa": "^5.1.1",
"express": "^4.18.2",
"systeminformation": "^5.17.12"
"systeminformation": "^5.18.4"
},
"optionalDependencies": {
"osx-temperature-sensor": "^1.0.8"
Expand Down
5 changes: 5 additions & 0 deletions src/config/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -138,5 +138,10 @@
"cpus"
],
"network": ["iface", "rx_sec", "tx_sec"]
},
"docker": {
"info": ["containers", "containersRunning", "containersPaused", "containersStopped", "images", "ncpu", "memTotal"],
"images": ["id", "container", "comment", "os", "architecture", "parent", "dockerVersion", "size", "author", "created", "containerConfig", "config", "repoTags"],
"containers": ["id", "name", "image", "imageId", "command", "created", "started", "finished", "state", "restartCount", "platform", "ports", "mounts"]
}
}
16 changes: 16 additions & 0 deletions src/controllers/docker/containers.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import si, { Systeminformation } from "systeminformation";
import dataConfig from "../../config/data.json";

const getDockerContainers = async () => {
const {
dockerContainers
}: {
dockerContainers: Systeminformation.DockerContainerData
} = await si.get({
dockerContainers: dataConfig.docker.containers.join(","),
});

return dockerContainers;
};

export default getDockerContainers;
16 changes: 16 additions & 0 deletions src/controllers/docker/images.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import si, { Systeminformation } from "systeminformation";
import dataConfig from "../../config/data.json";

const getDockerImages = async () => {
const {
dockerImages,
}: {
dockerImages: Systeminformation.DockerImageData
} = await si.get({
dockerImages: dataConfig.docker.images.join(","),
});

return dockerImages;
};

export default getDockerImages;
16 changes: 16 additions & 0 deletions src/controllers/docker/information.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import si, { Systeminformation } from "systeminformation";
import dataConfig from "../../config/data.json";

const getDockerInfo = async () => {
const {
dockerInfo,
}: {
dockerInfo: Systeminformation.DockerInfoData;
} = await si.get({
dockerInfo: dataConfig.docker.info.join(","),
});

return dockerInfo;
};

export default getDockerInfo;
16 changes: 11 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,18 @@ const startServer = () => {
}

const main = async () => {
const root = await checkRootAccess();
if (root) {
startServer();
}
if (process.platform === "linux" || process.platform === "darwin") {
const root = await checkRootAccess();
if (root) {
startServer();
}
else {
console.error("No root permissions detected");
process.exit(1);
}
}
else {
console.error("No root permissions detected");
console.error("OS not supported");
process.exit(1);
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ const router: Router = Router();

router.use('/v1', authMiddleware, RouterV1)

router.get('*', (req, res) => {
res.status(404).send("Endpoint not found")
})

export default router;
13 changes: 13 additions & 0 deletions src/routes/v1/docker/containers.route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Request, Response } from "express";
import getDockerContainers from "../../../controllers/docker/containers.controller";

const ContainersRoute = async (req: Request, res: Response) => {
try {
const data = await getDockerContainers();
res.json(data)
} catch (error) {
res.status(500).send();
}
}

export default ContainersRoute;
13 changes: 13 additions & 0 deletions src/routes/v1/docker/images.route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Request, Response } from "express";
import getDockerImages from "../../../controllers/docker/images.controller";

const ImagesRoute = async (req: Request, res: Response) => {
try {
const data = await getDockerImages();
res.json(data)
} catch (error) {
res.status(500).send();
}
}

export default ImagesRoute;
12 changes: 12 additions & 0 deletions src/routes/v1/docker/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Router } from 'express';
import InformationRoute from './information.route';
import ImagesRoute from './images.route';
import ContainersRoute from './containers.route';

const router: Router = Router();

router.get('/information', InformationRoute)
router.get('/images', ImagesRoute)
router.get('/containers', ContainersRoute)

export default router;
13 changes: 13 additions & 0 deletions src/routes/v1/docker/information.route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Request, Response } from "express";
import getDockerInfo from "../../../controllers/docker/information.controller";

const InformationRoute = async (req: Request, res: Response) => {
try {
const data = await getDockerInfo();
res.json(data)
} catch (error) {
res.status(500).send();
}
}

export default InformationRoute;
3 changes: 3 additions & 0 deletions src/routes/v1/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import OsRoute from './os.route';
import ApiVersionRute from './apiVersion.route';
import ShutdownRoute from './shutdown.route';
import RebootRoute from './reboot.route';
import DockerRoutes from './docker'

const router: Router = Router();

Expand All @@ -27,4 +28,6 @@ router.get('/os', OsRoute);
router.get('/shutdown', ShutdownRoute);
router.get('/reboot', RebootRoute);

router.use('/docker', DockerRoutes);

export default router;

0 comments on commit bc2e887

Please sign in to comment.