Sanitize codebase, reorganize docs, and add missing deploy files

Remove dead code identified in docs/SANITIZATION-REVIEW.md:
- app/blueprints/content_old.py and app/blueprints/playlist.py
- app/models/group.py, app/utils/nginx_config_reader.py
- orphaned templates (content_list, edit_content, upload_content,
  player_page) and the related group/Template references

Result: 6 blueprints, 82 routes, no dead modules or orphan templates.

Add files that deploy.sh and docker-entrypoint.sh already require but
which were never tracked:
- https_manager.py       (referenced by deploy.sh, migrate_network.sh,
                          docker-entrypoint.sh)
- Caddyfile.example      (seeded by deploy.sh; its absence aborts deploy)

Relocate generated Graphify artifacts from graphify-out/ to
docs/graphify-out/ (110 files, no content change) and archive the
superseded docs under docs/.

Ignore hygiene:
- ignore ad-hoc .env backups (.env.bak*) — they contain live secrets
- keep the pre-sanitization snapshots (docs/legacy code/,
  docs/old_code_documentation/) on disk but out of the repo

Fix .env.example: drop a duplicated config block, genericize the
hardcoded host IP, and document HOSTNAME_INTERNAL.
This commit is contained in:
2026-09-11 12:18:34 +03:00
parent 1c5186463a
commit 46602f1933
226 changed files with 3999 additions and 15737 deletions
@@ -0,0 +1 @@
{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_player_user_py", "label": "player_user.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_user_playeruser", "label": "PlayerUser", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L7", "complexity": 3, "loc": 31}, {"id": "player_user_playeruser_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L25", "complexity": 1, "loc": 3}, {"id": "player_user_playeruser_to_dict", "label": ".to_dict()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L29", "complexity": 3, "loc": 9}, {"id": "player_user_rationale_1", "label": "Player user model for managing user codes and names.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1"}, {"id": "player_user_rationale_8", "label": "Player user model for managing user codes and names globally. Attribute", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L8"}, {"id": "player_user_rationale_26", "label": "String representation of PlayerUser.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L26"}, {"id": "player_user_rationale_30", "label": "Convert to dictionary for API responses.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L30"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "player_user_playeruser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L7", "weight": 1.0}, {"source": "player_user_playeruser", "target": "player_user_playeruser_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L25", "weight": 1.0}, {"source": "player_user_playeruser", "target": "player_user_playeruser_to_dict", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L29", "weight": 1.0}, {"source": "player_user_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_player_user_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1", "weight": 1.0}, {"source": "player_user_rationale_8", "target": "player_user_playeruser", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L8", "weight": 1.0}, {"source": "player_user_rationale_26", "target": "player_user_playeruser_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L26", "weight": 1.0}, {"source": "player_user_rationale_30", "target": "player_user_playeruser_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L30", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_user_playeruser_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L35"}, {"caller_nid": "player_user_playeruser_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L36"}]}