{"id":21711420,"url":"https://github.com/gregjoeval/g-flix","last_synced_at":"2025-03-20T18:18:02.898Z","repository":{"id":155559212,"uuid":"587551092","full_name":"gregjoeval/g-flix","owner":"gregjoeval","description":"A self-hosted streaming service.","archived":false,"fork":false,"pushed_at":"2023-04-25T22:14:35.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-25T16:42:43.744Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/gregjoeval.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":"2023-01-11T02:25:54.000Z","updated_at":"2023-04-25T22:08:22.000Z","dependencies_parsed_at":"2023-05-27T20:45:11.826Z","dependency_job_id":null,"html_url":"https://github.com/gregjoeval/g-flix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregjoeval%2Fg-flix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregjoeval%2Fg-flix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregjoeval%2Fg-flix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregjoeval%2Fg-flix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregjoeval","download_url":"https://codeload.github.com/gregjoeval/g-flix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244666586,"owners_count":20490288,"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-25T23:22:32.903Z","updated_at":"2025-03-20T18:18:02.862Z","avatar_url":"https://github.com/gregjoeval.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# g-flix\nA self-hosted streaming service.\n\n## Disclaimer\nThis open-source software is intended for personal and/or educational use only and should not be used for illegal purposes. This software should not be used to infringe on copyright laws or distribute copyrighted material without the express permission of the copyright owner. The user assumes full responsibility for any legal issues that may arise from the use of this software for illegal purposes. The creators of this software disclaim any liability for such illegal usage and strongly recommend using it only for lawful and legitimate purposes.\n\n## Environment Setup\n\n### update\n\n```sudo apt-get update --assume-yes \u0026\u0026 sudo apt-get upgrade --assume-yes```\n\n### vpn\n`sh \u003c(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)`\n\n### editor\n`sudo apt install code`\n\n### docker\n`curl -fsSL test.docker.com -o get-docker.sh \u0026\u0026 sh get-docker.sh`\n\n`sudo usermod -aG docker ${USER}`\n\n### python3 and pip3 (might not be necessary!)\n`sudo apt-get install libffi-dev libssl-dev`\n\n`sudo apt install python3-dev`\n\n`sudo apt-get install -y python3 python3-pip`\n\n### docker compose\n`sudo pip3 install docker-compose`\n\n### enable on system start\n`sudo systemctl enable docker`\n\n### create media and disk folders\n`sudo mkdir -m a=rwx -p {/mnt/disk1,/mnt/media}`\n\n### change external hdd mount (folder name might vary)\n#### unmount\n`lsblk`\n\n`sudo umount /media/${USER}/PassportA`\n\n#### re-mount\n`df -hT`\n\n`sudo mount /dev/sda1 /mnt/disk1`\n\n### mergerfs\n`sudo apt install mergerfs`\n\n`sudo mergerfs -o defaults,allow_other,use_ino,cache.files=partial,dropcacheonclose=true,category.create=mfs,moveonenospc=true,minfreespace=1M /mnt/disk* /mnt/media`\n\n### create `/mnt/media`\n`mkdir -m a=rwx -p {/mnt/media/downloads,/mnt/media/tv,mnt/media/movies}`\n\n### edit `etc/fstab`\n`sudo blkid`\n\n`code etc/fstab`\n\n#### paste the two following lines into editor at end of the file\n```\nUUID=\u003cuuid_from_blkid\u003e \u003cpath_to_mount\u003e \u003cfile_system_type\u003e uid=1000,gid=1000,umask=0007,async,auto,rw 0 0\n/mnt/disk* /mnt/media fuse.mergerfs defaults,allow_other,use_ino,cache.files=partial,dropcacheonclose=true,category.create=mfs,moveonenospc=true,minfreespace=1M 0 0\n```\n\n### pull down this repo to `~/g-flix`\n`git clone https://github.com/gregjoeval/g-flix.git`\n\n`git pull`\n\n### create service config folders in `~/g-flix`\n`mkdir -m a=rwx -p {/config/plex,/config/transmission,/config/prowlarr,/config/sonarr,/config/radarr,/config/overseerr}`\n\n### create .env.secret \u0026 add values in `~/g-flix`\n`code .env.secret`\n\n### get Plex claim token\ngo to [plex.tv/claim](plex.tv/claim)\n\n### start services\n`docker compose up -d`\n\n## Optional Setup\n\n### Set Scheduled Reboot\nThis might help with memory leak issues. The system was experiencing i/o errors when downloading content and this avoids the problem.\n\n`sudo crontab -e`\n\n#### update, upgrade, and then reboot\n`0 9 * * * sudo apt-get update --assume-yes \u0026\u0026 sudo apt-get upgrade --assume-yes \u0026\u0026 /sbin/shutdown -r now`\n\n## Application Setup\n\n### Prowlarr\n- add indexers\n- add download client\n- add applications Sonarr \u0026 Radarr (need api keys)\n- sync app indexers\n\n### Plex\n- create name\n- add tv shows folder /tv\n- add movies folder /movies\n- enable remote access\n- enable library scanning\n- turn off transcoding if your CPU is not strong enough\n\n### Sonarr \u0026 Radarr\n- add root folder\n- add download client\n- add authentication\n\n### Overseerr\n- login with plex\n- add plex\n- add Sonarr \u0026 Radarr (need api keys)\n\n## References\n\n### Inspiration\n- https://zacholland.net/a-complete-guide-to-setting-up-a-plex-home-media-server-with-automated-requests-downloads\n\n### RPI docker and docker compose\n- https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo\n\n### docker service static ip addresses\n- https://stackoverflow.com/a/52184320\n\n### docker image update\n(has potential to wipe config if volumes mapped incorrectly or permissions are not set up correctly)\n- https://stackoverflow.com/a/61362893\n\n## deleting docker containers and images\n- https://stackoverflow.com/a/44785784\n\n### mounting drives\n- https://www.tomshardware.com/how-to/mount-drives-linux\n\n### use mergerfs to map external drives\n- https://fedoramagazine.org/using-mergerfs-to-increase-your-virtual-storage/\n- http://corywestropp.com/develop/articles/setting-up-mergerfs/\n- https://www.linuxserver.io/blog/2016-02-02-the-perfect-media-server-2016\n\n### setup fstab (mounting on startup)\n- https://askubuntu.com/a/165462\n\n### installing vpn cli\n- https://support.nordvpn.com/FAQ/NordVPN-setup-tutorials/1047409772/How-to-configure-a-Raspberry-Pi.htm\n- https://support.nordvpn.com/Connectivity/Linux/1325531132/Installing-and-using-NordVPN-on-Debian-Ubuntu-Raspberry-Pi-Elementary-OS-and-Linux-Mint.htm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregjoeval%2Fg-flix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregjoeval%2Fg-flix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregjoeval%2Fg-flix/lists"}