updated README and minor fixes
This commit is contained in:
parent
6a352281ab
commit
66f273e22e
7 changed files with 43 additions and 31 deletions
|
@ -9,6 +9,7 @@
|
||||||
* Updated database models.
|
* Updated database models.
|
||||||
* Persistent Database.
|
* Persistent Database.
|
||||||
* Install cards displayed on dashboard.
|
* Install cards displayed on dashboard.
|
||||||
|
* Updated docker compose to include HTTPS Env.
|
||||||
|
|
||||||
## v0.40 (Feb 26th 2024) - HTMX rewrite
|
## v0.40 (Feb 26th 2024) - HTMX rewrite
|
||||||
* Pages rewritten to use HTMX.
|
* Pages rewritten to use HTMX.
|
||||||
|
|
43
README.md
43
README.md
|
@ -1,31 +1,27 @@
|
||||||
# DweebUI
|
<h3 align="center"><img width="150" src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/public/images/logo.png"></h3>
|
||||||
DweebUI is a web interface for managing Docker, with a zero-config dashboard for controlling and monitoring your containers.
|
<h4 align="center">DweebUI Beta v0.50 ( :fire: Experimental :fire: )</h4>
|
||||||
|
<h3 align="center">Free and Open-Source WebUI For Managing Your Containers.</h3>
|
||||||
|
|
||||||
Alpha v0.50 ( :fire: Experimental :fire: )
|
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
[:warning: DweebUI is a management interface and should not be directly exposed to the internet :warning:](https://github.com/lllllllillllllillll/DweebUI/wiki/Exposing-DweebUI-to-the-Internet)
|
<a href="#"><img src="https://img.shields.io/github/stars/lllllllillllllillll/DweebUI?style=flat"/></a>
|
||||||
|
<a href="https://github.com/lllllllillllllillll"><img src="https://img.shields.io/github/commit-activity/y/lllllllillllllillll/DweebUI"/></a>
|
||||||
|
<a href="#"><img src="https://img.shields.io/docker/pulls/lllllllillllllillll/dweebui"/></a>
|
||||||
|
<a href="#"><img src="https://img.shields.io/github/languages/top/lllllllillllllillll/DweebUI"/></a>
|
||||||
|
<a href="#"><img src="https://img.shields.io/github/license/lllllllillllllillll/DweebUI"/></a>
|
||||||
|
<a href="https://www.reddit.com/r/dweebui"><img src="https://img.shields.io/badge/reddit-orange"/></a>
|
||||||
|
<a href="https://www.buymeacoffee.com/lllllllillllllillll"><img src="https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee"/></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
[](https://github.com/lllllllillllllillll)
|
|
||||||
[](https://github.com/lllllllillllllillll)
|
|
||||||
[](https://hub.docker.com/repository/docker/lllllllillllllillll/dweebui)
|
|
||||||
[](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE)
|
|
||||||
[](https://www.buymeacoffee.com/lllllllillllllillll)
|
|
||||||
|
|
||||||
* I started this as a personal project to get more familiar with Javascript and Node.js.
|
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard1.png"></h3>
|
||||||
* I'm open to any contributions, but you may want to wait until I reach v1.0 first.
|
<br/>
|
||||||
|
|
||||||
|
## About
|
||||||
|
* I started this as a personal project to get more familiar with Javascript and Node.js. There may be some rough edges and spaghetti code .
|
||||||
|
* I'm open to any contributions but you may want to wait until I reach v1.0 first.
|
||||||
* Please post issues and discussions so I know what bugs and features to focus on.
|
* Please post issues and discussions so I know what bugs and features to focus on.
|
||||||
|
* DweebUI is a management interface and should not be directly exposed to the internet
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard1.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard1.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard2.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard2.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/apps.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/apps.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/images.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/images.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/register.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/register.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/login.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/login.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/syslogs.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/syslogs.png" width="25%"/></a>
|
|
||||||
<a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/volumes.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/volumes.png" width="25%"/></a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
* [x] Dashboard provides server metrics, container metrics, and container controls, on a single page.
|
* [x] Dashboard provides server metrics, container metrics, and container controls, on a single page.
|
||||||
|
@ -57,6 +53,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
PORT: 8000
|
PORT: 8000
|
||||||
SECRET: MrWiskers
|
SECRET: MrWiskers
|
||||||
|
HTTPS: false
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- 8000:8000
|
- 8000:8000
|
||||||
|
|
|
@ -78,13 +78,24 @@ async function containerInfo (containerName) {
|
||||||
} catch {
|
} catch {
|
||||||
// no exposed ports
|
// no exposed ports
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let external = 0;
|
||||||
|
let internal = 0;
|
||||||
|
try {
|
||||||
|
external = ports_list[0].external;
|
||||||
|
internal = ports_list[0].internal;
|
||||||
|
} catch {
|
||||||
|
// no exposed ports
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let details = {
|
let details = {
|
||||||
name: containerName,
|
name: containerName,
|
||||||
image: image,
|
image: image,
|
||||||
service: image[image.length - 1].split(':')[0],
|
service: image[image.length - 1].split(':')[0],
|
||||||
state: info.State.Status,
|
state: info.State.Status,
|
||||||
external_port: ports_list[0]?.external || 0,
|
external_port: external,
|
||||||
internal_port: ports_list[0]?.internal || 0,
|
internal_port: internal,
|
||||||
ports: ports_list,
|
ports: ports_list,
|
||||||
link: 'localhost',
|
link: 'localhost',
|
||||||
}
|
}
|
||||||
|
@ -122,6 +133,8 @@ async function createCard (details) {
|
||||||
card = card.replace(/AppIcon/g, details.service);
|
card = card.replace(/AppIcon/g, details.service);
|
||||||
card = card.replace(/AppState/g, state);
|
card = card.replace(/AppState/g, state);
|
||||||
card = card.replace(/StateColor/g, state_color);
|
card = card.replace(/StateColor/g, state_color);
|
||||||
|
card = card.replace(/ExternalPort/g, details.external_port);
|
||||||
|
card = card.replace(/InternalPort/g, details.internal_port);
|
||||||
card = card.replace(/ChartName/g, details.name.replace(/-/g, ''));
|
card = card.replace(/ChartName/g, details.name.replace(/-/g, ''));
|
||||||
card = card.replace(/AppNameState/g, `${details.name}State`);
|
card = card.replace(/AppNameState/g, `${details.name}State`);
|
||||||
card = card.replace(/data-trigger=""/, trigger);
|
card = card.replace(/data-trigger=""/, trigger);
|
||||||
|
|
|
@ -6,6 +6,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
PORT: 8000
|
PORT: 8000
|
||||||
SECRET: MrWiskers
|
SECRET: MrWiskers
|
||||||
|
HTTPS: false
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- 8000:8000
|
- 8000:8000
|
||||||
|
|
|
@ -18,8 +18,8 @@ const sessionMiddleware = session({
|
||||||
resave: false,
|
resave: false,
|
||||||
saveUninitialized: false,
|
saveUninitialized: false,
|
||||||
cookie:{
|
cookie:{
|
||||||
secure:false, // Only set to true if you are using HTTPS.
|
secure: process.env.HTTPS || false, // Only set to true if you are using HTTPS.
|
||||||
httpOnly:false, // Only set to true if you are using HTTPS.
|
httpOnly: process.env.HTTPS || false, // Only set to true if you are using HTTPS.
|
||||||
maxAge:3600000 * 8 // Session max age in milliseconds. 3600000 = 1 hour.
|
maxAge:3600000 * 8 // Session max age in milliseconds. 3600000 = 1 hour.
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<body >
|
<body >
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<!-- Navbar -->
|
<!-- Navbar -->
|
||||||
<%- include('/partials/navbar.html') %>
|
<%- include('partials/navbar.html') %>
|
||||||
<div class="page-wrapper">
|
<div class="page-wrapper">
|
||||||
<!-- Page header -->
|
<!-- Page header -->
|
||||||
<div class="page-header d-print-none">
|
<div class="page-header d-print-none">
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="row g-0">
|
<div class="row g-0">
|
||||||
|
|
||||||
<%- include('/partials/sidebar.html') %>
|
<%- include('partials/sidebar.html') %>
|
||||||
|
|
||||||
<div class="col d-flex flex-column">
|
<div class="col d-flex flex-column">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<%- include('/partials/footer.html') %>
|
<%- include('partials/footer.html') %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Libs JS -->
|
<!-- Libs JS -->
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<img width="100px" src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI-Icons/main/AppIcon.png" onerror="this.onerror=null;this.src='https://raw.githubusercontent.com/lllllllillllllillll/DweebUI-Icons/main/docker.png';"></img>
|
<img width="100px" src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI-Icons/main/AppIcon.png" onerror="this.onerror=null;this.src='https://raw.githubusercontent.com/lllllllillllllillll/DweebUI-Icons/main/docker.png';"></img>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="subheader text-yellow">0:0</div>
|
<div class="subheader text-yellow">ExternalPort:InternalPort</div>
|
||||||
<div class="ms-auto lh-1">
|
<div class="ms-auto lh-1">
|
||||||
<div class="card-actions btn-actions">
|
<div class="card-actions btn-actions">
|
||||||
<div class="card-actions btn-actions">
|
<div class="card-actions btn-actions">
|
||||||
|
|
Loading…
Add table
Reference in a new issue