{"id":21459918,"url":"https://github.com/juftin/homelab","last_synced_at":"2025-07-15T02:31:54.398Z","repository":{"id":58767425,"uuid":"505670620","full_name":"juftin/homelab","owner":"juftin","description":"🤖 homelab deployment via docker compose (made easy)","archived":false,"fork":false,"pushed_at":"2024-07-19T01:07:35.000Z","size":3689,"stargazers_count":13,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-07-19T09:18:36.071Z","etag":null,"topics":["docker-compose","homelab","htpc","oauth","plex","self-hosted","traefik"],"latest_commit_sha":null,"homepage":"http://juftin.com/homelab/","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juftin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-06-21T03:01:58.000Z","updated_at":"2024-07-19T01:07:25.000Z","dependencies_parsed_at":"2023-10-14T23:14:27.816Z","dependency_job_id":"f059c0e4-747c-4505-9f69-793a5cef7cd6","html_url":"https://github.com/juftin/homelab","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juftin%2Fhomelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juftin%2Fhomelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juftin%2Fhomelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juftin%2Fhomelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juftin","download_url":"https://codeload.github.com/juftin/homelab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226012177,"owners_count":17559630,"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":["docker-compose","homelab","htpc","oauth","plex","self-hosted","traefik"],"created_at":"2024-11-23T06:37:06.255Z","updated_at":"2024-11-23T06:37:06.786Z","avatar_url":"https://github.com/juftin.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n \u003ch1\u003ehomelab\u003c/h1\u003e\n  \u003ca href=\"https://github.com/juftin/homelab\"\u003e\n    \u003cimg src=\"docs/static/homelab.png\" alt=\"homelab\" width=\"350\" /\u003e\n  \u003c/a\u003e\n  \u003cp align=\"center\"\u003e\n    homelab deployment via docker compose \u003ci\u003e(made easy)\u003c/i\u003e\n  \u003c/p\u003e\n  \u003ca href=\"https://github.com/juftin/homelab/\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/juftin/homelab?color=blue\u0026label=%F0%9F%A4%96%20homelab\" alt=\"docs\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://juftin.com/homelab/\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?message=docs\u0026color=526CFE\u0026logo=Material+for+MkDocs\u0026logoColor=FFFFFF\u0026label=\" alt=\"docs\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/pre-commit/pre-commit\"\u003e\u003cimg src=\"https://img.shields.io/badge/pre--commit-enabled-lightgreen?logo=pre-commit\" alt=\"pre-commit\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/semantic-release/semantic-release\"\u003e\u003cimg src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\" alt=\"semantic-release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://gitmoji.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg\" alt=\"Gitmoji\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## What is homelab?\n\n**`homelab`** is a collection of services that can be deployed from your home server and accessed\nsecurely from anywhere in the world. Ultimately everything is deployed into a single\ndocker compose application. Each service belongs to a [docker compose profile] - and the\n`Makefile` contains everything you need to get started and manage your homelab.\n\n-   **`core`**: The `core` profile is the base of this project, it includes a [traefik] reverse proxy\n    and [OAuth] service that allows you to access all of your services via a single domain name\n    securely behind HTTPS and protected with Google OAuth.\n-   **`media`**: The `media` profile includes services like [Plex], [Sonarr], [Radarr], and\n    [Ombi] that allow you to request, download, organize, and stream media to your devices. This profile\n    is perfect for those who want to have a media server in their homelab.\n-   **`utilities`**: The `utilities` profile includes services like [Watchtower] and [Portainer] that\n    are designed to help you manage your homelab, monitor your services,\n    and keep your containers up-to-date.\n-   **`miscellaneous`**: The `miscellaneous` profile is disabled by default.\n    It includes services like [ChatGPT Next Web] and [LibreOffice Online]\n    that don't fit into the other profiles. These services are great for improving your\n    productivity and adding some fun to your homelab.\n\n## How does it work?\n\nThis repository is a large [docker compose](https://docs.docker.com/compose/)\nproject that allows you to deploy a variety of services to your homelab.\n\nAt the root of this repository is a `docker-compose.yaml` file that defines\nthe entire homelab project - it uses the `include` directive to pull in\nindividual service docker compose files from the `apps` directory.\n\n```text\n.\n├── docker-compose.yaml                     # Main Docker Compose File\n├── .env                                    # Environment Variables and Configuration\n├── Makefile                                # Makefile for common tasks and docker compose wrappers\n├── secrets                                 # Secret Files\n│   ├── cloudflare_api_key.secret           # Cloudflare API Key\n│   └── google_oauth.secret                 # Google OAuth Credentials and Whitelist\n├── apps                                    # Individual Service Docker Compose Files\n│   ├── plex.yaml\n│   ├── radarr.yaml\n│   ├── ombi.yaml\n│   ├── sonarr.yaml\n│   ├── oauth.yaml\n│   ├── chat-gpt-next-web.yaml\n│   ├── watchtower.yaml\n│   └── traefik                             # Traefik Reverse Proxy\n│       ├── docker-compose.yaml             # Traefik Docker Compose File\n│       └── rules                           # Traefik Middlewares and Rules\n│           ├── middlewares-chains.yml\n│           ├── middlewares.yml\n│           └── tls-opts.yml\n└── appdata                                 # Application Data Persistent Volumes\n    ├── plex                                # Each individual service has its own subdirectory\n    ├── sonarr\n    ├── oauth\n    ├── traefik\n    ├── chat-gpt-next-web\n    ├── utilities\n    └── watchtower\n```\n\n### Configuration\n\nAll services are configured via a `.env` file at the root of the project and a few secret\nfiles in the `secrets` directory. These files are used to define settings and credentials\nfor all services that are deployed. You can copy the example files to get started:\n\n```shell\ncp docs/example.env .env\ncp -r docs/example-secrets/ secrets/\n```\n\nSee the [docs](https://juftin.github.io/homelab/) for more information on configuration and\ngetting started.\n\n[traefik]: https://github.com/traefik/traefik\n[OAuth]: https://github.com/thomseddon/traefik-forward-auth\n[Plex]: https://www.plex.tv/\n[Sonarr]: https://github.com/sonarr/sonarr\n[Radarr]: https://github.com/Radarr/Radarr\n[Ombi]: https://github.com/Ombi-app/Ombi\n[ChatGPT Next Web]: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web\n[Watchtower]: https://github.com/containrrr/watchtower\n[LibreOffice Online]: https://www.libreoffice.org/\n[Portainer]: https://github.com/portainer/portainer\n[docker compose profile]: https://docs.docker.com/compose/profiles/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuftin%2Fhomelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuftin%2Fhomelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuftin%2Fhomelab/lists"}