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
- Host: GitHub
- URL: https://github.com/5ouma/homelab
- Owner: 5ouma
- Created: 2024-04-13T06:52:11.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-07T05:20:13.000Z (about 2 months ago)
- Last Synced: 2026-04-07T07:20:05.040Z (about 2 months ago)
- Topics: activitypub, archlinux, docker, docker-compose, git-server, homelab, immich, misskey, paperless, paperless-ngx, photo, samba, smb, soft-serve, speedtest, speedtest-tracker, timemachine
- Language: Shell
- Homepage: https://lab.5ouma.me
- Size: 938 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
HomeLab
**🥼 Self-hosted personal laboratory**
[](https://github.com/5ouma/homelab/actions/workflows/test.yml)
[](https://github.com/5ouma/homelab/actions/workflows/deploy.yml)
[](https://github.com/5ouma/homelab/actions/workflows/pre-commmit.yml)

## 🔐 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'
```