# Agap Home Server

Docker Compose configurations for the Agap self-hosted home server infrastructure.

## Services

- **Immich** (`immich-app/`) — Photo management and backup (port 2283)
- **Gitea** (`gitea/`) — Self-hosted Git server with web UI (port 3000, SSH 222)
- **Open WebUI** (`openai/`) — AI chat interface with Ollama, GPU-accelerated (port 3125)

## Quick Start

### Start Immich (main service)

```bash
docker compose up -d
```

### Start Gitea (from gitea/ directory)

```bash
cd gitea
docker compose up -d
```

### Start Open WebUI (from openai/ directory)

```bash
cd openai
docker compose up -d
```

## Configuration

Environment variables are in the root `.env` file for Immich:
- `UPLOAD_LOCATION` — where photo originals are stored
- `THUMB_LOCATION` — thumbnail cache directory
- `ENCODED_VIDEO_LOCATION` — transcoded video cache
- `DB_DATA_LOCATION` — Postgres database directory
- `DB_PASSWORD` — Postgres password

## Storage

Media is stored on:
- `/mnt/media/upload` — Immich originals
- `/mnt/ssd1/media/` — Immich thumbnails, encoded video, and Postgres database
- `/mnt/misc/gitea` — Gitea repositories and data

## GPU Support

For GPU acceleration (Open WebUI/Ollama, Immich ML):

1. Install NVIDIA Docker runtime: `sudo ./nvidia-docker-install.sh`
2. Install CUDA toolkit: `./install-cuda.sh`

## Documentation

See [CLAUDE.md](./CLAUDE.md) for detailed developer instructions and Gitea wiki integration guidelines.

See the [Gitea wiki](http://localhost:3000/alvis/AgapHost/wiki) for infrastructure documentation (storage, network, services setup).
