{"id":13552595,"url":"https://github.com/stevewm/docker-compose-usenet","last_synced_at":"2025-04-03T03:32:18.076Z","repository":{"id":44372514,"uuid":"118350314","full_name":"stevewm/docker-compose-usenet","owner":"stevewm","description":"Docker-powered usenet pipeline","archived":true,"fork":false,"pushed_at":"2023-01-21T16:02:32.000Z","size":58,"stargazers_count":284,"open_issues_count":3,"forks_count":55,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-03T23:34:59.569Z","etag":null,"topics":["automation","docker","docker-compose","flexget","headphones","heimdall","homelab","htpc","media-server","nzbhydra","ombi","plex","plexpy","radarr","sabnzbd","sonarr","traefik","unraid","usenet","watchtower"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stevewm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-21T16:07:12.000Z","updated_at":"2024-10-30T21:25:25.000Z","dependencies_parsed_at":"2023-02-12T11:16:36.471Z","dependency_job_id":null,"html_url":"https://github.com/stevewm/docker-compose-usenet","commit_stats":null,"previous_names":["stevewm/docker-compose-usenet","duhio/docker-compose-usenet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevewm%2Fdocker-compose-usenet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevewm%2Fdocker-compose-usenet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevewm%2Fdocker-compose-usenet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevewm%2Fdocker-compose-usenet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stevewm","download_url":"https://codeload.github.com/stevewm/docker-compose-usenet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933421,"owners_count":20857049,"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","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":["automation","docker","docker-compose","flexget","headphones","heimdall","homelab","htpc","media-server","nzbhydra","ombi","plex","plexpy","radarr","sabnzbd","sonarr","traefik","unraid","usenet","watchtower"],"created_at":"2024-08-01T12:02:06.488Z","updated_at":"2025-04-03T03:32:13.029Z","avatar_url":"https://github.com/stevewm.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Automated Usenet Pipeline\n\n[![Build Status](https://travis-ci.org/duhio/docker-compose-usenet.svg?branch=master)](https://travis-ci.org/duhio/docker-compose-usenet)\n\nAn automated Usenet media pipeline with reverse proxy and auto-updating of services, predominantly using the popular linuxserver Docker images. Includes:\n\n- [SABnzbd](https://hub.docker.com/r/linuxserver/sabnzbd/) (can be replaced with NZBGet - see further down)\n- [Sonarr](https://hub.docker.com/r/linuxserver/sonarr/)\n- [Radarr](https://hub.docker.com/r/linuxserver/radarr/)\n- [Lidarr](https://hub.docker.com/r/linuxserver/lidarr/)\n- [Mylar](https://hub.docker.com/r/linuxserver/mylar/)\n- [LazyLibrarian](https://hub.docker.com/r/linuxserver/lazylibrarian/)\n- [NZBHydra v2](https://hub.docker.com/r/linuxserver/nzbhydra2/)\n- [Ombi](https://hub.docker.com/r/linuxserver/ombi/)\n- [FlexGet](https://hub.docker.com/r/cpoppema/docker-flexget/)\n- [Plex](https://hub.docker.com/r/linuxserver/plex/)\n- [Tautulli (aka PlexPy)](https://hub.docker.com/r/linuxserver/tautulli/)\n- [Heimdall](https://hub.docker.com/r/linuxserver/heimdall/)\n- [Watchtower](https://github.com/containrrr/watchtower)\n- [DDClient](https://hub.docker.com/r/linuxserver/ddclient/)\n\n## Requirements\n\n- [Docker](https://store.docker.com/search?type=edition\u0026offering=community)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n- Domain of your own (usage of a free DDNS service such as DuckDNS is not advised or supported)\n\n## Usage\n\n### Setup\n\nUsing `example.env`, create a file called `.env` (in the directory you cloned the repo to) by populating the variables with your desired values (see key below).\n\n| Variable         | Purpose                                                                                   |\n|------------------|-------------------------------------------------------------------------------------------|\n| CONFIG           | Where the configs for services will live. Each service will have a subdirectory here      |\n| DOWNLOAD         | Where SAB will download files to. The complete and incomplete dirs will be put here       |\n| DATA             | Where your data is stored and where sub-directories for tv, movies, etc will be put       |\n| DOMAIN           | The domain you want to use for access to services from outside your network               |\n| TZ               | Your timezone. [List here.](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) |\n| HTPASSWD         | HTTP Basic Auth entries in HTPASSWD format ([generate here](http://www.htaccesstools.com/htpasswd-generator/))|\n\nValues for User ID (PUID) and Group ID (PGID) can be found by running `id user` where `user` is the owner of the volume directories on the host.\n\n#### Traefik\n\n1. Create a folder called `traefik` in your chosen config directory. Everything below should be executed inside the `traefik` directory\n2. Run `touch acme.json; chmod 600 acme.json`\n3. Copy `traefik.toml` to the `traefik` directory in your config folder and replace the example email with your own\n\n#### DDClient\n\nIf you have a static IP this isn't necessary, and you can simply remove the service entry for ddclient.\n\n1. Create a directory in your chosen config directory called `ddclient`\n2. Run `touch ddclient.conf` in the directory\n3. Use the [protocol documentation](https://sourceforge.net/p/ddclient/wiki/protocols/) to create a config for your chosen DNS provider\n\n### Running\n\nIn the directory containing the files, run `docker-compose up -d`. Each service should be accessible (assuming you have port-forwarded on your router) on `\u003cservice-name\u003e.\u003cyour-domain\u003e`. Heimdall should be accessible on `\u003cyour-domain\u003e`, from where you can set it up to provide a convenient homepage with links to services. The Traefik dashboard should be accessible on `monitor.\u003cyour-domain\u003e`.\n\n#### Service Configuration\n\nWhen plumbing each of the services together you can simply enter the service name and port instead of using IP addresses. For example, when configuring a download client in Sonarr/Radarr enter `sabnzbd` in the Host field and `8080` in the Port field. The same applies for other services such as NZBHydra.\n\n#### Customisation\n\n##### NZBGet\n\nTo use NZBGet instead of Sabnzbd, simply replace the `sabnzbd` service entry with the following:\n\n```yaml\nnzbget:\n  image: linuxserver/nzbget:latest\n  container_name: nzbget\n  hostname: nzbget\n  ports:\n    - \"6789:6789\"\n  volumes:\n    - ${CONFIG}/nzbget:/config\n    - ${DOWNLOAD}/complete:/downloads\n    - ${DOWNLOAD}/incomplete:/incomplete-downloads\n    - ${DOWNLOAD}/watch:/watch\n  environment:\n    - PGID\n    - PUID\n    - TZ\n  labels:\n    traefik.enable: \"true\"\n    traefik.port: \"6789\"\n    traefik.frontend.rule: \"Host:nzbget.${DOMAIN}\"\n    traefik.frontend.auth.basic: \"${HTPASSWD}\"\n    com.centurylinklabs.watchtower.enable: \"true\"\n  restart: unless-stopped\n```\n\n##### Service customisation\n\nTo add a new volume mount or otherwise customise an existing service, create a file called `docker-compose.override.yml`.\n\nFor example, to add new volume mounts to existing services:\n\n```yaml\nversion: '3'\n\nservices:\n  radarr:\n    volumes:\n      - ${DATA}/documentaries:/media/documentaries\n\n  plex:\n    volumes:\n      - ${DATA}/documentaries:/media/documentaries\n```\n\nYou can also add new services to the stack using the same method. \n\nSee the [docker-compose documentation](https://docs.docker.com/compose/extends/#adding-and-overriding-configuration) for more information.\n\n## Notes / Caveats\n\n### Plex\n\nPlex config may not be visible until you SSH tunnel:\n\n- `ssh -L 8080:localhost:32400 user@dockerhost`\n\nOnce done you can browse to `localhost:8080/web/index.html` and set up your server.\n\n### UnRAID Usage\n\nOnly tested on UnRAID *6.4.1+*.\n\n#### Installing Docker Compose\n\nAdd the following to `/boot/config/go` in order to install docker-compose on each boot:\n\n```bash\nCOMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\\\" -f4)\ncurl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose\nchmod +x /usr/local/bin/docker-compose\n```\n\n#### Persisting user-defined networks\n\nBy default, UnRAID will not persist user-defined Docker networks such as the one this stack will create. You'll need to enable this setting in order to avoid having to re-run `docker-compose up -d` every time your server is rebooted. It's found in the _Docker_ tab, you'll need to set _Advanced View_ to On and stop the Docker service to make the change.\n\n#### UnRAID UI port conflict\n\nYou'll need to either change the HTTPS port specified for the UnRAID WebUI (in _Settings_ -\u003e _Identification_) or change the host port on the Traefik container to something other than 443 and forward 443 to that port on your router (eg 443 on router forwarded to 444 on Docker host) in order to allow Traefik to work properly.\n\n## Help / Contributing\n\nIf you need assistance, please file an issue. Please do read the [existing closed issues](https://github.com/duhio/docker-compose-usenet/issues?q=is%3Aissue+is%3Aclosed) as they may contain the answer to your question.\n\nPull requests for bugfixes/improvements are very much welcomed. As are suggestions of new/replacement services.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevewm%2Fdocker-compose-usenet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevewm%2Fdocker-compose-usenet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevewm%2Fdocker-compose-usenet/lists"}