Browse Source

Add photoprism app

master-prepare
Luke Childs 3 years ago
parent
commit
bf4c6f127f
  1. 0
      apps/photoprism/database/.gitkeep
  2. 49
      apps/photoprism/docker-compose.yml
  3. 0
      apps/photoprism/originals/.gitkeep
  4. 0
      apps/photoprism/storage/.gitkeep
  5. 22
      apps/registry.json
  6. 6
      scripts/configure
  7. 3
      templates/.env-sample
  8. 5
      templates/torrc-sample

0
apps/photoprism/database/.gitkeep

49
apps/photoprism/docker-compose.yml

@ -0,0 +1,49 @@
version: "3.7"
services:
web:
# TODO: Update to release tag when photoprism support multiarch images
image: photoprism/photoprism:preview@sha256:7fd6df5b78270d01299c1ce7dd8d4dc4de76540323a7c84f13e39cd48b12eac5
user: "1000:1000"
restart: on-failure
stop_grace_period: "1m"
ports:
- ${APP_PHOTOPRISM_PORT}:${APP_PHOTOPRISM_PORT}
volumes:
- "${APP_DATA_DIR}/originals:/photoprism/originals"
- "${APP_DATA_DIR}/storage:/photoprism/storage"
environment:
PHOTOPRISM_ADMIN_PASSWORD: "moneyprintergobrrr"
PHOTOPRISM_ORIGINALS_LIMIT: 10000
PHOTOPRISM_HTTP_COMPRESSION: "gzip"
PHOTOPRISM_HTTP_PORT: "${APP_PHOTOPRISM_PORT}"
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_SERVER: "${APP_PHOTOPRISM_DB_IP}:3306"
PHOTOPRISM_DATABASE_NAME: "photoprism"
PHOTOPRISM_DATABASE_USER: "photoprism"
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
PHOTOPRISM_SITE_URL: "http://${APP_DOMAIN}:${APP_PHOTOPRISM_PORT}/"
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Digital Asset Management"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
networks:
default:
ipv4_address: ${APP_PHOTOPRISM_IP}
db:
image: mariadb:10.5.8@sha256:8040983db146f729749081c6b216a19d52e0973134e2e34c0b4fd87f48bc15b0
user: "1000:1000"
restart: on-failure
stop_grace_period: "1m"
command: mysqld --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=50
volumes:
- "${APP_DATA_DIR}/database:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: "photoprism"
MYSQL_DATABASE: "photoprism"
MYSQL_USER: "photoprism"
MYSQL_PASSWORD: "photoprism"
networks:
default:
ipv4_address: ${APP_PHOTOPRISM_DB_IP}

0
apps/photoprism/originals/.gitkeep

0
apps/photoprism/storage/.gitkeep

22
apps/registry.json

@ -21,6 +21,28 @@
"defaultPassword": "",
"torOnly": false
},
{
"id": "photoprism",
"category": "Files",
"name": "PhotoPrism",
"version": "210523-b1856b9d",
"tagline": "Self-host your photo and video library",
"description": "PhotoPrism® is a privately hosted app for browsing, organizing, and sharing your photo collection. It makes use of the latest technologies to tag and find pictures automatically without getting in your way. Say goodbye to solutions that force you to upload your visual memories to the cloud!\n\n- Our intuitive user interface makes browsing and organizing your photo collection as easy as it should be — whether it’s on a phone, tablet, or desktop computer.\n\n- Index everything without worrying about duplicates or RAW to JPEG conversion.\n\n- Automatic image classification based on Google TensorFlow. In addition, our indexer detects colors, chroma, luminance, quality, panoramic projection, location type, and many other properties.\n\n- Includes four high-resolution world maps to see where you've been, and for rediscovering long-forgotten shots.\n\n- WebDAV clients, like Microsoft’s Windows Explorer or Apple's Finder, may connect directly to PhotoPrism so that you to can open, edit, and delete files from your computer or phone as if they were local. You may easily sync your pictures with PhotoSync as well.\n\n- Because PhotoPrism is built as a progressive web app, it provides a native app-like experience, and you may install it on your home screen. There's also a community-maintained native app in development.",
"developer": "PhotoPrism",
"website": "https://photoprism.app",
"dependencies": [],
"repo": "https://github.com/photoprism/photoprism",
"support": "https://gitter.im/browseyourlife/community",
"port": 8087,
"gallery": [
"1.jpg",
"2.jpg",
"3.jpg"
],
"path": "",
"defaultPassword": "moneyprintergobrrr",
"torOnly": false
},
{
"id": "pi-hole",
"category": "Networking",

6
scripts/configure

@ -173,6 +173,9 @@ APP_GITEA_IP="10.21.21.39"
APP_GITEA_DB_IP="10.21.21.40"
APP_SIMPLETORRENT_PORT="8086"
APP_SIMPLETORRENT_IP="10.21.21.41"
APP_PHOTOPRISM_IP="10.21.21.42"
APP_PHOTOPRISM_PORT="8087"
APP_PHOTOPRISM_DB_IP="10.21.21.43"
# Generate RPC credentials
if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]] || [[ -z ${BITCOIN_RPC_AUTH+x} ]]; then
@ -351,6 +354,9 @@ for template in "${NGINX_CONF_FILE}" "${BITCOIN_CONF_FILE}" "${LND_CONF_FILE}" "
sed -i "s/<app-gitea-db-ip>/${APP_GITEA_DB_IP}/g" "${template}"
sed -i "s/<app-simple-torrent-port>/${APP_SIMPLETORRENT_PORT}/g" "${template}"
sed -i "s/<app-simple-torrent-ip>/${APP_SIMPLETORRENT_IP}/g" "${template}"
sed -i "s/<app-photoprism-ip>/${APP_PHOTOPRISM_IP}/g" "${template}"
sed -i "s/<app-photoprism-port>/${APP_PHOTOPRISM_PORT}/g" "${template}"
sed -i "s/<app-photoprism-db-ip>/${APP_PHOTOPRISM_DB_IP}/g" "${template}"
done
##########################################################

3
templates/.env-sample

@ -76,3 +76,6 @@ APP_GITEA_IP=<app-gitea-ip>
APP_GITEA_DB_IP=<app-gitea-db-ip>
APP_SIMPLETORRENT_PORT=<app-simple-torrent-port>
APP_SIMPLETORRENT_IP=<app-simple-torrent-ip>
APP_PHOTOPRISM_IP=<app-photoprism-ip>
APP_PHOTOPRISM_PORT=<app-photoprism-port>
APP_PHOTOPRISM_DB_IP=<app-photoprism-db-ip>

5
templates/torrc-sample

@ -68,6 +68,11 @@ HiddenServicePort 80 <app-btcpay-server-ip>:<app-btcpay-server-port>
# lnbits Hidden Service
HiddenServiceDir /var/lib/tor/app-lnbits
HiddenServicePort 80 <app-lnbits-ip>:<app-lnbits-port>
# photoprism Hidden Service
HiddenServiceDir /var/lib/tor/app-photoprism
HiddenServicePort 80 <app-photoprism-ip>:<app-photoprism-port>
# mempool Hidden Service
HiddenServiceDir /var/lib/tor/app-mempool
HiddenServicePort 80 <app-mempool-ip>:<app-mempool-port>

Loading…
Cancel
Save