{"id":20828493,"url":"https://github.com/linuxserver/fanart-nginx","last_synced_at":"2026-02-13T06:02:31.876Z","repository":{"id":74079674,"uuid":"94885446","full_name":"linuxserver/fanart-nginx","owner":"linuxserver","description":null,"archived":false,"fork":false,"pushed_at":"2017-07-26T09:50:56.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-29T21:06:27.255Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nginx","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/linuxserver.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}},"created_at":"2017-06-20T11:45:57.000Z","updated_at":"2017-06-20T11:48:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"384f43bb-dee1-4bae-aedd-e5f6e86c6ce6","html_url":"https://github.com/linuxserver/fanart-nginx","commit_stats":{"total_commits":66,"total_committers":3,"mean_commits":22.0,"dds":0.303030303030303,"last_synced_commit":"8945d091bfa0318c5f4dc509c022992a8d2256aa"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxserver%2Ffanart-nginx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxserver%2Ffanart-nginx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxserver%2Ffanart-nginx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxserver%2Ffanart-nginx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linuxserver","download_url":"https://codeload.github.com/linuxserver/fanart-nginx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243179822,"owners_count":20249178,"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":[],"created_at":"2024-11-17T23:14:59.131Z","updated_at":"2026-02-13T06:02:26.846Z","avatar_url":"https://github.com/linuxserver.png","language":"Nginx","funding_links":[],"categories":[],"sub_categories":[],"readme":"[linuxserverurl]: https://linuxserver.io\n[forumurl]: https://forum.linuxserver.io\n[ircurl]: https://www.linuxserver.io/irc/\n[podcasturl]: https://www.linuxserver.io/podcast/\n[appurl]: https://fanart.tv\n[letsurl]: https://github.com/linuxserver/docker-letsencrypt\n[hub]: https://hub.docker.com/r/lsiodev/fanart-nginx/\n[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]\n\nThe [LinuxServer.io][linuxserverurl] team brings you another container release featuring easy user mapping and community support. Find us for support at:\n* [forum.linuxserver.io][forumurl]\n* [IRC][ircurl] on freenode at `#linuxserver.io`\n* [Podcast][podcasturl] covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!\n \n# lsiodev/fanart-nginx\n\n[![](https://images.microbadger.com/badges/version/lsiodev/fanart-nginx.svg)](https://microbadger.com/images/lsiodev/fanart-nginx \"Get your own version badge on microbadger.com\")[![](https://images.microbadger.com/badges/image/lsiodev/fanart-nginx.svg)](https://microbadger.com/images/lsiodev/fanart-nginx \"Get your own image badge on microbadger.com\")[![Docker Pulls](https://img.shields.io/docker/pulls/lsiodev/fanart-nginx.svg)][hub][![Docker Stars](https://img.shields.io/docker/stars/lsiodev/fanart-nginx.svg)][hub][![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Builders/lsiodev/fanart-nginx)](https://ci.linuxserver.io/job/Docker-Builders/job/lsiodev/job/fanart-nginx/)\n\nThis docker image, forked from our [letsencrypt image][letsurl], was developed by the [LinuxServer.io][linuxserverurl] team specfically for use by [fanart.tv][appurl] and is not recommended for use by the general public.\n\n## Usage\n\n### Validator server\n```\ndocker create \\\n  --privileged \\\n  --name=fanartstatic \\\n  -v \u003cpath to data\u003e:/config \\\n  -e PGID=\u003cgid\u003e -e PUID=\u003cuid\u003e  \\\n  -e EMAIL=\u003cemail\u003e \\\n  -e URL=\u003curl\u003e \\\n  -p 80:80 -p 443:443 \\\n  -e TZ=\u003ctimezone\u003e \\\n  -e VALIDATOR=\u003ctrue\u003e \\\n  -e SLAVEIPS=\u003cIPs,comma,separated\u003e \\\n  lsiodev/fanart-nginx\n```\n\n### Slave Server\n```\ndocker create \\\n  --privileged \\\n  --name=fanartstatic \\\n  -v \u003cpath to data\u003e:/config \\\n  -e PGID=\u003cgid\u003e -e PUID=\u003cuid\u003e  \\\n  -e URL=\u003curl\u003e \\\n  -p 80:80 -p 443:443 \\\n  -e TZ=\u003ctimezone\u003e \\\n  -e VALIDATOR=\u003cfalse\u003e \\\n  -e VALIDATORIP=\u003cipaddress\u003e \\\n  lsiodev/fanart-nginx\n```\n\n## Parameters\n\n`The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. \nFor example with a port -p external:internal - what this shows is the port mapping from internal to external of the container.\nSo -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080\nhttp://192.168.x.x:8080 would show you what's running INSIDE the container on port 80.`\n\n\n* `-p 80 -p 443` - the port(s)\n* `-v /config` - all the config files including the webroot reside here\n* `-e URL` - the url for server\n* `-e PGID` for GroupID - see below for explanation\n* `-e PUID` for UserID - see below for explanation\n* `-e TZ` - timezone ie. `America/New_York`  \n* `-e VALIDATOR` - determines whether the server should run letsencrypt\n* `-e VALIDATORIP` - mandatory for slave servers\n* `-e SLAVEIPS` - IPs for cert distribution, comma separated, no spaces. Required for cert distribution to slaves. Leave out in a single server scenario.\n  \n_Optional settings:_\n* `-e EMAIL` - your e-mail address for cert registration and notifications\n* `-e DHLEVEL` - dhparams bit value (default=2048, can be set to `1024` or `4096`)\n\n\nIt is based on alpine linux with s6 overlay, for shell access whilst the container is running do `docker exec -it letsencrypt /bin/bash`.\n\n## Multiple server setup instructions\n### Adding a new slave\n* Create the slave container and start it.\n* The container will stop after generating the DH parameter due to not existing cert.\n* Add the public ssh key to new slave's `authorized_keys`\n* On the validator, create a new folder for the slave info and copy the sample.conf `cp -R /config-folder-path/distribute/XX.XX.XX.XX /config-folder-path/distribute/\u003cnew.slave.ip.address\u003e`\n* Edit the sample.conf with the new slave details\n* Copy the private ssh key into the folder with the name `private` (no password)\n* Recreate the validator container with the new slave's IP address added into the `SLAVEIPS` variable\n* Restart the new slave\n* Add the new slave to the round robin dns\n\n### Removing a slave\n* Remove the slave from the round robin DNS\n* Remove the slave container\n* Recreate the validator with the slave's IP removed from the `SLAVEIPS` variable\n\n### Switching the validator to a different server\n* Recreate all other slaves with the `VALIDATORIP` changed to reflect the new validator server\n* Remove the old validator from the round robin DNS\n* Add the new validator to round robin DNS\n* Create the new validator container (initially with no `SLAVEIPS` defined so folders are created)\n* Create the slave IP named folders under /config/distribute for each slave, with their sample.conf and private ssh keys (as described above)\n* Recreate the new validator with the slave IPs defined\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxserver%2Ffanart-nginx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxserver%2Ffanart-nginx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxserver%2Ffanart-nginx/lists"}