diff --git a/Docker/miniflux/docker-compose.yml b/Docker/miniflux/docker-compose.yml new file mode 100644 index 0000000..eae18f6 --- /dev/null +++ b/Docker/miniflux/docker-compose.yml @@ -0,0 +1,106 @@ +services: + miniflux: + image: miniflux/miniflux:2.1.3 + ports: + - "31040:8080" + depends_on: + db: + condition: service_healthy + environment: + # DEBUG: false # 调试模式 默认关闭 已被遗弃 请使用LOG_LEVEL + FETCH_ODYSEE_WATCH_TIME: 0 # 默认禁用 将值设置为 1 可从 Odysee 网站抓取视频持续时间并将其用作阅读时间。 + FETCH_YOUTUBE_WATCH_TIME: 0 # 默认禁用 将值设置为 1 可从 YouTube 网站抓取视频持续时间并将其用作阅读时间。 + YOUTUBE_EMBED_URL_OVERRIDE: https://www.youtube-nocookie.com/embed/ # 默认值为 YouTube URL将用于嵌入。 + LOG_DATE_TIME: true # 默认禁用 在日志消息中显示日期和时间。 + LOG_FILE: stderr # 默认为 stderr 支持的值为 stderr、stdout 或文件名。 + LOG_FORMAT: text # 默认为 text 支持的日志格式为 text 或 json。 + LOG_LEVEL: info # 默认为 info 支持的值为 debug、info、warning 或 error。 + WORKER_POOL_SIZE: 5 # 刷新源的后台工作程序数。工作程序从工作队列中获取源的信息。 + POLLING_FREQUENCY: 60 # miniflux将合格的源添加到工作队列的间隔时间(分钟)。 + POLLING_PARSING_ERROR_LIMIT: 3 # 在停止轮询源之前,程序将尝试的最大解析错误数。达到限制后,用户必须手动刷新源。设置为 0 为无限制。 + BATCH_SIZE: 100 # 每个轮询间隔发送到工作队列的最大源数。 + FORCE_REFRESH_INTERVAL: 30 # 手动刷新的最小间隔。 + # 调度器不更改轮询间隔,而是限制轮询的合格提要的数量。当当前时间超过目标刷新时间时,提要将被添加到工作队列中。给定时间段内轮询的提要的最大数量取决于POLLING_FREQUENCY和BATCH_SIZE。 + # 当选择entry_frequency时,给定提要的目标刷新间隔等于提要最后一周的平均更新间隔。轮询的提要的实际数量不会超过给定时间段内可轮询的提要的最大数量。 + POLLING_SCHEDULER: round_robin # 用于轮询源的调度程序。可能的值为 round_robin 或 entry_frequency。 round_robin 会在每个源之间平均分配刷新频率。 entry_frequency 会根据源的最后一周的平均更新间隔设置刷新频率。 + SCHEDULER_ENTRY_FREQUENCY_FACTOR: 1 # 用于增加刷新频率以提高entry_frequency调度程序的刷新频率。默认值为 1。 + SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL: 24 # entry_frequency调度程序的最大间隔(小时)。 + SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL: 5 # entry_frequency调度程序的最小间隔(分钟)。 + SCHEDULER_ROUND_ROBIN_MIN_INTERVAL: 60 # 轮询调度程序的最小间隔(分钟)。 + DATABASE_URL: postgres://miniflux:secret@db/miniflux?sslmode=disable # Postgresql连接参数。有关更多详细信息,请参见lib/pq。 默认为user=postgres password=postgres dbname=miniflux2 sslmode=disable + DATABASE_MAX_CONNS: 20 # 数据库连接的最大数量。 + DATABASE_MIN_CONNS: 1 # 数据库连接的最小数量。 + DATABASE_CONNECTION_LIFETIME: 5 #设置连接可重用的最大时间。(分钟) + LISTEN_ADDR: 127.0.0.1:8080 # 收听地址。对Unix套接字使用绝对路径。 + # PORT: # 重写LISTEN_ADDR为0.0.0.0:$PORT (PaaS的自动配置)。默认为空 + BASE_URL: http://localhost/ # 用于生成HTML链接和cookie的基本路径。 + CLEANUP_FREQUENCY_HOURS: 24 # 清理作业频率以删除旧会话和归档条目。默认为24小时。 + CLEANUP_ARCHIVE_UNREAD_DAYS: 180 # 标记未读条目为删除后的天数。使用-1禁用此功能。默认为180天。 + CLEANUP_ARCHIVE_READ_DAYS: 60 # 标记已读条目为删除后的天数。使用-1禁用此功能。默认为60天。 + CLEANUP_ARCHIVE_BATCH_SIZE: 10000 # 每个作业间隔归档的条目数。默认为10000条目。 + CLEANUP_REMOVE_SESSIONS_DAYS: 30 # 从数据库中删除旧用户会话后的天数。默认为30天。 + FILTER_ENTRY_MAX_AGE_DAYS: 30 # 保留新条目的天数。设置为7以仅获取7天的条目。 + HTTPS: 0 # 强制cookie使用安全标志。发送HSTS HTTP头。如果HTTP头X-Forwarded-Proto设置为https,则自动启用。 + # DISABLE_HSTS: # 如果设置$HTTPS,则禁用HTTP Strict Transport Security头。 默认为空 + # DISABLE_HTTP_SERVICE: # 禁用HTTP服务。 默认为空 + # DISABLE_SCHEDULER_SERVICE: # 禁用调度程序服务。 默认为空 + # CERT_FILE: # SSL证书的路径。 默认为空 + # KEY_FILE: # SSL私钥的路径。 默认为空 + # CERT_DOMAIN: # 使用Let's Encrypt为$CERT_DOMAIN中指定的域自动获取证书。 默认为空 + MEDIA_PROXY_MODE: http-only # 避免外部媒体的混合内容警告。 可能的值:http-only、all或none。 默认为http-only。 + # MEDIA_PROXY_PRIVATE_KEY: # 设置用于签署代理化媒体URL的自定义私钥。 默认情况下,在启动期间随机生成一个秘密密钥。 + MEDIA_PROXY_RESOURCE_TYPES: image # 逗号分隔的媒体类型列表以代理化。 支持的值为:image、audio、video。 默认为image。 + MEDIA_PROXY_HTTP_CLIENT_TIMEOUT: 120 # 代理HTTP客户端在取消请求之前的时间限制(秒)。 默认为120秒。 + # MEDIA_PROXY_CUSTOM_URL: # 设置代理媒体的自定义URL。 默认为空,miniflux将代理媒体。 + METRICS_COLLECTOR: 0 # 设置为1以启用指标收集。它公开了一个可以与Prometheus监控软件一起使用的/metrics端点。 默认为禁用。 + METRICS_REFRESH_INTERVAL: 60 # 收集数据库指标的刷新间隔。 默认为60秒。 + METRICS_ALLOWED_NETWORKS: 127.0.0.1/8 # 允许访问/metrics端点的网络列表(逗号分隔的值)。 + # METRICS_USERNAME: # 用于基本HTTP身份验证的指标端点用户名。 默认为空。 + # METRICS_USERNAME_FILE: # 包含指标端点HTTP身份验证用户名的文件的路径。 默认为空。 + # METRICS_PASSWORD: # 用于基本HTTP身份验证的指标端点密码。 默认为空。 + # METRICS_PASSWORD_FILE: # 包含指标端点HTTP身份验证密码的文件的路径。 默认为空。 + # OAUTH2_PROVIDER: google # OAuth2提供程序。 可能的值为google或oidc用于通用OpenID Connect提供程序。 默认为空。 + # OAUTH2_CLIENT_ID: # OAuth2客户端ID。 默认为空。 + # OAUTH2_CLIENT_ID_FILE: # 暴露为文件的客户端ID的路径,它应该包含$OAUTH2_CLIENT_ID值。 + # OAUTH2_CLIENT_SECRET: # OAuth2客户端密钥。 默认为空。 + # OAUTH2_CLIENT_SECRET_FILE: # 暴露为文件的密钥的路径,它应该包含$OAUTH2_CLIENT_SECRET值。 默认为空。 + # OAUTH2_REDIRECT_URL: # OAuth2重定向URL。 此URL必须在提供程序中注册,并且类似于https://miniflux.example.org/oauth2/oidc/callback 默认为空。 + # OAUTH2_OIDC_DISCOVERY_ENDPOINT: # OpenID Connect发现端点的URL。 注意,OIDC库会自动附加.well-known/openid-configuration,当设置OAUTH2_OIDC_DISCOVERY_ENDPOINT时,必须删除此部分。 默认为空。 + # OAUTH2_USER_CREATION: 1 # 设置为1以授权OAuth2用户创建。 默认为空。 + RUN_MIGRATIONS: 1 # 在应用程序启动期间运行数据库迁移。 默认为空。 + CREATE_ADMIN: 1 # 设置为1以从环境变量创建管理员用户。 默认为空。 + ADMIN_USERNAME: admin # 管理员用户名,仅在启用CREATE_ADMIN时使用。 默认为空。 + # ADMIN_USERNAME_FILE: # 暴露为文件的密钥的路径,它应该包含$ADMIN_USERNAME值。 默认为空。 + ADMIN_PASSWORD: admin004545 # 管理员用户密码,仅在启用CREATE_ADMIN时使用。 默认为空。 + # ADMIN_PASSWORD_FILE: # 暴露为文件的密钥的路径,它应该包含$ADMIN_PASSWORD值。 默认为空。 + # POCKET_CONSUMER_KEY: # Pocket消费者API密钥。 默认为空。 + # POCKET_CONSUMER_KEY_FILE: # 暴露为文件的密钥的路径,它应该包含$POCKET_CONSUMER_KEY值。 默认为空。 + HTTP_CLIENT_TIMEOUT: 20 # HTTP客户端在取消请求之前的时间限制(秒)。 默认为20秒。 + HTTP_CLIENT_MAX_BODY_SIZE: 15 # HTTP请求中的最大主体大小(MiB)。 默认为15 MiB。 + # HTTP_CLIENT_PROXY: # HTTP客户端的代理URL。 例如:http://127.0.0.1:8888。 仅当feed启用了“通过代理获取”选项时才使用此代理。 默认为空。如果您希望为所有传出请求使用代理,请使用环境变量HTTP_PROXY或HTTPS_PROXY,请参阅官方Golang文档了解更多详细信息。 + # HTTP_CLIENT_USER_AGENT: # HTTP客户端使用的默认User-Agent标头。 可以在每个feed设置中覆盖。 当为空时,Miniflux使用包含Miniflux版本的默认User-Agent。 + # AUTH_PROXY_HEADER: X-Auth-Request-User # 用于代理身份验证的HTTP标头。 默认为空。 + # AUTH_PROXY_USER_CREATION: # 基于代理身份验证信息启用用户创建。 默认为空。 + # MAINTENANCE_MODE: # 设置为1以启用维护模式。 维护模式禁用Web UI并向用户显示文本消息。 默认为空。 + # MAINTENANCE_MESSAGE: # 自定义维护消息。 默认为空。 + # SERVER_TIMING_HEADER: # 设置为1以启用服务器计时标头。 默认为空。 + # WATCHDOG: 1 # 启用或禁用Systemd看门狗。 默认为启用。 + # INVIDIOUS_INSTANCE: yewtu.be # 设置要使用的自定义invidious实例。 默认为yewtu.be。 + WEBAUTHN: 0 # 启用或禁用WebAuthn/Passkey身份验证。 默认为禁用。 + # DATABASE_URL: postgres://miniflux:secret@db/miniflux?sslmode=disable + # RUN_MIGRATIONS: 1 + # CREATE_ADMIN: 1 + # ADMIN_USERNAME: admin + # ADMIN_PASSWORD: admin004545 + db: + image: postgres:15 + environment: + - POSTGRES_USER=miniflux + - POSTGRES_PASSWORD=secret + - POSTGRES_DB=miniflux + volumes: + - ./miniflux-db:/var/lib/postgresql/data + healthcheck: + test: [ "CMD", "pg_isready", "-U", "miniflux" ] + interval: 10s + start_period: 30s