miniflux − Minimalist and opinionated feed reader
miniflux
[-vic] [-config-dump] [-config-file] [-create-admin]
[-debug]
[-flush-sessions] [-healthcheck] [-info] [-migrate]
[-refresh-feeds]
[-reset-feed-errors] [-reset-feed-next-check-at]
[-reset-password]
[-run-cleanup-tasks] [-version]
miniflux is a minimalist and opinionated feed reader.
−config-dump
Print parsed configuration values. This will include sensitive information like passwords.
−c /path/to/miniflux.conf
Load configuration file.
−config-file /path/to/miniflux.conf
Load configuration file.
−create-admin
Create an admin user from an interactive terminal.
−debug
Set log level to debug.
−export-user-feeds <username>
Export user feeds (provide the
username as argument).
Example: "miniflux -export-user-feeds someone >
feeds.xml".
−flush-sessions
Flush all sessions (disconnect users).
−healthcheck <endpoint>
Perform a health check on the
given endpoint.
The value "auto" try to guess the health check
endpoint.
−i
Show build information.
−info
Show build information.
−migrate
Run SQL migrations.
−refresh-feeds
Refresh a batch of feeds and exit.
−reset-feed-errors
Clear all feed errors for all users.
−reset-feed-next-check-at
Reset the next check time for all feeds.
−reset-password
Reset user password.
−run-cleanup-tasks
Run cleanup tasks (delete old sessions and archives old entries).
−v
Show application version.
−version
Show application version.
The configuration file is a text file that follow these rules:
- Miniflux
expects each line to be in KEY=VALUE format.
- Lines beginning with # are processed as comments and
ignored.
- Blank lines are ignored.
- There is no variable interpolation.
Keys are the
same as the environment variables described below.
Environment variables override the values defined in the
config file.
ADMIN_PASSWORD
Admin user password, used only
if $CREATE_ADMIN is enabled.
Default is empty.
ADMIN_PASSWORD_FILE
Path to a secret key exposed as
a file, it should contain $ADMIN_PASSWORD value.
Default is empty.
ADMIN_USERNAME
Admin user login, used only if
$CREATE_ADMIN is enabled.
Default is empty.
ADMIN_USERNAME_FILE
Path to a secret key exposed as
a file, it should contain $ADMIN_USERNAME value.
Default is empty.
AUTH_PROXY_HEADER
Proxy authentication HTTP
header.
Default is empty.
AUTH_PROXY_USER_CREATION
Set to 1 to create users based
on proxy authentication information.
Disabled by default.
BASE_URL
Base URL to generate HTML links
and base path for cookies.
Default is http://localhost/.
BATCH_SIZE
Number of feeds to send to the
queue for each interval.
Default is 100 feeds.
CERT_DOMAIN
Use Let’s Encrypt to get
automatically a certificate for this domain.
Default is empty.
CERT_FILE
Path to SSL certificate.
Default is empty.
CLEANUP_ARCHIVE_BATCH_SIZE
Number of entries to archive
for each job interval.
Default is 10000 entries.
CLEANUP_ARCHIVE_READ_DAYS
Number of days after marking
read entries as removed.
Set to -1 to keep all read entries.
Default is 60 days.
CLEANUP_ARCHIVE_UNREAD_DAYS
Number of days after marking
unread entries as removed.
Set to -1 to keep all unread entries.
Default is 180 days.
CLEANUP_FREQUENCY_HOURS
Cleanup job frequency. Remove
old sessions and archive entries.
Default is 24 hours.
CLEANUP_REMOVE_SESSIONS_DAYS
Number of days after removing
old sessions from the database.
Default is 30 days.
CREATE_ADMIN
Set to 1 to create an admin
user from environment variables.
Disabled by default.
DATABASE_CONNECTION_LIFETIME
Set the maximum amount of time
a connection may be reused.
Default is 5 minutes.
DATABASE_MAX_CONNS
Maximum number of database
connections.
Default is 20.
DATABASE_MIN_CONNS
Minimum number of database
connections.
Default is 1.
DATABASE_URL
Postgresql connection
parameters.
Default is "user=postgres password=postgres
dbname=miniflux2 sslmode=disable".
DATABASE_URL_FILE
Path to a secret key exposed as
a file, it should contain $DATABASE_URL value.
Default is empty.
DISABLE_HSTS
Disable HTTP Strict Transport
Security header if HTTPS is set.
Default is false (The HSTS is enabled).
DISABLE_HTTP_SERVICE
Set the value to 1 to disable
the HTTP service.
Default is false (The HTTP service is enabled).
DISABLE_LOCAL_AUTH
Disable local authentication.
When set to true, the username/password form is hidden from
the login screen, and the options to change
username/password or unlink OAuth2 account are hidden from
the settings page.
Default is false.
DISABLE_SCHEDULER_SERVICE
Set the value to 1 to disable
the internal scheduler service.
Default is false (The internal scheduler service is
enabled).
FETCH_BILIBILI_WATCH_TIME
Set the value to 1 to scrape
video duration from Bilibili website and use it as a reading
time.
Disabled by default.
FETCH_NEBULA_WATCH_TIME
Set the value to 1 to scrape
video duration from Nebula website and use it as a reading
time.
Disabled by default.
FETCH_ODYSEE_WATCH_TIME
Set the value to 1 to scrape
video duration from Odysee website and use it as a reading
time.
Disabled by default.
FETCH_YOUTUBE_WATCH_TIME
Set the value to 1 to scrape
video duration from YouTube website and use it as a reading
time.
Disabled by default.
FILTER_ENTRY_MAX_AGE_DAYS
Number of days after which new
entries should be retained.
Set 7 to fetch only entries 7 days old.
Default is 0 (disabled).
FORCE_REFRESH_INTERVAL
The minimum interval for manual
refresh.
Default is 30 minutes.
HTTP_CLIENT_MAX_BODY_SIZE
Maximum body size for HTTP
requests in Mebibyte (MiB).
Default is 15 MiB.
HTTP_CLIENT_PROXIES
Enable proxy rotation for
outgoing requests by providing a comma-separated list of
proxy URLs.
Default is empty.
HTTP_CLIENT_PROXY
Proxy URL to use when the
"Fetch via proxy" feed option is enabled.
Default is empty.
HTTP_CLIENT_TIMEOUT
Time limit in seconds before
the HTTP client cancel the request.
Default is 20 seconds.
HTTP_CLIENT_USER_AGENT
The default User-Agent header
to use for the HTTP client. Can be overridden in per-feed
settings.
When empty, Miniflux uses a default User-Agent that includes
the Miniflux version.
Default is empty.
HTTP_SERVER_TIMEOUT
Time limit in seconds before
the HTTP client cancel the request.
Default is 300 seconds.
|
HTTPS |
Forces cookies to use secure flag and send HSTS header. |
Default is disabled.
INVIDIOUS_INSTANCE
Set a custom invidious instance
to use.
Default is yewtu.be.
KEY_FILE
Path to SSL private key.
Default is empty.
LISTEN_ADDR
Address to listen on. Use
absolute path to listen on Unix socket
(/var/run/miniflux.sock).
Multiple addresses can be specified, separated by commas.
For example: 127.0.0.1:8080, 127.0.0.1:8081.
Default is 127.0.0.1:8080.
LOG_DATE_TIME
Display the date and time in
log messages.
Disabled by default.
LOG_FILE
Supported values are
"stderr", "stdout", or a file name.
Default is "stderr".
LOG_FORMAT
Supported log formats are
"text" or "json".
Default is "text".
LOG_LEVEL
Supported values are
"debug", "info", "warning", or
"error".
Default is "info".
MAINTENANCE_MESSAGE
Define a custom maintenance
message.
Default is "Miniflux is currently under
maintenance".
MAINTENANCE_MODE
Set to 1 to enable maintenance
mode.
Disabled by default.
MEDIA_PROXY_CUSTOM_URL
Sets an external server to
proxy media through.
Default is empty, Miniflux does the proxying.
MEDIA_PROXY_HTTP_CLIENT_TIMEOUT
Time limit in seconds before
the media proxy HTTP client cancel the request.
Default is 120 seconds.
MEDIA_PROXY_RESOURCE_TYPES
A comma-separated list of media
types to proxify. Supported values are: image, audio, video.
Default is image.
MEDIA_PROXY_MODE
Possible values: http-only,
all, or none.
Default is http-only.
MEDIA_PROXY_PRIVATE_KEY
Set a custom custom private key
used to sign proxified media URLs.
By default, a secret key is randomly generated during
startup.
METRICS_ALLOWED_NETWORKS
List of networks allowed to
access the metrics endpoint (comma-separated values).
Default is 127.0.0.1/8.
METRICS_COLLECTOR
Set to 1 to enable metrics
collector. Expose a /metrics endpoint for Prometheus.
Disabled by default.
METRICS_PASSWORD
Metrics endpoint password for
basic HTTP authentication.
Default is empty.
METRICS_PASSWORD_FILE
Path to a file that contains
the password for the metrics endpoint HTTP authentication.
Default is empty.
METRICS_REFRESH_INTERVAL
Refresh interval to collect
database metrics.
Default is 60 seconds.
METRICS_USERNAME
Metrics endpoint username for
basic HTTP authentication.
Default is empty.
METRICS_USERNAME_FILE
Path to a file that contains
the username for the metrics endpoint HTTP authentication.
Default is empty.
OAUTH2_CLIENT_ID
OAuth2 client ID.
Default is empty.
OAUTH2_CLIENT_ID_FILE
Path to a secret key exposed as
a file, it should contain $OAUTH2_CLIENT_ID value.
Default is empty.
OAUTH2_CLIENT_SECRET
OAuth2 client secret.
Default is empty.
OAUTH2_CLIENT_SECRET_FILE
Path to a secret key exposed as
a file, it should contain $OAUTH2_CLIENT_SECRET value.
Default is empty.
OAUTH2_OIDC_DISCOVERY_ENDPOINT
OpenID Connect discovery
endpoint.
Default is empty.
OAUTH2_OIDC_PROVIDER_NAME
Name to display for the OIDC
provider.
Default is "OpenID Connect".
OAUTH2_PROVIDER
Possible values are
"google" or "oidc".
Default is empty.
OAUTH2_REDIRECT_URL
OAuth2 redirect URL.
This URL must be registered with the provider and is
something like
https://miniflux.example.org/oauth2/oidc/callback.
Default is empty.
OAUTH2_USER_CREATION
Set to 1 to authorize OAuth2
user creation.
Disabled by default.
POLLING_FREQUENCY
Interval for the background job
scheduler.
Determines how often a batch of feeds is selected for
refresh, based on their last refresh time.
Default is 60 minutes.
POLLING_LIMIT_PER_HOST
Limits the number of concurrent
requests to the same hostname when polling feeds.
This helps prevent overwhelming a single server during batch
processing by the worker pool.
Default is 0 (disabled).
POLLING_PARSING_ERROR_LIMIT
The maximum number of parsing
errors that the program will try before stopping polling a
feed.
Once the limit is reached, the user must refresh the feed
manually. Set to 0 for unlimited.
Default is 3.
POLLING_SCHEDULER
Determines the strategy used to
schedule feed polling.
Supported values are "round_robin" and
"entry_frequency".
- "round_robin": Feeds are polled in a fixed,
rotating order.
- "entry_frequency": The polling interval for each
feed is based on the average update frequency over the past
week.
The number of feeds polled in a given period is limited by
the POLLING_FREQUENCY and BATCH_SIZE settings.
Regardless of the scheduler used, the total number of polled
feeds will not exceed the maximum allowed per polling cycle.
Default is "round_robin".
|
PORT |
Override LISTEN_ADDR to 0.0.0.0:$PORT. |
Default is empty.
RUN_MIGRATIONS
Set to 1 to run database
migrations.
Disabled by default.
SCHEDULER_ENTRY_FREQUENCY_FACTOR
Factor to increase refresh
frequency for the entry frequency scheduler.
Default is 1.
SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL
Maximum interval in minutes for
the entry frequency scheduler.
Default is 1440 minutes (24 hours).
SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL
Minimum interval in minutes for
the entry frequency scheduler.
Default is 5 minutes.
SCHEDULER_ROUND_ROBIN_MAX_INTERVAL
Maximum interval in minutes for
the round robin scheduler.
Default is 1440 minutes (24 hours).
SCHEDULER_ROUND_ROBIN_MIN_INTERVAL
Minimum interval in minutes for
the round robin scheduler.
Default is 60 minutes.
WATCHDOG
Enable or disable Systemd
watchdog.
Enabled by default.
WEBAUTHN
Enable or disable
WebAuthn/Passkey authentication.
You must provide a username on the login page if you are
using non-residential keys. However, this is not required
for discoverable credentials.
Default is disabled.
WORKER_POOL_SIZE
Number of background workers.
Default is 16 workers.
YOUTUBE_API_KEY
YouTube API key for use with
FETCH_YOUTUBE_WATCH_TIME. If nonempty, the duration will be
fetched from the YouTube API. Otherwise, the duration will
be fetched from the YouTube website.
Default is empty.
YOUTUBE_EMBED_URL_OVERRIDE
YouTube URL which will be used
for embeds.
Default is https://www.youtube-nocookie.com/embed/.
Miniflux is written and maintained by Frédéric Guillot.
Miniflux is released under the Apache 2.0 license.