{"id":29223595,"url":"https://github.com/aloni636/media-server-setup","last_synced_at":"2026-04-13T17:32:37.849Z","repository":{"id":301620444,"uuid":"1009730079","full_name":"aloni636/media-server-setup","owner":"aloni636","description":"A simple docker compose setup for a private media server on top of my Raspberry Pi 😊","archived":false,"fork":false,"pushed_at":"2025-10-05T14:48:20.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T16:29:02.845Z","etag":null,"topics":["docker-compose","jellyfin","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/aloni636.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-27T16:00:53.000Z","updated_at":"2025-10-05T14:48:24.000Z","dependencies_parsed_at":"2025-06-27T21:18:39.705Z","dependency_job_id":"9f17aed9-a1cc-4bd2-9042-66feedc87dac","html_url":"https://github.com/aloni636/media-server-setup","commit_stats":null,"previous_names":["aloni636/media-server-setup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aloni636/media-server-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloni636%2Fmedia-server-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloni636%2Fmedia-server-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloni636%2Fmedia-server-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloni636%2Fmedia-server-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aloni636","download_url":"https://codeload.github.com/aloni636/media-server-setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloni636%2Fmedia-server-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31762529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-compose","jellyfin","raspberry-pi"],"created_at":"2025-07-03T05:05:32.431Z","updated_at":"2026-04-13T17:32:37.838Z","avatar_url":"https://github.com/aloni636.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TODOs\n- [ ] Add [decluttarr](https://github.com/ManiMatter/decluttarr)\n- [ ] Add [Raspberry Pi V4L2 hardware acceleration](https://docs.linuxserver.io/images/docker-jellyfin/?utm_source=chatgpt.com#v4l2-raspberry-pi)\n- [ ] Add docker rollout for zero downtime deployments\n\n## Security\n- [ ] Segment network between arr and jellyfin\n\n# Security\n## Docker Container Capabilities\n- `CHOWN` capability is necessary for root directories permission modification as startup (like `/app` for Jellyfin, etc).\n\n# Mounting Hard Drives\n- On Rapberry Pi OS disable automount with `sudo systemctl disable udisks2.service` to have explicit contorl over mounting.\n- Run `lsblk -f` to gather details about the hard drive.\n- Fill the details (devide UUID and fstype) in a new `/etc/fstab` entry. Fill the rest of the options for your liking: \n    `\u003cdevice\u003e   \u003cmountpoint\u003e   \u003cfstype\u003e   \u003coptions\u003e   \u003cdump\u003e   \u003cpass\u003e`  \n    I use: `defaults,noexec,nodev,nosuid,noatime,nofail,x-systemd.automount,x-systemd.device-timeout=10s`\n- Reload systemd cached fstab entries: `sudo systemctl daemon-reload`\n- Mount (first time) using `sudo mount -a` or (after modifying fstab) `sudo mount -o remount \u003cmountpoint\u003e`\n- For filesystems which store ownership and permissions, setup permissions for the mount point by using: `sudo chown -R \u003cuser id\u003e:\u003cuser group\u003e \u003cmountpoint\u003e`\n\n# Config\nUse `.env.example` for the list of **cross compose services** configuration. Create a `.env`\n\n# Setup Hints\n- **Qbittorrent** uses `admin` username and generates a one time admin password for first time login.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloni636%2Fmedia-server-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faloni636%2Fmedia-server-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloni636%2Fmedia-server-setup/lists"}