fix context menu trigger area and dropdown styles
implement 'move to folder'
implement 'start / stop' bulk & row actions
implement pause / resume
implement column visibility customization
fix(organizer): over-eager addition of untracked containers to root folder
scaffold docker form service
docker container management prototype
use compacted table as sidebar tree
add drag and drop for re-ordering containers & folders
right click to reame & delete folders
add bottom padding to container to make it easier to drag items to bottom in sidebar
click overview row to open details
track active container in query param
refactor: extract composables
refactor: simplify organizer operations
refactor!: rm intermediate tree resolution of organizers
BREAKING CHANGE: ResolvedOrganizerView -> root is replaced by rootId +
flatEntries.
`root` resolved a tree representation of an organizer, but this required
clients to defined and use their own tree operations, thus increasing
client complexity.
Instead, `flatEntries` is more suitable for client operations and only
requires an initial mapping step on the client for efficiency.
fix: rm extra Root layer in table
map containers to their template files
feat: icon support
fix: container state badge
chore: fix formatting
fix: search filtering
fix: context menu
feat: filtering & bulk actions in compact mode
feat: critical notifications
feat: notifyIfUnique service method
tmp: critical notifications system
fix: nuxt ui portal styling
fix: notifications type check
fix api tests
fix: css
Revert "fix: css"
This reverts commit 234c2e2c65.
add docker constants
flatten css scopes
feat: file modification for replacing docker overview table
feat: navigate to container update page
feat: implement manage settings action
fix: column visibility toggle
fix: move update to a badge + popover
feat: save column visibility preferences across visits
fix: add feature flag to containers file mod
fix: circular dependency in docker service
add a flag to opt out of version check in super.shouldApply in file mods
fix: optimistic column toggle update
refactor: optimistic column toggle
feat: container start & stop order
feat: bulk toggle auto-start
fix: add background style reset, apply to button:hover as well
feat: add ENABLE_NEXT_DOCKER_RELEASE=true to staging environment
chore(api): add dev/notifications to gitignore
feat: container update actions
fix: container update logic
feat: bulk container updates
feat: container sizes
fix: container sizes modla overlay
fix: checkbox alignment
fix: revert color in main css
chore: ignore build output in lint & fix
feat: server-side container ip
add docker feature flag to .env.production
fix: container port duplication
feat: multi-value copyable badges
feat: make lanIpPorts a list, not a csv
feat: visit button
feat: include indexed search fields in filter input title
feat: sync userprefs.cfg for rollback compat
feat: port conflicts
refactor: port conflict frontend stuff
feat: update all containers bulk action
feat: docker logs
fix: use container name instead of id in 'view logs' modal
make webgui iframable
feat: re-add compact mode
manage settings > compact view
fix styles
feat: container stats
refactor: docker autostart service
refactor: docker log, event, and port services
connect-components via Nuxt 3
Install dependencies
npm i
Dev testing and builds with .env setup
There's 3 version required for various types of development, testing builds in the Unraid webgui, and creating a prod build for the Unraid webgui.
.envfornpm run devlocal development.env.stagingfornpm run build:devwhich tests builds in the Unraid webgui.env.productionfornpm run build:webguiwhich does a production build for the Unraid webgui
For the URL values, you can use what you'd like. So if you're testing locally, you can use http://localhost:5555 for the account app if you have a local version running. Alternatively you're free to use the staging or production URLs.
For productions URLs you could ultimately not provide any value and the URL helpers will default to the production URLs. But for local dev and testing, it's usually easiest to keep the .env key value pairs so you don't forget about them.
.env for npm run dev local development
VITE_ACCOUNT=http://localhost:5555
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://preview.unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
VITE_ALLOW_CONSOLE_LOGS=true
VITE_TAILWIND_BASE_FONT_SIZE=16
.env.staging for npm run build:dev which tests builds in the Unraid webgui
Please take a look at the prebuild:dev & postbuild:dev scripts in package.json to see how the .env.staging file is used.
VITE_ACCOUNT=https://staging.account.unraid.net
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://staging.unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
VITE_ALLOW_CONSOLE_LOGS=TRUE
Notice how VITE_TAILWIND_BASE_FONT_SIZE is not set in the .env.staging file.
This is because the Unraid webgui uses the font-size: 62.5% "trick".
.env.production for npm run build:webgui which does a production build for the Unraid webgui
Please take a look at the prebuild:webgui & postbuild:webgui scripts in package.json to see how the .env.production file is used.
VITE_ACCOUNT=https://account.unraid.net
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
Both VITE_ALLOW_CONSOLE_LOGS and VITE_TAILWIND_BASE_FONT_SIZE should never be set here.
Interfacing with unraid-api
@todo Apollo VueJS Guide on Colocating Fragments
Internationalization
- The WebGUI now exposes the active locale as
window.LOCALE; the app loads the matching bundle fromsrc/localesat runtime and falls back toen_US. - Run
pnpm --filter @unraid/web i18n:extractto add any missing translation keys discovered in Vue components tosrc/locales/en.json. Other locale files receive English fallbacks for new keys so translators can keep them in sync.