Commit Graph

38 Commits

Author SHA1 Message Date
a7fda196b5 docs: release notes and version bump for v1.15.0
Some checks failed
Deploy to Production / Trigger production update (push) Failing after 10s
2026-08-13 15:41:27 +05:00
markmorado
aa100b49c1 docs: release notes and version bump for v1.14.0
Some checks failed
Deploy to Production / Trigger production update (push) Has been cancelled
2026-07-24 07:00:46 +05:00
markmorado
dfe91964d9 docs: release notes and version bump for v1.13.0
Some checks failed
Deploy to Production / Trigger production update (push) Has been cancelled
2026-07-24 06:58:21 +05:00
markmorado
d0b4c70c72 docs: release notes and version bump for v1.12.0
Some checks failed
Deploy to Production / Trigger production update (push) Has been cancelled
2026-07-24 06:39:24 +05:00
markmorado
b804a9bec5 docs: release notes and version bump for v1.11.0
Some checks failed
Deploy to Production / Trigger production update (push) Has been cancelled
2026-07-24 06:30:51 +05:00
markmorado
ceec83d2fb docs: release notes and version bump for v1.10.2
Some checks failed
Deploy to Production / Trigger production update (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 22:22:10 +05:00
markmorado
d0824df0f5 docs: release notes and version bump for v1.10.0
Document the command palette, reorganized instance menu/tabs, global
minimized-operations tray, owner-scoped live Proxmox resources, and the
React Query cache clear on login/logout; bump VERSION and README badges.
2026-07-23 21:59:24 +05:00
markmorado
6a79dd2048 fix(appstore): DNS, per-server golden template, bind-mount perms, delete race
All checks were successful
Backend Tests / pytest (Python 3.12) (push) Successful in 1m1s
Deploy to Production / Trigger production update (push) Successful in 8s
App Store install/update pipeline reliability fixes:
- explicit nameserver (APPSTORE_NAMESERVER) on App Store LXCs and the golden
  template build CT, instead of inheriting a node resolver that may be
  unreachable from the container network (e.g. Tailscale-only DNS)
- golden template storage/resolution moved from one global setting to
  per-server_id (migration 37: app_operations.server_id) — building it on one
  Proxmox server no longer overwrites the template configured for another
- golden template automated build fixed: vzdump export step no longer fails
  on "unable to parse directory volume name 'vztmpl/probe'"
- bind-mount host directories are pre-created with permissive ownership
  before `docker compose up`, fixing Permission denied for non-root
  containers (e.g. MariaDB) writing to Docker-auto-created root-owned dirs
- delete/teardown now waits for Proxmox to actually confirm the destroy task
  finished (was silently proceeding after a short timeout, letting a new
  install reuse the VMID while the node was still wiping the old disk)
- pct create retries a few times on transient "got lock" config errors
- failed pipeline steps now report the tail of command output (4000 chars)
  instead of the head, so the real error isn't buried under pull/progress noise
- install error box in the UI wraps long text and scrolls instead of
  stretching the dialog

Also carries forward in-progress script catalog / instances / RBAC changes
that were already uncommitted in the working tree before this session.

Bump to v1.9.1, update WIKI.md/docs/CHANGELOG accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-17 04:49:40 +05:00
markmorado
ebc1c8429e docs: релизы v1.8.1 (Umbrel в App Store) и v1.9.0 (IPAM-привязка, FQDN нод)
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s
- VERSION → 1.9.0
- CHANGELOG: запись v1.8.1 (Umbrel как второй источник каталога, адаптер
  compose, иконки из галереи, мультиисточниковый синк, фильтр/бейдж источника,
  кастомный порт установки, мгновенная чистка инстанса) и v1.9.0 (привязка
  IPAM-сетей к серверу/ноде и области с автовыбором в визардах, приём FQDN в
  поле хоста ноды)
- README (en/ru): App Store — мультиисточниковый каталог (Runtipi + Umbrel)
- WIKI: источники, env-настройки Umbrel, иконки из галереи, фильтр/бейдж,
  параметр source в REST

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 01:32:44 +05:00
markmorado
490c4ad18d docs(appstore): актуализировать README/CHANGELOG/WIKI, версия 1.8.0
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 12s
- VERSION → 1.8.0
- CHANGELOG (ru/en): запись v1.8.0 с разделом App Store
- README (ru/en): бейдж версии + категория App Store в возможностях
- WIKI: раздел «App Store» (предпосылки, env, install, My Apps, права, REST API) + оглавление

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 23:12:13 +05:00
9b1000ba76 docs: document per-user quotas and bump version to v1.7.0
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s
Update README/README.ru, CHANGELOG/CHANGELOG.ru, WIKI and VERSION to
cover the per-user resource quotas feature (commit 35dcbfd): instance/
vCPU/RAM/disk limits, HTTP 429 enforcement, quota:view/quota:manage
permissions, admin + self-service endpoints and UI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:59:08 +05:00
0510c1739d docs(images): document cloud-image catalog; bump to v1.6.0
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s
Add v1.6.0 CHANGELOG entries (EN/RU) for the Images module: cloud-image
catalog, auto-convert to VM template, custom mirrors, arch-aware filtering.
Add feature bullet to README (EN/RU) and a dedicated WIKI section + TOC entry.
Bump VERSION 1.5.2-1 -> 1.6.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 01:38:22 +05:00
48215cbc0b chore(release): bump to v1.5.2-1
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s
Update VERSION, README badge, CHANGELOG (en/ru) and WIKI for v1.5.2-1.
Patch release: styled ConfirmDialog replaces all native browser confirm() popups.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 17:50:46 +05:00
9b4fbf13ba chore(release): bump to v1.5.2
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s
Update VERSION, README badge, CHANGELOG (en/ru) and WIKI for v1.5.2.
Covers: real-time disk/IOPS/network metrics, per-user language preference,
settings UX fixes (SMTP fields, Telegram Chat ID, Webhook URL removal).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 08:57:36 +05:00
8a879f36fa release: v1.5.1
- Bump VERSION and README badge to 1.5.1
- WIKI: add new 'Logs & Audit' section (page layout, levels, API,
  query params, response shape, RBAC, retention) and bump version
  in the top note; also extend ToC
- CHANGELOG / CHANGELOG.ru: add v1.5.1 entry covering the missing
  LogsPage component fix and the .gitignore collision fix
2026-06-04 03:14:38 +05:00
markmorado
0743dee005 docs: bump version to 1.5.0, update CHANGELOG, README, WIKI 2026-05-07 00:40:27 +02:00
markmorado
4546a798d0 v1.4.0: Networks page — SDN zone/vnet editing, node interfaces CRUD, IPAM auto-create 2026-04-06 21:13:38 +02:00
markmorado
6a0564cea2 v1.3.1: VM list node/server filtering + responsive toolbar redesign
- Add server filter dropdown (populated dynamically from loaded VMs)
- Add node filter dropdown (narrows to nodes of selected server)
- Both filters persisted in URL params and restored on reload
- Toolbar restructured into 2 rows: filters row + actions row
- Responsive breakpoints: ≤900px text labels hidden, ≤768px 2-per-row,
  ≤480px full-width filters, stats hidden on mobile
- Snapshots toolbar migrated to inline flex (no legacy class dependency)
- Update VERSION, CHANGELOG, README, WIKI to v1.3.1
2026-04-05 21:47:16 +02:00
markmorado
abeb8d53a3 chore: release v1.3.0
- VERSION: 1.2.0 → 1.3.0
- CHANGELOG: add v1.3.0 section (VNC & Terminal fixes)
- README: update version badge to 1.3.0
- WIKI: bump version header, expand Console section (VNC/xterm.js),
  update VNC troubleshooting section
2026-03-27 21:36:21 +01:00
markmorado
4ef79112be fix: wait for Proxmox resize task before VM start (v1.2.0)
- configure_vm: capture resize UPID and call wait_for_task(120s)
  before returning; prevents lock conflict when VM is started right
  after disk resize
- resize_vm_disk / resize_container_disk (x2): same fix applied
- remove unnecessary restart_vm() after manual QEMU disk resize —
  resize is a storage-layer operation and does not require a reboot;
  the auto-restart was causing a second lock conflict

Fixes: can't lock file '/var/lock/qemu-server/lock-xxx.conf' - got timeout
Fixes: command '/usr/bin/qemu-img resize' failed: got timeout
2026-03-16 20:23:06 +01:00
markmorado
57575d58ce feat: v1.1.8 — user-server assignment, VM/LXC ownership, smart login redirect, RBAC migrations
- Migration 20: user_servers association table (User ↔ ProxmoxServer)
- API: GET/PUT /api/users/{id}/servers — assign servers to users with workspace-conflict validation
- API: GET /api/users/{id}/server-assignments — enriched server list (assigned + compatible flags)
- Non-admin server filter: intersection of assigned_servers and workspace servers
- Migration 21: dashboard:view = false for user role (new key format)
- Migration 22: proxmox.cluster.manage → cluster:manage for admin role
- API: GET/PUT /api/{server_id}/vm/{vmid}/owner — VM/LXC owner assignment (admin-only)
- Login: smart redirect based on user permissions after authentication
- Login: returnUrl param support for post-login redirect
- Roles API: user_count field per role in GET /api/roles
- node_uptime added to server detail API response
- Remove redundant PermissionChecker from GET /users HTML route
2026-03-16 08:27:36 +01:00
markmorado
c09c0c5b63 refactor(i18n): move translations to JSON locale files
- Extract 1149 translation keys from i18n.py into locales/ru.json and locales/en.json
- Rewrite i18n.py as a lightweight JSON loader (5287 → 128 lines)
- Add I18nService.reload() for runtime hot-reload without restart
- Add I18nService.available_languages() to list loaded language codes
- Public API unchanged: t(), get(), get_all(), add_translation()
- New languages require only a new *.json file in locales/ — no code changes

Bump version: 1.1.6 → 1.1.7
2026-03-16 04:08:28 +01:00
markmorado
4940cbe77f v1.1.6: fix LXC xterm.js terminal (termproxy auth handshake)
- Add mandatory Proxmox termproxy auth: send 'USERNAME:VNCTICKET\n' as
  first WebSocket message, wait for 'OK' before starting PTY proxy
- Fix server.username → server.api_user (token suffix stripped)
- Fix CSRFPreventionToken sent in body → header only
- Fix additional_headers → extra_headers (websockets v12)
- Add URL-encoding for vncticket, PVEAuthCookie WS header, subprotocols=['binary']
- Forward initial terminal data arriving with OK frame
- Bump VERSION 1.1.5 → 1.1.6
2026-03-16 03:07:14 +01:00
markmorado
5a67981f9a feat: v1.1.5 — UPID task tracking, Task Drawer clear button, auto-expire, pve CLI fix 2026-03-15 20:34:17 +01:00
markmorado
c4778d2972 chore: bump version to 1.1.4 — Workspaces feature 2026-03-15 02:38:15 +01:00
markmorado
3947dae7b9 feat: v1.1.3 — dashboard alerts panel, sparkline charts, log sanitisation, CSS vars 2026-03-10 14:10:00 +01:00
markmorado
d788ac78c3 feat: v1.1.2 — dashboard redesign, pve CLI tool, sidebar cluster selector 2026-03-08 20:35:43 +01:00
markmorado
b8c6e52c9a fix(update): host-side watchdog replaces in-container rebuild
Root cause: docker compose down killed the nohup script inside the
container before rebuild could complete — only git pull was visible
(updated VERSION file).

Changes:
- update_host.sh: new host-side watchdog (poll .update_trigger every 3s)
  runs: git pull → docker compose down → build --no-cache app → up -d
  PROJECT_DIR and User are dynamic (set at install time, not hardcoded)
- update_service.py: perform_update() now writes .update_trigger instead
  of running git/docker commands inside the container
- deploy.sh: added install_update_watchdog() + --watchdog CLI option;
  generates /etc/systemd/system/pvemanager-update.service dynamically
  with correct User= and WorkingDirectory= for any install path/user
- .gitignore: ignore .update_trigger and generated systemd/ files
- CHANGELOG, VERSION, WIKI: bump to v1.1.1, document new update flow
2026-03-08 19:02:40 +01:00
markmorado
2c8becc6d4 chore: bump version to 1.1.0
- Backup module with PBS support, APScheduler, storage management
- IPAM: server/node subnet binding, link-allocations modal
- Fix: update system rebuilds Docker image after git pull
- Theme: replace hardcoded colors with CSS variables
- i18n: Uzbek keys for IPAM node selector
2026-03-08 18:27:47 +01:00
markmorado
91dbf0b81c feat: IPAM improvements - server/node subnet binding, theme color fixes
- IPAM link-allocations: filter networks by proxmox_server_id and proxmox_node
  to prevent cross-server/cross-node IP assignment
- IPAM link-allocations: add manual server+network selection modal before linking
- IPAM add-network forms: add Proxmox server and node selectors with dynamic
  cluster-info loading (ipam_dashboard.html, ipam_networks.html)
- models.py / schemas.py: add proxmox_node field to IPAMNetwork
- migrations: migration #16 adds proxmox_node column to ipam_networks table
- Theme fixes: replace all hardcoded rgba/color:#fff/color:white with CSS vars
  across base.html, virtual_machines.html, instance_detail.html,
  os_templates.html, proxmox_vms.html, ipam_network_detail.html,
  ipam_allocations.html
- i18n: add proxmox_node, node selector, link-allocations modal keys (ru/en)
- Version bump: 1.0.4 -> 1.0.5
2026-03-08 14:17:54 +01:00
markmorado
835606a0f7 feat: add backup storage module with scheduler, PBS support and icon fixes
- Add BackupJob model and migration 15
- Add RBAC permissions for backup resources
- Add ProxmoxClient storage/backup methods (list, create, restore, delete)
- Add /proxmox/api/backups/* API endpoints
- Add APScheduler-based backup job scheduler service
- Add backups.html template with 3 tabs (backups, storages, jobs)
- Add sidebar navigation link for backups page
- Fix backup page icons (replace SVG with Font Awesome)
- Bump version to 1.0.4
2026-03-08 12:53:26 +01:00
markmorado
7833df3c39 chore: bump version to 1.0.3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 02:56:08 +01:00
markmorado
eea3534e30 chore: bump version to 1.0.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 02:42:20 +01:00
markmorado
a5059555e9 chore: bump version to 1.0.1, update README
- VERSION: 1.0.0 → 1.0.1 (patch — bug fixes only)
- README: full rewrite with modern formatting, accurate badges,
  real GitHub URLs, complete feature list and tech stack table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 02:09:59 +01:00
Dilshod Rasulov
5731a09064 Change version file to 1.0 2025-12-29 11:29:10 +05:00
f0e53e2939 Bump version to 1.1.0
New features:
- In-app notifications for new panel version availability
- Git repository selection for updates (configurable via UI)
- Password reset instructions in troubleshooting guide
2025-12-16 20:06:22 +05:00
5153a668d6 Release v1.0 - Update version across all files 2025-12-15 13:07:24 +05:00
f5a3903f5d Add complete project structure and all files 2025-12-15 13:03:29 +05:00