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

https://github.com/5ouma/homelab

🥼 Self-hosted personal laboratory
https://github.com/5ouma/homelab

activitypub archlinux docker docker-compose git-server homelab immich misskey paperless paperless-ngx photo samba smb soft-serve speedtest speedtest-tracker timemachine

Last synced: about 2 months ago
JSON representation

🥼 Self-hosted personal laboratory

Awesome Lists containing this project

README

          

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-commmit.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

- [🌸 Immich](./immich)
- [🪐 Misskey](./misskey)
- [🍃 Paperless](./paperless)
- [🍦 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'
```