Files
api/web
Pujit Mehrotra 11d2de5d08 chore(web): reduce lint duration by 90% (#1766)
Replace the eslint prettier plugin (which profiling revealed to be the
bottleneck) with separate `prettier` invocations. This yielded a 73 second reduction (89%) in the environment described below.

Before:
```
pnpm --filter web lint:fix  81.79s user 1.85s system 110% cpu 1:15.81 total
```
After: 
```
pnpm --filter web lint:fix  8.83s user 0.93s system 170% cpu 5.737 total
```
System specs (Nov 5 2025):
```
OS: macOS Sequoia 15.6.1 (24G90) arm64
Host: MacBook Air (15-inch, M2, 2023)
Kernel: Darwin 24.6.0
Uptime: 44 days, 5 hours, 22 mins
Packages: 52 (nix-default), 195 (brew), 4 (brew-cask)
Shell: zsh 5.9
CPU: Apple M2 (8) @ 3.50 GHz
GPU: Apple M2 (10) @ 1.40 GHz [Integrated]
Memory: 19.51 GiB / 24.00 GiB (81%)
Swap: 4.83 GiB / 6.00 GiB (80%)
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Separated code formatting and linting tools into independent workflows
for improved developer efficiency
* Updated development tool configuration to streamline the linting and
formatting process

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-06 09:22:45 -05:00
..
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-11-01 07:34:39 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00
2025-09-08 10:04:49 -04:00

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.

  • .env for npm run dev local development
  • .env.staging for npm run build:dev which tests builds in the Unraid webgui
  • .env.production for npm run build:webgui which 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 from src/locales at runtime and falls back to en_US.
  • Run pnpm --filter @unraid/web i18n:extract to add any missing translation keys discovered in Vue components to src/locales/en.json. Other locale files receive English fallbacks for new keys so translators can keep them in sync.