Commit graph

580 commits

Author SHA1 Message Date
Michael Mayer
f98aa619ec Security: Disable HTTPS redirect by default #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-13 23:44:51 +02:00
Michael Mayer
884dea17de Security: Use individual preview tokens for each user account #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-13 22:11:02 +02:00
Michael Mayer
38722e72c8 Config: Use mutex when resolving the path of external binaries
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-12 18:39:30 +02:00
Michael Mayer
0297006876 API: Refactor authentication tests to use conf.SetAuthMode() #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-12 18:11:20 +02:00
Michael Mayer
265fdd0dd3 Security: Refactor certs path config #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-12 15:33:35 +02:00
Michael Mayer
d198a1d23f Security: Improve rate limit and HTTP proxy configuration #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-12 14:57:33 +02:00
Michael Mayer
6abbc39017 Security: Add http rate limiter and auto tls mode #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-11 22:44:11 +02:00
Michael Mayer
dc39fc44d2 Security: Add "header" package for setting common response headers #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-09 17:16:49 +02:00
Michael Mayer
ff8bc9f5da MariaDB: Show error if an unsupported server version is used #2381
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-08 18:50:49 +02:00
Michael Mayer
1b89915cc4 HEIF/AVIF/DNG: Improve conversion to JPEG #1246 #2726 #2291 #2593
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-07 16:45:49 +02:00
Michael Mayer
dc33ff690a HEIF: Remove support for deprecated convert script #2726
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-06 22:11:41 +02:00
Michael Mayer
07816bfb77 HEIF: Use heif-convert.sh as wrapper if exists #2726
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-06 21:55:31 +02:00
Michael Mayer
1473df3c58 Search: Hide results needing review if the user is not an admin #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-04 02:57:15 +02:00
Michael Mayer
bac6ae0cbd Sessions: Add max age and timeout config options #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-03 22:59:29 +02:00
Michael Mayer
4c516cac38 Auth: Rename database tables and delete temporary tables #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-02 22:09:02 +02:00
Michael Mayer
6e74f16a77 Auth: Open album share links in the regular user interface #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-02 11:38:30 +02:00
Michael Mayer
323d495840 Auth: Apply user rights and permissions in the search API #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-30 00:42:19 +02:00
Michael Mayer
f5a8c5a45d Auth: Session and ACL enhancements #98 #1746
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-28 09:01:17 +02:00
Michael Mayer
810914a578 Config: Increase default resolution limit from 100 to 150 MP #2677
By default, a limit is set to avoid support-intensive crashes of our
Community Edition and to protect the hosted service from
denial-of-service attacks.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-18 14:06:13 +02:00
Michael Mayer
a7872a684b SQLite: Set _busy_timeout default to reduce locking issues #2707
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-15 07:29:09 +02:00
Michael Mayer
278ebd1c62 Images: Add AV1 Image File Format (AVIF) support #2706
AVIF can be converted

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-15 00:43:08 +02:00
Michael Mayer
9f81151475 RAW: Remove CR3 from Darktable file extension blacklist #2703
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-14 21:04:05 +02:00
Michael Mayer
5e7ff6b1b2 Auth: Add unique index to user_slug in auth_users table #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-02 22:55:57 +02:00
Michael Mayer
85561547cc Auth: Add "PHOTOPRISM_ADMIN_USER" option and refactor user table #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-02 21:30:50 +02:00
Michael Mayer
6da0d4244d Config: Update unit tests after changing develop base image
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-02 16:19:18 +02:00
Michael Mayer
fb921a4932 CLI: Generate thumbs for files in the sidecar folder #2669
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-08-31 18:53:04 +02:00
Michael Mayer
78665e5869 Albums: Ignore private pictures only if feature is enabled #2570
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-08-31 17:42:57 +02:00
Michael Mayer
b072a18a17 Backend: Run "make fmt" with Go v1.19
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-08-10 16:09:21 +02:00
Michael Mayer
d8e0364dbb Search: Ignore public album filter if "Private" feat is disabled #2570
This needs to be very well tested and discussed, as these changes can
lead to private photos being accidentally published. Thank you!

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-08-01 15:57:19 +02:00
Michael Mayer
0e1222c830 Auth: Activate public mode via PHOTOPRISM_AUTH_MODE="public" #2565
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-30 12:34:57 +02:00
Michael Mayer
77aed0a08b Config: Update command help #2536
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-29 17:57:54 +02:00
Michael Mayer
3b2f53da07 CI: Update test.sh script and config_filepaths_test.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-22 14:58:20 +02:00
Michael Mayer
372ccb9a29 Config: Improve parameter comments in docker-compose.yml examples #2536
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-22 09:59:08 +02:00
Michael Mayer
4a4c322779 Cleanup: Refactor deleting related sidecar files #2521
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-21 20:23:00 +02:00
Michael Mayer
58521190ba Zip: Fix potential filesystem permission and timing issues #2532
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-19 20:41:36 +02:00
Michael Mayer
0852e659c2 API: Improve logs and add /api/v1/connect endpoint for auth callbacks
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-19 16:58:43 +02:00
Michael Mayer
a06646a181 Config: Refactor initialization
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-14 23:34:54 +02:00
Michael Mayer
49be9b873e Config: Propagate backend session status
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-14 22:35:42 +02:00
Michael Mayer
d02a61d099 Entity Package: Add database schema documentation
see https://github.com/photoprism/photoprism/discussions/1768#discussioncomment-3125601

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-12 13:37:08 +02:00
Michael Mayer
20a82efda4 Auth: Shorten passwd mode option (password still works) #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-11 05:08:15 +02:00
Michael Mayer
591a656270 Auth: Add PHOTOPRISM_AUTH_MODE config option #98 #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-07 19:12:28 +02:00
Michael Mayer
5ec90a5fff Index: Skip redundant thumbs and support symbolic file links #1049 #1874
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-06 23:01:54 +02:00
Michael Mayer
e739dd3e89 Auth: Add support for config and routing extensions (WIP) #782 #2478
Enables developers to extend the existing config and API. Initial proof
of concept and work in progress. Implementation details may change.
Feedback welcome!

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-05 23:13:34 +02:00
Michael Mayer
b47d71d659 Config: Include disable-webdav and http-compression in CLI report #2476 2022-06-28 16:14:01 +02:00
Michael Mayer
b09112058e Videos: Transcode supported formats if bitrate exceeds limit #2461
Implements Option (1) as described in the issue comments.
2022-06-26 19:47:12 +02:00
Michael Mayer
c86c68aebe WebDAV: Add assertions to TestConfig_DisableWebDAV #2464 2022-06-25 03:48:05 +02:00
Michael Mayer
95936d0e84 WebDAV: Fully disable endpoint in public mode as it is not needed #2464 2022-06-25 03:44:09 +02:00
Michael Mayer
519f0c49c9 Videos: Stream OGV, VP8, VP9, AV1, WebM, and HEVC if supported #2461 2022-06-24 06:59:22 +02:00
Michael Mayer
6aa08d64c2 Docs: Update membership info URL
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-05-26 19:33:41 +02:00
Michael Mayer
b250a106b7 UX: Improve nav toolbar, scrollbar, and footer 2022-05-20 21:31:29 +02:00
Michael Mayer
d6461e9de6 Auth: Update password length in config/global_flags.go #2339 2022-05-20 19:28:12 +02:00
Michael Mayer
fb481ce2d8 CLI: Pass edition in build specific metadata 2022-05-20 19:27:33 +02:00
Michael Mayer
c865330876 CLI: Put build specific information in app metadata 2022-05-20 15:41:18 +02:00
Michael Mayer
7c688f5ea2 Frontend: Update translations and navigation title 2022-05-01 18:05:41 +02:00
Michael Mayer
e59041e93f Backend: Update Go package descriptions to improve generated docs
see https://pkg.go.dev/github.com/photoprism/photoprism
2022-04-25 09:53:55 +02:00
Michael Mayer
52d1bfef64 Makefile: Abort installation if directory already exists 2022-04-22 18:46:16 +02:00
Michael Mayer
74b2b03d94 Config: Improve Config.WakeupInterval() and add tests 2022-04-22 18:24:59 +02:00
Michael Mayer
b545c92be9 Config: Prevent background worker from running more than once per minute 2022-04-22 18:06:45 +02:00
Michael Mayer
8638929d84 Config: Automatically generate command-flag docs #1017 #2195 #2227 #2250 2022-04-22 17:38:40 +02:00
Michael Mayer
2d41074e60 CLI: Define short names for additional command-line flags #2195
Adds short names for sidecar-path, backup-path, cache-path, import-path,
assets-path, and temp-path command-line flags.
2022-04-21 22:24:45 +02:00
Michael Mayer
b595d5df7a Library: Display RAW previews and num of actual files in Originals #2273 2022-04-21 22:17:26 +02:00
Michael Mayer
27b84365da Convert: Set virtual home in cache path for external CLI commands #2262 2022-04-18 13:55:17 +02:00
Michael Mayer
fefaada1f1 Index: Improve handling of archived photos, skip when possible #2257 2022-04-16 12:39:47 +02:00
Michael Mayer
92e6c4fe1e Download: Add Disabled, Originals, MediaRaw & MediaSidecar Flags #2234
Extends DownloadSettings with 4 additional options:
- Name: File name pattern for downloaded files (existed)
- Disabled: Disables downloads
- Originals: Only download files stored in "originals" folder
- MediaRaw: Include RAW image files
- MediaSidecar: Include metadata sidecar files (JSON, XMP, YAML)
2022-04-15 09:42:07 +02:00
Michael Mayer
0096243240 Metadata: Report supported Exiftool, XMP, and Dublin Core tags #2252
Replaces the --no-wrap flag with --md in all "photoprism show ..."
subcommands, as this is easier to understand. See also #2247.
Unused code was opportunistically removed along the way.
2022-04-14 10:49:56 +02:00
Michael Mayer
8f2155711f Config/CLI: Rename --config-file flag and improve command help #2250 2022-04-13 22:43:49 +02:00
Michael Mayer
82d61d1f93 File Types: Add experimental support for animated GIFs #590 #2207
Animated GIFs are transcoded to AVC because it is much smaller and
thus also suitable for long/large animations. In addition, this commit
adds support for more metadata fields such as frame rate, number of
frames, file capture timestamp (unix milliseconds), media type,
and software version. Support for SVG files can later be implemented in
a similar way.
2022-04-13 22:17:59 +02:00
Michael Mayer
04609d536d CLI: Show --admin-password flag at the top in command help #2195 #2248
Short name was changed from -a to --pw after the --auth flag was added.
2022-04-12 20:00:06 +02:00
Michael Mayer
915ff42133 Auth: Add --auth flag, increase min password length to 8 chars #98 #2248 2022-04-12 19:44:43 +02:00
Michael Mayer
e42b870c09 CLI: Update and display the list of supported file formats #2247 2022-04-12 19:14:21 +02:00
Michael Mayer
f927c68c4f UX: Skip RAW files by default when clicking Download All #2234
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-10 17:02:09 +02:00
Michael Mayer
9085f729d2 CLI: Update thumb flag short names #2195
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-09 14:38:56 +02:00
Michael Mayer
d9cc0c5a83 CLI: Improve flag order, names, and descriptions #2195
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-08 14:45:03 +02:00
Michael Mayer
30da260a11 Config: Refactor options and flags source files #2195
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-08 14:22:07 +02:00
Michael Mayer
67fdecfbef CLI: Improve parameter aliases, order, and descriptions #2195
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-07 11:56:44 +02:00
Michael Mayer
b9ab3befe5 CLI: Add -a alias for --admin-password #2195
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-07 01:23:15 +02:00
Michael Mayer
4ec7dbc90f Config: Add thumb-color option to set a standard color profile #1474
You can leave this blank to disable the conversion from Display P3
to sRGB. We will add more options at a later time.
2022-04-06 18:41:15 +02:00
Michael Mayer
9134c79f4c Config: Add option to skip all RAW images when indexing #2227 2022-04-06 17:46:41 +02:00
Michael Mayer
b32d9bf30c Videos: Improve FFmpeg parameters for Intel QSV #2222
This commit also removes PHOTOPRISM_FFMPEG_BUFFERS as it is only
used/required by Video4Linux. 64 seems to be a good value, so we pass
it statically as for the other encoders. Examples have been updated.
2022-04-05 16:48:53 +02:00
Michael Mayer
c74fcbf282 People: Show real name instead of uid in logs #1438 #2182
Since caching all subject data proved too complex in the time available,
this implementation uses a simple key/value lookup table to cache
subject names and perform backward searches by uid.
2022-04-04 14:21:43 +02:00
Michael Mayer
4c583f7f1d People: Disable updates if the worker does not run often enough #2182 2022-04-03 14:51:58 +02:00
Michael Mayer
58a3d0b682 Config: Change "config-path" short name to "conf" in flags.go #2195 2022-04-02 22:44:04 +02:00
Michael Mayer
d77d36c977 Config: Update short names for common CLI parameters #2195 2022-04-02 20:34:29 +02:00
Michael Mayer
83209884f6 Config: Update short names for common CLI parameters #2195 2022-04-02 20:15:38 +02:00
Michael Mayer
a604e9a9c6 Index: Improve file size/resolution checks, add WebP support #1017 #1226
Renames the config flag to from "megapixel-limit" to "resolution-limit".
Adds native support for the WebP image file format.
2022-04-02 18:04:11 +02:00
Michael Mayer
728cb2144c Config: Add option to limit originals size in megapixels #1017
Adds the `megapixel-limit` and `thumb-colorspace` config options.
2022-04-01 21:14:22 +02:00
Michael Mayer
ca4c2ae199 Thumbnails: Rename QualityMedium to QualityDefault #2215
Seems easier to read and understand in context.
2022-04-01 13:30:20 +02:00
Michael Mayer
44efdd232a Config: Improve flag descriptions of JPEG and thumbnail parameters #2215 2022-04-01 13:25:25 +02:00
Michael Mayer
3698a860c6 CI: Improve stability when running unit tests in parallel
Adds SQLite memory namespaces to avoid potential conflicts.
2022-03-31 17:55:40 +02:00
Michael Mayer
7c58f87c9f Performance: Reduce default JPEG quality from 92 to 85 #1438 2022-03-31 12:23:29 +02:00
Michael Mayer
ab5f1629eb UX: Dynamic infinite-scroll-distance based on window height #1438
In addition, you can now change the batch size in settings.yml.
2022-03-31 10:22:01 +02:00
Michael Mayer
9eda12ac20 Performance: Refactor database schema and UI components #995 #1438 #1811 2022-03-30 20:36:25 +02:00
Michael Mayer
686a8ab9b4 Search: Refactor photo search, fix test data and unit tests #1994 2022-03-29 00:21:50 +02:00
Michael Mayer
2f5d1fea50 Config: Refactor initSettings() and initHub()
This prevents redundant initialization when called repeatedly.
2022-03-28 16:13:41 +02:00
Michael Mayer
39b0530313 Metadata: Skip brute-force search if no Exif headers were found #2196 2022-03-28 15:57:29 +02:00
Michael Mayer
72d6af6674 CLI: Add short names for common command parameters/flags #2195 2022-03-28 13:45:29 +02:00
Michael Mayer
fdf3d26277 Darktable: Disable CR3 until fully supported by Debian #445 #1632
Even with the latest Darktable 3.8.1 in Debian 12 "Bookworm" CR3 does
not seem to be supported. Probably this is due to an outdated or
incompatible library that needs to be updated by the Debian team first.
2022-03-23 13:31:23 +01:00
Michael Mayer
d0beab3f09 Config: Update expected flags in config_test.go and client_test.go 2022-03-16 17:41:50 +01:00
Michael Mayer
9301a4bb10 Config: Add test and demo flags 2022-03-16 17:34:09 +01:00
Michael Mayer
6bebf9043b Config: Add Docker env string to backend requests (develop, prod)
For easier debugging so that development environments can be identified.
2022-03-02 14:16:49 +01:00