espial-0.0.40: config/settings.yml
# Values formatted like "_env:ENV_VAR_NAME:default_value" can be overridden by the specified environment variable.
# See https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables
static-dir: "_env:STATIC_DIR:static"
host: "_env:HOST:*4" # any IPv4 host
port: "_env:PORT:3000" # NB: The port `yesod devel` uses is distinct from this value. Set the `yesod devel` port from the command line.
ip-from-header: "_env:IP_FROM_HEADER:false"
# Default behavior: determine the application root from the request headers.
approot: "_env:APPROOT"
# subpath example (with reverse proxy on port 80)
# approot: "_env:APPROOT:http://localhost/myespialsubpath"
# By default, `yesod devel` runs in development, and built executables use
# production settings (see below). To override this, use the following:
#
# development: false
# Optional values with the following production defaults.
# In development, they default to the inverse.
#
detailed-logging: "_env:DETAILED_LOGGING" # false
should-log-all: "_env:SHOULD_LOG_ALL" # false
startup-logging: "_env:STARTUP_LOGGING" # true
request-logging: "_env:REQUEST_LOGGING" # true
# reload-templates: false
# mutable-static: false
# skip-combining: false
# auth-dummy-login : false
# NB: If you need a numeric value (e.g. 123) to parse as a String, wrap it in single quotes (e.g. "_env:PGPASS:'123'")
# See https://github.com/yesodweb/yesod/wiki/Configuration#parsing-numeric-values-as-strings
database:
# See config/test-settings.yml for an override during tests
database: "_env:SQLITE_DATABASE:espial.sqlite3"
# database: ":memory:"
poolsize: "_env:SQLITE_POOLSIZE:10"
copyright: Insert copyright statement here
# analytics: UA-YOURCODE
archive-backend: "_env:ARCHIVE_BACKEND:disabled"
# archive-backend: "_env:ARCHIVE_BACKEND:wayback-machine"
# archive-backend: "_env:ARCHIVE_BACKEND:archivebox07"
archive-socks-proxy-host: "_env:ARCHIVE_SOCKS_PROXY_HOST"
archive-socks-proxy-port: "_env:ARCHIVE_SOCKS_PROXY_PORT"
wayback-machine-access-key: "_env:WAYBACK_MACHINE_ACCESS_KEY" # Wayback Machine S3 access key, used when archive-backend is set to wayback-machine.
wayback-machine-secret-key: "_env:WAYBACK_MACHINE_SECRET_KEY" # Wayback Machine S3 secret key, used when archive-backend is set to wayback-machine.
archivebox-url: "_env:ARCHIVEBOX_URL" # ArchiveBox base URL espial uses internally for login/add, e.g. http://archivebox:8000 inside docker compose.
archivebox-public-url: "_env:ARCHIVEBOX_PUBLIC_URL" # Public ArchiveBox URL stored on bookmarks, e.g. http://localhost:8000.
archivebox-username: "_env:ARCHIVEBOX_USERNAME" # ArchiveBox admin username used when archive-backend is set to archivebox.
archivebox-password: "_env:ARCHIVEBOX_PASSWORD" # ArchiveBox admin password used when archive-backend is set to archivebox.
archivebox-tag: "_env:ARCHIVEBOX_TAG:espial"
archivebox-plugins: "_env:ARCHIVEBOX_PLUGINS:title,favicon,singlefile,screenshot" # Comma-separated list of ArchiveBox plugins to run when espial adds a URL to ArchiveBox.
source-code-uri: "_env:SOURCE_CODE_URI:https://github.com/jonschoning/espial"
ssl-only: "_env:SSL_ONLY" # when true, sets secure session cookie.
# Optional: enable in-process TLS (see README § TLS / Reverse Proxy).
# Reverse proxy (Caddy, nginx, Cloudflare Tunnel, etc.) is the recommended approach.
tls-cert-file: "_env:TLS_CERT_FILE" # path to TLS certificate file (PEM); enables TLS when set together with tls-key-file
tls-key-file: "_env:TLS_KEY_FILE" # path to TLS private key file (PEM, unencrypted)
allow-non-http-url-schemes: "_env:ALLOW_NON_HTTP_URL_SCHEMES:false"
language-default: "_env:LANGUAGE_DEFAULT:en"
public-tag-cloud-cache-duration-seconds: "_env:PUBLIC_TAG_CLOUD_CACHE_DURATION_SECONDS:30"
login-rate-limit-max-attempts: "_env:LOGIN_RATE_LIMIT_MAX_ATTEMPTS:10"
login-rate-limit-window-seconds: "_env:LOGIN_RATE_LIMIT_WINDOW_SECONDS:60"
# Maximum allowed request body size, in bytes. Requests exceeding this (e.g. large
# Settings/import uploads) are rejected with 413. Set to 0 to disable the limit.
maximum-content-length: "_env:MAXIMUM_CONTENT_LENGTH:10485760"