Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juftin/homelab
🤖 homelab deployment via docker compose (made easy)
https://github.com/juftin/homelab
docker-compose homelab htpc oauth plex self-hosted traefik
Last synced: about 1 month ago
JSON representation
🤖 homelab deployment via docker compose (made easy)
- Host: GitHub
- URL: https://github.com/juftin/homelab
- Owner: juftin
- License: mit
- Created: 2022-06-21T03:01:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-19T01:07:35.000Z (5 months ago)
- Last Synced: 2024-07-19T09:18:36.071Z (5 months ago)
- Topics: docker-compose, homelab, htpc, oauth, plex, self-hosted, traefik
- Language: Makefile
- Homepage: http://juftin.com/homelab/
- Size: 3.52 MB
- Stars: 13
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## What is homelab?
**`homelab`** is a collection of services that can be deployed from your home server and accessed
securely from anywhere in the world. Ultimately everything is deployed into a single
docker compose application. Each service belongs to a [docker compose profile] - and the
`Makefile` contains everything you need to get started and manage your homelab.- **`core`**: The `core` profile is the base of this project, it includes a [traefik] reverse proxy
and [OAuth] service that allows you to access all of your services via a single domain name
securely behind HTTPS and protected with Google OAuth.
- **`media`**: The `media` profile includes services like [Plex], [Sonarr], [Radarr], and
[Ombi] that allow you to request, download, organize, and stream media to your devices. This profile
is perfect for those who want to have a media server in their homelab.
- **`utilities`**: The `utilities` profile includes services like [Watchtower] and [Portainer] that
are designed to help you manage your homelab, monitor your services,
and keep your containers up-to-date.
- **`miscellaneous`**: The `miscellaneous` profile is disabled by default.
It includes services like [ChatGPT Next Web] and [LibreOffice Online]
that don't fit into the other profiles. These services are great for improving your
productivity and adding some fun to your homelab.## How does it work?
This repository is a large [docker compose](https://docs.docker.com/compose/)
project that allows you to deploy a variety of services to your homelab.At the root of this repository is a `docker-compose.yaml` file that defines
the entire homelab project - it uses the `include` directive to pull in
individual service docker compose files from the `apps` directory.```text
.
├── docker-compose.yaml # Main Docker Compose File
├── .env # Environment Variables and Configuration
├── Makefile # Makefile for common tasks and docker compose wrappers
├── secrets # Secret Files
│ ├── cloudflare_api_key.secret # Cloudflare API Key
│ └── google_oauth.secret # Google OAuth Credentials and Whitelist
├── apps # Individual Service Docker Compose Files
│ ├── plex.yaml
│ ├── radarr.yaml
│ ├── ombi.yaml
│ ├── sonarr.yaml
│ ├── oauth.yaml
│ ├── chat-gpt-next-web.yaml
│ ├── watchtower.yaml
│ └── traefik # Traefik Reverse Proxy
│ ├── docker-compose.yaml # Traefik Docker Compose File
│ └── rules # Traefik Middlewares and Rules
│ ├── middlewares-chains.yml
│ ├── middlewares.yml
│ └── tls-opts.yml
└── appdata # Application Data Persistent Volumes
├── plex # Each individual service has its own subdirectory
├── sonarr
├── oauth
├── traefik
├── chat-gpt-next-web
├── utilities
└── watchtower
```### Configuration
All services are configured via a `.env` file at the root of the project and a few secret
files in the `secrets` directory. These files are used to define settings and credentials
for all services that are deployed. You can copy the example files to get started:```shell
cp docs/example.env .env
cp -r docs/example-secrets/ secrets/
```See the [docs](https://juftin.github.io/homelab/) for more information on configuration and
getting started.[traefik]: https://github.com/traefik/traefik
[OAuth]: https://github.com/thomseddon/traefik-forward-auth
[Plex]: https://www.plex.tv/
[Sonarr]: https://github.com/sonarr/sonarr
[Radarr]: https://github.com/Radarr/Radarr
[Ombi]: https://github.com/Ombi-app/Ombi
[ChatGPT Next Web]: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web
[Watchtower]: https://github.com/containrrr/watchtower
[LibreOffice Online]: https://www.libreoffice.org/
[Portainer]: https://github.com/portainer/portainer
[docker compose profile]: https://docs.docker.com/compose/profiles/