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.
- 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 empty.
- 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
- Refresh interval in minutes for feeds.
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 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.