Skip to content

Commit da86528

Browse files
rorarclaude
andcommitted
docs: add MkDocs Material site with GitHub Pages deployment
- Split 786-line README into 20 semantic docs pages - Add MkDocs Material theme with dark mode, search, code copy, Mermaid - Add GitHub Actions workflow for auto-deploy on push to main - Replace plain-text hints with GitHub Alerts (NOTE/WARNING/TIP/IMPORTANT/CAUTION) - Inline 28 UI button/icon images from assets/images/ into instruction text - Add IP-Replacer JS feature: users enter Unraid IP once, all placeholders update across the site, persisted via localStorage (browser-only, no data sent) - Shorten README to landing page linking to full docs site - Use mkdocs-callouts plugin for GitHub Alert ↔ MkDocs admonition compatibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a1bc725 commit da86528

28 files changed

Lines changed: 1149 additions & 766 deletions

.github/workflows/deploy-docs.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
deploy:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: actions/setup-python@v5
18+
with:
19+
python-version: '3.12'
20+
21+
- name: Install dependencies
22+
run: pip install -r requirements.txt
23+
24+
- name: Deploy to GitHub Pages
25+
run: mkdocs gh-deploy --force

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
site/

README.md

Lines changed: 22 additions & 766 deletions
Large diffs are not rendered by default.

docs/assets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../assets

docs/choose-gpu-platform.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Step 3: Choose Your GPU Platform
2+
3+
Before downloading templates, determine which GPU acceleration you want to use. This affects which **server** template (for video transcoding) and which **machine learning** template (for face recognition and image search) you need.
4+
5+
```mermaid
6+
graph TD
7+
A[What GPU do you have?] --> B{NVIDIA?}
8+
A --> C{Intel iGPU?}
9+
A --> D{AMD?}
10+
A --> E{No GPU / CPU only}
11+
12+
B --> B1[Server: immich-server-nvenc]
13+
B --> B2[ML: immich-machine-learning-cuda]
14+
15+
C --> C1[Server: immich-server-qsv-vaapi]
16+
C --> C2[ML: immich-machine-learning-openvino]
17+
18+
D --> D1[Server: immich-server-qsv-vaapi]
19+
D --> D2[ML: immich-machine-learning-rocm]
20+
21+
E --> E1[Server: immich-server]
22+
E --> E2[ML: immich-machine-learning]
23+
```
24+
25+
| GPU | Server Template (Transcoding) | ML Template (Inference) |
26+
|-----|-------------------------------|------------------------|
27+
| **None / CPU only** | `immich-server` | `immich-machine-learning` |
28+
| **Intel iGPU** (N100, UHD, Iris) | `immich-server-qsv-vaapi` | `immich-machine-learning-openvino` |
29+
| **AMD** (Polaris+) | `immich-server-qsv-vaapi` | `immich-machine-learning-rocm` |
30+
| **NVIDIA** (Pascal+) | `immich-server-nvenc` | `immich-machine-learning-cuda` |

docs/cleanup-after-migration.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Cleanup After Migration
2+
3+
## Cleanup Files
4+
After you have successfully downloaded and extracted your photos from Google Takeout, you can clean up the Firefox container by deleting it and any temporary files in `/mnt/user/immich/Takeout/` that were created during the download process.
5+
6+
## Cleanup API Keys
7+
Remove your Immich API Key in your Account Settings-->API_KEY Keys that you created for the PhotoMigrator in the Immich web UI to ensure that there are no security risks from having an unused API key lying around.
8+
9+
## Cleanup Google Photos
10+
If you have verified that all your photos have been successfully migrated to Immich and you no longer need your Google Photos library, you can choose to delete your Google Photos library to free up space and ensure that you are no longer relying on Google Photos for your photo storage.
11+
12+
> [!CAUTION]
13+
> Make sure to double-check that everything is working correctly in Immich and that you have backups of your photos before deleting your Google Photos library.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Step 9: Container Start Order with FolderView3
2+
3+
Immich containers must start in the correct order. If the server starts before the database is ready, it will fail.
4+
5+
To manage this on Unraid, install **FolderView3** from Community Applications:
6+
1. Go to **Apps** → search for **FolderView3** → Install
7+
2. Go to the **Docker** tab
8+
3. Scroll down and click ![Add Folder](assets/images/Unraid%20-%20Docker%20Tab%20-%20Button%20Add-Folder%20%28FolderView3%29.png){: .inline-button }
9+
4. **Name:** `Immich`
10+
5. **Icon (use the following URL):**
11+
```
12+
https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/mobile/packages/ui/showcase/web/icons/apple-icon-180.png )
13+
```
14+
6. **Folder WebUI:** On
15+
7. **WebUI URL:** `http://<your-unraid-ip>:2283` (this will be the URL of the Immich server container)
16+
8. Edit `Preview` section to your liking (optional)
17+
9. Drag all four Immich containers into in the **Correct start order and set the toogles next to them to "ON"**
18+
1. `immich-vectorchord-db` (PostgreSQL)
19+
2. `immich-valkey` (Valkey)
20+
3. `immich-machine-learning` (ML)
21+
4. `immich-server` (Server — depends on all above)
22+
10. Click ![Submit](assets/images/Unraid%20-%20FolderView%203%20-%20Button%20Submit.png){: .inline-button } to save the folder configuration
23+
11. Back in **Docker** tab, click on the Immich folder and if the Containers weren't running before, click ![Start](assets/images/Unraid%20-%20Docker%20Tab%20-%20Dropdown-Menu%20Dropdown-Context%20-%20Button%20Start.png){: .inline-button }
24+
12. Optionally set Autostart to "ON" for the folder.
25+
26+
FolderView3 will now start Immich and its dependent containers in sequence when you click on the folder and hit "Start".

docs/create-docker-network.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Step 2: Create Docker Network
2+
3+
All Immich containers need to communicate with each other by container name. We create a dedicated Docker network for this.
4+
5+
1. Open the Unraid web interface `http://<your-unraid-ip>`
6+
2. Open the Unraid terminal (click the ![Terminal](assets/images/Unraid%20-%20Top%20Menu%20-%20Button%20Start%20Webterminal.png){: .inline-button } icon in the top right corner of the navigation bar)
7+
3. Run the following command to create the network:
8+
```bash
9+
docker network create immich_internal
10+
```
11+
4. When setting up each container below, select `immich_internal` as the network in the template settings.
12+
13+
**Why a custom network?** Containers on the default `bridge` network communicate via host port mappings (NAT overhead). On a custom network, containers resolve each other by name directly — faster and more secure since database/cache ports don't need to be exposed to the host.

docs/credits.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Kudos and Credits
2+
3+
## This a polished guide from Starbuckstech @starbuck93
4+
Many thanks for sharing your knowledge and experience with the community!
5+
Link: https://blog.starbuckstech.com/articles/how-to-install-and-optimize-immich-on-unraid-for-faster-timeline-loading/
6+
Link Archive.org: https://web.archive.org/web/20260416192528/https://blog.starbuckstech.com/articles/how-to-install-and-optimize-immich-on-unraid-for-faster-timeline-loading/
7+
Gist: https://gist.github.com/starbuck93/5ce522b007f67267869afbf13d071f40
8+
9+
## Immich Team
10+
Immich is an incredible open-source project that has been developed and maintained by a dedicated team of developers. Immich has quickly become one of the most popular self-hosted photo and video management applications, and it's all thanks to the hard work and dedication of the Immich team. If you find Immich useful, consider supporting the project by donating or contributing to the codebase.
11+
Link: https://immich.app/
12+
13+
## PhotoMigrator Team
14+
PhotoMigrator is a fantastic tool that has been developed to help users migrate their photos from various services to Immich. The team behind PhotoMigrator has done an amazing job creating a user-friendly and efficient tool that simplifies the migration process for users. If you find PhotoMigrator useful, consider supporting the project by donating or contributing to the codebase.
15+
Link: https://github.com/jaimetur/PhotoMigrator/

docs/download-docker-templates.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Step 4: Download Docker Templates
2+
3+
Open the Unraid web interface and open the terminal (click the ![Terminal](assets/images/Unraid%20-%20Top%20Menu%20-%20Button%20Start%20Webterminal.png){: .inline-button } icon in the top right corner of the navigation bar). Then download the templates you need.
4+
5+
> [!NOTE]
6+
> `wget` downloads files from the web. The `-P` flag sets the download directory. Templates are saved to Unraid's Docker Manager template directory.
7+
8+
## PostgreSQL
9+
Choose between stability and latest features:
10+
11+
| Option | Image | VectorChord | pgvector | Status |
12+
|--------|-------|-------------|----------|--------|
13+
| **Stable** | `ghcr.io/immich-app/postgres:18-vectorchord0.5.3-pgvector0.8.1` | 0.5.3 | 0.8.1 | Tested by Immich team |
14+
| Experimental | `tensorchord/vchord-postgres:pg18-v1.1.1` | 1.1.1 | 0.8.2 | Latest, less tested |
15+
16+
> [!NOTE]
17+
> You COULD use VectorChord 1.0.0+ (See [#23845](https://github.com/immich-app/immich/pull/23845)) or 1.1.1 (See [this discussion](https://github.com/immich-app/immich/discussions/23830#discussioncomment-15956803)). The 0.5.3 version is more stable and tested extensively with Immich. If you want to try the latest, use the experimental template.
18+
19+
### **PostgreSQL database by Immich** — RECOMMENDED (stable, tested by Immich team):
20+
```bash
21+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-postgres-official.xml
22+
```
23+
24+
### **PostgreSQL database by VectorChord** — EXPERIMENTAL (latest VectorChord 1.1.1, less tested with Immich):
25+
```bash
26+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-vectorchord-db.xml
27+
```
28+
29+
## **Valkey** (cache/message broker):
30+
```bash
31+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-valkey.xml
32+
```
33+
34+
## Machine Learning template (choose one based on your GPU):
35+
36+
### **CPU only** — no GPU acceleration:
37+
*CPU inference is possible but will be much slower for tasks like face recognition and CLIP-based search. Only recommended if you have a powerful CPU and a small library. Will work but expect slower performance and high load on the CPU.*
38+
```bash
39+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-machine-learning.xml
40+
```
41+
42+
### **NVIDIA CUDA:**
43+
```bash
44+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-machine-learning-cuda.xml
45+
```
46+
47+
### **Intel OpenVINO:**
48+
```bash
49+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-machine-learning-openvino.xml
50+
```
51+
52+
### **AMD ROCm:**
53+
```bash
54+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-machine-learning-rocm.xml
55+
```
56+
57+
## Server template (choose one based on your GPU):
58+
*These templates are for video transcoding. If you don't have a GPU or don't want to use it for transcoding, choose the CPU-only template.*
59+
60+
### **CPU only** — no GPU transcoding:
61+
```bash
62+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-server.xml
63+
```
64+
65+
### **Intel QSV / AMD VAAPI** — uses `/dev/dri`:
66+
*You can also use your Intel iGPU ("inbuilt graphics card" in your CPU) for transcoding with Quick Sync Video (QSV) or your AMD GPU with VAAPI. Both use the same template since they both leverage `/dev/dri` for hardware acceleration.*
67+
```bash
68+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-server-qsv-vaapi.xml
69+
```
70+
71+
### **NVIDIA NVENC** — uses `--runtime=nvidia`:
72+
```bash
73+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-server-nvenc.xml
74+
```
75+
76+
## **PhotoMigrator** (for Google Takeout migration):
77+
```bash
78+
wget -P /boot/config/plugins/dockerMan/templates-user/ https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/photomigrator.xml
79+
```

0 commit comments

Comments
 (0)