diff --git a/.gitignore b/.gitignore index a2003f1..7857777 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,25 @@ -app/cache/* -epg/* -logs/* -posters/* -logos/* -backups/* .env -!.gitkeep +# Cache +app/cache/* +!app/cache/.gitkeep + +# EPG-Dateien +epg/* +!epg/.gitkeep + +# Logdateien +logs/* +!logs/.gitkeep + +# Senderlogos +logos/* +!logos/.gitkeep + +# Poster +posters/* +!posters/.gitkeep + +# Backups +backups/* +!backups/.gitkeep diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9495a93 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +## v0.2.0 - Unreleased + +### Added + +- Configuration system +- `config.json` +- `channels.json` +- Automatic channel synchronization +- Channel visibility and ordering + +## v0.1.0 + +### Added + +- Initial Docker setup +- PHP/Apache web container +- XMLTV test file +- Basic TVGuide web interface +- Template structure diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..57428b8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM php:8.4-apache + +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3d8fe8b --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2026 Herwig Birke + +All rights reserved. + +This project is currently private. No permission is granted to copy, +modify, distribute, or use this software outside the author's environment +without explicit written permission. diff --git a/README.md b/README.md new file mode 100644 index 0000000..faa2790 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# TVGuide + +Self-hosted electronic TV guide based on XMLTV data. + +## Goals + +- Self-hosted web TV guide +- Docker-first setup +- XMLTV import +- Configurable channels +- Favorites +- Search +- Modern responsive UI +- Optional poster metadata via TMDb later + +## Project path + +Default installation path: + +```text +/opt/tvguide-docker diff --git a/app/public/index.php b/app/public/index.php index c016681..a273ad6 100644 --- a/app/public/index.php +++ b/app/public/index.php @@ -1,8 +1,10 @@ - $p]); ?> + $p]); ?> diff --git a/app/templates/home.php b/app/templates/home.php index a7192b4..467b449 100644 --- a/app/templates/home.php +++ b/app/templates/home.php @@ -5,10 +5,9 @@ $channel): ?> - $channelId, 'channel' => $channel, 'programmes' => $programmes[$channelId] ?? [] ]); ?> - diff --git a/backups/.gitkeep b/backups/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..54a6310 --- /dev/null +++ b/composer.json @@ -0,0 +1,11 @@ +{ + "name": "herwigbirke/tvguide", + "description": "Self-hosted electronic TV guide based on XMLTV data.", + "type": "project", + "autoload": { + "psr-4": { + "TVGuide\\": "app/src/" + } + }, + "require": {} +} diff --git a/docker-compose.yaml b/docker-compose.yaml index 3bd5a93..cc9d16d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: tvguide: - image: php:8.4-apache + build: . container_name: tvguide restart: unless-stopped ports: @@ -11,6 +11,7 @@ services: - ./app/templates:/var/www/templates - ./app/config:/var/www/config - ./app/cache:/var/www/cache + - ./vendor:/var/www/vendor - ./epg:/var/www/epg - ./logos:/var/www/html/logos - ./posters:/var/www/html/posters