Updating Docker Compose & README.md
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
config.json
|
config.json
|
||||||
|
data/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
+12
-2
@@ -4,8 +4,18 @@ RUN docker-php-ext-install curl && \
|
|||||||
a2enmod rewrite
|
a2enmod rewrite
|
||||||
|
|
||||||
COPY . /var/www/html/
|
COPY . /var/www/html/
|
||||||
|
COPY docker/docker-entrypoint.sh /usr/local/bin/gridtv-entrypoint.sh
|
||||||
|
|
||||||
RUN chown -R www-data:www-data /var/www/html && \
|
RUN mkdir -p /data && \
|
||||||
chmod -R 775 /var/www/html
|
chown -R www-data:www-data /var/www/html /data && \
|
||||||
|
find /var/www/html -type d -exec chmod 755 {} \; && \
|
||||||
|
find /var/www/html -type f -exec chmod 644 {} \; && \
|
||||||
|
chmod 755 /usr/local/bin/gridtv-entrypoint.sh
|
||||||
|
|
||||||
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
|
||||||
|
CMD php -r "exit(@file_get_contents('http://127.0.0.1/') === false ? 1 : 0);"
|
||||||
|
|
||||||
|
ENTRYPOINT ["gridtv-entrypoint.sh"]
|
||||||
|
CMD ["apache2-foreground"]
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
@@ -70,15 +70,19 @@ docker compose up -d
|
|||||||
|
|
||||||
Then open `http://localhost:8080` and follow the setup wizard.
|
Then open `http://localhost:8080` and follow the setup wizard.
|
||||||
|
|
||||||
|
Docker stores the generated configuration in `./data/config.json` on the host.
|
||||||
|
|
||||||
To run on a custom port:
|
To run on a custom port:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PORT=9000 docker compose up -d
|
PORT=9000 docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To back up or migrate your Docker setup, keep the `data/` directory.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Option B — Apache / Nginx
|
### Option B — Native PHP host
|
||||||
|
|
||||||
#### 1. Clone the repo
|
#### 1. Clone the repo
|
||||||
|
|
||||||
@@ -94,7 +98,25 @@ chmod 775 /var/www/gridtv
|
|||||||
chown -R www-data:www-data /var/www/gridtv
|
chown -R www-data:www-data /var/www/gridtv
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3a. Configure Nginx
|
#### 3. Install php-curl
|
||||||
|
|
||||||
|
The built-in player uses `proxy.php` to relay HTTP streams over HTTPS. This requires the **php-curl** extension:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Debian/Ubuntu — adjust version to match your PHP
|
||||||
|
apt install php8.4-curl
|
||||||
|
systemctl reload apache2 # or: systemctl reload nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. Reverse proxy examples
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Show reverse proxy / vhost examples</summary>
|
||||||
|
|
||||||
|
These examples are intentionally minimal. Replace `guide.your-domain.com` with your domain and adjust the PHP socket or upstream target to match your host.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Nginx + PHP-FPM</summary>
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
server {
|
server {
|
||||||
@@ -115,13 +137,16 @@ server {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> 💡 Adjust the PHP version (`php8.2-fpm`) to match the one installed on your server.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nginx -t && systemctl reload nginx
|
nginx -t && systemctl reload nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3b. Configure Apache
|
> Adjust `php8.2-fpm.sock` to match the PHP-FPM version installed on your server.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Apache vhost</summary>
|
||||||
|
|
||||||
```apache
|
```apache
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
@@ -140,16 +165,52 @@ a2enmod php8.4 rewrite
|
|||||||
systemctl reload apache2
|
systemctl reload apache2
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. Install php-curl
|
</details>
|
||||||
|
|
||||||
The built-in player uses `proxy.php` to relay HTTP streams over HTTPS. This requires the **php-curl** extension:
|
<details>
|
||||||
|
<summary>Caddy</summary>
|
||||||
|
|
||||||
|
```caddy
|
||||||
|
guide.your-domain.com {
|
||||||
|
root * /var/www/gridtv
|
||||||
|
php_fastcgi unix//run/php/php8.2-fpm.sock
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Debian/Ubuntu — adjust version to match your PHP
|
systemctl reload caddy
|
||||||
apt install php8.4-curl
|
|
||||||
systemctl reload apache2 # or: systemctl reload nginx
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> If you use `xcaddy` or a distro package, keep the same site block and only adapt the PHP-FPM socket path.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Traefik (Docker labels)</summary>
|
||||||
|
|
||||||
|
Use this if GridTV runs in Docker and Traefik is your front proxy:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
gridtv:
|
||||||
|
build: .
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.gridtv.rule=Host(`guide.your-domain.com`)"
|
||||||
|
- "traefik.http.routers.gridtv.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.gridtv.tls=true"
|
||||||
|
- "traefik.http.services.gridtv.loadbalancer.server.port=80"
|
||||||
|
```
|
||||||
|
|
||||||
|
You still need a running Traefik instance with `websecure` configured and DNS pointing to it.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
#### 5. First launch — Setup
|
#### 5. First launch — Setup
|
||||||
|
|
||||||
Open your browser at `http://guide.your-domain.com`.
|
Open your browser at `http://guide.your-domain.com`.
|
||||||
|
|||||||
+1
-1
@@ -4,5 +4,5 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "${PORT:-8080}:80"
|
- "${PORT:-8080}:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ./config.json:/var/www/html/config.json
|
- ./data:/data
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
mkdir -p /data
|
||||||
|
chown -R www-data:www-data /data
|
||||||
|
chmod 775 /data
|
||||||
|
|
||||||
|
rm -f /var/www/html/config.json
|
||||||
|
ln -s /data/config.json /var/www/html/config.json
|
||||||
|
|
||||||
|
exec docker-php-entrypoint "$@"
|
||||||
Reference in New Issue
Block a user