Releases: panteLx/BetterShift
v2.2.1
📦 What's Changed
✨ Features
- feat: Add French translation (fr) (#139) 0fa7e8d
- feat: Add Spanish translation (es) (#129) ddf251e
- feat: Add ability to edit existing shifts (#125) 5fcdc1b
🔧 Chores
- chore: Bump versions for Next.js, React, and related dependencies (#140) 0d5cc2a
- chore: edit-shift border shadow 808ffd3
Full Changelog: v2.2.0...v2.2.1
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v2.2.1
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v2.2.1- Specific versionlatest- Latest stable release
v2.2.0
📦 What's Changed
✨ Features
🔧 Chores
- chore: Update Copilot instructions for clarity and structure ca1a4f4
- chore: Switch to React Query polling & optimistic updates from SSE (#123) dfee67d
Full Changelog: v2.1.0...v2.2.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v2.2.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v2.2.0- Specific versionlatest- Latest stable release
v2.1.0
📦 What's Changed
✨ Features
- feat: Add ARM64 support for Docker builds (#116) 56d6ba1
- feat: Implement server timezone handling for iCalendar exports (#114) e3c7233
- feat: Adds build metadata, build-info API and admin panel build infos (#110) 5c3dde9
- feat: Block requests when system is unhealthy (#108) 1695eb2
🐛 Bug Fixes
🔧 Chores
Full Changelog: v2.0.1...v2.1.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v2.1.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v2.1.0- Specific versionlatest- Latest stable release
v2.0.1
📦 What's Changed
📝 Documentation
- docs: Update README description and improve formatting; replace images with new versions 6bc925e
- docs: Add logo image to README e74016d
- docs: Revise README with new description and screenshots 7389741
🔧 Chores
- chore: implement health check endpoint and update Dockerfile health check command 710b98d
Full Changelog: v2.0.0...v2.0.1
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v2.0.1
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v2.0.1- Specific versionlatest- Latest stable release
v2.0.0
BetterShift v2.0.0 Release Notes
Overview
BetterShift v2.0 transforms BetterShift from a single-user application into a fully-featured multi-user platform with authentication, calendar sharing, and admin management capabilities. This release maintains 100% backward compatibility - existing installations continue working without any changes.
BETTER_AUTH_SECRET and BETTER_AUTH_URL in .env before updating, or disable auth with AUTH_ENABLED=false. See Migration section below for details.
Check out the migration guide in docs/MIGRATION_AUTH_TOGGLE.md.
Major Features
Authentication & User Management
- Multiple auth methods: Email/Password, OAuth (Google, GitHub, Discord), Custom OIDC
- Session management: 7-day duration, multi-device tracking, revocation on all devices
- First user auto-promoted to Superadmin
- Optional: Disable via
AUTH_ENABLED=falsefor single-user mode
Calendar Sharing (3 Methods)
- User Shares: Invite by email, role-based permissions (Owner/Admin/Write/Read)
- Access Tokens: Secure share links with optional expiration and usage tracking
- Guest Access: Public calendars with configurable permissions (None/Read/Write)
Calendar Discovery
- Browse shared/public calendars with three-tab interface
- Subscribe/dismiss/restore calendars without unsharing
- Smart filtering prevents duplicate subscriptions
Admin Panel (/admin)
Full-featured interface with role-based access (Superadmin, Admin, User):
- Dashboard: System statistics, orphaned calendar warnings, quick actions
- User Management: List/edit/delete users, ban system with reasons, password reset, role assignment
- Calendar Management: View all calendars, transfer ownership, bulk operations, orphaned calendar handling
- Audit Logs: Complete activity trail with filtering by action/severity/date/user
| Permission | Superadmin | Admin | User |
|---|---|---|---|
| User/Calendar Management | Full | Regular users only | None |
| Ban/Delete | Yes | No | No |
| Audit Logs | Delete | View | No |
See docs/ADMIN_PANEL.md for details.
Security
- Rate Limiting: All endpoints protected (auth, calendar ops, admin actions)
- Audit Logging: All security events tracked (auth, calendar, share, security, sync)
- CSRF Protection: Better Auth origin validation, SameSite cookies, security headers
- Session Security: HttpOnly cookies, HTTPS-only mode, session rotation
See docs/AUTH_SETUP.md for configuration.
Activity Logs
Personal timeline at /profile/activity with merged audit + sync logs and advanced filtering
UI/UX
- Fullscreen loading (no skeleton flicker), optimistic updates
- Mobile-responsive design with horizontal scrolling tables
- Tab-based share management interface
- Lock icons and tooltips for read-only access
Key Changes
- 6 new database tables (auth, shares, tokens, subscriptions, dismissals, audit logs)
- 30+ new API routes for auth, sharing, admin, activity logs
- Hybrid permission system (Better Auth + custom logic)
- Simplified environment variables (no more
NEXT_PUBLIC_duplicates)
See .env.example for complete configuration reference.
Documentation
Complete documentation available in /docs folder:
README.md: Quick start guide and overviewdocs/AUTH_SETUP.md: Authentication configuration (OAuth, OIDC, session management)docs/ADMIN_PANEL.md: Admin panel guide (roles, user/calendar management, audit logs)docs/PERMISSIONS.md: Permission system and sharing workflowsdocs/MIGRATION_AUTH_TOGGLE.md: Enable auth on existing installations
Migration & Compatibility
BEFORE updating to v2.0:
-
Add required environment variables to
.env:AUTH_ENABLED=true BETTER_AUTH_SECRET=$(npx @better-auth/cli secret) BETTER_AUTH_URL=http://localhost:3000 # Your instance URL
-
OR disable auth for single-user mode:
AUTH_ENABLED=false
After updating:
- Pull changes:
git pull origin main - Restart:
docker-compose up -d(migrations run automatically) - If auth enabled: Register first user (becomes Superadmin)
- Assign existing calendars via Admin Panel (
/admin/calendars)
See: docs/MIGRATION_AUTH_TOGGLE.md for detailed instructions.
Installation
New Installation:
git clone https://github.com/pantelx/bettershift.git
cd bettershift
cp .env.example .env # Configure AUTH_ENABLED, BETTER_AUTH_SECRET
docker-compose up -d # or: npm install && npm run devUpdating:
git pull origin main
docker-compose up -d --build # Migrations run automaticallySee README.md and docs/ for detailed instructions.
Future Enhancements
Email verification, Two-factor authentication, IP ban system, Advanced statistics, Notification system
Full Changelog: v1.8.0...v2.0.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v2.0.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v2.0.0- Specific versionlatest- Latest stable release
v1.8.0
📦 What's Changed
✨ Features
- feat: Replaces manual color controls with centralized ColorPicker (#97) 938f673
- feat: Add event support to notes (color + recurring) (#94) fb4a407
- feat: Adjusts theme color lightness aa1c7b8
- feat: Adds day highlighting with custom weekdays & color (#90) 803c3bd
- feat: Enforce hooks and replace native confirms (#88) 37b0e74
- feat: Adds calendar comparison mode and related UI/logic (#85) 5461a9d
- feat: Adds PWA support and related build/assets (#84) 83efd21
- feat: Migrates form dialogs to Sheets UI (#83) 2f6fbe9
🔧 Chores
- chore: Centralize calendar update and stats fetching into hooks (#89) 8e3e759
- chore: update @swc/core and add overrides for @swc/helpers eb86968
Full Changelog: v1.7.0...v1.8.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v1.8.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v1.8.0- Specific versionlatest- Latest stable release
v1.7.0
📦 What's Changed
✨ Features
- feat: Adds calendar export (#82) 10f86d7
- feat: Add advanced shift statistics with charts and i18n updates (#80) 0775259
- feat: Add drag-and-drop reordering for shift presets (#79) 9cc8eb1
- feat: Adds option to hide preset header (#76) 90ee9fe
- feat: Consolidates calendar delete and preset management (#72) c676423
🐛 Bug Fixes
- fix: Do not Track all-day shifts for accurate average duration calculation 033b98d
- fix: update Buy Me a Coffee link to the correct URL b54719c
🔧 Chores
- chore: regenerate package-lock 4f5b48c
- chore: update feature request template to make proposed solution optional 885b904
Full Changelog: v1.6.2...v1.7.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v1.7.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v1.7.0- Specific versionlatest- Latest stable release
v1.6.2
📦 What's Changed
✨ Features
🐛 Bug Fixes
- fix: update Next.js version to 16.0.10 in package.json and package-lock.json 539a1c6
Full Changelog: v1.6.1...v1.6.2
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v1.6.2
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v1.6.2- Specific versionlatest- Latest stable release
v1.6.1
📦 What's Changed
🐛 Bug Fixes
Full Changelog: v1.6.0...v1.6.1
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v1.6.1
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v1.6.1- Specific versionlatest- Latest stable release
v1.6.0
📦 What's Changed
✨ Features
- feat: Adds update checks and changelog UI (#65) 963e020
- feat: Adds skeleton loading states (#64) 5272521
- feat: Enhance shift display with unified hidden shifts count (#63) d1103e2
- feat: Add shift duration tracking to stats and enhance UI (#61) 91a883e
- feat: customize sort order of shifts; Refactor calendar UI (#53) 9a4fd87 - Only applies for shifts added to the calendar grid after this release!
🔧 Chores
- chore: Add Italian language support and enhance version management features in README 5e611f9
- chore: Improve robustness and state handling (#57) a517332
- chore: gh workflow (#54) 277928c
Full Changelog: v1.5.0...v1.6.0
🐳 Docker Image
docker pull ghcr.io/panteLx/BetterShift:v1.6.0
docker pull ghcr.io/panteLx/BetterShift:latestAvailable tags:
v1.6.0- Specific versionlatest- Latest stable release