commit
086fd9667f
11 changed files with 181 additions and 190 deletions
78
CHANGELOG.md
78
CHANGELOG.md
|
@ -1,35 +1,43 @@
|
|||
## v0.05 ( Nov 17th 2023 )
|
||||
* Environment Variables and Labels are now unchecked by default.
|
||||
* Support for Docker volumes.
|
||||
* Fixed app uninstall.
|
||||
* Fixed Proxy Manager.
|
||||
* Updated functions to ignore the three DweebUI containers: DweebUI, DweebCache(redis), and DweebProxy(caddy).
|
||||
* Visual updates: Tabs for networks, images, and volumes. Added 'update' option in container drop-down.
|
||||
* Updated main.js to prevent javascript errors.
|
||||
* Fix for templates using 'set' instead of 'default' in environment variables.
|
||||
* Fixes for templates with no volumes or no labels.
|
||||
* New README.md.
|
||||
* New screenshots.
|
||||
* Automatically persists data in docker volumes if there is no bind mount.
|
||||
|
||||
## v0.04 (Nov 11th 2023)
|
||||
* Docker Image and Compose file available.
|
||||
* The containers DweebUI and DweebCache are hidden from the dashboard.
|
||||
* Default icon for containers.
|
||||
* Fixed missing information in container details/edit modals (Ports, Env, Volumes, Labels).
|
||||
|
||||
## v0.03 (Nov 5th 2023)
|
||||
* Container graphs now load instantly on refresh
|
||||
* Working net data for server dashboard
|
||||
* Redis is now installed as a docker container.
|
||||
|
||||
|
||||
## v0.02 (Nov 1st 2023)
|
||||
* Significant code clean-up and improvements
|
||||
* CPU and RAM graphs for each container
|
||||
* Updated Templates.json
|
||||
* Fixed text color of VPN and VNC buttons
|
||||
|
||||
|
||||
## v0.01 (Oct 15th 2023)
|
||||
* First release. Not much working.
|
||||
## v0.06 ( Nov 24th 2023 )
|
||||
* Multi-platform image (amd64/arm64).
|
||||
* Removed Caddy from compose file.
|
||||
* Proxy Manager UI can be enabled from environment variable.
|
||||
* Removed hardcoded redis passwords.
|
||||
* Repo change: Implemented image build-and-publish and dependabot (Thank you, gaby).
|
||||
* Updated dependencies.
|
||||
|
||||
## v0.05 ( Nov 17th 2023 )
|
||||
* Environment Variables and Labels are now unchecked by default.
|
||||
* Support for Docker volumes.
|
||||
* Fixed app uninstall.
|
||||
* Fixed Proxy Manager.
|
||||
* Updated functions to ignore the three DweebUI containers: DweebUI, DweebCache(redis), and DweebProxy(caddy).
|
||||
* Visual updates: Tabs for networks, images, and volumes. Added 'update' option in container drop-down.
|
||||
* Updated main.js to prevent javascript errors.
|
||||
* Fix for templates using 'set' instead of 'default' in environment variables.
|
||||
* Fixes for templates with no volumes or no labels.
|
||||
* New README.md.
|
||||
* New screenshots.
|
||||
* Automatically persists data in docker volumes if there is no bind mount.
|
||||
|
||||
## v0.04 (Nov 11th 2023)
|
||||
* Docker Image and Compose file available.
|
||||
* The containers DweebUI and DweebCache are hidden from the dashboard.
|
||||
* Default icon for containers.
|
||||
* Fixed missing information in container details/edit modals (Ports, Env, Volumes, Labels).
|
||||
|
||||
## v0.03 (Nov 5th 2023)
|
||||
* Container graphs now load instantly on refresh
|
||||
* Working net data for server dashboard
|
||||
* Redis is now installed as a docker container.
|
||||
|
||||
|
||||
## v0.02 (Nov 1st 2023)
|
||||
* Significant code clean-up and improvements
|
||||
* CPU and RAM graphs for each container
|
||||
* Updated Templates.json
|
||||
* Fixed text color of VPN and VNC buttons
|
||||
|
||||
|
||||
## v0.01 (Oct 15th 2023)
|
||||
* First release. Not much working.
|
||||
|
|
12
Dockerfile
12
Dockerfile
|
@ -2,28 +2,20 @@
|
|||
|
||||
FROM node:21-alpine
|
||||
|
||||
# Use production node environment by default.
|
||||
ENV NODE_ENV production
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Download dependencies as a separate step to take advantage of Docker's caching.
|
||||
# Leverage a cache mount to /root/.npm to speed up subsequent builds.
|
||||
# Leverage a bind mounts to package.json and package-lock.json to avoid having to copy them into
|
||||
# into this layer.
|
||||
|
||||
RUN --mount=type=bind,source=package.json,target=package.json \
|
||||
--mount=type=bind,source=package-lock.json,target=package-lock.json \
|
||||
--mount=type=cache,target=/root/.npm \
|
||||
npm ci --omit=dev
|
||||
|
||||
# Run the application as a non-root user.
|
||||
USER root
|
||||
|
||||
# Copy the rest of the source files into the image.
|
||||
COPY . .
|
||||
|
||||
# Expose the port that the application listens on.
|
||||
EXPOSE 8000
|
||||
|
||||
# Run the application.
|
||||
CMD node app.js
|
||||
CMD node app.js
|
180
README.md
180
README.md
|
@ -1,93 +1,87 @@
|
|||
# DweebUI
|
||||
DweebUI is a simple Docker web interface created with javascript and node.js
|
||||
|
||||
Pre-Pre-Pre-Pre-Pre Alpha v0.05 ( :fire: Experimental. Don't install on any servers you care about :fire: )
|
||||
|
||||
[](https://github.com/lllllllillllllillll)
|
||||
[](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE)
|
||||
[](https://github.com/lllllllillllllillll)
|
||||
|
||||
* I haven't used Github very much and I'm still new to javascript.
|
||||
* This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes.
|
||||
* I probably should have waited a lot longer to share this :|
|
||||
|
||||
<a href="https://raw.githubusercontent.com//lllllllillllllillll/DweebUI/main/screenshots/dashboard.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard.png" width="50%"/></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="50%"/></a>
|
||||
|
||||
|
||||
## Features
|
||||
* [x] Dashboard provides server metrics (cpu, ram, network, disk) and container controls on a single page.
|
||||
* [x] Light/Dark Mode.
|
||||
* [x] Easy to install app templates.
|
||||
* [x] Automatically persists data in docker volumes if bind mount isn't used.
|
||||
* [x] Proxy manager for Caddy.
|
||||
* [x] Partial Portainer Template Support (Network Mode, Ports, Volumes, Enviroment Variables, Labels, Commands, Restart Policy, Nvidia Hardware Acceleration).
|
||||
* [x] Multi-User built-in.
|
||||
* [ ] User pages: Shortcuts, Requests, Support. (planned)
|
||||
* [x] Support for Windows, Linux, and MacOS.
|
||||
* [ ] Import compose files. (planned)
|
||||
* [x] Pure javascript. No frameworks or typescript.
|
||||
* [x] Templates.json maintains compatability with Portainer, allowing you to use the template without needing to use DweebUI.
|
||||
* [ ] Manage your Docker networks, images, and volumes. (planned)
|
||||
* [ ] Preset variables. (planned)
|
||||
* [ ] VPN, VPS, and Firewall Toggles. (planned)
|
||||
* [ ] Offline Mode. (planned)
|
||||
|
||||
## Setup
|
||||
|
||||
* Docker compose.yaml:
|
||||
```
|
||||
services:
|
||||
dweebui:
|
||||
container_name: DweebUI
|
||||
image: lllllllillllllillll/dweebui:v0.05
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8000:8000
|
||||
depends_on:
|
||||
- cache
|
||||
links:
|
||||
- cache
|
||||
volumes:
|
||||
- dweebui:/app
|
||||
- caddy:/app/caddyfiles
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
cache:
|
||||
container_name: DweebCache
|
||||
image: redis:6.2-alpine
|
||||
restart: always
|
||||
command: redis-server --save 20 1 --loglevel warning --requirepass eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81
|
||||
volumes:
|
||||
- cache:/data
|
||||
proxy:
|
||||
container_name: DweebProxy
|
||||
image: caddy:2.4.5-alpine
|
||||
depends_on:
|
||||
- dweebui
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
volumes:
|
||||
- caddy:/data
|
||||
- caddy:/config
|
||||
- caddy:/etc/caddy
|
||||
volumes:
|
||||
dweebui:
|
||||
cache:
|
||||
caddy:
|
||||
```
|
||||
|
||||
* Using setup.sh:
|
||||
```
|
||||
Extract DweebUI.zip and navigate to /DweebUI
|
||||
cd DweebUI
|
||||
chmod +x setup.sh
|
||||
sudo ./setup.sh
|
||||
```
|
||||
|
||||
|
||||
## Credit
|
||||
|
||||
* UI was built using HTML and CSS elements from https://tabler.io/
|
||||
* Apps template based on Portainer template provided by Lissy93 here: https://github.com/Lissy93/portainer-templates
|
||||
* Most of the app icons were sourced from Walkxcode's dashboard icons here: https://github.com/walkxcode/dashboard-icons
|
||||
# DweebUI
|
||||
DweebUI is a simple Docker web interface created with javascript and node.js
|
||||
|
||||
Pre-Pre-Pre-Pre-Pre Alpha v0.06 ( :fire: Experimental. Don't install on any servers you care about :fire: )
|
||||
|
||||
[](https://github.com/lllllllillllllillll)
|
||||
[](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE)
|
||||
[](https://github.com/lllllllillllllillll)
|
||||
|
||||
* I haven't used Github very much and I'm still new to javascript.
|
||||
* This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes.
|
||||
* I probably should have waited a lot longer to share this :|
|
||||
|
||||
<a href="https://raw.githubusercontent.com//lllllllillllllillll/DweebUI/main/screenshots/dashboard.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard.png" width="50%"/></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="50%"/></a>
|
||||
|
||||
|
||||
## Features
|
||||
* [x] Dashboard provides server metrics (cpu, ram, network, disk) and container controls on a single page.
|
||||
* [x] Light/Dark Mode.
|
||||
* [x] Easy to install app templates.
|
||||
* [x] Automatically persists data in docker volumes if bind mount isn't used.
|
||||
* [x] Proxy manager for Caddy. (Optional)
|
||||
* [x] Partial Portainer Template Support (Network Mode, Ports, Volumes, Enviroment Variables, Labels, Commands, Restart Policy, Nvidia Hardware Acceleration).
|
||||
* [x] Multi-User built-in.
|
||||
* [ ] User pages: Shortcuts, Requests, Support. (planned)
|
||||
* [x] Support for Windows, Linux, and MacOS.
|
||||
* [ ] Import compose files. (planned)
|
||||
* [x] Pure javascript. No frameworks or typescript.
|
||||
* [x] Templates.json maintains compatability with Portainer, allowing you to use the template without needing to use DweebUI.
|
||||
* [ ] Manage your Docker networks, images, and volumes. (planned)
|
||||
* [ ] Preset variables. (planned)
|
||||
* [ ] VPN, VPS, and Firewall Toggles. (planned)
|
||||
* [ ] Offline Mode. (planned)
|
||||
|
||||
## Setup
|
||||
|
||||
* Docker compose.yaml:
|
||||
```
|
||||
services:
|
||||
dweebui:
|
||||
container_name: DweebUI
|
||||
image: lllllllillllllillll/dweebui:v0.06
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
REDIS_PASS: replace_with_password_for_redis
|
||||
# Proxy_Manager: enabled
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8000:8000
|
||||
depends_on:
|
||||
- cache
|
||||
links:
|
||||
- cache
|
||||
volumes:
|
||||
- dweebui:/app
|
||||
- caddyfiles:/app/caddyfiles
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
cache:
|
||||
container_name: DweebCache
|
||||
image: redis:6.2-alpine
|
||||
restart: always
|
||||
command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis
|
||||
volumes:
|
||||
- cache:/data
|
||||
|
||||
volumes:
|
||||
dweebui:
|
||||
cache:
|
||||
caddyfiles:
|
||||
```
|
||||
|
||||
* Using setup.sh:
|
||||
```
|
||||
Extract DweebUI.zip and navigate to /DweebUI
|
||||
cd DweebUI
|
||||
chmod +x setup.sh
|
||||
sudo ./setup.sh
|
||||
```
|
||||
|
||||
|
||||
## Credit
|
||||
|
||||
* UI was built using HTML and CSS elements from https://tabler.io/
|
||||
* Apps template based on Portainer template provided by Lissy93 here: https://github.com/Lissy93/portainer-templates
|
||||
* Most of the app icons were sourced from Walkxcode's dashboard icons here: https://github.com/walkxcode/dashboard-icons
|
||||
|
|
2
app.js
2
app.js
|
@ -12,7 +12,7 @@ app.locals.site_list = '';
|
|||
|
||||
const redisClient = require('redis').createClient({
|
||||
url: 'redis://DweebCache:6379',
|
||||
password:'eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81',
|
||||
password: process.env.REDIS_PASS,
|
||||
legacyMode:true
|
||||
});
|
||||
redisClient.connect().catch(console.log);
|
||||
|
|
24
compose.yaml
24
compose.yaml
|
@ -1,7 +1,11 @@
|
|||
services:
|
||||
dweebui:
|
||||
container_name: DweebUI
|
||||
image: lllllllillllllillll/dweebui:v0.05
|
||||
image: lllllllillllllillll/dweebui:v0.06
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
REDIS_PASS: replace_with_password_for_redis
|
||||
# Proxy_Manager: enabled
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8000:8000
|
||||
|
@ -11,27 +15,17 @@ services:
|
|||
- cache
|
||||
volumes:
|
||||
- dweebui:/app
|
||||
- caddy:/app/caddyfiles
|
||||
- caddyfiles:/app/caddyfiles
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
cache:
|
||||
container_name: DweebCache
|
||||
image: redis:6.2-alpine
|
||||
restart: always
|
||||
command: redis-server --save 20 1 --loglevel warning --requirepass eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81
|
||||
command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis
|
||||
volumes:
|
||||
- cache:/data
|
||||
proxy:
|
||||
container_name: DweebProxy
|
||||
image: caddy:2.4.5-alpine
|
||||
depends_on:
|
||||
- dweebui
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
volumes:
|
||||
- caddy:/data
|
||||
- caddy:/config
|
||||
- caddy:/etc/caddy
|
||||
|
||||
volumes:
|
||||
dweebui:
|
||||
cache:
|
||||
caddy:
|
||||
caddyfiles:
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
const User = require('../database/UserModel');
|
||||
|
||||
|
||||
exports.Dashboard = async function (req, res) {
|
||||
|
||||
if (req.session.role == "admin") {
|
||||
|
@ -8,6 +7,12 @@ exports.Dashboard = async function (req, res) {
|
|||
// get user data with matching UUID from sqlite database
|
||||
let user = await User.findOne({ where: { UUID: req.session.UUID } });
|
||||
|
||||
let caddy = 'd-none';
|
||||
|
||||
if (process.env.Proxy_Manager == 'enabled') {
|
||||
caddy = '';
|
||||
}
|
||||
|
||||
// Render the home page
|
||||
res.render("pages/dashboard", {
|
||||
name: user.first_name + ' ' + user.last_name,
|
||||
|
@ -15,6 +20,7 @@ exports.Dashboard = async function (req, res) {
|
|||
avatar: user.avatar,
|
||||
isLoggedIn: true,
|
||||
site_list: req.app.locals.site_list,
|
||||
caddy: caddy
|
||||
});
|
||||
} else {
|
||||
// Redirect to the login page
|
||||
|
|
49
package-lock.json
generated
49
package-lock.json
generated
|
@ -11,7 +11,7 @@
|
|||
"dependencies": {
|
||||
"bcrypt": "^5.1.0",
|
||||
"child_process": "^1.0.2",
|
||||
"connect-redis": "^7.1.0",
|
||||
"connect-redis": "^6.1.3",
|
||||
"dockerode": "^4.0.0",
|
||||
"dockerode-compose": "^1.4.0",
|
||||
"ejs": "^3.1.9",
|
||||
|
@ -152,38 +152,38 @@
|
|||
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
|
||||
},
|
||||
"node_modules/@types/cors": {
|
||||
"version": "2.8.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.15.tgz",
|
||||
"integrity": "sha512-n91JxbNLD8eQIuXDIChAN1tCKNWCEgpceU9b7ZMbFA+P+Q4yIeh80jizFLEvolRPc1ES0VdwFlGv+kJTSirogw==",
|
||||
"version": "2.8.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
|
||||
"integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/debug": {
|
||||
"version": "4.1.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.10.tgz",
|
||||
"integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==",
|
||||
"version": "4.1.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
|
||||
"integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
|
||||
"dependencies": {
|
||||
"@types/ms": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/ms": {
|
||||
"version": "0.7.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.33.tgz",
|
||||
"integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ=="
|
||||
"version": "0.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
|
||||
"integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.8.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz",
|
||||
"integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==",
|
||||
"version": "20.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz",
|
||||
"integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/validator": {
|
||||
"version": "13.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz",
|
||||
"integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q=="
|
||||
"version": "13.11.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.7.tgz",
|
||||
"integrity": "sha512-q0JomTsJ2I5Mv7dhHhQLGjMvX0JJm5dyZ1DXQySIUzU1UlwzB8bt+R6+LODUbz0UDIOvEzGc28tk27gBJw2N8Q=="
|
||||
},
|
||||
"node_modules/abbrev": {
|
||||
"version": "1.1.1",
|
||||
|
@ -565,14 +565,11 @@
|
|||
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
|
||||
},
|
||||
"node_modules/connect-redis": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-7.1.0.tgz",
|
||||
"integrity": "sha512-UaqO1EirWjON2ENsyau7N5lbkrdYBpS6mYlXSeff/OYXsd6EGZ+SXSmNPoljL2PSua8fgjAEaldSA73PMZQ9Eg==",
|
||||
"version": "6.1.3",
|
||||
"resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-6.1.3.tgz",
|
||||
"integrity": "sha512-aaNluLlAn/3JPxRwdzw7lhvEoU6Enb+d83xnokUNhC9dktqBoawKWL+WuxinxvBLTz6q9vReTnUDnUslaz74aw==",
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"express-session": ">=1"
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/console-control-strings": {
|
||||
|
@ -817,9 +814,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/engine.io": {
|
||||
"version": "6.5.3",
|
||||
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz",
|
||||
"integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==",
|
||||
"version": "6.5.4",
|
||||
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz",
|
||||
"integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==",
|
||||
"dependencies": {
|
||||
"@types/cookie": "^0.4.1",
|
||||
"@types/cors": "^2.8.12",
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"dependencies": {
|
||||
"bcrypt": "^5.1.0",
|
||||
"child_process": "^1.0.2",
|
||||
"connect-redis": "^7.1.0",
|
||||
"connect-redis": "^6.1.3",
|
||||
"dockerode": "^4.0.0",
|
||||
"dockerode-compose": "^1.4.0",
|
||||
"ejs": "^3.1.9",
|
||||
|
|
|
@ -3701,16 +3701,16 @@
|
|||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/home/docker/caddy/",
|
||||
"bind": "caddy",
|
||||
"container": "/data"
|
||||
},
|
||||
{
|
||||
"bind": "caddy/Caddyfile",
|
||||
"container": "/etc/caddy/Caddyfile"
|
||||
"bind": "caddy",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "caddy/sites",
|
||||
"container": "/etc/caddy/sites"
|
||||
"bind": "caddyfiles",
|
||||
"container": "/etc/caddy"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-12">
|
||||
<div class="col-12 mt-12 <%- caddy %>">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Caddy Proxy Manager</h3>
|
||||
|
@ -248,7 +248,7 @@
|
|||
|
||||
</form>
|
||||
|
||||
<p class="m-0 text-muted ms-auto">./caddyfiles/Caddyfile</p>
|
||||
<p class="m-0 text-muted ms-auto">caddy:/etc/caddy</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a href="#" class="link-secondary" rel="noopener">
|
||||
v0.05
|
||||
v0.06
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
Loading…
Add table
Reference in a new issue