Simplify configuration #66

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
feature/246
Michael Mayer 4 years ago
parent 825c8b31a7
commit d0199598d0

@ -1,13 +1,10 @@
/assets/photos/*
/assets/cache/*
/photos/*
/frontend/node_modules/*
/node_modules
/assets/resources/database/*
/assets/resources/static/build/*
/assets/resources/nasnet
/assets/resources/nsfw
/assets/testdata
/assets/backups
/assets/static/build/*
/assets/nasnet
/assets/nsfw
/storage
/photoprism
/coverage.*
/frontend/tests/acceptance/screenshots

14
.gitignore vendored

@ -1,20 +1,16 @@
# Application files and directories
/photoprism
/assets/photos/originals/*
/assets/photos/import/*
/assets/photos/export/*
/assets/resources/database/*
!/assets/resources/database/.gitignore
/photos/originals/*
/photos/import/*
/storage/*
/node_modules
/frontend/.eslintcache
/frontend/node_modules/*
/frontend/tests/*.html
/frontend/tests/*.log
/frontend/tests/screenshots
/assets/testdata
/assets/backups
/assets/resources/nasnet
/assets/resources/nsfw
/assets/nasnet
/assets/nsfw
/package-lock.json
*.log
*.db

@ -1,4 +1,4 @@
FROM photoprism/development:20200519
FROM photoprism/development:20200530
# Set up project directory
WORKDIR "/go/src/github.com/photoprism/photoprism"

@ -38,20 +38,20 @@ install-bin:
scripts/build.sh prod ~/.local/bin/$(BINARY_NAME)
install-assets:
$(info Installing assets)
mkdir -p ~/.config/photoprism
mkdir -p ~/.cache/photoprism
mkdir -p ~/.photoprism/storage/settings
mkdir -p ~/.photoprism/storage/cache
mkdir -p ~/.photoprism/storage
mkdir -p ~/.photoprism/assets
mkdir -p ~/Pictures/Originals
mkdir -p ~/Pictures/Import
mkdir -p ~/.local/share/photoprism/resources/database
cp -r assets/resources/static assets/resources/templates assets/resources/nasnet assets/resources/nsfw ~/.local/share/photoprism/resources
rsync -a -v --ignore-existing assets/config/*.yml ~/.config/photoprism
find ~/.local/share/photoprism -name '.*' -type f -delete
clean-local-share:
rm -rf ~/.local/share/photoprism
cp -r assets/static assets/templates assets/nasnet assets/nsfw ~/.photoprism/assets
find ~/.photoprism/assets -name '.*' -type f -delete
clean-local-assets:
rm -rf ~/.photoprism/assets/*
clean-local-cache:
rm -rf ~/.cache/photoprism
rm -rf ~/.photoprism/storage/cache/*
clean-local-config:
rm -f ~/.config/photoprism/*
rm -f ~/.photoprism/storage/settings/*
dep-js:
(cd frontend && npm install --silent)
dep-go:
@ -64,9 +64,9 @@ dep-tensorflow:
scripts/download-nasnet.sh
scripts/download-nsfw.sh
zip-nasnet:
(cd assets/resources && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
(cd assets && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
zip-nsfw:
(cd assets/resources && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
(cd assets && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
build-js:
(cd frontend && env NODE_ENV=production npm run build)
build-go:
@ -126,8 +126,9 @@ clean:
rm -f $(BINARY_NAME)
rm -f *.log
rm -rf node_modules
rm -rf assets/testdata
rm -rf assets/backups
rm -rf storage/testdata
rm -rf storage/backups
rm -rf storage/cache
rm -rf frontend/node_modules
docker-development:
scripts/docker-build.sh development $(DOCKER_TAG)

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 866 B

After

Width:  |  Height:  |  Size: 866 B

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 822 B

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 510 KiB

After

Width:  |  Height:  |  Size: 510 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

@ -5,20 +5,20 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .config.Title }}</title>
<title>{{ .config.SiteTitle }}</title>
<meta property="og:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
<meta property="og:image" content="{{ .config.URL }}api/v1/preview"/>
<meta property="og:url" content="{{ .config.URL }}"/>
<meta property="og:description" content="{{ .config.Description }}"/>
<meta property="og:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
<meta property="og:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
<meta property="og:url" content="{{ .config.SiteUrl }}"/>
<meta property="og:description" content="{{ .config.SiteDescription }}"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
<meta name="twitter:description" content="{{ .config.Description }}"/>
<meta name="twitter:image" content="{{ .config.URL }}api/v1/preview"/>
<meta name="twitter:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
<meta name="twitter:description" content="{{ .config.SiteDescription }}"/>
<meta name="twitter:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
<meta name="author" content="{{ .config.Author }}">
<meta name="description" content="{{ .config.Description }}"/>
<meta name="author" content="{{ .config.SiteAuthor }}">
<meta name="description" content="{{ .config.SiteDescription }}"/>
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .config.Title }}</title>
<title>{{ .config.SiteTitle }}</title>
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">

@ -11,7 +11,11 @@ services:
- "~/.cache/npm:/root/.cache/npm"
- "~/.cache/go-mod:/go/pkg/mod"
environment:
PHOTOPRISM_URL: "http://localhost:2342/"
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse your life"
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
PHOTOPRISM_DEBUG: "false"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_PUBLIC: "true"
@ -24,11 +28,12 @@ services:
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_DSN: "root:photoprism@tcp(photoprism-db:4001)/photoprism?parseTime=true"
PHOTOPRISM_TEST_DRIVER: "test"
PHOTOPRISM_TITLE: "PhotoPrism"
PHOTOPRISM_SUBTITLE: "Browse your life"
PHOTOPRISM_DESCRIPTION: "Personal Photo Management tested by Travis CI."
PHOTOPRISM_AUTHOR: "PhotoPrism.org"
PHOTOPRISM_TEST_DRIVER: "sqlite"
PHOTOPRISM_TEST_DSN: ".test.db"
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/photos/originals"
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/photos/import"
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
PHOTOPRISM_THUMB_UNCACHED: "true" # On-demand rendering of default thumbnails (high memory and cpu usage)
PHOTOPRISM_THUMB_SIZE: 2048 # Default thumbnail size limit (default 2048, min 720, max 3840)

@ -14,7 +14,11 @@ services:
shm_size: "2gb"
environment:
TF_CPP_MIN_LOG_LEVEL: 0 # Show TensorFlow log messages for development
PHOTOPRISM_URL: "http://localhost:2342/"
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse your life"
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
PHOTOPRISM_DEBUG: "true"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_PUBLIC: "true"
@ -26,17 +30,12 @@ services:
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_DSN: "root:photoprism@tcp(photoprism-db:4001)/photoprism?parseTime=true"
PHOTOPRISM_TEST_DRIVER: "test"
PHOTOPRISM_TEST_DRIVER: "sqlite"
PHOTOPRISM_TEST_DSN: ".test.db"
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
PHOTOPRISM_CACHE_PATH: "/go/src/github.com/photoprism/photoprism/assets/cache"
PHOTOPRISM_RESOURCES_PATH: "/go/src/github.com/photoprism/photoprism/assets/resources"
PHOTOPRISM_CONFIG_PATH: "/go/src/github.com/photoprism/photoprism/assets/config"
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/import"
PHOTOPRISM_TEMP_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/temp"
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/originals"
PHOTOPRISM_TITLE: "PhotoPrism"
PHOTOPRISM_SUBTITLE: "Browse your life"
PHOTOPRISM_AUTHOR: "PhotoPrism.org"
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/photos/originals"
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/photos/import"
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
PHOTOPRISM_THUMB_UNCACHED: "true" # On-demand rendering of default thumbnails (high memory and cpu usage)
PHOTOPRISM_THUMB_SIZE: 2048 # Default thumbnail size limit (default 2048, min 720, max 3840)

@ -4,18 +4,19 @@ FROM photoprism/photoprism:latest as build
ENV TF_CPP_MIN_LOG_LEVEL 2
# Copy assets
COPY /docker/demo/index.tmpl /photoprism/assets/resources/templates
COPY /docker/demo/index.tmpl /photoprism/assets/templates
# Download example photos
RUN wget -qO- https://dl.photoprism.org/fixtures/demo.tar.gz | tar xvz -C /photoprism/import
# Configure PhotoPrism
ENV PHOTOPRISM_STORAGE_PATH /photoprism/storage
ENV PHOTOPRISM_DEBUG false
ENV PHOTOPRISM_READONLY false
ENV PHOTOPRISM_PUBLIC true
ENV PHOTOPRISM_EXPERIMENTAL true
ENV PHOTOPRISM_UPLOAD_NSFW false
ENV PHOTOPRISM_DETECT_NSFW true
ENV PHOTOPRISM_DETECT_NSFW false
ENV PHOTOPRISM_SIDECAR_JSON true
ENV PHOTOPRISM_SIDECAR_YAML false
ENV PHOTOPRISM_SIDECAR_HIDDEN true

@ -5,21 +5,21 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .config.Title }}</title>
<title>{{ .config.SiteTitle }}</title>
<meta property="og:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
<meta property="og:image" content="{{ .config.URL }}api/v1/preview"/>
<meta property="og:url" content="{{ .config.URL }}"/>
<meta property="og:description" content="{{ .config.Description }}"/>
<meta property="og:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
<meta property="og:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
<meta property="og:url" content="{{ .config.SiteUrl }}"/>
<meta property="og:description" content="{{ .config.SiteDescription }}"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
<meta name="twitter:description" content="{{ .config.Description }}"/>
<meta name="twitter:image" content="{{ .config.URL }}api/v1/preview"/>
<meta name="twitter:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
<meta name="twitter:description" content="{{ .config.SiteDescription }}"/>
<meta name="twitter:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
<meta name="twitter:site" content="@browseyourlife"/>
<meta name="author" content="{{ .config.Author }}">
<meta name="description" content="{{ .config.Description }}"/>
<meta name="author" content="{{ .config.SiteAuthor }}">
<meta name="description" content="{{ .config.SiteDescription }}"/>
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">

@ -1,4 +1,4 @@
FROM photoprism/development:20200519 as build
FROM photoprism/development:20200530 as build
# Set up project directory
WORKDIR "/go/src/github.com/photoprism/photoprism"
@ -54,29 +54,22 @@ ENV TF_CPP_MIN_LOG_LEVEL 2
ENV PATH /photoprism/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
ENV PHOTOPRISM_ORIGINALS_PATH /photoprism/originals
ENV PHOTOPRISM_IMPORT_PATH /photoprism/import
ENV PHOTOPRISM_TEMP_PATH /photoprism/temp
ENV PHOTOPRISM_CACHE_PATH /photoprism/cache
ENV PHOTOPRISM_CONFIG_PATH /photoprism/config
ENV PHOTOPRISM_CONFIG_FILE /photoprism/config/photoprism.yml
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
ENV PHOTOPRISM_RESOURCES_PATH /photoprism/assets/resources
ENV PHOTOPRISM_LOG_FILENAME /photoprism/photoprism.log
ENV PHOTOPRISM_PID_FILENAME /photoprism/photoprism.pid
# Copy files to /photoprism
COPY --from=build /root/.local/bin/photoprism /photoprism/bin/photoprism
COPY --from=build /root/.local/share/photoprism /photoprism/assets
COPY --from=build /root/.config/photoprism /photoprism/config
COPY --from=build /root/.photoprism/assets /photoprism/assets
# Create directories
RUN mkdir -p \
/photoprism/originals \
/photoprism/import \
/photoprism/database \
/photoprism/temp \
/photoprism/cache
/photoprism/storage/settings \
/photoprism/storage/cache
RUN chmod -R 777 /photoprism

@ -138,29 +138,22 @@ ENV TF_CPP_MIN_LOG_LEVEL 2
ENV PATH /photoprism/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
ENV PHOTOPRISM_ORIGINALS_PATH /photoprism/originals
ENV PHOTOPRISM_IMPORT_PATH /photoprism/import
ENV PHOTOPRISM_TEMP_PATH /photoprism/temp
ENV PHOTOPRISM_CACHE_PATH /photoprism/cache
ENV PHOTOPRISM_CONFIG_PATH /photoprism/config
ENV PHOTOPRISM_CONFIG_FILE /photoprism/config/photoprism.yml
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
ENV PHOTOPRISM_RESOURCES_PATH /photoprism/assets/resources
ENV PHOTOPRISM_LOG_FILENAME /photoprism/photoprism.log
ENV PHOTOPRISM_PID_FILENAME /photoprism/photoprism.pid
# Copy files to /photoprism
COPY --from=build /root/.local/bin/photoprism /photoprism/bin/photoprism
COPY --from=build /root/.local/share/photoprism /photoprism/assets
COPY --from=build /root/.config/photoprism /photoprism/config
COPY --from=build /root/.photoprism/assets /photoprism/assets
# Create directories
RUN mkdir -p \
/photoprism/originals \
/photoprism/import \
/photoprism/database \
/photoprism/temp \
/photoprism/cache
/photoprism/storage/settings \
/photoprism/storage/cache
RUN chmod -R 777 /photoprism

@ -19,20 +19,20 @@ services:
timeout: 15s
retries: 5
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
PHOTOPRISM_URL: "https://demo.photoprism.org/"
PHOTOPRISM_TITLE: "PhotoPrism"
PHOTOPRISM_SUBTITLE: "Browse your life"
PHOTOPRISM_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_AUTHOR: "Anonymous"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_DEBUG: "false"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_PUBLIC: "false"
PHOTOPRISM_DISABLE_SETTINGS: "false"
PHOTOPRISM_DEBUG: "false" # Run in debug mode
PHOTOPRISM_PUBLIC: "false" # No authentication / password required
PHOTOPRISM_READONLY: "false" # Don't add files or modify originals directory in any way
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that may be offensive
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive
PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse your life"
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Plain text or bcrypt hash (escape "$" with "$$")
PHOTOPRISM_WEBDAV_PASSWORD: "photoprism" # Plain text only (username "photoprism")
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
@ -48,14 +48,12 @@ services:
PHOTOPRISM_THUMB_LIMIT: 3840 # On-demand thumbnail size limit (default 2048, min 720, max 3840)
PHOTOPRISM_JPEG_QUALITY: 90 # Use 95 for high-quality thumbnails (requires more storage)
PHOTOPRISM_JPEG_HIDDEN: "true" # Create JPEG files in .photoprism (when converting other file types)
PHOTOPRISM_STORAGE_PATH: "/photoprism/storage"
volumes:
- "~/Pictures/Originals:/photoprism/originals" # [local path]:[container path]
- "~/Pictures/Import:/photoprism/import" # [local path]:[container path] (optional)
- "photoprism-config:/photoprism/config" # keep settings
- "photoprism-cache:/photoprism/cache" # keep thumbnail cache
- "photoprism-storage:/photoprism/storage" # Keep cache, settings and database
volumes: # keep this
photoprism-config:
driver: local
photoprism-cache:
photoprism-storage:
driver: local

@ -18,20 +18,20 @@ services:
timeout: 15s
retries: 5
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
PHOTOPRISM_URL: "http://localhost:2342/"
PHOTOPRISM_TITLE: "PhotoPrism"
PHOTOPRISM_SUBTITLE: "Browse your life"
PHOTOPRISM_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_AUTHOR: "Anonymous"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_DEBUG: "false"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_PUBLIC: "false"
PHOTOPRISM_DISABLE_SETTINGS: "false"
PHOTOPRISM_DEBUG: "false" # Run in debug mode
PHOTOPRISM_PUBLIC: "false" # No authentication / password required
PHOTOPRISM_READONLY: "false" # Don't add files or modify originals directory in any way
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that may be offensive
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive
PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse your life"
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Plain text or bcrypt hash (escape "$" with "$$")
PHOTOPRISM_WEBDAV_PASSWORD: "photoprism" # Plain text only (username "photoprism")
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
@ -47,11 +47,11 @@ services:
PHOTOPRISM_THUMB_LIMIT: 3840 # On-demand thumbnail size limit (default 2048, min 720, max 3840)
PHOTOPRISM_JPEG_QUALITY: 90 # Use 95 for high-quality thumbnails (requires more storage)
PHOTOPRISM_JPEG_HIDDEN: "true" # Create JPEG files in .photoprism (when converting other file types)
PHOTOPRISM_STORAGE_PATH: "/photoprism/storage"
volumes:
- "~/Pictures/Originals:/photoprism/originals" # [local path]:[container path]
- "~/Pictures/Import:/photoprism/import" # [local path]:[container path] (optional)
- "photoprism-config:/photoprism/config" # keep settings
- "photoprism-cache:/photoprism/cache" # keep thumbnail cache
- "photoprism-storage:/photoprism/storage" # Keep cache, settings and database
# photoprism-db: # Uncomment, if you want to use MariaDB instead of SQLite
# image: mariadb:10.5 # Alternatively mysql:8.0
@ -66,9 +66,7 @@ services:
# MYSQL_DATABASE: photoprism
volumes: # keep this
photoprism-config:
driver: local
photoprism-cache:
photoprism-storage:
driver: local
# photoprism-database:
# driver: local

@ -1798,7 +1798,8 @@
},
"minimist": {
"version": "1.2.0",
"resolved": ""
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
}
}
},
@ -11237,7 +11238,8 @@
},
"minimist": {
"version": "1.2.0",
"resolved": ""
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"postcss": {
"version": "7.0.21",
@ -13030,7 +13032,8 @@
},
"minimist": {
"version": "1.2.0",
"resolved": ""
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"parse-json": {
"version": "2.2.0",
@ -13441,7 +13444,8 @@
},
"minimist": {
"version": "1.2.0",
"resolved": ""
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"string-width": {
"version": "3.1.0",

@ -100,10 +100,10 @@ router.beforeEach((to, from, next) => {
router.afterEach((to) => {
if (to.meta.title) {
config.page.title = to.meta.title;
window.document.title = "PhotoPrism: " + to.meta.title;
window.document.title = config.values.siteTitle + ": " + to.meta.title;
} else {
config.page.title = "";
window.document.title = "PhotoPrism";
window.document.title = config.values.siteTitle;
}
});

@ -2,6 +2,7 @@ import Event from "pubsub-js";
import themes from "../resources/themes.json";
import translations from "../resources/translations.json";
import Api from "./api";
import {config} from "../session";
class Config {
/**
@ -14,9 +15,7 @@ class Config {
this.$vuetify = null;
this.translations = translations;
this.page = {
title: "PhotoPrism",
};
this.page = {};
if (!values) {
console.warn("config: values are empty");
@ -25,6 +24,7 @@ class Config {
return;
}
this.page.title = values.siteTitle;
this.values = values;
this.debug = !!values.debug;

@ -4,7 +4,7 @@
@click.stop="showNavigation()">
<v-toolbar-side-icon class="p-navigation-show"></v-toolbar-side-icon>
<v-toolbar-title class="p-navigation-title">{{ page.title }}</v-toolbar-title>
<v-toolbar-title class="p-navigation-title">{{ config.siteTitle }}</v-toolbar-title>
<v-spacer></v-spacer>

@ -297,7 +297,7 @@
this.model = m;
this.filter.order = m.Order;
window.document.title = `PhotoPrism: ${this.model.Title}`;
window.document.title = `${this.$config.get("siteTitle")}: ${this.model.Title}`;
return Promise.resolve(this.model)
});
@ -319,7 +319,7 @@
}
}
window.document.title = `PhotoPrism: ${this.model.Title}`
window.document.title = `${this.$config.get("siteTitle")}: ${this.model.Title}`
this.dirty = true;
this.scrollDisabled = false;

@ -30,7 +30,7 @@ export default [
name: "photos",
path: "/photos",
component: Photos,
meta: {title: c.subtitle, auth: true},
meta: {title: c.siteCaption, auth: true},
props: {staticFilter: {photo: "true"}},
},
{

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save