HomeLab

**🥼 Self-hosted personal laboratory**
[![Test](https://img.shields.io/github/actions/workflow/status/5ouma/homelab/test.yml?label=Test&style=flat-square)](https://github.com/5ouma/homelab/actions/workflows/test.yml) [![Deploy](https://img.shields.io/github/actions/workflow/status/5ouma/homelab/deploy.yml?label=Deploy&style=flat-square)](https://github.com/5ouma/homelab/actions/workflows/deploy.yml) [![pre-commit](https://img.shields.io/github/actions/workflow/status/5ouma/homelab/pre-commit.yml?label=pre-commit&style=flat-square)](https://github.com/5ouma/homelab/actions/workflows/pre-commit.yml) ![Repobeats Analytics Image](https://repobeats.axiom.co/api/embed/5c340ba9ec6944ad822c2f157e0f2ae96a8d16fc.svg)


## 🔐 Requirements - 🐳 Docker - 🐙 Docker Compose

## 🔧 Setup 1. 📋 Clone this Repository ```sh git clone https://github.com/5ouma/homelab.git ``` 2. 🏔️ Copy the [`.env.tmpl`](./.env.tmpl) file to `.env` and Edit it | Name | Value | | :---------------------: | :--------------------------------------: | | `AWS_ACCESS_KEY_ID` | Cloudflare R2 Access Key ID | | `AWS_SECRET_ACCESS_KEY` | Cloudflare R2 Secret Access Key | | `AWS_ENDPOINT` | Cloudflare R2 Endpoint Domain | | `NOTIFICATION_URLS` | Notification URLs of [Shoutrrr Services] | [Shoutrrr Services]: https://containrrr.dev/shoutrrr/dev/services/overview 3. 📝 Follow the instructions below - [🟠 Grafana](./grafana) - [🌸 Immich](./immich) - [🪐 Misskey](./misskey) - [🍃 Paperless](./paperless) - [🔒 Pocket ID](./pocket-id) - [🍦 Soft Serve](./soft-serve) - [🐇 Speedtest Tracker](./speedtest-tracker) - [⏱️ Time Machine](./timemachine)
## 🖥️ Server Setup ### 🔐 Requirements - Arch Linux with yay installed - `$USER` has sudo privilege ## 📥 Installation Run the [setup](./setup) script. ```sh bash <(curl https://lab.5ouma.me) ``` > [!NOTE] > I'm using [EndeavourOS](https://endeavouros.com)
## 💾 Restore Data 1. 🗝️ Decrypt the Data ```sh # Your database password gpg -o ./backup.tar.gz -d /path/to/backup.tar.gz.gpg tar -xzf ./backup.tar.gz ``` 2. 🐘 Copy the Database ```sh docker compose create docker compose start database docker compose cp ./backup/database/.sql database:/tmp/backup.sql docker compose exec database bash -c 'psql -d "$POSTGRES_DB" -U "$POSTGRES_USER" -f /tmp/backup.sql' ```