Add offline installation support with repo folder and updated dependencies

Features:
- Create repo/ folder structure for offline packages
  - python-wheels/ for Python packages (.whl files)
  - system-packages/ for APT packages and .deb files
- Add download_offline_packages.sh to populate Python wheels
- Add download_deb_packages.sh to download system .deb packages
- Update install.sh with smart online/offline detection
  - Auto-detects repo folder and uses offline packages
  - Falls back to online installation if repo is empty
  - Supports --offline flag for explicit offline mode
- Update requirements.txt with async dependencies:
  - aiohttp==3.9.1 for async HTTP client
  - asyncio==3.4.3 for async I/O framework
- Add OFFLINE_INSTALLATION.md with complete guide
- Add .gitignore to exclude downloaded packages from repo
- Document all system dependencies in apt-packages.txt

Downloaded packages:
- 18 Python wheels with all dependencies
- Total size: ~50 MB for Python packages
- Ready for offline deployment
This commit is contained in:
Kivy Signage Player
2025-11-03 16:29:03 +02:00
parent 342331f9dd
commit 4ce41b7ccc
29 changed files with 545 additions and 13 deletions

34
repo/README.md Normal file
View File

@@ -0,0 +1,34 @@
# Offline Installation Repository
This folder contains all necessary packages for offline installation of the Kivy Signage Player.
## Structure
- `python-wheels/` - Python packages (.whl files) for pip installation
- `system-packages/` - System package information and .deb files
## Usage
The installer script (`install.sh`) will automatically use this repo folder if available.
### To populate this folder for offline installation:
Run the download script from the project root:
```bash
bash download_offline_packages.sh
```
This will download all necessary Python wheels and document system packages.
## Contents
### Python Packages
- kivy==2.1.0
- requests==2.32.4
- bcrypt==4.2.1
- aiohttp==3.9.1
- asyncio==3.4.3
- All dependencies
### System Packages (APT)
See `system-packages/apt-packages.txt` for the complete list.