# Guides

{% hint style="info" %}
Use the menu on the left to pick a guide! Mobile users will need to open the hamburger menu on the top left
{% endhint %}

{% hint style="warning" %}
Due to a limitation in Gitbook, some drawings may not display properly in dark mode - **it is recommended to view this doco in light might.**

[I've logged it with Gitbook](https://github.com/orgs/GitbookIO/discussions/1122#discussioncomment-15298819)
{% endhint %}

#### G'day and welcome to my guides!&#x20;

You'll find various bits of useful information here. I've written this for myself, as these particular apps are either

* Annoying to configure
* Not well documented online or
* Are stable enough for me to forget how to configure them, but not stable enough to last forever (looking at you Pterodactyl)
* ... Or my friends have asked me how to replicate something

#### **A piece of advice,**

**You will never have 99% uptime** and people accessing your homelab are not entitled to your time either. If your Plex server is down, they can use Netflix. The 'luxury' of paying money for those services is uptime and support.&#x20;

*Don't make your homelab your second job.*

{% hint style="warning" icon="siren-on" %}
The compose files referenced in the guides are my LIVE compose files. Generally speaking, they will be functional, but if you notice recent changes (eg in the last couple hours) there may be something I'm changing or troubleshooting.If so, the files may not work.&#x20;

**I highly recommend copying my compose files into your own Github and managing them yourself from there**.

If you do use my live compose files in your set up, please ensure you

* Do not set your pull time to something quick (eg 5 minutes) - set it to something like 24 or 48 hours. This reduces the risk of me testing, troubleshooting or upgrading containers from breaking your containers
  {% endhint %}

## How this documentation is written

### Sectioned documentation

*We're all busy and can't dedicate 3 straight hours to 1 task.*

Where logical, I have split my doco into multiple pages and a page should be completed in a single sitting. I've tried to keep each page to less than 30 minutes of work. This means that you can complete a page, look after your kids, then come back and do another.

### Errors

If I'm expecting an error to occur, I'll write it into the doco. Otherwise, refer to the troubleshooting section on the left and/or Google.

## Some things to consider

Here are some basic things to consider for your Homelab

### Password vault

Save all of your data into a password vault - a lot of API keys cannot be re-viewed after being generated and rolling them will break any services that use them

### [Use SSH keys](/guides/installation-guides/ssh-keys.md)

SSH keys allow for password-less authentication - the device connecting requires the username and key and off it goes.

### Authentication

**I'm using OAuth with a third party service.** At the end of the day, I trust Google, Github, Facebook etc to have better security standards than an authentication provider written by someone as a hobby. These tools won't have the ability to protect against complex attacks or DDOS.&#x20;

The self hosted solutions are usually open source, which means green hats can review and report vulnerabilities, it also means they're availabe for bad actors to find and exploit.

Whwn I have to set a username and password, I'm randomly generating both and putting them behind Cloudflare - hopefully with both [Cloudflare Zero Trust](/guides/other-guides/cloudflare/cloudflare-zero-trust.md) AND [Cloudflare security rules](/guides/installation-guides/crowdsec/cloudflare-security-rules.md)

### Managing updates

I'm using [GitOps](/guides/installation-guides/gitops.md) to manage my container updates. It is best practice to not use the "latest" tag as these may be dev/testing builds or come with breaking changes.

### Cyber Security

Cyber security should be high on your thoughts list, especially if you are port forwarding services. I'm in the process over overhauling the CyberSec in my Homelab and am writing documentation in [Crowdsec](/guides/installation-guides/crowdsec.md) for this.

### Don't store important data on your homelab

**Another controversial take, but this one comes with a story.**

Previously I had hosted Bitwarden as a docker container in my homelab. I ended up deciding to pay the $10ish a year to support the devs and shifted my vault over to their cloud version.&#x20;

I had forgotten to update an old device pointing at the local version and when I accessed that device it couldn't authenticate. I did some digging and realized that the front-end of the container wasn't loading. The container and its database had died some time ago and I didn't have a backup to restore from.

I was lucky as I had already shifted my data away.

### Backups

Back up your important data somewhere - preferebly offsite.&#x20;

### Don't force other people to use your homelab

Your homelab is your hobby - not everyone else is going to want to use it. Sure, make it available, but be aware of what may go wrong if something breaks. You don't want to have a drive die and then lose all of your families photos.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.trentbauer.com/guides/guides.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
