Cleanup repo + harden offline install and watchdog

Repo hygiene:
- Remove dead scripts (.wait-for-display, .display-keepalive, .keep-screen-alive)
- Remove stale backup/scratch (install.sh.bak, New.txt, stale .pyc)
- Stop tracking machine-specific/generated state (config/app_config.json,
  playlists/server_playlist.json, src/player_auth.json, generated launchers)
- Prune duplicate wheel versions (one per package)
- Reorganize working_files -> dev/, dev/tests/, documentation/dev-notes/, scripts/
- Extend .gitignore; fix no-op rules in repo/.gitignore

Offline install (install.sh):
- Non-fatal system-dep step; per-package apt retry; .deb bundle install
- Skip pip self-upgrade offline; guard online fallbacks behind connectivity probe
- Dependency-free fetch_url (curl/wget/urllib); --no-reboot flag
- Fix corrupted literal backslash-bang escapes (shebangs, test -f, banner)
- Idempotent cron install (no more stacked @reboot lines)

Autostart / watchdog:
- start.sh: single-instance flock lock (.player_watchdog.lock) acquired only
  after a display is confirmed, preventing parallel watchdogs
- Set XDG_RUNTIME_DIR when missing; exit early if headless
- run_player.sh: activate .venv; stop_player.sh: clear lock file
This commit is contained in:
SKE087
2026-10-14 23:29:14 +03:00
parent f7b889be11
commit 31807f37bf
60 changed files with 633 additions and 1469 deletions
+10 -6
View File
@@ -1,6 +1,10 @@
# Ignore downloaded packages but keep directory structure
repo/python-wheels/*.whl
repo/python-wheels/*.tar.gz
repo/system-packages/debs/
!repo/python-wheels/.gitkeep
!repo/system-packages/.gitkeep
# Patterns are relative to THIS file (the repo/ folder), so no "repo/" prefix.
# (The previous patterns used a "repo/" prefix and therefore never matched.)
# Downloaded system .deb bundles are large and optional.
# Fetch on demand with: bash scripts/download_deb_packages.sh
# They are intentionally NOT committed.
system-packages/debs/
# NOTE: Python wheels under python-wheels/ ARE committed on purpose, so that a
# plain `git clone` ships a complete offline install bundle.
+10 -8
View File
@@ -13,21 +13,23 @@ The installer script (`install.sh`) will automatically use this repo folder if a
### To populate this folder for offline installation:
Run the download script from the project root:
Run the download scripts from the project root:
```bash
bash download_offline_packages.sh
bash scripts/download_offline_packages.sh
bash scripts/download_deb_packages.sh
```
This will download all necessary Python wheels and document system packages.
This will download all necessary Python wheels and system .deb packages.
## Contents
### Python Packages
- kivy==2.1.0
- requests==2.32.4
### Python Packages (see requirements.txt for the source of truth)
- kivy==2.3.1
- requests==2.34.2
- bcrypt==4.2.1
- aiohttp==3.9.1
- asyncio==3.4.3
- aiohttp==3.11.16
- ffpyplayer==4.5.3
- evdev==1.9.1
- All dependencies
### System Packages (APT)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.