Added container routes to backend and Dashboard.jsx to frontend.

This commit is contained in:
David Ball 2024-05-31 02:17:17 -04:00
parent d0e1db5439
commit 81431c61b3
4 changed files with 48 additions and 0 deletions

4
admin-api/docker.js Normal file
View File

@ -0,0 +1,4 @@
const Docker = require('dockerode');
const docker = new Docker();
module.exports = docker;

View File

@ -0,0 +1,15 @@
const express = require('express');
const docker = require('../docker');
const router = express.Router();
router.get('/', async (req, res) => {
try {
const containers = await docker.listContainers();
res.json(containers);
} catch (error) {
res.status(500).send({ error: error.message });
}
});
module.exports = router;

View File

@ -3,6 +3,7 @@ const express = require('express');
const session = require('express-session');
const passport = require('passport');
const authRoutes = require('./routes/authRoutes');
const containerRoutes = require('./routes/containerRoutes');
const app = express();
app.use(express.json());
@ -11,6 +12,7 @@ app.use(passport.initialize());
app.use(passport.session());
app.use('/api/auth', authRoutes);
app.use('/api/containers', containerRoutes);
app.listen(3001, () => {
console.log('Backend server running on port 3001');

View File

@ -0,0 +1,27 @@
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const Dashboard = () => {
const [containers, setContainers] = useState([]);
useEffect(() => {
const fetchContainers = async () => {
const response = await axios.get('/api/containers');
setContainers(response.data);
};
fetchContainers();
}, []);
return (
<div>
<h2>Docker Containers</h2>
<ul>
{containers.map(container => (
<li key={container.Id}>{container.Names[0]}</li>
))}
</ul>
</div>
);
};
export default Dashboard;