{"id":13582583,"url":"https://github.com/captn3m0/nebula","last_synced_at":"2025-05-12T03:32:20.779Z","repository":{"id":139926690,"uuid":"115443328","full_name":"captn3m0/nebula","owner":"captn3m0","description":" Source Code for the Home Server setup.","archived":false,"fork":false,"pushed_at":"2025-05-08T19:31:50.000Z","size":1002,"stargazers_count":58,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-08T19:45:27.141Z","etag":null,"topics":["airsonic","cadvisor","cloudflare","couchpotato","docker","emby","gitea","homeserver","learning-exercise","linuxserver","requarks","selfhosted","sickrage","terraform","traefik","transmission","wiki"],"latest_commit_sha":null,"homepage":"https://git.captnemo.in/nemo/nebula","language":"HCL","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/captn3m0.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}},"created_at":"2017-12-26T17:52:38.000Z","updated_at":"2025-05-08T19:31:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ead5001-2c42-4352-951c-97ca73a1f70d","html_url":"https://github.com/captn3m0/nebula","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/captn3m0%2Fnebula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captn3m0%2Fnebula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captn3m0%2Fnebula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captn3m0%2Fnebula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/captn3m0","download_url":"https://codeload.github.com/captn3m0/nebula/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253668128,"owners_count":21944988,"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":["airsonic","cadvisor","cloudflare","couchpotato","docker","emby","gitea","homeserver","learning-exercise","linuxserver","requarks","selfhosted","sickrage","terraform","traefik","transmission","wiki"],"created_at":"2024-08-01T15:02:51.676Z","updated_at":"2025-05-12T03:32:20.395Z","avatar_url":"https://github.com/captn3m0.png","language":"HCL","funding_links":[],"categories":["HCL","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# nebula\n\n![Nebula header image](https://cdn.spacetelescope.org/archives/images/thumb700x/heic0707a.jpg)\n\n\u003e Where stars are born.\n\nManages the local infrastructure of my home server. I'm also doing blog posts around the same:\n\n1.  [Part 1, Hardware](https://captnemo.in/blog/2017/09/17/home-server-build/)\n2.  [Part 2, Terraform/Docker](https://captnemo.in/blog/2017/11/09/home-server-update/)\n3.  [Part 3, Learnings](https://captnemo.in/blog/2017/12/18/home-server-learnings/)\n4.  [Part 4, Migrating from Google (and more)](https://captnemo.in/blog/2017/12/31/migrating-from-google/)\n5.  [Part 5, Networking](https://captnemo.in/blog/2018/04/22/home-server-networking/)\n6.  [Part 6, RAID](https://captnemo.in/blog/2019/02/24/btrfs-raid-device-replacement-story/)\n\nThe canonical URL for this repo is https://git.captnemo.in/nemo/nebula/. A mirror is maintained on GitHub at \u003chttps://github.com/captn3m0/nebula\u003e\n\n# modules\n\n1.  docker: to actually run the services. Catch-all for miscellaneous containers\n2.  cloudflare: to manage the DNS.\n3.  mysql: to create mysql users and databases.\n4.  media: Media related containers (Jackett, Lidarr, Radarr, Sonarr)\n5.  Monitoring: Monitoring related resources (Cadvisor, Grafana, NodeExporter, Prometheus, Transmission-Exporter)\n6.  Gitea: Just git.captnemo.in\n7.  miniflux: RSS Web reader\n8.  Radicale: CardDav/CalDav webserver\n\nSelf-learning project for terraform/docker.\n\n# Planned\n\n1.  ~Setup DigitalOcean~\n2.  Add DO infrastructure via ansible\n3.  ~Add traefik for proper proxying~\n4.  Maybe add docker swarm (or k8s?) across both the servers. Might setup the k8s API on the Raspberry Pi.\n\n# Service List\n\nCurrently running the following (all links are to the `store.docker.com` links for the docker images that I'm using:\n\n| image                            | tag        | module/link                                          |\n| -------------------------------- | ---------- | ---------------------------------------------------- |\n| captn3m0/opml-gen                | latest     | https://opml.bb8.fun                                 |\n| captn3m0/rss-bridge              | latest     | https://github.com/RSS-Bridge/rss-bridge             |\n| captn3m0/speedtest-exporter      | alpine     | https://github.com/stefanwalther/speedtest-exporter  |\n| emby/embyserver                  | latest     | https://emby.media                                   |\n| gitea/gitea                      | 1.5.0-rc1  | services                                             |\n| google/cadvisor                  | latest     | monitoring                                           |\n| grafana/grafana                  | latest     | monitoring                                           |\n| jankysolutions/requestbin        | latest     | tools                                                |\n| linuxserver/airsonic             | latest     | media                                                |\n| linuxserver/jackett              | latest     | media                                                |\n| linuxserver/lidarr               | latest     | media                                                |\n| linuxserver/lychee               | latest     | media                                                |\n| linuxserver/radarr               | latest     | media                                                |\n| linuxserver/sonarr               | latest     | media                                                |\n| linuxserver/transmission         | latest     | media                                                |\n| linuxserver/ubooquity            | latest     | media                                                |\n| miniflux/miniflux                | 2.0.9      | tools                                                |\n| postgres                         | 10-alpine  | database                                             |\n| prom/node-exporter               | v0.15.2    | monitoring                                           |\n| prom/prometheus                  | latest     | monitoring                                           |\n| requarks/wiki                    | latest     | services                                             |\n| serjs/go-socks5-proxy            | latest     | tools                                                |\n| tocttou/gotviz                   | latest     | na                                                   |\n| tomsquest/docker-radicale        | latest     | services                                             |\n| traefik                          | 1.6-alpine | plumbing                                             |\n\n## Docker Notes\n\n- Lots of the above images are from the excellent [LinuxServer.io](https://www.linuxserver.io), and they're doing great work :+1:\n- Most images are running the latest beta (if available) or stable versions.\n- Traefik is running with wildcard certificates.\n\n## Upstream\n\nI've been using this as a contributing opportunity and reporting/fixing issues upstream:\n\n1.  Airsonic HTTPS proxying is broken. Reported: https://github.com/airsonic/airsonic/issues/641. Turned out to be a known issue: https://github.com/airsonic/airsonic/issues/594. Now fixed.\n2.  Traefik docker backend security headers were broken with dashes. I [reported it here](https://github.com/containous/traefik/issues/2493), and fixed by https://github.com/containous/traefik/pull/2496 :white_check_mark:\n3.  Headphones dies repeatedly with no error logs. Yet-to-report. (Already reported, fails due to classical artists)\n4.  Terraform doesn't parse mariadb version numbers. Report: https://github.com/terraform-providers/terraform-provider-mysql/issues/6. Filed a [PR to fix](https://github.com/hashicorp/go-version/pull/34) and [to bump the go-version dependency](https://github.com/terraform-providers/terraform-provider-mysql/pull/27) :white_check_mark:\n5.  `elibsrv` didn't support ebook-convert, only mobigen. PR is at https://github.com/captn3m0/elibsrv/pull/1. Merged to `elibsrv` trunk, will be part of next release.\n6.  `ubooquity` docker container doesn't let you set admin password: https://github.com/linuxserver/docker-ubooquity/issues/17. (Couldn't reproduce, closed) :white_check_mark:\n7.  Traefik customresponseheaders can't contain colons on the docker backend: https://github.com/containous/traefik/issues/2517. Fixed with https://github.com/containous/traefik/pull/2509 :white_check_mark:\n8.  Traefik Security headers don't overwrite upstream headers: https://github.com/containous/traefik/issues/2618 :white_check_mark:\n9.  Transmission exporter broke with different data types while unmarshalling JSON in go. I filed a PR https://github.com/metalmatze/transmission-exporter/pull/2 :white_check_mark:\n10. Radarr official docker container was [running a very old `mediainfo`](https://github.com/Radarr/Radarr/issues/2668#issuecomment-376310514). [Filed a fix to upgrade `mediainfo` on the official radarr image](https://github.com/linuxserver/docker-baseimage-mono/pull/3) :white_check_mark:\n11. Patched the [speedtest-exporter](https://github.com/stefanwalther/speedtest-exporter/pull/7) to use Alpine and upgraded Node.JS for a smaller updated build.\n12. Faced (4) above again because mariadb decided to add `:` in the version response. [Workaround was to force set `--version=10.3-mariadb`](https://git.captnemo.in/nemo/nebula/commit/5f47a08bb55eea2c708c41668657ac1efa84c72a)\n13. Reported [2 critical security issues in Abstruse CI](https://github.com/bleenco/abstruse/issues/363). :white_check_mark:\n14. Faced (13) above again with postgres, thankfully [someone already fixed version parsing](https://github.com/terraform-providers/terraform-provider-postgresql/pull/31) :white_check_mark:\n15. RSS Bridge was missing an official Docker Image. [I Filed a PR](https://github.com/RSS-Bridge/rss-bridge/pull/720) :white_check_mark:\n\n# Plumbing\n\nTheir is a lot of additional infrastructure that is _not-yet_ part of this repo. This includes:\n\n1.  The Digital Ocean droplet running DNSCrypt and simpleproxy to proxy over a openvpn connection to this box.\n2.  openbox, kodi configuration to run on boot along with the Steam Controller for the HTPC setup\n3.  Docker main configuration with half-baked CA setup\n4.  btrfs-backed subvolumes and snapshotting for most things in /mnt/xwing/ (in-progress)\n5.  User-creation on the main server. (I'm using a common user for media applications and specific users for other applications)\n\n# License\n\nAll code in this repository is shared under the [MIT License](https://nemo.mit-license.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptn3m0%2Fnebula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaptn3m0%2Fnebula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptn3m0%2Fnebula/lists"}