github-actions[bot]
b52cf1f741
chore(main): release 2.6.1
2026-03-11 19:48:05 +00:00
github-actions[bot]
0c98c6b453
chore(beta): release 3.17.1-beta.0
2026-03-08 14:42:28 +00:00
github-actions[bot]
7d967a47ae
chore(beta): release 3.17.0-beta.0
2026-03-05 21:21:48 +00:00
github-actions[bot]
98fd6dd8e1
chore(beta): release 3.16.0-beta.0
2026-03-05 20:38:56 +00:00
github-actions[bot]
a1d941f049
chore(beta): release 3.15.3-beta.0
2026-03-02 22:18:06 +00:00
Paul Nothaft
c0301dcbf4
Merge branch 'beta' into fix/github-issues-194-197-main
2026-03-02 23:15:37 +01:00
Paul Nothaft
cbecb9323c
fix(security): resolve Docker image CVEs for code scanning alerts
...
- Upgrade nginx base from 1.27-alpine to 1.28-alpine (Alpine 3.23, OpenSSL 3.5.5)
- Upgrade npm to latest in backend production stage to fix tar, minimatch, brace-expansion CVEs
- Add brace-expansion and minimatch overrides for app-level transitive deps
- Remove incompatible body-parser v2 override (breaks Express 4 JSON parsing)
- Remove npm upgrade from builder stages (npm 11 breaks npm ci with existing lockfile)
2026-03-02 23:06:15 +01:00
Paul Nothaft
4272618b3f
fix(security): resolve all npm audit vulnerabilities
...
Frontend (6 → 0 vulnerabilities):
- axios: update to fix DoS via __proto__ key in mergeConfig (CVE-2026-25639)
- swiper: update to fix prototype pollution (critical)
- rollup: update to fix arbitrary file write via path traversal
- minimatch: update to fix multiple ReDoS vulnerabilities
- ajv: update to fix ReDoS with $data option
- markdown-it: update to fix ReDoS
Backend (32 → 0 vulnerabilities):
- multer: update to fix DoS via incomplete cleanup and resource exhaustion
- minimatch: update to fix multiple ReDoS vulnerabilities
- Add npm overrides for transitive dependencies:
- fast-xml-parser >=5.3.8 (fixes XSS, DoS, stack overflow via AWS SDK)
- qs >=6.14.2 (fixes arrayLimit bypass DoS via Express)
- tar >=7.5.8 (fixes path traversal and hardlink attacks via sqlite3)
Docker:
- Pin nginx base image to 1.27-alpine in Dockerfile.prod
- Update security comments in backend Dockerfile
- Existing apk upgrade --no-cache ensures OpenSSL/libexpat CVEs are
patched at build time (OpenSSL 3.5.5, Alpine 3.23.3)
2026-03-02 10:36:47 +01:00
github-actions[bot]
3e0c4fd73e
chore(beta): release 3.15.2-beta.0
2026-02-22 21:37:26 +00:00
github-actions[bot]
f672c1daa6
chore(main): release 2.5.0
2026-02-21 19:48:43 +00:00
Paul Nothaft
888c4ab209
Merge main into beta for release/beta-to-main
...
Resolved conflicts in CHANGELOG.md, backend/package.json, and
frontend/package.json. Version set to 3.15.1.
2026-02-21 20:43:46 +01:00
github-actions[bot]
9045402c9a
chore(beta): release 3.15.1-beta.0
2026-02-21 19:31:37 +00:00
github-actions[bot]
fe9486e5fa
chore(beta): release 3.15.0-beta.0
2026-02-17 19:47:41 +00:00
github-actions[bot]
6613f1b088
chore(beta): release 3.14.0-beta.0
2026-02-17 14:38:14 +00:00
Paul Nothaft
3ea9d5b121
Merge pull request #185 from the-luap/feat/new-features
...
feat: original filename in admin UI, update dialog, and security hardening
2026-02-17 15:37:56 +01:00
Paul Nothaft
50c09904a9
feat: add update instructions dialog, email notifications, and capture date sorting
...
- Add Update Instructions Dialog with environment-specific commands (Docker/Git/Standalone)
- Add email notification settings for new version alerts
- Add "Sort by Capture Date" option using EXIF metadata extraction
- Fix E2E tests by loading environment variables via dotenv
- Add test-images/ and backend/*.db to .gitignore
Closes #181
2026-02-16 16:23:57 +01:00
github-actions[bot]
d239857d9a
chore(beta): release 3.13.1-beta.0
2026-02-15 21:49:34 +00:00
github-actions[bot]
edf3a43950
chore(beta): release 3.13.0-beta.0
2026-02-06 23:35:55 +00:00
github-actions[bot]
2c35543e73
chore(beta): release 3.12.0-beta.0
2026-02-06 22:29:57 +00:00
github-actions[bot]
e05fd64760
chore(beta): release 3.11.0-beta.0
2026-02-06 20:46:15 +00:00
github-actions[bot]
10ff6b118c
chore(beta): release 3.10.1-beta.0
2026-02-03 16:25:51 +00:00
github-actions[bot]
8ddec6ed8b
chore(beta): release 3.10.0-beta.0
2026-02-03 14:56:50 +00:00
github-actions[bot]
7bf1e5c0f9
chore(beta): release 3.9.0-beta.0
2026-02-01 21:58:22 +00:00
github-actions[bot]
9ec0e2e7c0
chore(beta): release 3.8.0-beta.0
2026-01-30 07:34:38 +00:00
github-actions[bot]
c40f34d3de
chore(beta): release 3.7.0-beta.0
2026-01-28 21:54:14 +00:00
github-actions[bot]
b4978c0869
chore(beta): release 3.6.0-beta.0
2026-01-27 10:45:56 +00:00
github-actions[bot]
32fc939c7a
chore(beta): release 3.5.0-beta.0
2026-01-25 14:24:28 +00:00
github-actions[bot]
9c8b5e9fd6
chore(beta): release 3.4.0-beta.0
2026-01-22 13:00:33 +00:00
github-actions[bot]
f4da354ae7
chore(beta): release 3.3.0-beta.0
2026-01-21 16:06:24 +00:00
github-actions[bot]
237eeea5a6
chore(beta): release 3.2.5-beta.0
2026-01-18 14:35:30 +00:00
github-actions[bot]
cf38305f28
chore(beta): release 3.2.4-beta.0
2026-01-17 14:08:09 +00:00
github-actions[bot]
b613f8fbc7
chore(beta): release 3.2.3-beta.0
2026-01-16 14:19:26 +00:00
github-actions[bot]
e808e529cd
chore(beta): release 3.2.2-beta.0
2026-01-16 13:53:31 +00:00
github-actions[bot]
b5f06af126
chore(beta): release 3.2.1-beta.0
2026-01-16 13:35:53 +00:00
github-actions[bot]
7805e89bfe
chore(beta): release 3.2.0-beta.0
2026-01-16 08:43:36 +00:00
github-actions[bot]
d603567e21
chore(beta): release 3.1.0-beta.0
2026-01-15 20:03:57 +00:00
Paul Nothaft
c6fdd38e84
Merge pull request #115 from the-luap/fix/codeql-v4-upgrade
...
feat: pre-generated watermarks and mobile upload button improvements
2026-01-15 15:03:25 -05:00
Paul Nothaft
1be974afbb
feat: pre-generate watermarks for instant lightbox loading
...
Previously watermarks were applied on-the-fly when viewing photos in the
lightbox, causing 1+ minute load times for high-resolution images.
This change pre-generates watermarked versions during upload and when
watermark settings change, enabling instant image loading (~50-100ms).
- Add database migration for watermark_path tracking (061)
- Add watermarkGeneratorService for batch operations
- Extend watermarkService with save-to-disk capability
- Modify gallery endpoint to serve pre-generated files
- Add background regeneration when branding settings change
- Add npm script for migrating existing photos
Closes #112
2026-01-15 21:00:10 +01:00
github-actions[bot]
b12621b994
chore(main): release 2.4.0
2026-01-15 19:18:31 +00:00
github-actions[bot]
0f7551ab5b
chore(main): release 2.3.4
2026-01-15 15:24:23 +00:00
github-actions[bot]
e945bc9413
chore(main): release 2.3.3
2026-01-15 14:23:34 +00:00
github-actions[bot]
f29b77998b
chore(main): release 2.3.2
2026-01-15 13:02:43 +00:00
github-actions[bot]
7b5916d3b9
chore(main): release 2.3.1
2026-01-15 11:45:24 +00:00
github-actions[bot]
a0f38053d3
chore(beta): release 3.0.1-beta.0
2026-01-15 11:35:58 +00:00
github-actions[bot]
2add85eccf
chore: sync package.json versions to 2.3.0
2026-01-15 11:19:05 +00:00
github-actions[bot]
a2ff9eae3f
chore: sync package.json versions to 2.2.4
2026-01-08 22:24:23 +00:00
Paul Nothaft
049837f9d6
fix(nginx): add Docker DNS resolver for Swarm/dynamic service discovery
...
- Add resolver 127.0.0.11 directive for Docker's internal DNS
- Use variable-based proxy_pass to force per-request DNS resolution
- Fix 502 Bad Gateway error on root path in Docker Swarm deployments
The issue was that nginx caches DNS lookups at startup, but in Docker
Swarm where service IPs can change dynamically, this caused stale DNS
entries leading to 502 errors for proxied requests.
Bumps version to 2.2.3
2026-01-08 16:25:05 +01:00
Paul Nothaft
0ab8cbde7f
chore: bump version to 2.2.2
...
Includes fix for nginx backend port alignment (3001 → 3000) that caused
502 errors on root path in production Docker deployments.
2026-01-08 15:46:41 +01:00
Paul Nothaft
1931d73b60
fix: resolve branding display issues and invitation parsing errors
...
Fixes #84 - Logo and favicon not displaying on branding page and galleries
Fixes #85 - Invitations showing undefined expiresAt causing parseISO errors
Changes:
- Fix nginx.conf: Add ^~ modifier to /uploads location to prioritize proxy over static file matching
- Fix vite.config.ts: Add /uploads proxy for development environment
- Fix BrandingPage.tsx: Include logo_url from branding settings instead of expecting it from theme
- Fix adminUsers.js: Add transformInvitation() to convert snake_case DB fields to camelCase API response
- Fix publicSettings.js: Add branding_hide_powered_by to public settings API response
- Update README.md: Mark Multiple Administrators feature as implemented
- Bump version to 2.2.1
2026-01-08 13:56:02 +01:00
Paul Nothaft
892e47d017
feat: add multi-administrator support with RBAC and fix backup/restore for S3
...
## Multi-Administrator System
- Add role-based access control (RBAC) with predefined roles (Super Admin, Admin, Editor, Viewer)
- Add granular permissions system for all admin operations
- Add admin user management page with invite functionality
- Add email invitation system for new administrators
- Add permission middleware protecting all admin routes
- Add PermissionGate component for frontend permission checks
- Track event creator (created_by) for audit purposes
## Backup & Restore Fixes
- Fix S3 backup: endpoint URL handling, manifest loading, field name compatibility
- Fix S3 restore: add list-backups endpoint, transform S3 config from frontend format
- Fix PostgreSQL compatibility: add .returning('id') for insert operations
- Fix disk space check: use df command, handle unknown space gracefully
- Fix dry-run validation to not block on warnings
- Fix req.user → req.admin in restore routes
## Database Migrations
- 054: Add roles table with predefined roles
- 055: Add permissions table
- 056: Add role_permissions junction table
- 057: Add role_id to admin_users
- 058: Add admin_invitations table
- 059: Add admin email templates
- 060: Add created_by to events table
## Other Improvements
- Update .gitignore to exclude planning docs and local backup directory
- Remove SQLite database file from tracking
- Add i18n translations for user management (EN/DE)
2026-01-07 17:10:46 +01:00