Final: Complete modernization - Option 1 deployment, unified persistence, migration scripts

- Implement Docker image-based deployment (Option 1)
  * Code immutable in image, no volume override
  * Eliminated init-data.sh manual step
  * Simplified deployment process

- Unified persistence in data/ folder
  * Moved nginx.conf and nginx-custom-domains.conf to data/
  * All runtime configs and data in single location
  * Clear separation: repo (source) vs data/ (runtime)

- Archive legacy features
  * Groups blueprint and templates removed
  * Legacy playlist routes redirected to content area
  * Organized in old_code_documentation/

- Added network migration support
  * New migrate_network.sh script for IP changes
  * Regenerates SSL certs for new IP
  * Updates database configuration
  * Tested workflow: clone → deploy → migrate

- Enhanced deploy.sh
  * Creates data directories
  * Copies nginx configs from repo to data/
  * Validates file existence before deployment
  * Prevents incomplete deployments

- Updated documentation
  * QUICK_DEPLOYMENT.md shows 4-step workflow
  * Complete deployment workflow documented
  * Migration procedures included

- Production ready deployment workflow:
  1. Clone & setup (.env configuration)
  2. Deploy (./deploy.sh)
  3. Migrate network (./migrate_network.sh if needed)
  4. Normal operations (docker compose restart)
This commit is contained in:
Deployment System
2026-01-17 10:30:42 +02:00
parent d235c8e057
commit 49393d9a73
30 changed files with 1646 additions and 112 deletions

View File

@@ -0,0 +1,51 @@
# Legacy Playlist Routes & Templates
## Status: DEPRECATED ❌
The `playlist/` folder contains legacy code that has been superseded by the content management interface.
## What Changed
### Old Workflow (DEPRECATED)
- Route: `/playlist/<player_id>`
- Template: `playlist/manage_playlist.html`
- Used for managing playlists at the player level
### New Workflow (ACTIVE) ✅
- Route: `/content/playlist/<playlist_id>/manage`
- Template: `content/manage_playlist_content.html`
- Used for managing playlists in the content area
- Accessed from: Players → Manage Player → "Edit Playlist Content" button
## Migration Notes
**January 17, 2026:**
- Moved `app/templates/playlist/` to `old_code_documentation/playlist/`
- Updated `/playlist/<player_id>` route to redirect to the new content management interface
- All playlist operations now go through the content management area (`manage_playlist_content.html`)
## Why the Change?
1. **Unified Interface**: Single playlist management interface instead of duplicate functionality
2. **Better UX**: Content management area is the primary interface accessed from players
3. **Maintenance**: Reduces code duplication and maintenance burden
## Routes Still in Code
The routes in `app/blueprints/playlist.py` still exist but are now legacy:
- `@playlist_bp.route('/<int:player_id>')` - Redirects to content management
- `@playlist_bp.route('/<int:player_id>/add')` - No longer used
- `@playlist_bp.route('/<int:player_id>/remove/<int:content_id>')` - No longer used
- etc.
These can be removed in a future cleanup if needed.
## Features in New Interface
The new `manage_playlist_content.html` includes all features plus:
- ✅ Drag-to-reorder functionality
- ✅ Duration spinner buttons (⬆️ ⬇️)
- ✅ Audio on/off toggle
- ✅ Edit mode toggle for PDFs/images
- ✅ Dark mode support
- ✅ Bulk delete with checkboxes