Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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)

Awesome Lists containing this project

README

        


homelab



homelab


homelab deployment via docker compose (made easy)


docs
docs
pre-commit
semantic-release
Gitmoji

## 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/