Releases: beztebya666/notes-ui
v1.1.2
Fixed
- Drag-and-drop now reliably persists. Reordering by drag (cards, contacts, columns and whole sections) could silently revert on the next re-render because the
dropevent was rejected when the pointer was released over the dragged element or an empty gap.dragovernow always accepts the drop, so every reorder is saved. - Pinned items keep their manual position. In manual order (and in contact lists) a pinned card no longer jumps to the top on every re-render, so pinning or editing never undoes your arrangement.
Added
- Contacts-type custom sections. The third section kind ("Groups") now renders as a contacts directory — a compact, list-style group with a "+ contact" action and an optional-URL add form — mirroring the built-in Contacts section instead of showing link tiles.
- Cross-section drag. Cards and contacts can be dragged between sections and groups (including into and out of the built-in Contacts section), not just reordered within their own list.
- Column & contact-row drag-reordering. Reorder stand columns (DEV/INT/LT/PROD), contact groups, and individual contacts inside the built-in Contacts section by dragging.
- Edge auto-scroll while dragging. Dragging near the top or bottom of the viewport gently scrolls the page so you can drop onto something off-screen.
- Multi-tab consistency. Open tabs of the same browser now adopt each other's saved state, so a stale background tab can no longer overwrite your reorders.
v1.1.1
Full English UI by default + live GitHub Pages demo.
Highlights
English UI is now first-class
The entire app surface (header, command palette, dialogs, toasts, audit panel, card actions, contacts, stands, custom sections, error messages) now renders in English by default. ~270 entries in i18n.js cover all user-visible strings. PORTAL_LANG=ru flips everything back to Russian — both modes are first-class.
Set the language via Docker env, Helm values.env.PORTAL_LANG, or by writing window.PORTAL_LANG=ru in portal-config.js.
Live demo on GitHub Pages
Try the portal in your browser without spinning up Docker:
🚀 https://beztebya666.github.io/notes-ui/
Each visitor gets their own fresh session (state is held in localStorage, isolated per browser). The demo ships a small bottom-right badge with Reset and a source link. A new demo-client.js shim intercepts all /api/* and /ws calls in the browser when window.PORTAL_DEMO === true — so the same code runs both on a server and as a static site.
A .github/workflows/pages.yml workflow auto-builds and deploys the demo bundle on every push to main.
Bug fixes vs 1.0.0
- Repaired two corrupted string literals introduced by the i18n wrap pass (
stand-emptytemplate, command-palette meta withКонтакты). - Wrapped 48 more
toast(…)calls that the previous heuristic skipped (it mistooktoast(for an already-wrappedt(). - Audit-panel plural labels (
дубликатов / одинаковых URL / пустых URL / без тегов) now translate. - Replaced 9 leftover
rgba(239,49,36,...)red accent values withrgba(99,102,241,...)indigo (pin star border, history popover, pinned dm-btn).
Install
Docker:
docker run -d --name notes-ui -p 8080:8080 \
-v notes-ui-data:/app/data \
-e EDIT_PASSWORD=change-me \
-e PORTAL_LANG=en \
beztebya666/notes-ui:1.1.1Also on GHCR: ghcr.io/beztebya666/notes-ui:1.1.1.
Helm:
helm install portal charts/portal \
--set secrets.editPassword=change-me(image.repository defaults to beztebya666/notes-ui, appVersion is 1.1.1.)
Image digests
- Docker Hub:
sha256:3d83f74dd42838df721ce80696839bcf5d39f65b06b594b18f72b21b678aa54c - GHCR:
sha256:e1bdd8b95e3e6d90a5c7f23ccb588aaa1fb73c7f7be619994cf0fc7f4677e02b
Full Changelog: v1.0.0...v1.1.1
v1.0.0
First public release.
Self-hosted team link & contact directory. One Docker container, SQLite for shared state, WebSocket for live sync. Browser extension included.
Install
Docker:
docker run -d --name notes-ui -p 8080:8080 -v notes-ui-data:/app/data -e EDIT_PASSWORD=change-me -e PORTAL_LANG=en beztebya666/notes-ui:1.0.0Also on GHCR: ghcr.io/beztebya666/notes-ui:1.0.0.
Helm:
helm install portal charts/portal --set secrets.editPassword=change-meWhat is in the box
- Node + Express + SQLite + WebSocket live sync
- Helm chart with HPA / PDB / NetworkPolicy / ServiceMonitor toggles
.deb/.rpmvia nfpm- Standalone pkg binaries (Linux / macOS / Windows)
- Chrome MV3 browser extension
- Bilingual UI: English (default) or Russian via PORTAL_LANG
- MIT licensed
Image digests
- Docker Hub:
sha256:83e6a39a7d668e70dbb54b7a8aa84fd9cf9bd579773ee1d6502f7aafc8341a8d - GHCR:
sha256:745facb786eb9d710d6d6a2bdd2bd900fdfd27dd35782eab012c20f86eaa2acf
Configuration
See README for the full env-var table. Key ones: EDIT_PASSWORD, READ_PASSWORD (empty = anonymous read), PORTAL_LANG (en|ru), DB_PATH, BACKUP_DIR, CORS_ORIGINS.