mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 08:30:06 -04:00
Merge 48457d0d10
into db56a4d6c0
This commit is contained in:
commit
feaa9a1b42
2 changed files with 81 additions and 0 deletions
24
Dockerfile
Normal file
24
Dockerfile
Normal file
|
@ -0,0 +1,24 @@
|
|||
FROM node:22-alpine
|
||||
ARG GIT_REPO=https://github.com/iptv-org/epg.git
|
||||
ARG GIT_BRANCH=master
|
||||
ARG WORKDIR=/epg
|
||||
ENV CRON_SCHEDULE="0 0 * * *"
|
||||
ENV GZIP=false
|
||||
ENV MAX_CONNECTIONS=1
|
||||
ENV DAYS=
|
||||
RUN apk update \
|
||||
&& apk upgrade --available \
|
||||
&& apk add curl git tzdata bash \
|
||||
&& npm install -g npm@latest \
|
||||
&& npm install pm2 -g \
|
||||
&& mkdir $(echo "${WORKDIR}") -p \
|
||||
&& cd $WORKDIR \
|
||||
&& git clone --depth 1 -b $(echo "${GIT_BRANCH} ${GIT_REPO}") . \
|
||||
&& npm install \
|
||||
&& mkdir /public
|
||||
RUN apk del git curl \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
COPY pm2.config.js $WORKDIR
|
||||
WORKDIR $WORKDIR
|
||||
EXPOSE 3000
|
||||
CMD [ "pm2-runtime", "pm2.config.js" ]
|
57
README.md
57
README.md
|
@ -7,6 +7,7 @@ Tools for downloading the EPG (Electronic Program Guide) for thousands of TV cha
|
|||
- ✨ [Installation](#installation)
|
||||
- 🚀 [Usage](#usage)
|
||||
- 💫 [Update](#update)
|
||||
- 🐋 [Docker](#docker)
|
||||
- 📺 [Playlists](#playlists)
|
||||
- 🗄 [Database](#database)
|
||||
- 👨💻 [API](#api)
|
||||
|
@ -146,6 +147,62 @@ And then update all the dependencies:
|
|||
npm install
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
### Build an image
|
||||
|
||||
```sh
|
||||
docker build -t iptv-org/epg --no-cache .
|
||||
```
|
||||
|
||||
### Create and run container
|
||||
|
||||
```sh
|
||||
docker run -p 3000:3000 -v /path/to/channels.xml:/epg/channels.xml iptv-org/epg
|
||||
```
|
||||
|
||||
By default, the guide will be downloaded every day at 00:00 UTC and saved to the `/epg/public/guide.xml` file inside the container.
|
||||
|
||||
From the outside, it will be available at this link:
|
||||
|
||||
```
|
||||
http://localhost:3000/guide.xml
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
http://<your_local_ip_address>:3000/guide.xml
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
To fine-tune the execution, you can pass environment variables to the container as follows:
|
||||
|
||||
```sh
|
||||
docker run \
|
||||
-p 5000:3000 \
|
||||
-v /path/to/channels.xml:/epg/channels.xml \
|
||||
-e CRON_SCHEDULE="0 0,12 * * *" \
|
||||
-e MAX_CONNECTIONS=10 \
|
||||
-e GZIP=true \
|
||||
-e PROXY="socks5://127.0.0.1:1234" \
|
||||
-e DAYS=14 \
|
||||
-e TIMEOUT=5 \
|
||||
-e DELAY=2 \
|
||||
iptv-org/epg
|
||||
```
|
||||
|
||||
| Variable | Description |
|
||||
| --------------- | ------------------------------------------------------------------------------------------------------------------ |
|
||||
| CRON_SCHEDULE | A [cron expression](https://crontab.guru/) describing the schedule of the guide loadings (default: "0 0 \* \* \*") |
|
||||
| MAX_CONNECTIONS | Limit on the number of concurrent requests (default: 1) |
|
||||
| GZIP | Boolean value indicating whether to create a compressed version of the guide (default: false) |
|
||||
| PROXY | Use the specified proxy |
|
||||
| DAYS | Number of days for which the guide will be loaded (defaults to the value from the site config) |
|
||||
| TIMEOUT | Timeout for each request in milliseconds (default: 0) |
|
||||
| DELAY | Delay between request in milliseconds (default: 0) |
|
||||
|
||||
## Database
|
||||
|
||||
All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue