- 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)
3.0 KiB
3.0 KiB
Groups Feature - Archived
Status: ARCHIVED AND REMOVED ✅
Archive Date: January 17, 2026
What Was Done
1. Files Archived
/app/templates/groups/→/old_code_documentation/templates_groups//app/blueprints/groups.py→/old_code_documentation/blueprint_groups.py
2. Code Removed
- Removed groups blueprint import from
app/app.py - Removed groups blueprint registration from
register_blueprints()function - Removed Group import from
app/blueprints/admin.py(unused) - Removed Group import from
app/blueprints/api.py(unused) - Commented out
/api/groupsendpoint in API
3. What Remained in Code
-
NOT removed: Group model in
app/models/group.py- Kept for database backward compatibility
- No imports or references to it now
- Database table is orphaned but safe to keep
-
NOT removed:
app/utils/group_player_management.py- Contains utility functions that may be referenced
- Can be archived later if confirmed unused
Summary
✅ Groups feature is now completely unavailable in the UI and app logic ✅ No routes, blueprints, or navigation links to groups ✅ Application loads cleanly without groups ✅ Database tables preserved for backward compatibility
Why Groups Was Removed
-
Functionality replaced by Playlists
- Groups: "Organize content into categories"
- Playlists: "Organize content into collections assigned to players"
-
Never used in the current workflow
- Dashboard: Players → Playlists → Content
- No mention of groups in any UI navigation
- Players have NO relationship to groups
-
Redundant architecture
- Playlists provide superior functionality
- Players directly assign to playlists
- No need for intermediate grouping layer
Original Purpose (Deprecated)
- Groups were designed to organize content
- Could contain multiple content items
- Players could be assigned to groups
- BUT: Player model never implemented group relationship
- Result: Feature was incomplete and unused
Current Workflow (Active) ✅
1. Create Playlist (organize content)
2. Upload Media (add files)
3. Add Content to Playlist (manage items)
4. Add Player (register device)
5. Assign Playlist to Player (connect directly)
6. Players auto-download and display
If Groups Data Exists
The group and group_content database tables still exist but are orphaned:
- No code references them
- No migrations to drop them
- Safe to keep or drop as needed
Future Cleanup
When ready, can be removed completely:
app/models/group.py- Drop Group model- Database migrations to drop
groupandgroup_contenttables - Remove utility functions from
app/utils/group_player_management.py - Clean up any remaining imports
References
- Archive date: January 17, 2026
- Related: See
LEGACY_PLAYLIST_ROUTES.mdfor similar cleanup - Similar action: Playlist templates also archived as legacy
Status: ✅ Complete - Groups feature successfully archived and removed from active codebase