From bcb299de35bc410b763873da97e044ef09bfd2e2 Mon Sep 17 00:00:00 2001 From: Galuh Sahid Date: Tue, 26 Dec 2023 09:32:50 +0100 Subject: [PATCH] Add photoprism --- README.md | 7 ++++ docs/backup.md | 1 + docs/encryption.md | 3 ++ docs/mounting-new-volumes.md | 48 ++++++++++++++++++++++++++ photoprism/README.md | 12 +++++++ photoprism/docker-compose.yml | 63 +++++++++++++++++++++++++++++++++++ restic/README.md | 10 ++++++ 7 files changed, 144 insertions(+) create mode 100644 README.md create mode 100644 docs/backup.md create mode 100644 docs/encryption.md create mode 100644 docs/mounting-new-volumes.md create mode 100644 photoprism/README.md create mode 100644 photoprism/docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc6b943 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# selfhosted + +## VPN +To be added (Tailscale) + +## Backup strategy +To be added \ No newline at end of file diff --git a/docs/backup.md b/docs/backup.md new file mode 100644 index 0000000..44c1dfd --- /dev/null +++ b/docs/backup.md @@ -0,0 +1 @@ +# backup strategy \ No newline at end of file diff --git a/docs/encryption.md b/docs/encryption.md new file mode 100644 index 0000000..a9ed711 --- /dev/null +++ b/docs/encryption.md @@ -0,0 +1,3 @@ +# Encryption + +https://wilw.dev/notes/volume-encryption \ No newline at end of file diff --git a/docs/mounting-new-volumes.md b/docs/mounting-new-volumes.md new file mode 100644 index 0000000..d5db90f --- /dev/null +++ b/docs/mounting-new-volumes.md @@ -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 +``` diff --git a/photoprism/README.md b/photoprism/README.md new file mode 100644 index 0000000..2b9ace9 --- /dev/null +++ b/photoprism/README.md @@ -0,0 +1,12 @@ +# photoprism + +## Configuration + +Setup `.env`: + +``` +PHOTOPRISM_ADMIN_PASSWORD='' +PHOTOPRISM_DATABASE_PASSWORD='' +PHOTOPRISM_MARIADB_PASSWORD='' +PHOTOPRISM_MARIADB_ROOT_PASSWORD='' +`` \ No newline at end of file diff --git a/photoprism/docker-compose.yml b/photoprism/docker-compose.yml new file mode 100644 index 0000000..91459c1 --- /dev/null +++ b/photoprism/docker-compose.yml @@ -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} \ No newline at end of file diff --git a/restic/README.md b/restic/README.md index 67a7b3f..27723b1 100644 --- a/restic/README.md +++ b/restic/README.md @@ -15,6 +15,16 @@ docker-compose exec app restic snapshots -H docker-compose exec app restic restore --include /path/to/file ``` +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