Skip to content

Instantly share code, notes, and snippets.

@mceachen
Created January 8, 2020 18:00
Show Gist options
  • Save mceachen/b5c2558d9a905cadd16d29daaca2be18 to your computer and use it in GitHub Desktop.
Save mceachen/b5c2558d9a905cadd16d29daaca2be18 to your computer and use it in GitHub Desktop.
PhotoStructure settings snapshots
#
# Hello!
#
# These are settings for PhotoStructure, and are formatted using TOML. See
# <https://github.com/toml-lang/toml>.
#
# NOTE: Please shut down PhotoStructure before editing this file.
#
# Most settings have reasonable defaults, which are provided after the
# description. Remove the "#" from the beginning of the line to override the
# default.
#
# Thanks for using PhotoStructure! Visit <https://support.photostructure.com>
# or email <mailto:[email protected]> if you find any bugs or have any
# questions, ideas, or feedback. We'd love to hear from you.
#
# --
#
# PhotoStructure v1.2.3
#
# If set, this email will be added to error reports, so we can contact you to
# help debug the issue. It is not required.
# (env: PS_EMAIL)
#
# email = "[email protected]"
# If true, PhotoStructure will send crash reports when it encounters errors.
# Crash reports may include the path to the file that caused an error, system
# metadata, and recent log messages.
# (env: PS_REPORT_ERRORS)
#
# reportErrors = true
# Set this to zero to remove all bugs in PhotoStructure.
#
# HUR HUR #DADJOKE
#
# If your system generates more than this number of errors in the course of a
# day, the subsequent error reports will not be reported.
# (env: PS_MAX_ERRORS_PER_DAY)
#
# maxErrorsPerDay = 3
# Network port for rpc access to your PhotoStructure library. Only binds to
# loopback (even if exposeNetworkWithoutAuth is true).
# (env: PS_RPC_PORT)
#
# rpcPort = 1807
# Network port for HTTP access to your PhotoStructure library.
# (env: PS_HTTP_PORT)
#
# httpPort = 1787
# How long should unused HTTP sessions exist before requiring visitors to log
# back in? This defaults to 180 days, just to maximize convenience.
# (env: PS_SESSION_TIMEOUT_HOURS)
# {"minValue":1,"maxValue":8760}
#
# sessionTimeoutHours = 4320
# Normally the web service is bound to loopback, so your PhotoStructure
# library is only accessible to the computer running PhotoStructure. Setting
# this to true will expose your library to all computers on your network (if
# they know your PhotoStructure port). You should own or trust all systems on
# that network, as there is no auth in PhotoStructure currently. Future
# versions of PhotoStructure will add authorization mechanisms, at which point
# this setting will be deleted.
#
# ** Don't enable this unless you know what you're doing. **
# (env: PS_EXPOSE_NETWORK_WITHOUT_AUTH)
#
# exposeNetworkWithoutAuth = false
# If you chose to copy assets into your library, they will be copied into
# <library directory>/<result of this pattern>/<original imagename>.
# See
# <https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html#
# instance-method-toFormat> and
# <https://moment.github.io/luxon/docs/manual/formatting.html#table-of-
# tokens>.
# (env: PS_ASSET_SUBDIR_FORMAT)
#
# assetSubdirectoryDatestampFormat = "y/y-MM-dd"
# Should JPEG photos be validated before importing? If a JPEG has any decoding
# errors, and this setting is true, that file will not be imported into your
# library. Enabling this feature slows down imports.
# (env: PS_VALIDATE_JPEG_IMAGES)
#
# validateJpegImages = true
# Should raw-format images (like NEF, CR2, ARW, and ORF) be validated before
# importing? If an image has any decoding errors, and this setting is true,
# that file will not be imported into your library. Enabling this feature
# slows down imports.
# (env: PS_VALIDATE_RAW_IMAGES)
#
# validateRawImages = true
# Should videos be validated before importing? If a video has any decoding
# errors, and this setting is true, that file will not be imported into your
# library. Enabling this feature slows down imports, as videos must be
# "played" to be validated. Only ffmpeg currently supports video validation;
# if you use VLC, this setting is ignored. Note that if you set
# transcodeVideos to true, this setting is effectively true for all videos
# that aren't MP4-encoded.
# (env: PS_VALIDATE_VIDEOS)
#
# validateVideos = true
# Should videos be transcoded during import? VLC must be installed. Note that
# this dramatically slows down imports, and *dramatically* increases the disk
# space your library will need to use. If this is set to false, though, your
# browser will not be able to render your videos unless they are already MP4-
# encoded.
# (env: PS_TRANSCODE_VIDEOS)
#
# transcodeVideos = true
# When capturing a frame from videos for thumbnails, how many seconds should
# be passed over before capturing a frame? A value of 0 means capture from the
# start of the video. Frequently, though, videos start out of focus, so we
# default to 1 for better frame clarity.
# Note that if a video is shorter than this value, the frame will be captured
# from the middle of the video.
# (env: PS_VIDEO_FRAME_AT_SEC)
#
# videoFrameAtSec = 1
# When PhotoStructure crops images and videos to square thumbnails, it needs
# to crop non-square images to a square. The default, "attention," focuses on
# faces and higher image energy, but is more expensive than simply cropping to
# the center of the image (which is faster, but will mean less-nice cropping,
# where faces are chopped in half). More details are available here:
# https://sharp.dimens.io/en/stable/api-resize/
# (env: PS_SQUARE_THUMB_STRATEGY)
# {"validValues":["center","entropy","attention"]}
#
# squareThumbStrategy = "attention"
# Should previews be sharpened? This can make the images "pop" a bit more, but
# almost doubles the time it takes to make the thumbnails.
# (env: PS_SHARPEN)
#
# sharpen = false
# Should preview JPEGs be progressively encoded? If set, thumbnails will take
# ~15% longer to generate, but FHD/QHD/UHD previews will be smaller.
# (env: PS_PROGRESSIVE)
#
# progressive = true
# This controls the resolutions that PhotoStructure creates for every asset.
# Note that resolutions will be skipped if there already is a preview value
# with 2.5x the megapixels, so even though there are a lot of sizes here,
# you'll only see 3-4 images on your disk per asset.
# (env: PS_PREVIEW_RESOLUTIONS)
# {"validValues":["uhd8k","uhd5k","uhd4k","qhd","fhd","hd","wvga","qvga","qqvga"]}
#
# previewResolutions = [
# "uhd4k",
# "qhd",
# "fhd",
# "hd",
# "wvga",
# "qvga",
# "qqvga"
# ]
# Filesystem traversal can be dangerous business with scratched CDROMs and old
# busted hard drives. To prevent PhotoStructure from getting "stuck" when
# trying to read these devices, it will timeout directory iteration if reading
# a directory entry exceeds this value. The default of 30 seconds should cover
# most issues with spun-down hard drives and NAS/WAN latency.
# (env: PS_STAT_TIMEOUT_SECONDS)
# {"minValue":1,"maxValue":300}
#
# statTimeoutSeconds = 30
# What's the minimum photo or video size you want imported into your library?
# (This can prevent small GIFs and screenshots from being imported).
# (env: PS_MIN_ASSET_SIZE)
#
# minFileSizeBytes = 50000
# What's the maximum photo or video size you want imported into your library?
# (This can prevent movies from being pulled into and filling up your library)
# (env: PS_MAX_ASSET_SIZE)
#
# maxFileSizeBytes = 500000000
# Normally PhotoStructure requires images to have an EXIF tags for Make and
# Model. This prevents unwanted preview images from other photo apps and
# screenshots from being imported. If you have images you want in your library
# that don't have these tags, set this to false. Note that this is ignored for
# video files, as those files seldom have Make and Model set (and would
# prevent most video files from being imported).
# (env: PS_REQUIRE_MAKE_MODEL)
#
# requireMakeModel = true
# What's the minimum number of pixels an image's dimensions must meet or
# exceed to be imported? Note that this value is applied to both the height
# and width of the image. The default comes from the VGA standard of 640x480.
# (env: PS_MIN_IMAGE_DIMENSION)
#
# minImageDimension = 480
# What's the minimum number of pixels a video's dimensions must meet or exceed
# to be imported? Note that this value is applied to both the height and width
# of the video. The default comes from the QVGA standard of 320x240.
# (env: PS_MIN_VIDEO_DIMENSION)
#
# minVideoDimension = 240
# Paths to files or directories that should not be ignored, even if they are
# hidden or have .nomedia files.
# (env: PS_NEVER_IGNORED)
#
# neverIgnored = []
# Should processing be paused by default when PhotoStructure starts? You'll
# have the manually resume processing via the system tray menu.
# (env: PS_START_PAUSED)
#
# startPaused = false
# This value controls both how often the sync process runs, and how often new
# files are discovered and imported. WARNING: Setting this value to a small
# value (say, less than 10) will mean PhotoStructure is constantly scanning
# your disks, which may reduce the lifespan of your storage media. Note that
# setting this and fileSyncIntervalHours to 0 will disable automatic
# scheduling of the sync process. This defaults to every day (to balance
# picking up new files automatically and trying to avoid unnecessary wear and
# tear on your storage media).
# (env: PS_SYNC_INTERVAL_HOURS)
# {"minValue":0,"maxValue":504}
#
# syncIntervalHours = 24
# This value controls how often the files in your library are checked for
# changes. The `syncIntervalHours` setting, in contrast, controls how often
# *new* files are discovered. This defaults to every week (to try to balance
# picking up changes with wear and tear on your storage media)
# (env: PS_FILE_SYNC_INTERVAL_HOURS)
# {"minValue":0,"maxValue":1344}
#
# fileSyncIntervalHours = 168
# What type of sidecar file do you want to generate for non-destructive edits?
# (env: PS_DEFAULT_SIDECAR_TYPE)
# {"validValues":["EXIF","EXV","MIE","XMP"]}
#
# defaultSidecarType = "XMP"
# Should changes made through the UI, like rotations, captions, and keywords,
# be written to a sidecar (which will be created if missing), or should
# metadata be saved to a copy of the original?
# (env: PS_WRITE_METADATA_TO_SIDECARS)
#
# writeMetadataToSidecars = true
# Should image hashes be computed? This slows down imports, but supports more
# robust asset merging heuristcs, and allows color-based browsing
# (env: PS_USE_IMAGE_HASHES)
#
# useImageHashes = true
# This is the minimum image hash correlation value for images to be considered
# similar, and controls how aggressively images are merged with each other. A
# higher number requires strong image correlation. 100 (or 100%) requires
# exact image correlation, and is not recommended. A value of less than 60% is
# fairly low image correlation, and can lead to false positives.
# (env: PS_MIN_IMAGE_CORR_PCT)
# {"minValue":0,"maxValue":100}
#
# minImageCorrPct = 80
# This is the minimum jaccard correlation found between dominant image colors,
# and controls how aggressively images are merged with each other. A higher
# number requires strong dominant color correlation. 100 (or 100%) requires
# exact dominant color correlation. A value of less than 40% indicates fairly
# low correlation of dominant colors, and can lead to false positives.
# (env: PS_MIN_DOMINANT_COLOR_CORR_PCT)
# {"minValue":0,"maxValue":100}
#
# minDominantColorCorrPct = 60
#
# Hello!
#
# These are settings for PhotoStructure, and are formatted using TOML. See
# <https://github.com/toml-lang/toml>.
#
# NOTE: Please shut down PhotoStructure before editing this file.
#
# Most settings have reasonable defaults, which are provided after the
# description. Remove the "#" from the beginning of the line to override the
# default.
#
# Thanks for using PhotoStructure! Visit <https://support.photostructure.com>
# or email <mailto:[email protected]> if you find any bugs or have any
# questions, ideas, or feedback. We'd love to hear from you.
#
# --
#
# PhotoStructure v1.2.3
#
# This is the absolute path to your PhotoStructure library. If missing, or set
# to an empty string, the welcome page will be shown when PhotoStructure
# launches. Use native file separators (so on windows, use back-slashes).
# (env: PS_LIBRARY_PATH, PS_LIBRARY or PS_LIBRARY_DIR)
#
# libraryPath = "/home/test/Pictures"
# This is the absolute path to the PID file for the main process. This is
# optional and only used by PhotoStructure for Servers.
# (env: PIDFILE)
#
# pidfile = "/var/run/photostructure.pid"
# Where would you like PhotoStructure's scratch file directory? This should be
# a fast, local disk with several gigabytes free.
# (env: PS_TMP_DIR)
#
# tmpDir = "/tmp/ps_tmp_dir"
# Determines which level of log messages are emitted to log files. May be
# 'debug', 'info', 'warn', or 'error'.
# (env: PS_LOG_LEVEL, PS_LOG or LOG)
#
# logLevel = "info"
# Determines the directory that log files will be written to.
# (env: PS_LOG_DIR)
#
# logDir = "/var/log/photostructure"
# Should log messages be colorized with ANSI escape sequences? Great for
# nerds, bad for everyone else.
# (env: PS_LOG_COLOR)
#
# logColor = true
# Should log files be compressed as they are rotated?
# (env: PS_LOG_COMPRESS)
#
# logCompression = false
# Prefix log entries by a timestamp (if set to false), or by the number of
# milliseconds since startup (if set to true).
# (env: PS_LOG_ELAPSED_MS)
#
# logElapsedMs = true
# Write an access log for all web requests?
# (env: PS_LOG_WEB_REQUESTS)
#
# logWebRequests = false
# Determines the directory that log files will be written to. If unset, will
# use logDir.
# (env: PS_LOG_WEB_DIR)
#
# logWebDir = undefined
# If non-blank, and a given db query includes the given string, the query will
# be logged.
# (env: PS_LOG_SQL)
#
# logSql = undefined
# Normally when subsystems crash, PhotoStructure restarts them after a delay.
# Unfortunately, if there is a persistent error, this means PhotoStructure
# keeps trying something that won't ever work; it looks busy, but it's just
# busy failing. To prevent this situation, PhotoStructure will shut down if
# there are high error rates within 2 minutes of starting. (2 minutes should
# be long enough to spin up the web process, sync process, and import a
# pending file). Setting this to 0 will prevent PhotoStructure from exiting
# due to high error rates.
# (env: PS_PROBATION_MS)
#
# probationMs = 120000
# If a service (like web, sync, or sync-file) is restarted due to an error,
# how many ms must elapse before another restart is allowed? This helps
# prevent system load due to service flapping.
# (env: PS_MIN_TIME_BETWEEN_SERVICE_RESTARTS_MS)
#
# minTimeBetweenServiceRestartsMs = 7000
# If PhotoStructure sees errors at a higher rate per minute than this setting,
# PhotoStructure will shut down. If this value is too high, PhotoStructure may
# look busy, but it's just busy failing. If this value is set too low,
# temporary errors (due to network flakiness or USB hiccups) might shut down
# PhotoStructure needlessly.
# (env: PS_FATAL_ERROR_RATE_PER_MINUTE)
#
# fatalErrorRatePerMinute = 10
# Set to true to have PhotoStructure start automatically on login. Only
# supported on PhotoStructure for Desktops for macOS and Windows 10.
# (env: PS_AUTO_LAUNCH)
#
# autoLaunch = false
# PhotoStructure will pause processing if the GB free on the disk that your
# library is stored on drops below this value. The value provided here will be
# multiplied by 1000^3. Note that many OSes will corrupt themselves when disks
# fill up, and SSDs can fail as they approach full capacity. A value of less
# than 8 may be unsafe (due to hibernation and os update files).
# (env: PS_MIN_DISK_FREE_GB)
#
# minDiskFreeGb = 6
# PhotoStructure will not schedule work if the current system utilization
# percent is higher than this value. This value must be between 0 and 100.
# Smaller values (less than 25) may mean PhotoStructure can never schedule
# work. A value of 100 will allow PhotoStructure to schedule work on all of
# your CPUs, and may make your system unusable.
# (env: PS_MAX_CPU_PERCENT)
# {"minValue":0,"maxValue":200}
#
# maxCpuPercent = 75
# PhotoStructure will restart services if their process consumes more than
# this value (measured in megabytes, or 1,000,000 bytes).
# (env: PS_MAX_MEMORY_MB)
# {"minValue":512,"maxValue":8000}
#
# maxMemoryMb = 1000
# PhotoStructure uses SQLite, and the cache_size pragma should ideally be set
# such that the whole DB can be in memory. See
# https://sqlite.org/pragma.html#pragma_cache_size for more information.
# (env: PS_DB_CACHE_SIZE_MB)
#
# dbCacheSizeMb = 128
# The number of milliseconds we wait between polling for changes in remote
# filesystems. This defaults to 1 minute, to minimize remote filesystem load.
# (env: PS_POLL_INTERVAL_MS)
#
# pollIntervalMs = 100
# Should PhotoStructure copy photos and videos to your PhotoStructure Library?
# (env: PS_COPY_ASSETS)
#
# copyAssetsToLibrary = true
# Should PhotoStructure scan all folders on all drives available to this
# computer for photos and videos?
# (env: PS_SCAN_ALL_DRIVES)
#
# scanAllDrives = true
# Should PhotoStructure only scan your system's 'Pictures' folder for photos
# and videos?
# (env: PS_SCAN_MY_PICTURES)
#
# scanMyPictures = false
# This holds an array of absolute paths to scan for assets. If you are setting
# this via an environment variable, you may use either standard PATH
# formatting (like "/path/one:/path/two") or JSON encoding (like
# "['/path/one','/path/two']").
# (env: PS_SCAN_PATHS)
#
# scanPaths = [
# "/path/one",
# "/path/two"
# ]
# This should be the absolute, native path to the "vlc" binary on this system.
# If this is set to "vlc", PhotoStructure will search your $PATH.
# (env: PS_VLC_PATH)
#
# vlcPath = "vlc"
# This should be the absolute, native path to the "ffmpeg" binary on this
# system. If this is set to "ffmpeg", PhotoStructure will search your $PATH.
# (env: PS_FFMPEG_PATH)
#
# ffmpegPath = "ffmpeg"
# TL:DR; keep this on "latest." This controls which builds of PhotoStructure
# you are eligible to automatically update to. Please note that "alpha" builds
# may not even launch, and "beta" builds will not have been thoroughly tested.
# Please only consider changing this if customer support asks you to.
# (env: PS_UPDATE_CHANNEL)
# {"validValues":["alpha","beta","latest"]}
#
updateChannel = "latest"
# If you're running an alpha or beta build, and you switch back to
# 'updateChannel = "latest"', would you like PhotoStructure to downgrade you?
# Note that enabling this may make your library unreadable, if the current
# stable version of PhotoStructure can't read new alpha or beta database
# schemas.
# (env: PS_ALLOW_DOWNGRADE)
#
# allowDowngrade = false
# If true, PhotoStructure will check for updates automatically on launch.
# (env: PS_UPDATE_ON_LAUNCH)
#
# updateOnLaunch = true
# While running, PhotoStructure will check periodically for updates. The
# default is daily.
# (env: PS_UPDATE_CHECK_MINUTES)
#
# updateCheckMinutes = 1440
# PhotoStructure will bounce the web and sync processes periodically. The
# default is every 5 hours. Set to -1 to disable.
# (env: PS_BOUNCE_MINUTES)
#
# bounceMinutes = 300
# Should processes run with --inspect? This should only be enabled
# temporarily, as it impacts both performance and security.
# (env: PS_INSPECT)
#
# inspect = false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment