New Grimoire

This commit is contained in:
traveler 2026-04-12 09:53:51 -05:00
parent 77d589a13d
commit cc574f8aed
157 changed files with 29420 additions and 0 deletions

49
PNC-Harris/Overview.md Normal file
View file

@ -0,0 +1,49 @@
---
title: PNC Harris — Family
description: Family services, personal apps, and household documentation
published: true
date: 2026-04-12T00:00:00.000Z
tags: pncharris, family
editor: markdown
dateCreated: 2026-04-12T00:00:00.000Z
---
# PNC Harris
![pncharris-badge](/images/pncharris-badge.png)
Family services, personal applications, and household documentation. These services live on the Netgrimoire infrastructure but serve the family — photos, files, recipes, tasks, passwords, and bookmarks. Homepage tab: **PNCHarris**.
---
## Services
| Service | URL | Purpose |
|---------|-----|---------|
| Immich | `immich.netgrimoire.com` | Family photo and video management |
| Nextcloud AIO | `cloud.netgrimoire.com` | File sync, shared documents, calendar |
| Mealie | `recipe.netgrimoire.com` | Family recipe manager |
| Vikunja | `task.netgrimoire.com` | Task and project management |
| Joplin Server | `joplin.netgrimoire.com` | Notes sync server |
| Vaultwarden | `pass.netgrimoire.com` | Password manager |
| Wallos | `expense.netgrimoire.com` | Subscription and expense tracker |
| Linkding | `link.netgrimoire.com` | Bookmark manager |
| Glance | `home.netgrimoire.com` | Alternative dashboard |
| Calibre-Web | `books.pncharris.com` | Family ebook library |
| Scanopy | `scn.netgrimoire.com` | Document scanner |
| Bigcapital | `accounts.netgrimoire.com` | Accounting and invoicing |
---
## Domains
`pncharris.com` · `pncharrisenterprises.com`
---
## Notes
Bigcapital runs on docker5 via Compose and uses a static Caddyfile entry — caddy-docker-proxy label pickup is unreliable for this service. Do not attempt to migrate to labels.
Immich backup: see [Immich Backup](/Vault-Grimoire/Backups/Immich-Backup).
Nextcloud backup: see [Nextcloud Backup](/Vault-Grimoire/Backups/Nextcloud-Backup).

View file

@ -0,0 +1,53 @@
---
title: Actual Budget
description: Envelope budgeting service for personal finance
published: true
date: 2026-04-12T00:00:00.000Z
tags: pncharris, finance, actualbudget
editor: markdown
dateCreated: 2026-04-12T00:00:00.000Z
---
# Actual Budget
Envelope budgeting service running on the Netgrimoire swarm. Accessible at `budget.netgrimoire.com`.
---
## Architecture
| Service | Image | Port | Host |
|---------|-------|------|------|
| actual | `actualbudget/actual-server:latest` | 5006 | znas / Swarm |
**Network:** `netgrimoire` overlay
**Homepage group:** Finance
**Volume:** `/DockerVol/actual`
---
## Environment Variables
```bash
ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
```
---
## Deploy
```bash
cd services/swarm/stack/actualbudget
set -a && source .env && set +a
docker stack config --compose-file actualbudget-stack.yml > resolved.yml
docker stack deploy --compose-file resolved.yml actualbudget
rm resolved.yml
```
---
## Backup
Critical data: `/DockerVol/actual` — included in Kopia backup schedule.

View file

@ -0,0 +1,128 @@
---
title: Immich on ZFS
description: Moving Immich to its own ZFS dataset
published: true
date: 2026-02-20T04:13:02.502Z
tags: service zfs immich dataset
editor: markdown
dateCreated: 2026-02-06T15:57:04.261Z
---
# Moving Immich to a ZFS Dataset
## Overview
This guide covers moving an existing Immich installation to its own ZFS dataset to enable `zfs send` backups.
## Prerequisites
- ZFS pool mounted at `/srv/vault`
- Existing Immich installation at `/srv/vault/immich`
- Immich running via Docker Compose
## Steps
### 1. Stop Immich Services
```bash
cd /srv/vault/immich # or wherever your docker-compose.yml is
docker compose down
```
### 2. Create the New Dataset
```bash
sudo zfs create vault/immich
```
### 3. Move Existing Data Temporarily
```bash
sudo mv /srv/vault/immich /srv/vault/immich_old
```
### 4. Set Mountpoint and Mount Dataset
```bash
sudo zfs set mountpoint=/srv/immich vault/immich
sudo zfs mount vault/immich
```
### 5. Copy Data to New Dataset
```bash
sudo rsync -avxHAX /srv//immich_old/ /srv/immich/
```
Flags preserve permissions, ownership, and special attributes.
### 6. Verify Data Copy
```bash
sudo du -sh /srv/vault/immich_old
sudo du -sh /srv/vault/immich
```
Sizes should match closely.
### 7. Start Immich
```bash
cd /srv/vault/immich
docker compose up -d
```
### 8. Test and Clean Up
Verify everything works, then remove old data:
```bash
sudo rm -rf /srv/vault/immich_old
```
## ZFS Dataset Properties
### Recommended Settings
```bash
# Compression - helps with photos and database
sudo zfs set compression=lz4 vault/immich
# Record size - balance for mixed workload
sudo zfs set recordsize=128K vault/immich
# Better database performance
sudo zfs set primarycache=all vault/immich
sudo zfs set atime=off vault/immich
```
### Property Explanations
- **compression=lz4**: Fast, low CPU overhead, works well for both photos and database
- **recordsize=128K**: Good compromise between database (8K blocks) and photos (larger files)
- **atime=off**: Disables access time updates, reduces unnecessary writes
- **primarycache=all**: Keeps both metadata and data in ARC cache (default)
## Backup with ZFS Send/Receive
### Create Snapshot
```bash
zfs snapshot vault/immich@backup-$(date +%Y%m%d)
```
### Send to Remote Server
```bash
zfs send vault/immich@backup-$(date +%Y%m%d) | ssh backup-server zfs receive tank/backups/immich
```
### Incremental Backups
```bash
# After first full backup
zfs snapshot vault/immich@backup-$(date +%Y%m%d)
zfs send -i vault/immich@previous-snapshot vault/immich@backup-$(date +%Y%m%d) | \
ssh backup-server zfs receive tank/backups/immich
```
## Optional: Separate Datasets for Database and Photos
For optimal performance, split into separate datasets:
```bash
sudo zfs create vault/immich/database
sudo zfs create vault/immich/photos
# Database optimized
sudo zfs set recordsize=16K vault/immich/database
sudo zfs set logbias=latency vault/immich/database
# Photos optimized
sudo zfs set recordsize=1M vault/immich/photos
```
Then update your Docker Compose volume mounts accordingly.