Commit Graph
320 Commits
Author SHA1 Message Date
Codex a04161683b Merge upstream admin updates and fix dashboard pointer and group picker interactions 2026-10-22 23:50:03 +08:00
Sam5440andnaiba/CloudCode 136f114fd9 feat: add online stats range setting (#208)
Add online history retention settings with validation, legacy-backend defaults and regression coverage. Secure pull request formatting checks.

Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
2026-10-16 19:25:17 +08:00
Weblate (bot)andLee Vincent 346574968c Translated using Weblate (Chinese (Traditional Han script)) (#206)
Currently translated at 100.0% (303 of 303 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/zh_Hant/
Translation: Nezha/Admin frontend

Co-authored-by: Lee Vincent <vincentlee986@gmail.com>
2026-10-04 19:56:56 +08:00
Bot af8b05b690 feat: custom domain management, responsive server layout, and config editor integration 2026-08-31 04:41:57 +08:00
Bot 68f3e02e26 chore: merge upstream/main into admin-frontend-domain preserving custom domain and branding features 2026-08-31 02:56:31 +08:00
naiba c7368ae7dc fix: migrate tables to TanStack React Table v9 2026-08-15 05:00:47 +00:00
357d8beb1b Translated using Weblate (Portuguese (Brazil)) (#193)
Currently translated at 0.3% (1 of 303 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 79.8% (242 of 303 strings)




Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/zh_Hant/
Translation: Nezha/Admin frontend

Co-authored-by: AWwue-work <awwue.work@gmail.com>
Co-authored-by: ace-consultoria <erec.novais@aceconsultoria.org>
2026-08-15 09:34:42 +08:00
naiba ab8c803607 feat(terminal): improve mobile controls and paste 2026-08-12 02:26:58 +00:00
Weblate (bot)andAWwue-work d4f3f998a3 Translated using Weblate (Chinese (Traditional Han script)) (#191)
Currently translated at 79.8% (242 of 303 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/zh_Hant/
Translation: Nezha/Admin frontend

Co-authored-by: AWwue-work <awwue.work@gmail.com>
2026-08-11 21:38:05 +08:00
ace-consultoria d971512cc3 Added translation using Weblate (Portuguese (Brazil)) 2026-08-08 08:53:18 +00:00
Hosted WeblateandArif Budiman 13e9a026ab Translated using Weblate (Indonesian)
Currently translated at 100.0% (301 of 301 strings)

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/id/
Translation: Nezha/Admin frontend
2026-08-08 08:53:18 +00:00
Copilot 04fbddb979 Stabilize CI runtime for updated deps and unblock Dependabot auto-format flow (#185)
* chore: apply ci and dependabot remediation changes

* chore: auto-fix linting and formatting issues

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-01 10:58:33 +08:00
dysf888 64e6249e2d Harden OAuth provider icon loading 2026-07-03 11:20:21 +08:00
dysf888 6bd7866688 Add simple-icons support for OAuth providers 2026-07-03 11:10:19 +08:00
naiba 2ff923220f fix: migrate to tailwind v4 and TS6, add oauth2 dashboard_host setting
- migrate Tailwind v3->v4 (postcss @tailwindcss/postcss, CSS-first @theme/@plugin/@custom-variant)
- fix TS6 build: ignoreDeprecations for baseUrl, react-day-picker v10 classNames, test type fixes
- add dashboard_host setting field with i18n
2026-06-06 01:39:25 +00:00
naiba aa0f6a201a feat(i18n): register ja, ro, uk, gl in language switcher
These four locales had translation files but were never wired into i18n
resources or the nezhaLang dropdown, so users could not select them.
Register ja-JP, ro-RO, uk-UA, gl-ES; missing keys fall back to en-US per
the Weblate community-translation workflow.
2026-06-05 01:13:16 +00:00
9ae8baf7f3 Translated using Weblate (Romanian)
Currently translated at 97.0% (293 of 302 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 99.6% (301 of 302 strings)

Translated using Weblate (Romanian)

Currently translated at 50.9% (154 of 302 strings)

Added translation using Weblate (Romanian)

Co-authored-by: A <cdparanoia@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: UUBulb <uub@suwako.de>
Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/ro/
Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/zh_Hans/
Translation: Nezha/Admin frontend
2026-06-02 18:05:05 +02:00
naiba 005b4a0b3b feat(service): replace show-in-service with hide-for-guest toggle
Mirror the server HideForGuest flag on services: rename the
enable_show_in_service field to hide_for_guest across the form, schema
and generated types, reuse the existing HideForGuest label, and drop the
now-orphaned ShowInService i18n keys. Services are now visible to guests
by default and hidden only when the box is checked, matching servers.
2026-06-02 03:07:36 +00:00
naiba 66e20c3860 feat(api-tokens): split inventory scope out of server scope
Surface the new nezha:inventory:{read,delete,*} scopes that gate listing
and deleting servers/server-groups, separate from nezha:server:* which now
covers per-server runtime operations. Refine server-scope descriptions to
match the backend split.
2026-05-31 15:10:03 +00:00
naibaandcloudcode 013770bf46 fix(security): guard external hrefs and refine CSRF/auth-loading handling
- Add safeExternalHref(): only render http(s) URLs as clickable hrefs,
  blocking attacker-controlled template metadata from becoming
  javascript:/data: links.
- Refine CSRF header attachment and auth-loading state in the fetcher,
  api-tokens client, useAuth, and settings route.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-31 05:51:39 +00:00
naibaandcloudcode 964684f1bf feat(settings): add reserved hosts field and surface NAT errors
Add the reserved_hosts setting (input + i18n across all locales) so operators
behind a reverse proxy can declare public dashboard hostnames members must not
register as NAT domains (GHSA-x6fg-52vr-hj4w).

Show the backend error message on NAT create/update failure instead of a
generic "unexpected error", so a reserved-host rejection is explained.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-31 02:04:47 +00:00
naibaandcloudcode f07c557029 feat(api-tokens): add PAT management UI, CSRF handling, and auth-loading fixes
Add an API tokens management route to create, list, and revoke PATs, showing
the plaintext token once on creation with scope and server-id selection.

Mirror the nz-csrf cookie into the X-CSRF-Token header on unsafe fetcher
methods (POST/PUT/PATCH/DELETE) for the server-side double-submit check, and
self-heal expired sessions via refresh-token without a recursive fetch loop.

Gate protected routes behind resolved auth state to avoid pre-auth SWR fetches,
and fix the login loading/race so stale probes cannot clobber the session.

Add i18n keys for the new screens across all locales.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-30 15:56:53 +00:00
naibaandcloudcode c80899a753 fix(fm): switch createFM to POST to match backend CSRF fix
Backend moves /api/v1/file from GET to POST so SameSite=Lax cookies
can no longer expose this state-changing endpoint to cross-site
CSRF. Update createFM() accordingly.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-26 04:07:52 +00:00
naibaandcloudcode f2fea38e10 fix(cron): switch manual trigger to POST to match backend CSRF fix
Backend GHSA-8qhj-4f8c-j8qg moves /api/v1/cron/:id/manual from GET to
POST so SameSite=Lax cookies no longer expose this state-changing
endpoint to cross-site CSRF. Update runCron() accordingly.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-26 04:00:15 +00:00
naiba b23a6c0be1 feat: server transfer rotation 2026-05-25 10:15:24 +00:00
naibaandnaiba/CloudCode 142fc19469 fix: hide admin settings tabs for members
Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
2026-05-16 00:46:15 +08:00
Bot 340fb61a61 feat: improve notification settings and interactive TG bot 2026-05-13 00:52:29 +08:00
Bot bc242ab64b feat: use self-hosted install scripts and pass dashboard URL 2026-05-11 17:39:41 +08:00
Bot ec38164aff feat: optimize server management and fix visual config sync 2026-05-11 17:35:06 +08:00
Bot 2da8565e47 fix: stabilize admin frontend and resolve TS build errors 2026-05-01 13:55:01 +08:00
Bot 9720bc258f feat: refactor notification UI and remove background image 2026-04-28 00:04:16 +08:00
Bot 1e4fae5306 fix: resolve domain.ts type errors and SWR fetching bugs; fix vps config unmarshal issue 2026-04-26 22:07:27 +08:00
Bot 825bcb08f4 feat: add Sync WHOIS button and API integration 2026-04-16 23:08:56 +08:00
Bot cd3b8fdf91 fix: relax URL validation to allow Bot Tokens and SMTP hosts 2026-04-16 21:56:56 +08:00
Bot 48ccde053b feat: specialized UI labels for Telegram notification type 2026-04-16 21:43:50 +08:00
Bot d9ec7c362c feat: add billing UI, SMTP support and expiry settings 2026-04-16 21:36:55 +08:00
Bot 53cb369e4a feat: add inputs for custom branding and background images in Settings 2026-04-16 17:18:49 +08:00
Bot 0f8e9e25fe fix: bypass react-hook-form type mismatches with any casts in ServerCard 2026-04-16 16:47:33 +08:00
Bot 06762437fa fix: correct nzcfg.html URL to /dashboard prefix for proper backend routing 2026-04-16 16:39:39 +08:00
Bot b81d0fe9fc Integrate interactive visual configuration generator (nzcfg) into Server public note form 2026-04-16 16:21:47 +08:00
Bot 8733070cf1 Fix ts configuration and missing fragment in server route after terminal removal 2026-04-16 16:21:40 +08:00
Bot a4dc173fcc Remove SSH terminal functionality for security reasons 2026-04-16 16:21:35 +08:00
Buriburizaemon e848a34fe7 Merge upstream/main 2026-04-16 11:52:58 +08:00
Weblate (bot)andArif Budiman 3912315f56 Translated using Weblate (Indonesian) (#156)
Currently translated at 100.0% (245 of 245 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/id/
Translation: Nezha/Admin frontend

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
2026-04-05 09:58:43 +08:00
Weblate (bot)andArif Budiman f4696421ec Translated using Weblate (Indonesian) (#156)
Currently translated at 100.0% (245 of 245 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/id/
Translation: Nezha/Admin frontend

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
2026-04-05 09:58:43 +08:00
naibaandnaiba/CloudCode b77ac7af93 fix: use Combobox for notification group selection in settings page
Settings page used a plain number input for ip_change_notification_group_id,
requiring users to manually enter a group ID. Replace it with a searchable
Combobox component (consistent with alert-rule/service/cron pages) and wrap
the settings route with NotificationProvider to load notification group data.

Closes nezhahq/nezha#1174

Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
2026-03-01 01:11:37 +00:00
naibaandnaiba/CloudCode 341a6fa666 fix: use Combobox for notification group selection in settings page
Settings page used a plain number input for ip_change_notification_group_id,
requiring users to manually enter a group ID. Replace it with a searchable
Combobox component (consistent with alert-rule/service/cron pages) and wrap
the settings route with NotificationProvider to load notification group data.

Closes nezhahq/nezha#1174

Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
2026-03-01 01:11:37 +00:00
Weblate (bot)andРуслан Пузич d276c6843a Translated using Weblate (Ukrainian) (#155)
Currently translated at 49.7% (122 of 245 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/uk/
Translation: Nezha/Admin frontend

Co-authored-by: Руслан Пузич <visp80@gmail.com>
2026-02-22 21:45:21 +08:00
Weblate (bot)andРуслан Пузич 4f6e6d1a21 Translated using Weblate (Ukrainian) (#155)
Currently translated at 49.7% (122 of 245 strings)


Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/uk/
Translation: Nezha/Admin frontend

Co-authored-by: Руслан Пузич <visp80@gmail.com>
2026-02-22 21:45:21 +08:00
Weblate (bot)andnlimeres 56b00f19ce Translated using Weblate (Galician) (#153)
Currently translated at 7.7% (19 of 245 strings)

Added translation using Weblate (Galician)

Translated using Weblate (Spanish)

Currently translated at 100.0% (244 of 244 strings)



Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/es/
Translate-URL: https://hosted.weblate.org/projects/nezha/admin-frontend/gl/
Translation: Nezha/Admin frontend

Co-authored-by: nlimeres <dynosaurioprogramador@gmail.com>
2026-02-19 14:34:50 +08:00