Skip to content

Commit 277ac42

Browse files
authored
feat: replace docker overview table with web component (7.3+) (#1764)
## Summary Introduces a new Vue-based Docker container management interface replacing the legacy webgui table. ### Container Management - Start, stop, pause, resume, and remove containers via GraphQL mutations - Bulk actions for managing multiple containers at once - Container update detection with one-click updates - Real-time container statistics (CPU, memory, I/O) ### Organization & Navigation - Folder-based container organization with drag-and-drop support - Accessible reordering via keyboard controls - Customizable column visibility with persistent preferences - Column resizing and reordering - Filtering and search across container properties ### Auto-start Configuration - Dedicated autostart view with delay configuration - Drag-and-drop reordering of start/stop sequences ### Logs & Console - Integrated log viewer with filtering and download - Persistent console sessions with shell selection - Slideover panel for quick access ### Networking - Port conflict detection and alerts - Tailscale integration for container networking status - LAN IP and port information display ### Additional Features - Orphaned container detection and cleanup - Template mapping management - Critical notifications system - WebUI visit links with Tailscale support <sub>PR Summary by Claude Opus 4.5</sub>
1 parent e1e3ea7 commit 277ac42

File tree

173 files changed

+18792
-1654
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+18792
-1654
lines changed

api/.env.development

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ PATHS_LOGS_FILE=./dev/log/graphql-api.log
1919
PATHS_CONNECT_STATUS_FILE_PATH=./dev/connectStatus.json # Connect plugin status file
2020
PATHS_OIDC_JSON=./dev/configs/oidc.local.json
2121
PATHS_LOCAL_SESSION_FILE=./dev/local-session
22+
PATHS_DOCKER_TEMPLATES=./dev/docker-templates
2223
ENVIRONMENT="development"
2324
NODE_ENV="development"
2425
PORT="3001"

api/.env.production

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ NODE_ENV="production"
33
PORT="/var/run/unraid-api.sock"
44
MOTHERSHIP_GRAPHQL_LINK="https://mothership.unraid.net/ws"
55
PATHS_CONFIG_MODULES="/boot/config/plugins/dynamix.my.servers/configs"
6+
ENABLE_NEXT_DOCKER_RELEASE=true

api/.env.staging

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ NODE_ENV="production"
33
PORT="/var/run/unraid-api.sock"
44
MOTHERSHIP_GRAPHQL_LINK="https://staging.mothership.unraid.net/ws"
55
PATHS_CONFIG_MODULES="/boot/config/plugins/dynamix.my.servers/configs"
6+
ENABLE_NEXT_DOCKER_RELEASE=true

api/.eslintrc.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default tseslint.config(
88
eslint.configs.recommended,
99
...tseslint.configs.recommended,
1010
{
11-
ignores: ['src/graphql/generated/client/**/*', 'src/**/**/dummy-process.js'],
11+
ignores: ['src/graphql/generated/client/**/*', 'src/**/**/dummy-process.js', 'dist/**/*'],
1212
},
1313
{
1414
plugins: {

api/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ deploy/*
8383

8484
!**/*.login.*
8585

86+
# Local Development Artifacts
87+
8688
# local api configs - don't need project-wide tracking
8789
dev/connectStatus.json
8890
dev/configs/*
@@ -96,3 +98,7 @@ dev/configs/oidc.local.json
9698

9799
# local api keys
98100
dev/keys/*
101+
# mock docker templates
102+
dev/docker-templates
103+
# ie unraid notifications
104+
dev/notifications

api/.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ src/unraid-api/unraid-file-modifier/modifications/__fixtures__/downloaded/*
55

66
# Generated Types
77
src/graphql/generated/client/*.ts
8+
dist/

api/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@ If you found this file you're likely a developer. If you'd like to know more abo
7575

7676
- Run `pnpm --filter @unraid/api i18n:extract` to scan the Nest.js source for translation helper usages and update `src/i18n/en.json` with any new keys. The extractor keeps existing translations intact and appends new keys with their English source text.
7777

78+
## Developer Documentation
79+
80+
For detailed information about specific features:
81+
82+
- [API Plugins](docs/developer/api-plugins.md) - Working with API plugins and workspace packages
83+
- [Docker Feature](docs/developer/docker.md) - Container management, GraphQL API, and WebGUI integration
84+
- [Feature Flags](docs/developer/feature-flags.md) - Conditionally enabling functionality
85+
- [Repository Organization](docs/developer/repo-organization.md) - Codebase structure
86+
- [Development Workflows](docs/developer/workflows.md) - Development processes
87+
7888
## License
7989

8090
Copyright Lime Technology Inc. All rights reserved.

api/dev/configs/api.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "4.27.2",
2+
"version": "4.28.2",
33
"extraOrigins": [],
44
"sandbox": true,
55
"ssoSubIds": [],

0 commit comments

Comments
 (0)