🚀 Initial commit: Dokploy Dashboard Pro with container controls

This commit is contained in:
2025-06-22 13:32:57 +02:00
parent 7950c13085
commit 7d2c8b71a3
5 changed files with 92 additions and 0 deletions

17
Dockerfile Normal file
View File

@@ -0,0 +1,17 @@
FROM node:18-alpine
WORKDIR /app
# Copy package files
COPY package*.json ./
RUN npm ci --only=production
# Copy app files
COPY . .
# Build the app
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

15
app/globals.css Normal file
View File

@@ -0,0 +1,15 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
background: linear-gradient(135deg, #0f172a 0%, #581c87 50%, #0f172a 100%);
min-height: 100vh;
}

22
docker-compose.yml Normal file
View File

@@ -0,0 +1,22 @@
version: '3.8'
services:
dashboard:
build: .
ports:
- "3000:3000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- NODE_ENV=production
networks:
- dokploy_default
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`dashboard.yourdomain.com`)"
- "traefik.http.services.dashboard.loadbalancer.server.port=3000"
- "traefik.http.routers.dashboard.tls.certResolver=letsencrypt"
networks:
dokploy_default:
external: true

17
next.config.js Normal file
View File

@@ -0,0 +1,17 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
appDir: true,
},
// Allow access to Docker socket
webpack: (config, { isServer }) => {
if (isServer) {
config.externals.push({
'dockerode': 'dockerode'
});
}
return config;
}
};
module.exports = nextConfig;

21
package.json Normal file
View File

@@ -0,0 +1,21 @@
{
"name": "dokploy-dashboard-pro",
"version": "1.0.0",
"description": "Modern Docker container management dashboard for Dokploy",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"next": "^14.0.0",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"dockerode": "^3.3.5",
"lucide-react": "^0.263.1"
},
"engines": {
"node": ">=18.0.0"
}
}