{"id":13907717,"url":"https://github.com/voltan/nginx-stream","last_synced_at":"2025-09-12T21:39:48.523Z","repository":{"id":149822743,"uuid":"289852098","full_name":"voltan/nginx-stream","owner":"voltan","description":"Video streaming server that supports RTMP and VOD and HLS output","archived":false,"fork":false,"pushed_at":"2021-01-11T08:16:52.000Z","size":5152,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T21:42:13.686Z","etag":null,"topics":["docker","docker-image","hls","hls-live-streaming","nginx","rtmp","rtmp-server","stream","streaming","vod"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voltan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-24T06:58:26.000Z","updated_at":"2025-02-02T00:03:24.000Z","dependencies_parsed_at":"2023-04-28T05:34:19.947Z","dependency_job_id":null,"html_url":"https://github.com/voltan/nginx-stream","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/voltan/nginx-stream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltan%2Fnginx-stream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltan%2Fnginx-stream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltan%2Fnginx-stream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltan%2Fnginx-stream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voltan","download_url":"https://codeload.github.com/voltan/nginx-stream/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltan%2Fnginx-stream/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274880467,"owners_count":25367100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","hls","hls-live-streaming","nginx","rtmp","rtmp-server","stream","streaming","vod"],"created_at":"2024-08-06T23:02:07.439Z","updated_at":"2025-09-12T21:39:48.493Z","avatar_url":"https://github.com/voltan.png","language":"Dockerfile","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"## Description\nThis Docker image can be used to create a video streaming server ( With support both of Live and VOD ) that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol) input and [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming) out of the box. \nIt also allows adaptive streaming and custom transcoding of video streams.\nAll modules are built from source on Debian and Alpine Linux base images.\n\n## Features\n * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module) and [**nginx-vod-module**](https://github.com/kaltura/nginx-vod-module).\n * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. (Just for Live streaming)\n * Default settings: \n\t* RTMP is ON\n\t* HLS Live is ON (adaptive, multi variants by call ffmpeg on config)\n\t* HLS VOD is ON\n\nCurrent Image is built using:\n * Nginx 1.18.0 (compiled from source)\n * Nginx-rtmp-module 1.2.1 (compiled from source)\n * Nginx-vod-module 1.27 (compiled from source)\n * FFmpeg 4.3.1 (compiled from source)\n  \nThis image was inspired by similar docker images from [TareqAlqutami](https://github.com/TareqAlqutami/rtmp-hls-server) and [dojocasts](https://gitlab.com/dojocasts/nginx-vod-module-docker) and [nytimes](https://github.com/nytimes/nginx-vod-module-docker).\n\n## Install\nInstall docker on server, after that just run : `docker pull voltan/nginx-stream`\n\n## Domain\nAfter install this image, Set domain or sub domain to server IP on your domain or dns control panel, and call all urls by domain instead of server IP, Push to this domain and watch output on this domain too \n\n## SSL\n * You can by ssl certificate for your domain, upload certificate on server and put certificate path in docker run command.\n * If you want use LetsEncrypt ( certbot ), setup certbot on your server and create certificate for your domain and put certificate path in docker run command.\n \n## LetsEncrypt SSL\n1. Install LetsEncrypt ( certbot ) on server \n      ```\n      yum -y install yum-utils\n      yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional\n      yum install certbot\n      ```\n2. Make well-known path on `/var/www/.well-known`, by this command `mkdir /var/www/.well-known`\n3. Run docker image by `nginx_simple.conf` on port 80 and 443 like this example just for setup SSL by default nginx config\n     ``` \n     docker run -p 1935:1935 -p 80:80 -p 443:443 -v $PWD/conf/nginx_simple.conf:/etc/nginx/nginx.conf -v /var/www:/var/www  nginx-stream\n     ```\n4. Run cerboot like this ( replace `www.example.com` to your domain name )    \n     ```\n     certbot certonly --webroot -w /var/www/ -d www.example.com\n     ```\n5. After setup SSL certificate, stop container and go to next steps\n\n## Run Service\n1. You should run this image just by customize `[nginx_domain.conf]()` or `nginx_domain_ffmpeg.conf` (for multi bitrate support by ffmpeg)\n   * Get [nginx_domain.conf](https://github.com/voltan/nginx-stream/blob/master/conf/nginx_domain.conf) for run service normally\n   * Get [nginx_domain_ffmpeg.conf](https://github.com/voltan/nginx-stream/blob/master/conf/nginx_domain_ffmpeg.conf) for run multi bitrate support by ffmpeg\n2. Create `videos` folder on your server VOD server and put your videos on it\n3. Edit `nginx_domain.conf` or `nginx_domain_ffmpeg.conf` and put replace `www.example.com` to your domain name and put it on your server\n4. Edit `nginx_domain.conf` or `nginx_domain_ffmpeg.conf` and put SSL certificate information on it ( by default, LetsEncrypt information added )\n5. Run image by command like this :\n    ```\n    docker run -p 1935:1935 -p 80:80 -p 443:443 -v $PWD/conf/nginx_domain.conf:/etc/nginx/nginx.conf -v $PWD/videos:/opt/static/videos -v /var/www:/var/www -v /etc/letsencrypt:/etc/letsencrypt voltan/nginx-stream\n    ```\n6. For run image on background, just add `-d` after docker run on previous command\n\n## URLs\n**Stream RTMP to server**\n - `rtmp://www.example.com:1935/live/\u003cstream_key\u003e`\n\n**View Live stream**\n - `https://www.example.com/hls/\u003cstream-key\u003e.m3u8`\n\n**View VOD stream**\n - `https://www.example.com/vod/\u003cfile-name\u003e.mp4/master.m3u8`\n\n**Statistic**\n - `https://www.example.com/stats`\n\n## Building Locally\n1. Install docker on server\n2. Clone this git repo by : `git clone https://github.com/voltan/nginx-stream.git` \n3. Build image by : `docker build -t nginx-stream -f Dockerfile .`\n4. Continue by setup domain, ssl and run service\n\n## Copyright\nReleased under MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltan%2Fnginx-stream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoltan%2Fnginx-stream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltan%2Fnginx-stream/lists"}