Add photoprism

This commit is contained in:
Galuh Sahid 2023-12-26 09:32:50 +01:00
parent bec5b584af
commit bcb299de35
7 changed files with 144 additions and 0 deletions

7
README.md Normal file
View File

@ -0,0 +1,7 @@
# selfhosted
## VPN
To be added (Tailscale)
## Backup strategy
To be added

1
docs/backup.md Normal file
View File

@ -0,0 +1 @@
# backup strategy

3
docs/encryption.md Normal file
View File

@ -0,0 +1,3 @@
# Encryption
https://wilw.dev/notes/volume-encryption

View File

@ -0,0 +1,48 @@
# Mounting new volumes
1. ssh to storagebox
```
ssh -p23 u382808@u382808.your-storagebox.de
```
2. Create a new directory
```
mkdir photoprism_import_data
```
3. Navigate to [Hetzner cloud storage](https://robot.hetzner.com/storage). Create a new sub-account. Allow Samba, SSH, external reachability.
4. ssh to server
5. Create new credentials in `/etc/secure_config`:
```
username=(storagebox username)
password=(storagebox password)
```
6. Make mount directory
```
sudo mkdir /mnt/photoprism_import_data
```
6. Update /etc/fstab
```
//u382808-sub3.your-storagebox.de/u382808-sub3 /mnt/photoprism_import_data cifs seal,vers=3,iocharset=utf8,rw,credentials=/etc/secure_config/.cifs-credentials-photoprism-import.txt,uid=1000,gid=1001,forceuid,forcegid,file_mode=0770,dir_mode=0770 0 0
```
7. Mount
```
mount -a
```
8. Verify that the storage box is mounted correctly:
```
df -h
```

12
photoprism/README.md Normal file
View File

@ -0,0 +1,12 @@
# photoprism
## Configuration
Setup `.env`:
```
PHOTOPRISM_ADMIN_PASSWORD=''
PHOTOPRISM_DATABASE_PASSWORD=''
PHOTOPRISM_MARIADB_PASSWORD=''
PHOTOPRISM_MARIADB_ROOT_PASSWORD=''
``

View File

@ -0,0 +1,63 @@
version: '3.5'
services:
photoprism:
image: photoprism/photoprism:latest
depends_on:
- mariadb
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- "100.104.163.2:2342:80"
environment:
PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_ADMIN_PASSWORD}
PHOTOPRISM_AUTH_MODE: "password"
PHOTOPRISM_SITE_URL: "http://100.104.163.2:2342:80"
PHOTOPRISM_ORIGINALS_LIMIT: 5000
PHOTOPRISM_HTTP_COMPRESSION: "gzip"
PHOTOPRISM_LOG_LEVEL: "info"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_DISABLE_CHOWN: "false"
PHOTOPRISM_DISABLE_WEBDAV: "false"
PHOTOPRISM_DISABLE_SETTINGS: "false"
PHOTOPRISM_DISABLE_TENSORFLOW: "false"
PHOTOPRISM_DISABLE_FACES: "false"
PHOTOPRISM_DISABLE_CLASSIFICATION: "false"
PHOTOPRISM_DISABLE_RAW: "false"
PHOTOPRISM_RAW_PRESETS: "false"
PHOTOPRISM_JPEG_QUALITY: 85
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"
PHOTOPRISM_DATABASE_NAME: "photoprism"
PHOTOPRISM_DATABASE_USER: "photoprism"
PHOTOPRISM_DATABASE_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD}
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
working_dir: "/photoprism"
volumes:
- "/mnt/photoprism_data:/photoprism/originals"
- "/mnt/photoprism_import_data:/photoprism/import"
- "${PWD}/storage:/photoprism/storage"
mariadb:
restart: unless-stopped
image: mariadb:10.8
security_opt:
- seccomp:unconfined
- apparmor:unconfined
command: mysqld --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "/data/database:/var/lib/mysql"
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: ${PHOTOPRISM_MARIADB_PASSWORD}
MARIADB_ROOT_PASSWORD: ${PHOTOPRISM_MARIADB_ROOT_PASSWORD}

View File

@ -15,6 +15,16 @@ docker-compose exec app restic snapshots -H <HOSTNAME>
docker-compose exec app restic restore --include /path/to/file <ID>
```
List snapshots
```
docker compose run --rm backup snapshots
```
View files uploaded in Backblaze
- In local, download via `brew install b2-tools`
- In server
## Known issues
```
Fatal: config or key 2327d55bb96f4cab846b07cc8ffe5906c88c3e657f326a506ccfcf95cd8fd1e7 is damaged: ciphertext verification failed