Processed apps directory via GitHub Actions

This commit is contained in:
QYG2297248353 2024-12-18 10:41:23 +00:00
parent 946ba29db8
commit 391a372574
50 changed files with 1020 additions and 1020 deletions

View File

@ -12,7 +12,7 @@ services:
- BARK_SERVER_URL_PREFIX=/ - BARK_SERVER_URL_PREFIX=/
- BARK_SERVER_DATA_DIR=/data - BARK_SERVER_DATA_DIR=/data
- BARK_SERVER_SERVERLESS=false - BARK_SERVER_SERVERLESS=false
image: finab/bark-server:v2.1.8 image: finab/bark-server:v2.1.9
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -12,7 +12,7 @@ services:
- BARK_SERVER_URL_PREFIX=/ - BARK_SERVER_URL_PREFIX=/
- BARK_SERVER_DATA_DIR=/data - BARK_SERVER_DATA_DIR=/data
- BARK_SERVER_SERVERLESS=false - BARK_SERVER_SERVERLESS=false
image: finab/bark-server:v2.1.8 image: finab/bark-server:v2.1.9
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -17,7 +17,10 @@ API_TOKEN=moviepilot
PROXY_HOST= PROXY_HOST=
# 自动更新资源包 [必填] # 自动更新资源包 [必填]
AUTO_UPDATE_RESOURCE=false AUTO_UPDATE_RESOURCES=false
# 自动更新 [必填]
MOVIEPILOT_AUTO_UPDATE=false
# 自定义挂载目录 1 # 自定义挂载目录 1
CUSTOM_MOUNT_DIRECTORY_1= CUSTOM_MOUNT_DIRECTORY_1=
@ -31,3 +34,105 @@ CUSTOM_MOUNT_DIRECTORY_3=
# IYUU登录令牌 # IYUU登录令牌
IYUU_SIGN= IYUU_SIGN=
# hhclub 用户名
HHCLUB_USERNAME=
# hhclub 密钥
HHCLUB_PASSKEY=
# audiences 用户ID
AUDIENCES_UID=
# audiences 密钥
AUDIENCES_PASSKEY=
# hddolby 用户ID
HDDOLBY_ID=
# hddolby 密钥
HDDOLBY_PASSKEY=
# zmpt 用户ID
ZMPT_UID=
# zmpt 密钥
ZMPT_PASSKEY=
# freefarm 用户ID
FREEFARM_UID=
# freefarm 密钥
FREEFARM_PASSKEY=
# hdfans 用户ID
HDFANS_UID=
# hdfans 密钥
HDFANS_PASSKEY=
# wintersakura 用户ID
WINTERSAKURA_UID=
# wintersakura 密钥
WINTERSAKURA_PASSKEY=
# leaves 用户ID
LEAVES_UID=
# leaves 密钥
LEAVES_PASSKEY=
# ptba 用户ID
PTBA_UID=
# ptba 密钥
PTBA_PASSKEY=
# icc2022 用户ID
ICC2022_UID=
# icc2022 密钥
ICC2022_PASSKEY=
# xingtan 用户ID
XINGTAN_UID=
# xingtan 密钥
XINGTAN_PASSKEY=
# ptvicomo 用户ID
PTVICOMO_UID=
# ptvicomo 密钥
PTVICOMO_PASSKEY=
# agsvpt 用户ID
AGSVPT_UID=
# agsvpt 密钥
AGSVPT_PASSKEY=
# hdkyl 用户ID
HDKYL_UID=
# hdkyl 密钥
HDKYL_PASSKEY=
# qingwa 用户ID
QINGWA_UID=
# qingwa 密钥
QINGWA_PASSKEY=
# discfan 用户ID
DISCFAN_UID=
# discfan 密钥
DISCFAN_PASSKEY=
# rousi 用户ID
ROUSI_UID=
# rousi 密钥
ROUSI_PASSKEY=

View File

@ -2,7 +2,7 @@ networks:
1panel-network: 1panel-network:
external: true external: true
services: services:
movie-pilot-v2: movie-pilot:
container_name: movie-pilot container_name: movie-pilot
env_file: env_file:
- ./envs/global.env - ./envs/global.env
@ -14,9 +14,7 @@ services:
- PUID=0 - PUID=0
- PGID=0 - PGID=0
- UMASK=022 - UMASK=022
- HTTP_PROXY=${PROXY_HOST} image: jxxghp/moviepilot:1.9.17
- HTTPS_PROXY=${PROXY_HOST}
image: jxxghp/moviepilot-v2:2.1.3
labels: labels:
createdBy: Apps createdBy: Apps
logging: logging:

View File

@ -7,33 +7,19 @@ HOST=0.0.0.0
DEBUG=false DEBUG=false
# 是否开发模式,打开后后台服务将不会启动 # 是否开发模式,打开后后台服务将不会启动
DEV=false DEV=false
# 日志级别DEBUG、INFO、WARNING、ERROR等当DEBUG=true时此配置项将被忽略日志级别始终为DEBUG
LOG_LEVEL=INFO
# 数据库连接池的大小可适当降低如20-50以减少I/O压力
DB_POOL_SIZE=100
# 数据库连接池最大溢出连接数可适当降低如0以减少I/O压力
DB_MAX_OVERFLOW=500
# SQLite 的 busy_timeout 参数可适当增加如180以减少锁定错误
DB_TIMEOUT=60
# 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改) # 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改)
SUPERUSER=admin SUPERUSER=admin
# 辅助认证,允许通过外部服务进行认证、单点登录以及自动创建用户
AUXILIARY_AUTH_ENABLE=false
# 大内存模式,开启后会增加缓存数量,但会占用更多内存 # 大内存模式,开启后会增加缓存数量,但会占用更多内存
BIG_MEMORY_MODE=false BIG_MEMORY_MODE=false
# 是否启用DOH域名解析启用后对于api.themovie.org等域名通过DOH解析避免域名DNS被污染 # 是否启用DOH域名解析启用后对于api.themovie.org等域名通过DOH解析避免域名DNS被污染
DOH_ENABLE=true DOH_ENABLE=true
# 使用 DOH 解析的域名列表,多个域名使用`,`分隔
DOH_DOMAINS=api.themoviedb.org,api.tmdb.org,webservice.fanart.tv,api.github.com,github.com,raw.githubusercontent.com,api.telegram.org
# DOH 解析服务器列表,多个服务器使用`,`分隔
DOH_RESOLVERS=1.0.0.1,1.1.1.1,9.9.9.9,149.112.112.112
# 元数据识别缓存过期时间数字型单位小时0为系统默认大内存模式为7天滞则为3天调大该值可减少themoviedb的访问次数 # 元数据识别缓存过期时间数字型单位小时0为系统默认大内存模式为7天滞则为3天调大该值可减少themoviedb的访问次数
META_CACHE_EXPIRE=0 META_CACHE_EXPIRE=0
# 自动检查和更新站点资源包(索引、认证等) # 自动检查和更新站点资源包(索引、认证等)
AUTO_UPDATE_RESOURCE=true AUTO_UPDATE_RESOURCE=true
# 【*】API密钥未设置时系统将随机生成建议使用复杂字符串用于Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API请求 # 【*】API密钥建议更换复杂字符串有Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API中使用
API_TOKEN='' API_TOKEN=moviepilot
# 登录页面电影海报tmdb/bing/mediaservertmdb要求能正常连接api.themoviedb.org # 登录页面电影海报tmdb/bingtmdb要求能正常连接api.themoviedb.org
WALLPAPER=tmdb WALLPAPER=tmdb
# TMDB图片地址无需修改需保留默认值如果默认地址连通性不好可以尝试修改为`static-mdb.v.geilijiasu.com` # TMDB图片地址无需修改需保留默认值如果默认地址连通性不好可以尝试修改为`static-mdb.v.geilijiasu.com`
TMDB_IMAGE_DOMAIN=image.tmdb.org TMDB_IMAGE_DOMAIN=image.tmdb.org
@ -61,3 +47,7 @@ OCR_HOST=https://movie-pilot.org
PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins,https://github.com/thsrite/MoviePilot-Plugins,https://github.com/InfinityPacer/MoviePilot-Plugins,https://github.com/honue/MoviePilot-Plugins PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins,https://github.com/thsrite/MoviePilot-Plugins,https://github.com/InfinityPacer/MoviePilot-Plugins,https://github.com/honue/MoviePilot-Plugins
# 搜索多个名称true/false为true时搜索时会同时搜索中英文及原始名称搜索结果会更全面但会增加搜索时间为false时其中一个名称搜索到结果或全部名称搜索完毕即停止 # 搜索多个名称true/false为true时搜索时会同时搜索中英文及原始名称搜索结果会更全面但会增加搜索时间为false时其中一个名称搜索到结果或全部名称搜索完毕即停止
SEARCH_MULTIPLE_NAME=true SEARCH_MULTIPLE_NAME=true
# 自定义配置
AUTH_SITE="iyuu,hhclub,audiences,hddolby,zmpt,freefarm,hdfans,wintersakura,leaves,ptba,icc2022,xingtan,ptvicomo,agsvpt,hdkyl,qingwa,discfan,haidan,rousi"

View File

@ -1,138 +0,0 @@
# 数据持久化路径 [必填]
MOVIEPILOT_ROOT_PATH=/home/movie-pilot
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=3000
# API 端口 [必填]
PANEL_APP_PORT_API=3001
# 管理员用户名 [必填]
SUPERUSER=admin
# API 令牌 [必填]
API_TOKEN=moviepilot
# 网络代理
PROXY_HOST=
# 自动更新资源包 [必填]
AUTO_UPDATE_RESOURCES=false
# 自动更新 [必填]
MOVIEPILOT_AUTO_UPDATE=false
# 自定义挂载目录 1
CUSTOM_MOUNT_DIRECTORY_1=
# 自定义挂载目录 2
CUSTOM_MOUNT_DIRECTORY_2=
# 自定义挂载目录 3
CUSTOM_MOUNT_DIRECTORY_3=
# IYUU登录令牌
IYUU_SIGN=
# hhclub 用户名
HHCLUB_USERNAME=
# hhclub 密钥
HHCLUB_PASSKEY=
# audiences 用户ID
AUDIENCES_UID=
# audiences 密钥
AUDIENCES_PASSKEY=
# hddolby 用户ID
HDDOLBY_ID=
# hddolby 密钥
HDDOLBY_PASSKEY=
# zmpt 用户ID
ZMPT_UID=
# zmpt 密钥
ZMPT_PASSKEY=
# freefarm 用户ID
FREEFARM_UID=
# freefarm 密钥
FREEFARM_PASSKEY=
# hdfans 用户ID
HDFANS_UID=
# hdfans 密钥
HDFANS_PASSKEY=
# wintersakura 用户ID
WINTERSAKURA_UID=
# wintersakura 密钥
WINTERSAKURA_PASSKEY=
# leaves 用户ID
LEAVES_UID=
# leaves 密钥
LEAVES_PASSKEY=
# ptba 用户ID
PTBA_UID=
# ptba 密钥
PTBA_PASSKEY=
# icc2022 用户ID
ICC2022_UID=
# icc2022 密钥
ICC2022_PASSKEY=
# xingtan 用户ID
XINGTAN_UID=
# xingtan 密钥
XINGTAN_PASSKEY=
# ptvicomo 用户ID
PTVICOMO_UID=
# ptvicomo 密钥
PTVICOMO_PASSKEY=
# agsvpt 用户ID
AGSVPT_UID=
# agsvpt 密钥
AGSVPT_PASSKEY=
# hdkyl 用户ID
HDKYL_UID=
# hdkyl 密钥
HDKYL_PASSKEY=
# qingwa 用户ID
QINGWA_UID=
# qingwa 密钥
QINGWA_PASSKEY=
# discfan 用户ID
DISCFAN_UID=
# discfan 密钥
DISCFAN_PASSKEY=
# rousi 用户ID
ROUSI_UID=
# rousi 密钥
ROUSI_PASSKEY=

View File

@ -0,0 +1,33 @@
# 数据持久化路径 [必填]
MOVIEPILOT_ROOT_PATH=/home/movie-pilot
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=3000
# API 端口 [必填]
PANEL_APP_PORT_API=3001
# 管理员用户名 [必填]
SUPERUSER=admin
# API 令牌 [必填]
API_TOKEN=moviepilot
# 网络代理
PROXY_HOST=
# 自动更新资源包 [必填]
AUTO_UPDATE_RESOURCE=false
# 自定义挂载目录 1
CUSTOM_MOUNT_DIRECTORY_1=
# 自定义挂载目录 2
CUSTOM_MOUNT_DIRECTORY_2=
# 自定义挂载目录 3
CUSTOM_MOUNT_DIRECTORY_3=
# IYUU登录令牌
IYUU_SIGN=

View File

@ -2,7 +2,7 @@ networks:
1panel-network: 1panel-network:
external: true external: true
services: services:
movie-pilot: movie-pilot-v2:
container_name: movie-pilot container_name: movie-pilot
env_file: env_file:
- ./envs/global.env - ./envs/global.env
@ -14,7 +14,9 @@ services:
- PUID=0 - PUID=0
- PGID=0 - PGID=0
- UMASK=022 - UMASK=022
image: jxxghp/moviepilot:1.9.17 - HTTP_PROXY=${PROXY_HOST}
- HTTPS_PROXY=${PROXY_HOST}
image: jxxghp/moviepilot-v2:2.1.3
labels: labels:
createdBy: Apps createdBy: Apps
logging: logging:

View File

@ -7,19 +7,33 @@ HOST=0.0.0.0
DEBUG=false DEBUG=false
# 是否开发模式,打开后后台服务将不会启动 # 是否开发模式,打开后后台服务将不会启动
DEV=false DEV=false
# 日志级别DEBUG、INFO、WARNING、ERROR等当DEBUG=true时此配置项将被忽略日志级别始终为DEBUG
LOG_LEVEL=INFO
# 数据库连接池的大小可适当降低如20-50以减少I/O压力
DB_POOL_SIZE=100
# 数据库连接池最大溢出连接数可适当降低如0以减少I/O压力
DB_MAX_OVERFLOW=500
# SQLite 的 busy_timeout 参数可适当增加如180以减少锁定错误
DB_TIMEOUT=60
# 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改) # 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改)
SUPERUSER=admin SUPERUSER=admin
# 辅助认证,允许通过外部服务进行认证、单点登录以及自动创建用户
AUXILIARY_AUTH_ENABLE=false
# 大内存模式,开启后会增加缓存数量,但会占用更多内存 # 大内存模式,开启后会增加缓存数量,但会占用更多内存
BIG_MEMORY_MODE=false BIG_MEMORY_MODE=false
# 是否启用DOH域名解析启用后对于api.themovie.org等域名通过DOH解析避免域名DNS被污染 # 是否启用DOH域名解析启用后对于api.themovie.org等域名通过DOH解析避免域名DNS被污染
DOH_ENABLE=true DOH_ENABLE=true
# 使用 DOH 解析的域名列表,多个域名使用`,`分隔
DOH_DOMAINS=api.themoviedb.org,api.tmdb.org,webservice.fanart.tv,api.github.com,github.com,raw.githubusercontent.com,api.telegram.org
# DOH 解析服务器列表,多个服务器使用`,`分隔
DOH_RESOLVERS=1.0.0.1,1.1.1.1,9.9.9.9,149.112.112.112
# 元数据识别缓存过期时间数字型单位小时0为系统默认大内存模式为7天滞则为3天调大该值可减少themoviedb的访问次数 # 元数据识别缓存过期时间数字型单位小时0为系统默认大内存模式为7天滞则为3天调大该值可减少themoviedb的访问次数
META_CACHE_EXPIRE=0 META_CACHE_EXPIRE=0
# 自动检查和更新站点资源包(索引、认证等) # 自动检查和更新站点资源包(索引、认证等)
AUTO_UPDATE_RESOURCE=true AUTO_UPDATE_RESOURCE=true
# 【*】API密钥建议更换复杂字符串有Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API中使用 # 【*】API密钥未设置时系统将随机生成建议使用复杂字符串用于Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API请求
API_TOKEN=moviepilot API_TOKEN=''
# 登录页面电影海报tmdb/bingtmdb要求能正常连接api.themoviedb.org # 登录页面电影海报tmdb/bing/mediaservertmdb要求能正常连接api.themoviedb.org
WALLPAPER=tmdb WALLPAPER=tmdb
# TMDB图片地址无需修改需保留默认值如果默认地址连通性不好可以尝试修改为`static-mdb.v.geilijiasu.com` # TMDB图片地址无需修改需保留默认值如果默认地址连通性不好可以尝试修改为`static-mdb.v.geilijiasu.com`
TMDB_IMAGE_DOMAIN=image.tmdb.org TMDB_IMAGE_DOMAIN=image.tmdb.org
@ -47,7 +61,3 @@ OCR_HOST=https://movie-pilot.org
PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins,https://github.com/thsrite/MoviePilot-Plugins,https://github.com/InfinityPacer/MoviePilot-Plugins,https://github.com/honue/MoviePilot-Plugins PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins,https://github.com/thsrite/MoviePilot-Plugins,https://github.com/InfinityPacer/MoviePilot-Plugins,https://github.com/honue/MoviePilot-Plugins
# 搜索多个名称true/false为true时搜索时会同时搜索中英文及原始名称搜索结果会更全面但会增加搜索时间为false时其中一个名称搜索到结果或全部名称搜索完毕即停止 # 搜索多个名称true/false为true时搜索时会同时搜索中英文及原始名称搜索结果会更全面但会增加搜索时间为false时其中一个名称搜索到结果或全部名称搜索完毕即停止
SEARCH_MULTIPLE_NAME=true SEARCH_MULTIPLE_NAME=true
# 自定义配置
AUTH_SITE="iyuu,hhclub,audiences,hddolby,zmpt,freefarm,hdfans,wintersakura,leaves,ptba,icc2022,xingtan,ptvicomo,agsvpt,hdkyl,qingwa,discfan,haidan,rousi"

View File

@ -1,20 +1,42 @@
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld] [mysqld]
host_cache_size=0 #
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve skip-name-resolve
datadir=/var/lib/mysql datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql user=mysql
mysql_native_password=ON # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet=64M
character_set_server=utf8mb4 character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
lower_case_table_names=1 lower_case_table_names=1
group_concat_max_len=1024000 group_concat_max_len=1024000
log_bin_trust_function_creators=1
secure_file_priv=
pid_file=/var/run/mysqld/mysqld.pid
[client] [client]
socket=/var/run/mysqld/mysqld.sock socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

View File

@ -5,13 +5,14 @@ services:
mysql: mysql:
command: command:
- --character-set-server=utf8mb4 - --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci - --lower_case_table_names=1
- --mysql-native-password=ON - --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
container_name: mysql container_name: mysql
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
image: mysql:8.4.3 image: mysql:5.7.44
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:
@ -21,8 +22,8 @@ services:
restart: always restart: always
user: 1000:1000 user: 1000:1000
volumes: volumes:
- ${MYSQL_ROOT_PATH}/data:/var/lib/mysql - ${MYSQL_ROOT_PATH}/data/:/var/lib/mysql
- ${MYSQL_ROOT_PATH}/config/my.cnf:/etc/my.cnf - ${MYSQL_ROOT_PATH}/config/my.cnf:/etc/mysql/my.cnf
- ${MYSQL_ROOT_PATH}/log:/var/log/mysql - ${MYSQL_ROOT_PATH}/log:/var/log/mysql
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro

View File

@ -1,42 +0,0 @@
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet=64M
character_set_server=utf8mb4
lower_case_table_names=1
group_concat_max_len=1024000
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

View File

@ -0,0 +1,20 @@
[mysqld]
host_cache_size=0
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
user=mysql
mysql_native_password=ON
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
lower_case_table_names=1
group_concat_max_len=1024000
log_bin_trust_function_creators=1
secure_file_priv=
pid_file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/

View File

@ -5,14 +5,13 @@ services:
mysql: mysql:
command: command:
- --character-set-server=utf8mb4 - --character-set-server=utf8mb4
- --lower_case_table_names=1 - --collation-server=utf8mb4_unicode_ci
- --collation-server=utf8mb4_general_ci - --mysql-native-password=ON
- --explicit_defaults_for_timestamp=true
container_name: mysql container_name: mysql
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
image: mysql:5.7.44 image: mysql:8.4.3
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:
@ -22,8 +21,8 @@ services:
restart: always restart: always
user: 1000:1000 user: 1000:1000
volumes: volumes:
- ${MYSQL_ROOT_PATH}/data/:/var/lib/mysql - ${MYSQL_ROOT_PATH}/data:/var/lib/mysql
- ${MYSQL_ROOT_PATH}/config/my.cnf:/etc/mysql/my.cnf - ${MYSQL_ROOT_PATH}/config/my.cnf:/etc/my.cnf
- ${MYSQL_ROOT_PATH}/log:/var/log/mysql - ${MYSQL_ROOT_PATH}/log:/var/log/mysql
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro

View File

@ -3,7 +3,7 @@ networks:
external: true external: true
services: services:
postgresql: postgresql:
container_name: pg15-vectors-postgresql container_name: pg16-postgresql
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
@ -12,7 +12,7 @@ services:
POSTGRES_INITDB_ARGS: --data-checksums POSTGRES_INITDB_ARGS: --data-checksums
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_USER: ${POSTGRES_USER:-postgres}
image: tensorchord/pgvecto-rs:pg15-v0.2.1 image: postgres:16
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -3,7 +3,7 @@ networks:
external: true external: true
services: services:
postgresql: postgresql:
container_name: pg16-postgresql container_name: pg15-vectors-postgresql
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
@ -12,7 +12,7 @@ services:
POSTGRES_INITDB_ARGS: --data-checksums POSTGRES_INITDB_ARGS: --data-checksums
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_USER: ${POSTGRES_USER:-postgres}
image: postgres:16 image: tensorchord/pgvecto-rs:pg15-v0.2.1
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -12,7 +12,7 @@ services:
- UMASK=022 - UMASK=022
- WEBUI_PORT=${PANEL_APP_PORT_HTTP} - WEBUI_PORT=${PANEL_APP_PORT_HTTP}
- TORRENTING_PORT=${PANEL_APP_PORT_TORRENTING} - TORRENTING_PORT=${PANEL_APP_PORT_TORRENTING}
image: linuxserver/qbittorrent:5.0.2 image: linuxserver/qbittorrent:4.6.7
labels: labels:
createdBy: Apps createdBy: Apps
network_mode: ${NETWORK_MODE} network_mode: ${NETWORK_MODE}

View File

@ -12,7 +12,7 @@ services:
- UMASK=022 - UMASK=022
- WEBUI_PORT=${PANEL_APP_PORT_HTTP} - WEBUI_PORT=${PANEL_APP_PORT_HTTP}
- TORRENTING_PORT=${PANEL_APP_PORT_TORRENTING} - TORRENTING_PORT=${PANEL_APP_PORT_TORRENTING}
image: linuxserver/qbittorrent:4.6.7 image: linuxserver/qbittorrent:5.0.2
labels: labels:
createdBy: Apps createdBy: Apps
network_mode: ${NETWORK_MODE} network_mode: ${NETWORK_MODE}

View File

@ -32,17 +32,8 @@
# If instead you are interested in using includes to override configuration # If instead you are interested in using includes to override configuration
# options, it is better to use include as the last line. # options, it is better to use include as the last line.
# #
# Included paths may contain wildcards. All files matching the wildcards will
# be included in alphabetical order.
# Note that if an include path contains a wildcards but no files match it when
# the server is started, the include statement will be ignored and no error will
# be emitted. It is safe, therefore, to include wildcard files from empty
# directories.
#
# include /path/to/local.conf # include /path/to/local.conf
# include /path/to/other.conf # include /path/to/other.conf
# include /path/to/fragments/*.conf
#
################################## MODULES ##################################### ################################## MODULES #####################################
@ -58,81 +49,43 @@
# for connections from all available network interfaces on the host machine. # for connections from all available network interfaces on the host machine.
# It is possible to listen to just one or multiple selected interfaces using # It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses. # the "bind" configuration directive, followed by one or more IP addresses.
# Each address can be prefixed by "-", which means that redis will not fail to
# start if the address is not available. Being not available only refers to
# addresses that does not correspond to any network interface. Addresses that
# are already in use will always fail, and unsupported protocols will always BE
# silently skipped.
# #
# Examples: # Examples:
# #
# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses # bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 # bind 127.0.0.1 ::1
# bind * -::* # like the default, all available interfaces
# #
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the # internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the # instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only on the # following bind directive, that will force Redis to listen only on the
# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis # IPv4 loopback interface address (this means Redis will only be able to
# will only be able to accept client connections from the same host that it is # accept client connections from the same host that it is running on).
# running on).
# #
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# COMMENT OUT THE FOLLOWING LINE. # JUST COMMENT OUT THE FOLLOWING LINE.
#
# You will also need to set a password unless you explicitly disable protected
# mode.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0 bind 0.0.0.0
# By default, outgoing connections (from replica to master, from Sentinel to
# instances, cluster bus, etc.) are not bound to a specific local address. In
# most cases, this means the operating system will handle that based on routing
# and the interface through which the connection goes out.
#
# Using bind-source-addr it is possible to configure a specific address to bind
# to, which may also affect how the connection gets routed.
#
# Example:
#
# bind-source-addr 10.0.0.1
# Protected mode is a layer of security protection, in order to avoid that # Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited. # Redis instances left open on the internet are accessed and exploited.
# #
# When protected mode is on and the default user has no password, the server # When protected mode is on and if:
# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address #
# (::1) or Unix domain sockets. # 1) The server is not binding explicitly to a set of addresses using the
# "bind" directive.
# 2) No password is configured.
#
# The server only accepts connections from clients connecting from the
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
# sockets.
# #
# By default protected mode is enabled. You should disable it only if # By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis # you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured. # even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode yes protected-mode yes
# Redis uses default hardened security configuration directives to reduce the
# attack surface on innocent users. Therefore, several sensitive configuration
# directives are immutable, and some potentially-dangerous commands are blocked.
#
# Configuration directives that control files that Redis writes to (e.g., 'dir'
# and 'dbfilename') and that aren't usually modified during runtime
# are protected by making them immutable.
#
# Commands that can increase the attack surface of Redis and that aren't usually
# called by users are blocked by default.
#
# These can be exposed to either all connections or just local ones by setting
# each of the configs listed below to either of these values:
#
# no - Block for any connection (remain immutable)
# yes - Allow for any connection (no protection)
# local - Allow only for local connections. Ones originating from the
# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
#
# enable-protected-configs no
# enable-debug-command no
# enable-module-command no
# Accept connections on the specified port, default is 6379 (IANA #815344). # Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket. # If port 0 is specified Redis will not listen on a TCP socket.
port 6379 port 6379
@ -152,7 +105,7 @@ tcp-backlog 511
# incoming connections. There is no default, so Redis will not listen # incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified. # on a unix socket when not specified.
# #
# unixsocket /run/redis.sock # unixsocket /tmp/redis.sock
# unixsocketperm 700 # unixsocketperm 700
# Close the connection after a client is idle for N seconds (0 to disable) # Close the connection after a client is idle for N seconds (0 to disable)
@ -175,16 +128,6 @@ timeout 0
# Redis default starting with Redis 3.2.1. # Redis default starting with Redis 3.2.1.
tcp-keepalive 300 tcp-keepalive 300
# Apply OS-specific mechanism to mark the listening socket with the specified
# ID, to support advanced routing and filtering capabilities.
#
# On Linux, the ID represents a connection mark.
# On FreeBSD, the ID represents a socket cookie ID.
# On OpenBSD, the ID represents a route table ID.
#
# The default value is 0, which implies no marking is required.
# socket-mark-id 0
################################# TLS/SSL ##################################### ################################# TLS/SSL #####################################
# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration # By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
@ -200,32 +143,8 @@ tcp-keepalive 300
# #
# tls-cert-file redis.crt # tls-cert-file redis.crt
# tls-key-file redis.key # tls-key-file redis.key
#
# If the key file is encrypted using a passphrase, it can be included here
# as well.
#
# tls-key-file-pass secret
# Normally Redis uses the same certificate for both server functions (accepting # Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange:
# connections) and client functions (replicating from a master, establishing
# cluster bus connections, etc.).
#
# Sometimes certificates are issued with attributes that designate them as
# client-only or server-only certificates. In that case it may be desired to use
# different certificates for incoming (server) and outgoing (client)
# connections. To do that, use the following directives:
#
# tls-client-cert-file client.crt
# tls-client-key-file client.key
#
# If the key file is encrypted using a passphrase, it can be included here
# as well.
#
# tls-client-key-file-pass secret
# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
# required by older versions of OpenSSL (<3.0). Newer versions do not require
# this configuration and recommend against it.
# #
# tls-dh-params-file redis.dh # tls-dh-params-file redis.dh
@ -258,12 +177,9 @@ tcp-keepalive 300
# #
# tls-cluster yes # tls-cluster yes
# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended # Explicitly specify TLS versions to support. Allowed values are case insensitive
# that older formally deprecated versions are kept disabled to reduce the attack surface. # and include "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" (OpenSSL >= 1.1.1) or
# You can explicitly specify TLS versions to support. # any combination. To enable only TLSv1.2 and TLSv1.3, use:
# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
# To enable only TLSv1.2 and TLSv1.3, use:
# #
# tls-protocols "TLSv1.2 TLSv1.3" # tls-protocols "TLSv1.2 TLSv1.3"
@ -305,7 +221,6 @@ tcp-keepalive 300
# By default Redis does not run as a daemon. Use 'yes' if you need it. # By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
# When Redis is supervised by upstart or systemd, this parameter has no impact.
daemonize no daemonize no
# If you run Redis from upstart or systemd, Redis can interact with your # If you run Redis from upstart or systemd, Redis can interact with your
@ -314,17 +229,11 @@ daemonize no
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# requires "expect stop" in your upstart job config # requires "expect stop" in your upstart job config
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# on startup, and updating Redis status on a regular
# basis.
# supervised auto - detect upstart or systemd method based on # supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables # UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready." # Note: these supervision methods only signal "process is ready."
# They do not enable continuous pings back to your supervisor. # They do not enable continuous pings back to your supervisor.
# supervised no
# The default is "no". To run under upstart/systemd, you can simply uncomment
# the line below:
#
# supervised auto
# If a pid file is specified, Redis writes it where specified at startup # If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit. # and removes it at exit.
@ -335,9 +244,6 @@ daemonize no
# #
# Creating a pid file is best effort: if Redis is not able to create it # Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally. # nothing bad happens, the server will start and run normally.
#
# Note that on modern Linux systems "/run/redis.pid" is more conforming
# and should be used instead.
pidfile /var/run/redis_6379.pid pidfile /var/run/redis_6379.pid
# Specify the server verbosity level. # Specify the server verbosity level.
@ -363,74 +269,44 @@ logfile ""
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0 # syslog-facility local0
# To disable the built in crash log, which will possibly produce cleaner core
# dumps when they are needed, uncomment the following:
#
# crash-log-enabled no
# To disable the fast memory check that's run as part of the crash log, which
# will possibly let redis terminate sooner, uncomment the following:
#
# crash-memcheck-enabled no
# Set the number of databases. The default database is DB 0, you can select # Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where # a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1 # dbid is a number between 0 and 'databases'-1
databases 16 databases 16
# By default Redis shows an ASCII art logo only when started to log to the # By default Redis shows an ASCII art logo only when started to log to the
# standard output and if the standard output is a TTY and syslog logging is # standard output and if the standard output is a TTY. Basically this means
# disabled. Basically this means that normally a logo is displayed only in # that normally a logo is displayed only in interactive sessions.
# interactive sessions.
# #
# However it is possible to force the pre-4.0 behavior and always show a # However it is possible to force the pre-4.0 behavior and always show a
# ASCII art logo in startup logs by setting the following option to yes. # ASCII art logo in startup logs by setting the following option to yes.
always-show-logo no always-show-logo yes
# By default, Redis modifies the process title (as seen in 'top' and 'ps') to
# provide some runtime information. It is possible to disable this and leave
# the process name as executed by setting the following to no.
set-proc-title yes
# When changing the process title, Redis uses the following template to construct
# the modified title.
#
# Template variables are specified in curly brackets. The following variables are
# supported:
#
# {title} Name of process as executed if parent, or type of child process.
# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or
# Unix socket if only that's available.
# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]".
# {port} TCP port listening on, or 0.
# {tls-port} TLS port listening on, or 0.
# {unixsocket} Unix domain socket listening on, or "".
# {config-file} Name of configuration file used.
#
proc-title-template "{title} {listen-addr} {server-mode}"
################################ SNAPSHOTTING ################################ ################################ SNAPSHOTTING ################################
# Save the DB to disk.
# #
# save <seconds> <changes> [<seconds> <changes> ...] # Save the DB on disk:
# #
# Redis will save the DB if the given number of seconds elapsed and it # save <seconds> <changes>
# surpassed the given number of write operations against the DB.
# #
# Snapshotting can be completely disabled with a single empty string argument # Will save the DB if both the given number of seconds and the given
# as in following example: # number of write operations against the DB occurred.
#
# In the example below the behavior will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: you can disable saving completely by commenting out all "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
# #
# save "" # save ""
#
# Unless specified otherwise, by default Redis will save the DB: save 900 1
# * After 3600 seconds (an hour) if at least 1 change was performed save 300 10
# * After 300 seconds (5 minutes) if at least 100 changes were performed save 60 10000
# * After 60 seconds if at least 10000 changes were performed
#
# You can set these explicitly by uncommenting the following line.
#
# save 3600 1 300 100 60 10000
# By default Redis will stop accepting writes if RDB snapshots are enabled # By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed. # (at least one save point) and the latest background save failed.
@ -462,21 +338,6 @@ rdbcompression yes
# tell the loading code to skip the check. # tell the loading code to skip the check.
rdbchecksum yes rdbchecksum yes
# Enables or disables full sanitization checks for ziplist and listpack etc when
# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
# crash later on while processing commands.
# Options:
# no - Never perform full sanitization
# yes - Always perform full sanitization
# clients - Perform full sanitization only for user connections.
# Excludes: RDB files, RESTORE commands received from the master
# connection, and client connections which have the
# skip-sanitize-payload ACL flag.
# The default should be 'clients' but since it currently affects cluster
# resharding via MIGRATE, it is temporarily set to 'no' by default.
#
# sanitize-dump-payload no
# The filename where to dump the DB # The filename where to dump the DB
dbfilename dump.rdb dbfilename dump.rdb
@ -551,10 +412,9 @@ dir ./
# still reply to client requests, possibly with out of date data, or the # still reply to client requests, possibly with out of date data, or the
# data set may just be empty if this is the first synchronization. # data set may just be empty if this is the first synchronization.
# #
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error # 2) If replica-serve-stale-data is set to 'no' the replica will reply with
# "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'" # an error "SYNC with master in progress" to all commands except:
# to all data access commands, excluding commands such as: # INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, # UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
# HOST and LATENCY. # HOST and LATENCY.
# #
@ -603,7 +463,7 @@ replica-read-only yes
# #
# With slow disks and fast (large bandwidth) networks, diskless replication # With slow disks and fast (large bandwidth) networks, diskless replication
# works better. # works better.
repl-diskless-sync yes repl-diskless-sync no
# When diskless replication is enabled, it is possible to configure the delay # When diskless replication is enabled, it is possible to configure the delay
# the server waits in order to spawn the child that transfers the RDB via socket # the server waits in order to spawn the child that transfers the RDB via socket
@ -617,18 +477,12 @@ repl-diskless-sync yes
# it entirely just set it to 0 seconds and the transfer will start ASAP. # it entirely just set it to 0 seconds and the transfer will start ASAP.
repl-diskless-sync-delay 5 repl-diskless-sync-delay 5
# When diskless replication is enabled with a delay, it is possible to let
# the replication start before the maximum delay is reached if the maximum
# number of replicas expected have connected. Default of 0 means that the
# maximum is not defined and Redis will wait the full delay.
repl-diskless-sync-max-replicas 0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# WARNING: RDB diskless load is experimental. Since in this setup the replica # WARNING: RDB diskless load is experimental. Since in this setup the replica
# does not immediately store an RDB on disk, it may cause data loss during # does not immediately store an RDB on disk, it may cause data loss during
# failovers. RDB diskless load + Redis modules not handling I/O reads may also # failovers. RDB diskless load + Redis modules not handling I/O reads may also
# cause Redis to abort in case of I/O errors during the initial synchronization # cause Redis to abort in case of I/O errors during the initial synchronization
# stage with the master. Use only if you know what you are doing. # stage with the master. Use only if your do what you are doing.
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# #
# Replica can load the RDB it reads from the replication link directly from the # Replica can load the RDB it reads from the replication link directly from the
@ -637,23 +491,19 @@ repl-diskless-sync-max-replicas 0
# #
# In many cases the disk is slower than the network, and storing and loading # In many cases the disk is slower than the network, and storing and loading
# the RDB file may increase replication time (and even increase the master's # the RDB file may increase replication time (and even increase the master's
# Copy on Write memory and replica buffers). # Copy on Write memory and salve buffers).
# However, parsing the RDB file directly from the socket may mean that we have # However, parsing the RDB file directly from the socket may mean that we have
# to flush the contents of the current database before the full rdb was # to flush the contents of the current database before the full rdb was
# received. For this reason we have the following options: # received. For this reason we have the following options:
# #
# "disabled" - Don't use diskless load (store the rdb file to the disk first) # "disabled" - Don't use diskless load (store the rdb file to the disk first)
# "on-empty-db" - Use diskless load only when it is completely safe. # "on-empty-db" - Use diskless load only when it is completely safe.
# "swapdb" - Keep current db contents in RAM while parsing the data directly # "swapdb" - Keep a copy of the current db contents in RAM while parsing
# from the socket. Replicas in this mode can keep serving current # the data directly from the socket. note that this requires
# data set while replication is in progress, except for cases where # sufficient memory, if you don't have it, you risk an OOM kill.
# they can't recognize master as having a data set from same
# replication history.
# Note that this requires sufficient memory, if you don't have it,
# you risk an OOM kill.
repl-diskless-load disabled repl-diskless-load disabled
# Master send PINGs to its replicas in a predefined interval. It's possible to # Replicas send PINGs to server in a predefined interval. It's possible to
# change this interval with the repl_ping_replica_period option. The default # change this interval with the repl_ping_replica_period option. The default
# value is 10 seconds. # value is 10 seconds.
# #
@ -728,43 +578,6 @@ repl-disable-tcp-nodelay no
# By default the priority is 100. # By default the priority is 100.
replica-priority 100 replica-priority 100
# The propagation error behavior controls how Redis will behave when it is
# unable to handle a command being processed in the replication stream from a master
# or processed while reading from an AOF file. Errors that occur during propagation
# are unexpected, and can cause data inconsistency. However, there are edge cases
# in earlier versions of Redis where it was possible for the server to replicate or persist
# commands that would fail on future versions. For this reason the default behavior
# is to ignore such errors and continue processing commands.
#
# If an application wants to ensure there is no data divergence, this configuration
# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
# to only panic when a replica encounters an error on the replication stream. One of
# these two panic values will become the default value in the future once there are
# sufficient safety mechanisms in place to prevent false positive crashes.
#
# propagation-error-behavior ignore
# Replica ignore disk write errors controls the behavior of a replica when it is
# unable to persist a write command received from its master to disk. By default,
# this configuration is set to 'no' and will crash the replica in this condition.
# It is not recommended to change this default, however in order to be compatible
# with older versions of Redis this config can be toggled to 'yes' which will just
# log a warning and execute the write command it got from the master.
#
# replica-ignore-disk-write-errors no
# -----------------------------------------------------------------------------
# By default, Redis Sentinel includes all replicas in its reports. A replica
# can be excluded from Redis Sentinel's announcements. An unannounced replica
# will be ignored by the 'sentinel replicas <master>' command and won't be
# exposed to Redis Sentinel's clients.
#
# This option does not change the behavior of replica-priority. Even with
# replica-announced set to 'no', the replica can be promoted to master. To
# prevent this behavior, set replica-priority to 0.
#
# replica-announced yes
# It is possible for a master to stop accepting writes if there are less than # It is possible for a master to stop accepting writes if there are less than
# N replicas connected, having a lag less or equal than M seconds. # N replicas connected, having a lag less or equal than M seconds.
# #
@ -820,7 +633,7 @@ replica-priority 100
# Redis implements server assisted support for client side caching of values. # Redis implements server assisted support for client side caching of values.
# This is implemented using an invalidation table that remembers, using # This is implemented using an invalidation table that remembers, using
# a radix key indexed by key name, what clients have which keys. In turn # 16 millions of slots, what clients may have certain subsets of keys. In turn
# this is used in order to send invalidation messages to clients. Please # this is used in order to send invalidation messages to clients. Please
# check this page to understand more about the feature: # check this page to understand more about the feature:
# #
@ -884,12 +697,8 @@ replica-priority 100
# off Disable the user: it's no longer possible to authenticate # off Disable the user: it's no longer possible to authenticate
# with this user, however the already authenticated connections # with this user, however the already authenticated connections
# will still work. # will still work.
# skip-sanitize-payload RESTORE dump-payload sanitization is skipped. # +<command> Allow the execution of that command
# sanitize-payload RESTORE dump-payload is sanitized (default). # -<command> Disallow the execution of that command
# +<command> Allow the execution of that command.
# May be used with `|` for allowing subcommands (e.g "+config|get")
# -<command> Disallow the execution of that command.
# May be used with `|` for blocking subcommands (e.g "-config|set")
# +@<category> Allow the execution of all the commands in such category # +@<category> Allow the execution of all the commands in such category
# with valid categories are like @admin, @set, @sortedset, ... # with valid categories are like @admin, @set, @sortedset, ...
# and so forth, see the full list in the server.c file where # and so forth, see the full list in the server.c file where
@ -897,11 +706,10 @@ replica-priority 100
# The special category @all means all the commands, but currently # The special category @all means all the commands, but currently
# present in the server, and that will be loaded in the future # present in the server, and that will be loaded in the future
# via modules. # via modules.
# +<command>|first-arg Allow a specific first argument of an otherwise # +<command>|subcommand Allow a specific subcommand of an otherwise
# disabled command. It is only supported on commands with # disabled command. Note that this form is not
# no sub-commands, and is not allowed as negative form # allowed as negative like -DEBUG|SEGFAULT, but
# like -SELECT|1, only additive starting with "+". This # only additive starting with "+".
# feature is deprecated and may be removed in the future.
# allcommands Alias for +@all. Note that it implies the ability to execute # allcommands Alias for +@all. Note that it implies the ability to execute
# all the future commands loaded via the modules system. # all the future commands loaded via the modules system.
# nocommands Alias for -@all. # nocommands Alias for -@all.
@ -909,17 +717,8 @@ replica-priority 100
# commands. For instance ~* allows all the keys. The pattern # commands. For instance ~* allows all the keys. The pattern
# is a glob-style pattern like the one of KEYS. # is a glob-style pattern like the one of KEYS.
# It is possible to specify multiple patterns. # It is possible to specify multiple patterns.
# %R~<pattern> Add key read pattern that specifies which keys can be read
# from.
# %W~<pattern> Add key write pattern that specifies which keys can be
# written to.
# allkeys Alias for ~* # allkeys Alias for ~*
# resetkeys Flush the list of allowed keys patterns. # resetkeys Flush the list of allowed keys patterns.
# &<pattern> Add a glob-style pattern of Pub/Sub channels that can be
# accessed by the user. It is possible to specify multiple channel
# patterns.
# allchannels Alias for &*
# resetchannels Flush the list of allowed channel patterns.
# ><password> Add this password to the list of valid password for the user. # ><password> Add this password to the list of valid password for the user.
# For example >mypass will add "mypass" to the list. # For example >mypass will add "mypass" to the list.
# This directive clears the "nopass" flag (see later). # This directive clears the "nopass" flag (see later).
@ -938,14 +737,6 @@ replica-priority 100
# reset Performs the following actions: resetpass, resetkeys, off, # reset Performs the following actions: resetpass, resetkeys, off,
# -@all. The user returns to the same state it has immediately # -@all. The user returns to the same state it has immediately
# after its creation. # after its creation.
# (<options>) Create a new selector with the options specified within the
# parentheses and attach it to the user. Each option should be
# space separated. The first character must be ( and the last
# character must be ).
# clearselectors Remove all of the currently attached selectors.
# Note this does not change the "root" user permissions,
# which are the permissions directly applied onto the
# user (outside the parentheses).
# #
# ACL rules can be specified in any order: for instance you can start with # ACL rules can be specified in any order: for instance you can start with
# passwords, then flags, or key patterns. However note that the additive # passwords, then flags, or key patterns. However note that the additive
@ -967,40 +758,6 @@ replica-priority 100
# #
# Basically ACL rules are processed left-to-right. # Basically ACL rules are processed left-to-right.
# #
# The following is a list of command categories and their meanings:
# * keyspace - Writing or reading from keys, databases, or their metadata
# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
# key or metadata will also have `write` category. Commands that only read
# the keyspace, key or metadata will have the `read` category.
# * read - Reading from keys (values or metadata). Note that commands that don't
# interact with keys, will not have either `read` or `write`.
# * write - Writing to keys (values or metadata)
# * admin - Administrative commands. Normal applications will never need to use
# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
# * dangerous - Potentially dangerous (each should be considered with care for
# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
# * connection - Commands affecting the connection or other connections.
# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
# * blocking - Potentially blocking the connection until released by another
# command.
# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
# number of elements in the key.
# * slow - All commands that are not Fast.
# * pubsub - PUBLISH / SUBSCRIBE related
# * transaction - WATCH / MULTI / EXEC related commands.
# * scripting - Scripting related.
# * set - Data type: sets related.
# * sortedset - Data type: zsets related.
# * list - Data type: lists related.
# * hash - Data type: hashes related.
# * string - Data type: strings related.
# * bitmap - Data type: bitmaps related.
# * hyperloglog - Data type: hyperloglog related.
# * geo - Data type: geo related.
# * stream - Data type: streams related.
#
# For more information about ACL configuration please refer to # For more information about ACL configuration please refer to
# the Redis web site at https://redis.io/topics/acl # the Redis web site at https://redis.io/topics/acl
@ -1030,24 +787,8 @@ acllog-max-len 128
# AUTH <password> as usually, or more explicitly with AUTH default <password> # AUTH <password> as usually, or more explicitly with AUTH default <password>
# if they follow the new protocol: both will work. # if they follow the new protocol: both will work.
# #
# The requirepass is not compatible with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.
#
# requirepass foobared # requirepass foobared
# New users are initialized with restrictive permissions by default, via the
# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it
# is possible to manage access to Pub/Sub channels with ACL rules as well. The
# default Pub/Sub channels permission if new users is controlled by the
# acl-pubsub-default configuration directive, which accepts one of these values:
#
# allchannels: grants access to all Pub/Sub channels
# resetchannels: revokes access to all Pub/Sub channels
#
# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission.
#
# acl-pubsub-default resetchannels
# Command renaming (DEPRECATED). # Command renaming (DEPRECATED).
# #
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
@ -1136,12 +877,14 @@ acllog-max-len 128
# Both LRU, LFU and volatile-ttl are implemented using approximated # Both LRU, LFU and volatile-ttl are implemented using approximated
# randomized algorithms. # randomized algorithms.
# #
# Note: with any of the above policies, when there are no suitable keys for # Note: with any of the above policies, Redis will return an error on write
# eviction, Redis will return an error on write operations that require # operations, when there are no suitable keys for eviction.
# more memory. These are usually commands that create new keys, add data or #
# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE, # At the date of writing these commands are: set setnx setex append
# SORT (due to the STORE argument), and EXEC (if the transaction includes any # incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
# command that requires memory). # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
# getset mset msetnx exec sort
# #
# The default is: # The default is:
# #
@ -1158,14 +901,6 @@ acllog-max-len 128
# #
# maxmemory-samples 5 # maxmemory-samples 5
# Eviction processing is designed to function well with the default setting.
# If there is an unusually large amount of write traffic, this value may need to
# be increased. Decreasing this value may reduce latency at the risk of
# eviction processing effectiveness
# 0 = minimum latency, 10 = default, 100 = process without regard to latency
#
# maxmemory-eviction-tenacity 10
# Starting from Redis 5, by default a replica will ignore its maxmemory setting # Starting from Redis 5, by default a replica will ignore its maxmemory setting
# (unless it is promoted to master after a failover or manually). It means # (unless it is promoted to master after a failover or manually). It means
# that the eviction of keys will be just handled by the master, sending the # that the eviction of keys will be just handled by the master, sending the
@ -1259,13 +994,6 @@ replica-lazy-flush no
lazyfree-lazy-user-del no lazyfree-lazy-user-del no
# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
# commands. When neither flag is passed, this directive will be used to determine
# if the data should be deleted asynchronously.
lazyfree-lazy-user-flush no
################################ THREADED I/O ################################# ################################ THREADED I/O #################################
# Redis is mostly single threaded, however there are certain threaded # Redis is mostly single threaded, however there are certain threaded
@ -1304,7 +1032,7 @@ lazyfree-lazy-user-flush no
# Usually threading reads doesn't help much. # Usually threading reads doesn't help much.
# #
# NOTE 1: This configuration directive cannot be changed at runtime via # NOTE 1: This configuration directive cannot be changed at runtime via
# CONFIG SET. Also, this feature currently does not work when SSL is # CONFIG SET. Aso this feature currently does not work when SSL is
# enabled. # enabled.
# #
# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make # NOTE 2: If you want to test the Redis speedup using redis-benchmark, make
@ -1322,7 +1050,7 @@ lazyfree-lazy-user-flush no
# attempt to have background child processes killed before all others, and # attempt to have background child processes killed before all others, and
# replicas killed before masters. # replicas killed before masters.
# #
# Redis supports these options: # Redis supports three options:
# #
# no: Don't make changes to oom-score-adj (default). # no: Don't make changes to oom-score-adj (default).
# yes: Alias to "relative" see below. # yes: Alias to "relative" see below.
@ -1343,19 +1071,6 @@ oom-score-adj no
# oom-score-adj-values to positive values will always succeed. # oom-score-adj-values to positive values will always succeed.
oom-score-adj-values 0 200 800 oom-score-adj-values 0 200 800
#################### KERNEL transparent hugepage CONTROL ######################
# Usually the kernel Transparent Huge Pages control is set to "madvise" or
# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
# case this config has no effect. On systems in which it is set to "always",
# redis will attempt to disable it specifically for the redis process in order
# to avoid latency problems specifically with fork(2) and CoW.
# If for some reason you prefer to keep it enabled, you can set this config to
# "no" and the kernel global to "always".
disable-thp yes
############################## APPEND ONLY MODE ############################### ############################## APPEND ONLY MODE ###############################
# By default Redis asynchronously dumps the dataset on disk. This mode is # By default Redis asynchronously dumps the dataset on disk. This mode is
@ -1374,43 +1089,14 @@ disable-thp yes
# If the AOF is enabled on startup Redis will load the AOF, that is the file # If the AOF is enabled on startup Redis will load the AOF, that is the file
# with the better durability guarantees. # with the better durability guarantees.
# #
# Please check https://redis.io/topics/persistence for more information. # Please check http://redis.io/topics/persistence for more information.
appendonly no appendonly no
# The base name of the append only file. # The name of the append only file (default: "appendonly.aof")
#
# Redis 7 and newer use a set of append-only files to persist the dataset
# and changes applied to it. There are two basic types of files in use:
#
# - Base files, which are a snapshot representing the complete state of the
# dataset at the time the file was created. Base files can be either in
# the form of RDB (binary serialized) or AOF (textual commands).
# - Incremental files, which contain additional commands that were applied
# to the dataset following the previous file.
#
# In addition, manifest files are used to track the files and the order in
# which they were created and should be applied.
#
# Append-only file names are created by Redis following a specific pattern.
# The file name's prefix is based on the 'appendfilename' configuration
# parameter, followed by additional information about the sequence and type.
#
# For example, if appendfilename is set to appendonly.aof, the following file
# names could be derived:
#
# - appendonly.aof.1.base.rdb as a base file.
# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
# - appendonly.aof.manifest as a manifest file.
appendfilename "appendonly.aof" appendfilename "appendonly.aof"
# For convenience, Redis stores all persistent append-only files in a dedicated
# directory. The name of the directory is determined by the appenddirname
# configuration parameter.
appenddirname "appendonlydir"
# The fsync() call tells the Operating System to actually write data on disk # The fsync() call tells the Operating System to actually write data on disk
# instead of waiting for more data in the output buffer. Some OS will really flush # instead of waiting for more data in the output buffer. Some OS will really flush
# data on disk, some other OS will just try to do it ASAP. # data on disk, some other OS will just try to do it ASAP.
@ -1450,7 +1136,7 @@ appendfsync everysec
# BGSAVE or BGREWRITEAOF is in progress. # BGSAVE or BGREWRITEAOF is in progress.
# #
# This means that while another child is saving, the durability of Redis is # This means that while another child is saving, the durability of Redis is
# the same as "appendfsync no". In practical terms, this means that it is # the same as "appendfsync none". In practical terms, this means that it is
# possible to lose up to 30 seconds of log in the worst scenario (with the # possible to lose up to 30 seconds of log in the worst scenario (with the
# default Linux settings). # default Linux settings).
# #
@ -1503,69 +1189,34 @@ auto-aof-rewrite-min-size 64mb
# will be found. # will be found.
aof-load-truncated yes aof-load-truncated yes
# Redis can create append-only base files in either RDB or AOF formats. Using # When rewriting the AOF file, Redis is able to use an RDB preamble in the
# the RDB format is always faster and more efficient, and disabling it is only # AOF file for faster rewrites and recoveries. When this option is turned
# supported for backward compatibility purposes. # on the rewritten AOF file is composed of two different stanzas:
#
# [RDB file][AOF tail]
#
# When loading, Redis recognizes that the AOF file starts with the "REDIS"
# string and loads the prefixed RDB file, then continues loading the AOF
# tail.
aof-use-rdb-preamble yes aof-use-rdb-preamble yes
# Redis supports recording timestamp annotations in the AOF to support restoring ################################ LUA SCRIPTING ###############################
# the data from a specific point-in-time. However, using this capability changes
# the AOF format in a way that may not be compatible with existing AOF parsers.
aof-timestamp-enabled no
################################ SHUTDOWN ##################################### # Max execution time of a Lua script in milliseconds.
# Maximum time to wait for replicas when shutting down, in seconds.
# #
# During shut down, a grace period allows any lagging replicas to catch up with # If the maximum execution time is reached Redis will log that a script is
# the latest replication offset before the master exists. This period can # still in execution after the maximum allowed time and will start to
# prevent data loss, especially for deployments without configured disk backups. # reply to queries with an error.
# #
# The 'shutdown-timeout' value is the grace period's duration in seconds. It is # When a long running script exceeds the maximum execution time only the
# only applicable when the instance has replicas. To disable the feature, set # SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
# the value to 0. # used to stop a script that did not yet call any write commands. The second
# is the only way to shut down the server in the case a write command was
# already issued by the script but the user doesn't want to wait for the natural
# termination of the script.
# #
# shutdown-timeout 10 # Set it to 0 or a negative value for unlimited execution without warnings.
lua-time-limit 5000
# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default
# an RDB snapshot is written to disk in a blocking operation if save points are configured.
# The options used on signaled shutdown can include the following values:
# default: Saves RDB snapshot only if save points are configured.
# Waits for lagging replicas to catch up.
# save: Forces a DB saving operation even if no save points are configured.
# nosave: Prevents DB saving operation even if one or more save points are configured.
# now: Skips waiting for lagging replicas.
# force: Ignores any errors that would normally prevent the server from exiting.
#
# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
# Example: "nosave force now"
#
# shutdown-on-sigint default
# shutdown-on-sigterm default
################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
# Maximum time in milliseconds for EVAL scripts, functions and in some cases
# modules' commands before Redis can start processing or rejecting other clients.
#
# If the maximum execution time is reached Redis will start to reply to most
# commands with a BUSY error.
#
# In this state Redis will only allow a handful of commands to be executed.
# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
# module specific 'allow-busy' commands.
#
# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
# the server in the case a write command was already issued by the script when
# the user doesn't want to wait for the natural termination of the script.
#
# The default is 5 seconds. It is possible to set it to 0 or a negative value
# to disable this mechanism (uninterrupted execution). Note that in the past
# this config had a different name, which is now an alias, so both of these do
# the same:
# lua-time-limit 5000
# busy-reply-threshold 5000
################################ REDIS CLUSTER ############################### ################################ REDIS CLUSTER ###############################
@ -1589,11 +1240,6 @@ aof-timestamp-enabled no
# #
# cluster-node-timeout 15000 # cluster-node-timeout 15000
# The cluster port is the port that the cluster bus will listen for inbound connections on. When set
# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires
# you to specify the cluster bus port when executing cluster meet.
# cluster-port 0
# A replica of a failing master will avoid to start a failover if its data # A replica of a failing master will avoid to start a failover if its data
# looks too old. # looks too old.
# #
@ -1652,21 +1298,12 @@ aof-timestamp-enabled no
# master in your cluster. # master in your cluster.
# #
# Default is 1 (replicas migrate only if their masters remain with at least # Default is 1 (replicas migrate only if their masters remain with at least
# one replica). To disable migration just set it to a very large value or # one replica). To disable migration just set it to a very large value.
# set cluster-allow-replica-migration to 'no'.
# A value of 0 can be set but is useful only for debugging and dangerous # A value of 0 can be set but is useful only for debugging and dangerous
# in production. # in production.
# #
# cluster-migration-barrier 1 # cluster-migration-barrier 1
# Turning off this option allows to use less automatic cluster configuration.
# It both disables migration to orphaned masters and migration from masters
# that became empty.
#
# Default is 'yes' (allow automatic migrations).
#
# cluster-allow-replica-migration yes
# By default Redis Cluster nodes stop accepting queries if they detect there # By default Redis Cluster nodes stop accepting queries if they detect there
# is at least a hash slot uncovered (no available node is serving it). # is at least a hash slot uncovered (no available node is serving it).
# This way if the cluster is partially down (for example a range of hash slots # This way if the cluster is partially down (for example a range of hash slots
@ -1681,7 +1318,7 @@ aof-timestamp-enabled no
# cluster-require-full-coverage yes # cluster-require-full-coverage yes
# This option, when set to yes, prevents replicas from trying to failover its # This option, when set to yes, prevents replicas from trying to failover its
# master during master failures. However the replica can still perform a # master during master failures. However the master can still perform a
# manual failover, if forced to do so. # manual failover, if forced to do so.
# #
# This is useful in different scenarios, especially in the case of multiple # This is useful in different scenarios, especially in the case of multiple
@ -1691,7 +1328,7 @@ aof-timestamp-enabled no
# cluster-replica-no-failover no # cluster-replica-no-failover no
# This option, when set to yes, allows nodes to serve read traffic while the # This option, when set to yes, allows nodes to serve read traffic while the
# cluster is in a down state, as long as it believes it owns the slots. # the cluster is in a down state, as long as it believes it owns the slots.
# #
# This is useful for two cases. The first case is for when an application # This is useful for two cases. The first case is for when an application
# doesn't require consistency of data during node failures or network partitions. # doesn't require consistency of data during node failures or network partitions.
@ -1706,54 +1343,8 @@ aof-timestamp-enabled no
# #
# cluster-allow-reads-when-down no # cluster-allow-reads-when-down no
# This option, when set to yes, allows nodes to serve pubsub shard traffic while
# the cluster is in a down state, as long as it believes it owns the slots.
#
# This is useful if the application would like to use the pubsub feature even when
# the cluster global stable state is not OK. If the application wants to make sure only
# one shard is serving a given channel, this feature should be kept as yes.
#
# cluster-allow-pubsubshard-when-down yes
# Cluster link send buffer limit is the limit on the memory usage of an individual
# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
# this limit. This is to primarily prevent send buffers from growing unbounded on links
# toward slow peers (E.g. PubSub messages being piled up).
# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
# PubSub message by default. (client-query-buffer-limit default value is 1gb)
#
# cluster-link-sendbuf-limit 0
# Clusters can configure their announced hostname using this config. This is a common use case for
# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is
# communicated along the clusterbus to all nodes, setting it to an empty string will remove
# the hostname and also propagate the removal.
#
# cluster-announce-hostname ""
# Clusters can advertise how clients should connect to them using either their IP address,
# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS.
# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?'
# will be returned instead.
#
# When a cluster advertises itself as having an unknown endpoint, it's indicating that
# the server doesn't know how clients can reach the cluster. This can happen in certain
# networking situations where there are multiple possible routes to the node, and the
# server doesn't know which one the client took. In this case, the server is expecting
# the client to reach out on the same endpoint it used for making the last request, but use
# the port provided in the response.
#
# cluster-preferred-endpoint-type ip
# In order to setup your cluster make sure to read the documentation # In order to setup your cluster make sure to read the documentation
# available at https://redis.io web site. # available at http://redis.io web site.
########################## CLUSTER DOCKER/NAT support ######################## ########################## CLUSTER DOCKER/NAT support ########################
@ -1763,21 +1354,16 @@ aof-timestamp-enabled no
# #
# In order to make Redis Cluster working in such environments, a static # In order to make Redis Cluster working in such environments, a static
# configuration where each node knows its public address is needed. The # configuration where each node knows its public address is needed. The
# following four options are used for this scope, and are: # following two options are used for this scope, and are:
# #
# * cluster-announce-ip # * cluster-announce-ip
# * cluster-announce-port # * cluster-announce-port
# * cluster-announce-tls-port
# * cluster-announce-bus-port # * cluster-announce-bus-port
# #
# Each instructs the node about its address, client ports (for connections # Each instructs the node about its address, client port, and cluster message
# without and with TLS) and cluster message bus port. The information is then # bus port. The information is then published in the header of the bus packets
# published in the header of the bus packets so that other nodes will be able to # so that other nodes will be able to correctly map the address of the node
# correctly map the address of the node publishing the information. # publishing the information.
#
# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set
# to zero, then cluster-announce-port refers to the TLS port. Note also that
# cluster-announce-tls-port has no effect if cluster-tls is set to no.
# #
# If the above options are not used, the normal Redis Cluster auto-detection # If the above options are not used, the normal Redis Cluster auto-detection
# will be used instead. # will be used instead.
@ -1790,8 +1376,7 @@ aof-timestamp-enabled no
# Example: # Example:
# #
# cluster-announce-ip 10.1.1.5 # cluster-announce-ip 10.1.1.5
# cluster-announce-tls-port 6379 # cluster-announce-port 6379
# cluster-announce-port 0
# cluster-announce-bus-port 6380 # cluster-announce-bus-port 6380
################################## SLOW LOG ################################### ################################## SLOW LOG ###################################
@ -1839,24 +1424,10 @@ slowlog-max-len 128
# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed. # "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
latency-monitor-threshold 0 latency-monitor-threshold 0
################################ LATENCY TRACKING ##############################
# The Redis extended latency monitoring tracks the per command latencies and enables
# exporting the percentile distribution via the INFO latencystats command,
# and cumulative latency distributions (histograms) via the LATENCY command.
#
# By default, the extended latency monitoring is enabled since the overhead
# of keeping track of the command latency is very small.
# latency-tracking yes
# By default the exported latency percentiles via the INFO latencystats command
# are the p50, p99, and p999.
# latency-tracking-info-percentiles 50 99 99.9
############################# EVENT NOTIFICATION ############################## ############################# EVENT NOTIFICATION ##############################
# Redis can notify Pub/Sub clients about events happening in the key space. # Redis can notify Pub/Sub clients about events happening in the key space.
# This feature is documented at https://redis.io/topics/notifications # This feature is documented at http://redis.io/topics/notifications
# #
# For instance if keyspace events notification is enabled, and a client # For instance if keyspace events notification is enabled, and a client
# performs a DEL operation on key "foo" stored in the Database 0, two # performs a DEL operation on key "foo" stored in the Database 0, two
@ -1878,11 +1449,9 @@ latency-monitor-threshold 0
# z Sorted set commands # z Sorted set commands
# x Expired events (events generated every time a key expires) # x Expired events (events generated every time a key expires)
# e Evicted events (events generated when a key is evicted for maxmemory) # e Evicted events (events generated when a key is evicted for maxmemory)
# n New key events (Note: not included in the 'A' class)
# t Stream commands # t Stream commands
# d Module key type events
# m Key-miss events (Note: It is not included in the 'A' class) # m Key-miss events (Note: It is not included in the 'A' class)
# A Alias for g$lshzxetd, so that the "AKE" string means all the events # A Alias for g$lshzxet, so that the "AKE" string means all the events
# (Except key-miss events which are excluded from 'A' due to their # (Except key-miss events which are excluded from 'A' due to their
# unique nature). # unique nature).
# #
@ -1905,13 +1474,71 @@ latency-monitor-threshold 0
# specify at least one of K or E, no events will be delivered. # specify at least one of K or E, no events will be delivered.
notify-keyspace-events "" notify-keyspace-events ""
############################### GOPHER SERVER #################################
# Redis contains an implementation of the Gopher protocol, as specified in
# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt).
#
# The Gopher protocol was very popular in the late '90s. It is an alternative
# to the web, and the implementation both server and client side is so simple
# that the Redis server has just 100 lines of code in order to implement this
# support.
#
# What do you do with Gopher nowadays? Well Gopher never *really* died, and
# lately there is a movement in order for the Gopher more hierarchical content
# composed of just plain text documents to be resurrected. Some want a simpler
# internet, others believe that the mainstream internet became too much
# controlled, and it's cool to create an alternative space for people that
# want a bit of fresh air.
#
# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol
# as a gift.
#
# --- HOW IT WORKS? ---
#
# The Redis Gopher support uses the inline protocol of Redis, and specifically
# two kind of inline requests that were anyway illegal: an empty request
# or any request that starts with "/" (there are no Redis commands starting
# with such a slash). Normal RESP2/RESP3 requests are completely out of the
# path of the Gopher protocol implementation and are served as usual as well.
#
# If you open a connection to Redis when Gopher is enabled and send it
# a string like "/foo", if there is a key named "/foo" it is served via the
# Gopher protocol.
#
# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher
# talking), you likely need a script like the following:
#
# https://github.com/antirez/gopher2redis
#
# --- SECURITY WARNING ---
#
# If you plan to put Redis on the internet in a publicly accessible address
# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance.
# Once a password is set:
#
# 1. The Gopher server (when enabled, not by default) will still serve
# content via Gopher.
# 2. However other commands cannot be called before the client will
# authenticate.
#
# So use the 'requirepass' option to protect your instance.
#
# Note that Gopher is not currently supported when 'io-threads-do-reads'
# is enabled.
#
# To enable Gopher support, uncomment the following line and set the option
# from no (the default) to yes.
#
# gopher-enabled no
############################### ADVANCED CONFIG ############################### ############################### ADVANCED CONFIG ###############################
# Hashes are encoded using a memory efficient data structure when they have a # Hashes are encoded using a memory efficient data structure when they have a
# small number of entries, and the biggest entry does not exceed a given # small number of entries, and the biggest entry does not exceed a given
# threshold. These thresholds can be configured using the following directives. # threshold. These thresholds can be configured using the following directives.
hash-max-listpack-entries 512 hash-max-ziplist-entries 512
hash-max-listpack-value 64 hash-max-ziplist-value 64
# Lists are also encoded in a special way to save a lot of space. # Lists are also encoded in a special way to save a lot of space.
# The number of entries allowed per internal list node can be specified # The number of entries allowed per internal list node can be specified
@ -1926,7 +1553,7 @@ hash-max-listpack-value 64
# per list node. # per list node.
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), # The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
# but if your use case is unique, adjust the settings as necessary. # but if your use case is unique, adjust the settings as necessary.
list-max-listpack-size -2 list-max-ziplist-size -2
# Lists may also be compressed. # Lists may also be compressed.
# Compress depth is the number of quicklist ziplist nodes from *each* side of # Compress depth is the number of quicklist ziplist nodes from *each* side of
@ -1954,8 +1581,8 @@ set-max-intset-entries 512
# Similarly to hashes and lists, sorted sets are also specially encoded in # Similarly to hashes and lists, sorted sets are also specially encoded in
# order to save a lot of space. This encoding is only used when the length and # order to save a lot of space. This encoding is only used when the length and
# elements of a sorted set are below the following limits: # elements of a sorted set are below the following limits:
zset-max-listpack-entries 128 zset-max-ziplist-entries 128
zset-max-listpack-value 64 zset-max-ziplist-value 64
# HyperLogLog sparse representation bytes limit. The limit includes the # HyperLogLog sparse representation bytes limit. The limit includes the
# 16 bytes header. When an HyperLogLog using the sparse representation crosses # 16 bytes header. When an HyperLogLog using the sparse representation crosses
@ -1977,7 +1604,7 @@ hll-sparse-max-bytes 3000
# maximum number of items it may contain before switching to a new node when # maximum number of items it may contain before switching to a new node when
# appending new stream entries. If any of the following settings are set to # appending new stream entries. If any of the following settings are set to
# zero, the limit is ignored, so for instance it is possible to set just a # zero, the limit is ignored, so for instance it is possible to set just a
# max entries limit by setting max-bytes to 0 and max-entries to the desired # max entires limit by setting max-bytes to 0 and max-entries to the desired
# value. # value.
stream-node-max-bytes 4096 stream-node-max-bytes 4096
stream-node-max-entries 100 stream-node-max-entries 100
@ -2034,13 +1661,6 @@ activerehashing yes
# Instead there is a default limit for pubsub and replica clients, since # Instead there is a default limit for pubsub and replica clients, since
# subscribers and replicas receive data in a push fashion. # subscribers and replicas receive data in a push fashion.
# #
# Note that it doesn't make sense to set the replica clients output buffer
# limit lower than the repl-backlog-size config (partial sync will succeed
# and then replica will get disconnected).
# Such a configuration is ignored (the size of repl-backlog-size will be used).
# This doesn't have memory consumption implications since the replica client
# will share the backlog buffers memory.
#
# Both the hard or the soft limit can be disabled by setting them to zero. # Both the hard or the soft limit can be disabled by setting them to zero.
client-output-buffer-limit normal 0 0 0 client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit replica 256mb 64mb 60
@ -2054,25 +1674,6 @@ client-output-buffer-limit pubsub 32mb 8mb 60
# #
# client-query-buffer-limit 1gb # client-query-buffer-limit 1gb
# In some scenarios client connections can hog up memory leading to OOM
# errors or data eviction. To avoid this we can cap the accumulated memory
# used by all client connections (all pubsub and normal clients). Once we
# reach that limit connections will be dropped by the server freeing up
# memory. The server will attempt to drop the connections using the most
# memory first. We call this mechanism "client eviction".
#
# Client eviction is configured using the maxmemory-clients setting as follows:
# 0 - client eviction is disabled (default)
#
# A memory value can be used for the client eviction threshold,
# for example:
# maxmemory-clients 1g
#
# A percentage value (between 1% and 100%) means the client eviction threshold
# is based on a percentage of the maxmemory setting. For example to set client
# eviction at 5% of maxmemory:
# maxmemory-clients 5%
# In the Redis protocol, bulk requests, that are, elements representing single # In the Redis protocol, bulk requests, that are, elements representing single
# strings, are normally limited to 512 mb. However you can change this limit # strings, are normally limited to 512 mb. However you can change this limit
# here, but must be 1mb or greater # here, but must be 1mb or greater
@ -2113,13 +1714,13 @@ hz 10
dynamic-hz yes dynamic-hz yes
# When a child rewrites the AOF file, if the following option is enabled # When a child rewrites the AOF file, if the following option is enabled
# the file will be fsync-ed every 4 MB of data generated. This is useful # the file will be fsync-ed every 32 MB of data generated. This is useful
# in order to commit the file to the disk more incrementally and avoid # in order to commit the file to the disk more incrementally and avoid
# big latency spikes. # big latency spikes.
aof-rewrite-incremental-fsync yes aof-rewrite-incremental-fsync yes
# When redis saves RDB file, if the following option is enabled # When redis saves RDB file, if the following option is enabled
# the file will be fsync-ed every 4 MB of data generated. This is useful # the file will be fsync-ed every 32 MB of data generated. This is useful
# in order to commit the file to the disk more incrementally and avoid # in order to commit the file to the disk more incrementally and avoid
# big latency spikes. # big latency spikes.
rdb-save-incremental-fsync yes rdb-save-incremental-fsync yes
@ -2216,7 +1817,7 @@ rdb-save-incremental-fsync yes
# defragmentation process. If you are not sure about what they mean it is # defragmentation process. If you are not sure about what they mean it is
# a good idea to leave the defaults untouched. # a good idea to leave the defaults untouched.
# Active defragmentation is disabled by default # Enabled active defragmentation
# activedefrag no # activedefrag no
# Minimum amount of fragmentation waste to start active defrag # Minimum amount of fragmentation waste to start active defrag

View File

@ -7,7 +7,7 @@ services:
else\n redis-server /etc/redis/redis.conf --requirepass ${REDIS_ROOT_PASSWORD}\n\ else\n redis-server /etc/redis/redis.conf --requirepass ${REDIS_ROOT_PASSWORD}\n\
fi'\n" fi'\n"
container_name: redis container_name: redis
image: redis:7.4.1-alpine image: redis:6.2.16-alpine
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -32,8 +32,17 @@
# If instead you are interested in using includes to override configuration # If instead you are interested in using includes to override configuration
# options, it is better to use include as the last line. # options, it is better to use include as the last line.
# #
# Included paths may contain wildcards. All files matching the wildcards will
# be included in alphabetical order.
# Note that if an include path contains a wildcards but no files match it when
# the server is started, the include statement will be ignored and no error will
# be emitted. It is safe, therefore, to include wildcard files from empty
# directories.
#
# include /path/to/local.conf # include /path/to/local.conf
# include /path/to/other.conf # include /path/to/other.conf
# include /path/to/fragments/*.conf
#
################################## MODULES ##################################### ################################## MODULES #####################################
@ -49,43 +58,81 @@
# for connections from all available network interfaces on the host machine. # for connections from all available network interfaces on the host machine.
# It is possible to listen to just one or multiple selected interfaces using # It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses. # the "bind" configuration directive, followed by one or more IP addresses.
# Each address can be prefixed by "-", which means that redis will not fail to
# start if the address is not available. Being not available only refers to
# addresses that does not correspond to any network interface. Addresses that
# are already in use will always fail, and unsupported protocols will always BE
# silently skipped.
# #
# Examples: # Examples:
# #
# bind 192.168.1.100 10.0.0.1 # bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses
# bind 127.0.0.1 ::1 # bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6
# bind * -::* # like the default, all available interfaces
# #
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the # internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the # instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only on the # following bind directive, that will force Redis to listen only on the
# IPv4 loopback interface address (this means Redis will only be able to # IPv4 and IPv6 (if available) loopback interface addresses (this means Redis
# accept client connections from the same host that it is running on). # will only be able to accept client connections from the same host that it is
# running on).
# #
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT OUT THE FOLLOWING LINE. # COMMENT OUT THE FOLLOWING LINE.
#
# You will also need to set a password unless you explicitly disable protected
# mode.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0 bind 0.0.0.0
# By default, outgoing connections (from replica to master, from Sentinel to
# instances, cluster bus, etc.) are not bound to a specific local address. In
# most cases, this means the operating system will handle that based on routing
# and the interface through which the connection goes out.
#
# Using bind-source-addr it is possible to configure a specific address to bind
# to, which may also affect how the connection gets routed.
#
# Example:
#
# bind-source-addr 10.0.0.1
# Protected mode is a layer of security protection, in order to avoid that # Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited. # Redis instances left open on the internet are accessed and exploited.
# #
# When protected mode is on and if: # When protected mode is on and the default user has no password, the server
# # only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
# 1) The server is not binding explicitly to a set of addresses using the # (::1) or Unix domain sockets.
# "bind" directive.
# 2) No password is configured.
#
# The server only accepts connections from clients connecting from the
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
# sockets.
# #
# By default protected mode is enabled. You should disable it only if # By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis # you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces # even if no authentication is configured.
# are explicitly listed using the "bind" directive.
protected-mode yes protected-mode yes
# Redis uses default hardened security configuration directives to reduce the
# attack surface on innocent users. Therefore, several sensitive configuration
# directives are immutable, and some potentially-dangerous commands are blocked.
#
# Configuration directives that control files that Redis writes to (e.g., 'dir'
# and 'dbfilename') and that aren't usually modified during runtime
# are protected by making them immutable.
#
# Commands that can increase the attack surface of Redis and that aren't usually
# called by users are blocked by default.
#
# These can be exposed to either all connections or just local ones by setting
# each of the configs listed below to either of these values:
#
# no - Block for any connection (remain immutable)
# yes - Allow for any connection (no protection)
# local - Allow only for local connections. Ones originating from the
# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
#
# enable-protected-configs no
# enable-debug-command no
# enable-module-command no
# Accept connections on the specified port, default is 6379 (IANA #815344). # Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket. # If port 0 is specified Redis will not listen on a TCP socket.
port 6379 port 6379
@ -105,7 +152,7 @@ tcp-backlog 511
# incoming connections. There is no default, so Redis will not listen # incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified. # on a unix socket when not specified.
# #
# unixsocket /tmp/redis.sock # unixsocket /run/redis.sock
# unixsocketperm 700 # unixsocketperm 700
# Close the connection after a client is idle for N seconds (0 to disable) # Close the connection after a client is idle for N seconds (0 to disable)
@ -128,6 +175,16 @@ timeout 0
# Redis default starting with Redis 3.2.1. # Redis default starting with Redis 3.2.1.
tcp-keepalive 300 tcp-keepalive 300
# Apply OS-specific mechanism to mark the listening socket with the specified
# ID, to support advanced routing and filtering capabilities.
#
# On Linux, the ID represents a connection mark.
# On FreeBSD, the ID represents a socket cookie ID.
# On OpenBSD, the ID represents a route table ID.
#
# The default value is 0, which implies no marking is required.
# socket-mark-id 0
################################# TLS/SSL ##################################### ################################# TLS/SSL #####################################
# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration # By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
@ -143,8 +200,32 @@ tcp-keepalive 300
# #
# tls-cert-file redis.crt # tls-cert-file redis.crt
# tls-key-file redis.key # tls-key-file redis.key
#
# If the key file is encrypted using a passphrase, it can be included here
# as well.
#
# tls-key-file-pass secret
# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange: # Normally Redis uses the same certificate for both server functions (accepting
# connections) and client functions (replicating from a master, establishing
# cluster bus connections, etc.).
#
# Sometimes certificates are issued with attributes that designate them as
# client-only or server-only certificates. In that case it may be desired to use
# different certificates for incoming (server) and outgoing (client)
# connections. To do that, use the following directives:
#
# tls-client-cert-file client.crt
# tls-client-key-file client.key
#
# If the key file is encrypted using a passphrase, it can be included here
# as well.
#
# tls-client-key-file-pass secret
# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
# required by older versions of OpenSSL (<3.0). Newer versions do not require
# this configuration and recommend against it.
# #
# tls-dh-params-file redis.dh # tls-dh-params-file redis.dh
@ -177,9 +258,12 @@ tcp-keepalive 300
# #
# tls-cluster yes # tls-cluster yes
# Explicitly specify TLS versions to support. Allowed values are case insensitive # By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended
# and include "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" (OpenSSL >= 1.1.1) or # that older formally deprecated versions are kept disabled to reduce the attack surface.
# any combination. To enable only TLSv1.2 and TLSv1.3, use: # You can explicitly specify TLS versions to support.
# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
# To enable only TLSv1.2 and TLSv1.3, use:
# #
# tls-protocols "TLSv1.2 TLSv1.3" # tls-protocols "TLSv1.2 TLSv1.3"
@ -221,6 +305,7 @@ tcp-keepalive 300
# By default Redis does not run as a daemon. Use 'yes' if you need it. # By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
# When Redis is supervised by upstart or systemd, this parameter has no impact.
daemonize no daemonize no
# If you run Redis from upstart or systemd, Redis can interact with your # If you run Redis from upstart or systemd, Redis can interact with your
@ -229,11 +314,17 @@ daemonize no
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# requires "expect stop" in your upstart job config # requires "expect stop" in your upstart job config
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# on startup, and updating Redis status on a regular
# basis.
# supervised auto - detect upstart or systemd method based on # supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables # UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready." # Note: these supervision methods only signal "process is ready."
# They do not enable continuous pings back to your supervisor. # They do not enable continuous pings back to your supervisor.
supervised no #
# The default is "no". To run under upstart/systemd, you can simply uncomment
# the line below:
#
# supervised auto
# If a pid file is specified, Redis writes it where specified at startup # If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit. # and removes it at exit.
@ -244,6 +335,9 @@ supervised no
# #
# Creating a pid file is best effort: if Redis is not able to create it # Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally. # nothing bad happens, the server will start and run normally.
#
# Note that on modern Linux systems "/run/redis.pid" is more conforming
# and should be used instead.
pidfile /var/run/redis_6379.pid pidfile /var/run/redis_6379.pid
# Specify the server verbosity level. # Specify the server verbosity level.
@ -269,44 +363,74 @@ logfile ""
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0 # syslog-facility local0
# To disable the built in crash log, which will possibly produce cleaner core
# dumps when they are needed, uncomment the following:
#
# crash-log-enabled no
# To disable the fast memory check that's run as part of the crash log, which
# will possibly let redis terminate sooner, uncomment the following:
#
# crash-memcheck-enabled no
# Set the number of databases. The default database is DB 0, you can select # Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where # a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1 # dbid is a number between 0 and 'databases'-1
databases 16 databases 16
# By default Redis shows an ASCII art logo only when started to log to the # By default Redis shows an ASCII art logo only when started to log to the
# standard output and if the standard output is a TTY. Basically this means # standard output and if the standard output is a TTY and syslog logging is
# that normally a logo is displayed only in interactive sessions. # disabled. Basically this means that normally a logo is displayed only in
# interactive sessions.
# #
# However it is possible to force the pre-4.0 behavior and always show a # However it is possible to force the pre-4.0 behavior and always show a
# ASCII art logo in startup logs by setting the following option to yes. # ASCII art logo in startup logs by setting the following option to yes.
always-show-logo yes always-show-logo no
# By default, Redis modifies the process title (as seen in 'top' and 'ps') to
# provide some runtime information. It is possible to disable this and leave
# the process name as executed by setting the following to no.
set-proc-title yes
# When changing the process title, Redis uses the following template to construct
# the modified title.
#
# Template variables are specified in curly brackets. The following variables are
# supported:
#
# {title} Name of process as executed if parent, or type of child process.
# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or
# Unix socket if only that's available.
# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]".
# {port} TCP port listening on, or 0.
# {tls-port} TLS port listening on, or 0.
# {unixsocket} Unix domain socket listening on, or "".
# {config-file} Name of configuration file used.
#
proc-title-template "{title} {listen-addr} {server-mode}"
################################ SNAPSHOTTING ################################ ################################ SNAPSHOTTING ################################
# Save the DB to disk.
# #
# Save the DB on disk: # save <seconds> <changes> [<seconds> <changes> ...]
# #
# save <seconds> <changes> # Redis will save the DB if the given number of seconds elapsed and it
# surpassed the given number of write operations against the DB.
# #
# Will save the DB if both the given number of seconds and the given # Snapshotting can be completely disabled with a single empty string argument
# number of write operations against the DB occurred. # as in following example:
#
# In the example below the behavior will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: you can disable saving completely by commenting out all "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
# #
# save "" # save ""
#
save 900 1 # Unless specified otherwise, by default Redis will save the DB:
save 300 10 # * After 3600 seconds (an hour) if at least 1 change was performed
save 60 10000 # * After 300 seconds (5 minutes) if at least 100 changes were performed
# * After 60 seconds if at least 10000 changes were performed
#
# You can set these explicitly by uncommenting the following line.
#
# save 3600 1 300 100 60 10000
# By default Redis will stop accepting writes if RDB snapshots are enabled # By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed. # (at least one save point) and the latest background save failed.
@ -338,6 +462,21 @@ rdbcompression yes
# tell the loading code to skip the check. # tell the loading code to skip the check.
rdbchecksum yes rdbchecksum yes
# Enables or disables full sanitization checks for ziplist and listpack etc when
# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
# crash later on while processing commands.
# Options:
# no - Never perform full sanitization
# yes - Always perform full sanitization
# clients - Perform full sanitization only for user connections.
# Excludes: RDB files, RESTORE commands received from the master
# connection, and client connections which have the
# skip-sanitize-payload ACL flag.
# The default should be 'clients' but since it currently affects cluster
# resharding via MIGRATE, it is temporarily set to 'no' by default.
#
# sanitize-dump-payload no
# The filename where to dump the DB # The filename where to dump the DB
dbfilename dump.rdb dbfilename dump.rdb
@ -412,9 +551,10 @@ dir ./
# still reply to client requests, possibly with out of date data, or the # still reply to client requests, possibly with out of date data, or the
# data set may just be empty if this is the first synchronization. # data set may just be empty if this is the first synchronization.
# #
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with # 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
# an error "SYNC with master in progress" to all commands except: # "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
# INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, # to all data access commands, excluding commands such as:
# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, # UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
# HOST and LATENCY. # HOST and LATENCY.
# #
@ -463,7 +603,7 @@ replica-read-only yes
# #
# With slow disks and fast (large bandwidth) networks, diskless replication # With slow disks and fast (large bandwidth) networks, diskless replication
# works better. # works better.
repl-diskless-sync no repl-diskless-sync yes
# When diskless replication is enabled, it is possible to configure the delay # When diskless replication is enabled, it is possible to configure the delay
# the server waits in order to spawn the child that transfers the RDB via socket # the server waits in order to spawn the child that transfers the RDB via socket
@ -477,12 +617,18 @@ repl-diskless-sync no
# it entirely just set it to 0 seconds and the transfer will start ASAP. # it entirely just set it to 0 seconds and the transfer will start ASAP.
repl-diskless-sync-delay 5 repl-diskless-sync-delay 5
# When diskless replication is enabled with a delay, it is possible to let
# the replication start before the maximum delay is reached if the maximum
# number of replicas expected have connected. Default of 0 means that the
# maximum is not defined and Redis will wait the full delay.
repl-diskless-sync-max-replicas 0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# WARNING: RDB diskless load is experimental. Since in this setup the replica # WARNING: RDB diskless load is experimental. Since in this setup the replica
# does not immediately store an RDB on disk, it may cause data loss during # does not immediately store an RDB on disk, it may cause data loss during
# failovers. RDB diskless load + Redis modules not handling I/O reads may also # failovers. RDB diskless load + Redis modules not handling I/O reads may also
# cause Redis to abort in case of I/O errors during the initial synchronization # cause Redis to abort in case of I/O errors during the initial synchronization
# stage with the master. Use only if your do what you are doing. # stage with the master. Use only if you know what you are doing.
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# #
# Replica can load the RDB it reads from the replication link directly from the # Replica can load the RDB it reads from the replication link directly from the
@ -491,19 +637,23 @@ repl-diskless-sync-delay 5
# #
# In many cases the disk is slower than the network, and storing and loading # In many cases the disk is slower than the network, and storing and loading
# the RDB file may increase replication time (and even increase the master's # the RDB file may increase replication time (and even increase the master's
# Copy on Write memory and salve buffers). # Copy on Write memory and replica buffers).
# However, parsing the RDB file directly from the socket may mean that we have # However, parsing the RDB file directly from the socket may mean that we have
# to flush the contents of the current database before the full rdb was # to flush the contents of the current database before the full rdb was
# received. For this reason we have the following options: # received. For this reason we have the following options:
# #
# "disabled" - Don't use diskless load (store the rdb file to the disk first) # "disabled" - Don't use diskless load (store the rdb file to the disk first)
# "on-empty-db" - Use diskless load only when it is completely safe. # "on-empty-db" - Use diskless load only when it is completely safe.
# "swapdb" - Keep a copy of the current db contents in RAM while parsing # "swapdb" - Keep current db contents in RAM while parsing the data directly
# the data directly from the socket. note that this requires # from the socket. Replicas in this mode can keep serving current
# sufficient memory, if you don't have it, you risk an OOM kill. # data set while replication is in progress, except for cases where
# they can't recognize master as having a data set from same
# replication history.
# Note that this requires sufficient memory, if you don't have it,
# you risk an OOM kill.
repl-diskless-load disabled repl-diskless-load disabled
# Replicas send PINGs to server in a predefined interval. It's possible to # Master send PINGs to its replicas in a predefined interval. It's possible to
# change this interval with the repl_ping_replica_period option. The default # change this interval with the repl_ping_replica_period option. The default
# value is 10 seconds. # value is 10 seconds.
# #
@ -578,6 +728,43 @@ repl-disable-tcp-nodelay no
# By default the priority is 100. # By default the priority is 100.
replica-priority 100 replica-priority 100
# The propagation error behavior controls how Redis will behave when it is
# unable to handle a command being processed in the replication stream from a master
# or processed while reading from an AOF file. Errors that occur during propagation
# are unexpected, and can cause data inconsistency. However, there are edge cases
# in earlier versions of Redis where it was possible for the server to replicate or persist
# commands that would fail on future versions. For this reason the default behavior
# is to ignore such errors and continue processing commands.
#
# If an application wants to ensure there is no data divergence, this configuration
# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
# to only panic when a replica encounters an error on the replication stream. One of
# these two panic values will become the default value in the future once there are
# sufficient safety mechanisms in place to prevent false positive crashes.
#
# propagation-error-behavior ignore
# Replica ignore disk write errors controls the behavior of a replica when it is
# unable to persist a write command received from its master to disk. By default,
# this configuration is set to 'no' and will crash the replica in this condition.
# It is not recommended to change this default, however in order to be compatible
# with older versions of Redis this config can be toggled to 'yes' which will just
# log a warning and execute the write command it got from the master.
#
# replica-ignore-disk-write-errors no
# -----------------------------------------------------------------------------
# By default, Redis Sentinel includes all replicas in its reports. A replica
# can be excluded from Redis Sentinel's announcements. An unannounced replica
# will be ignored by the 'sentinel replicas <master>' command and won't be
# exposed to Redis Sentinel's clients.
#
# This option does not change the behavior of replica-priority. Even with
# replica-announced set to 'no', the replica can be promoted to master. To
# prevent this behavior, set replica-priority to 0.
#
# replica-announced yes
# It is possible for a master to stop accepting writes if there are less than # It is possible for a master to stop accepting writes if there are less than
# N replicas connected, having a lag less or equal than M seconds. # N replicas connected, having a lag less or equal than M seconds.
# #
@ -633,7 +820,7 @@ replica-priority 100
# Redis implements server assisted support for client side caching of values. # Redis implements server assisted support for client side caching of values.
# This is implemented using an invalidation table that remembers, using # This is implemented using an invalidation table that remembers, using
# 16 millions of slots, what clients may have certain subsets of keys. In turn # a radix key indexed by key name, what clients have which keys. In turn
# this is used in order to send invalidation messages to clients. Please # this is used in order to send invalidation messages to clients. Please
# check this page to understand more about the feature: # check this page to understand more about the feature:
# #
@ -697,8 +884,12 @@ replica-priority 100
# off Disable the user: it's no longer possible to authenticate # off Disable the user: it's no longer possible to authenticate
# with this user, however the already authenticated connections # with this user, however the already authenticated connections
# will still work. # will still work.
# +<command> Allow the execution of that command # skip-sanitize-payload RESTORE dump-payload sanitization is skipped.
# -<command> Disallow the execution of that command # sanitize-payload RESTORE dump-payload is sanitized (default).
# +<command> Allow the execution of that command.
# May be used with `|` for allowing subcommands (e.g "+config|get")
# -<command> Disallow the execution of that command.
# May be used with `|` for blocking subcommands (e.g "-config|set")
# +@<category> Allow the execution of all the commands in such category # +@<category> Allow the execution of all the commands in such category
# with valid categories are like @admin, @set, @sortedset, ... # with valid categories are like @admin, @set, @sortedset, ...
# and so forth, see the full list in the server.c file where # and so forth, see the full list in the server.c file where
@ -706,10 +897,11 @@ replica-priority 100
# The special category @all means all the commands, but currently # The special category @all means all the commands, but currently
# present in the server, and that will be loaded in the future # present in the server, and that will be loaded in the future
# via modules. # via modules.
# +<command>|subcommand Allow a specific subcommand of an otherwise # +<command>|first-arg Allow a specific first argument of an otherwise
# disabled command. Note that this form is not # disabled command. It is only supported on commands with
# allowed as negative like -DEBUG|SEGFAULT, but # no sub-commands, and is not allowed as negative form
# only additive starting with "+". # like -SELECT|1, only additive starting with "+". This
# feature is deprecated and may be removed in the future.
# allcommands Alias for +@all. Note that it implies the ability to execute # allcommands Alias for +@all. Note that it implies the ability to execute
# all the future commands loaded via the modules system. # all the future commands loaded via the modules system.
# nocommands Alias for -@all. # nocommands Alias for -@all.
@ -717,8 +909,17 @@ replica-priority 100
# commands. For instance ~* allows all the keys. The pattern # commands. For instance ~* allows all the keys. The pattern
# is a glob-style pattern like the one of KEYS. # is a glob-style pattern like the one of KEYS.
# It is possible to specify multiple patterns. # It is possible to specify multiple patterns.
# %R~<pattern> Add key read pattern that specifies which keys can be read
# from.
# %W~<pattern> Add key write pattern that specifies which keys can be
# written to.
# allkeys Alias for ~* # allkeys Alias for ~*
# resetkeys Flush the list of allowed keys patterns. # resetkeys Flush the list of allowed keys patterns.
# &<pattern> Add a glob-style pattern of Pub/Sub channels that can be
# accessed by the user. It is possible to specify multiple channel
# patterns.
# allchannels Alias for &*
# resetchannels Flush the list of allowed channel patterns.
# ><password> Add this password to the list of valid password for the user. # ><password> Add this password to the list of valid password for the user.
# For example >mypass will add "mypass" to the list. # For example >mypass will add "mypass" to the list.
# This directive clears the "nopass" flag (see later). # This directive clears the "nopass" flag (see later).
@ -737,6 +938,14 @@ replica-priority 100
# reset Performs the following actions: resetpass, resetkeys, off, # reset Performs the following actions: resetpass, resetkeys, off,
# -@all. The user returns to the same state it has immediately # -@all. The user returns to the same state it has immediately
# after its creation. # after its creation.
# (<options>) Create a new selector with the options specified within the
# parentheses and attach it to the user. Each option should be
# space separated. The first character must be ( and the last
# character must be ).
# clearselectors Remove all of the currently attached selectors.
# Note this does not change the "root" user permissions,
# which are the permissions directly applied onto the
# user (outside the parentheses).
# #
# ACL rules can be specified in any order: for instance you can start with # ACL rules can be specified in any order: for instance you can start with
# passwords, then flags, or key patterns. However note that the additive # passwords, then flags, or key patterns. However note that the additive
@ -758,6 +967,40 @@ replica-priority 100
# #
# Basically ACL rules are processed left-to-right. # Basically ACL rules are processed left-to-right.
# #
# The following is a list of command categories and their meanings:
# * keyspace - Writing or reading from keys, databases, or their metadata
# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
# key or metadata will also have `write` category. Commands that only read
# the keyspace, key or metadata will have the `read` category.
# * read - Reading from keys (values or metadata). Note that commands that don't
# interact with keys, will not have either `read` or `write`.
# * write - Writing to keys (values or metadata)
# * admin - Administrative commands. Normal applications will never need to use
# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
# * dangerous - Potentially dangerous (each should be considered with care for
# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
# * connection - Commands affecting the connection or other connections.
# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
# * blocking - Potentially blocking the connection until released by another
# command.
# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
# number of elements in the key.
# * slow - All commands that are not Fast.
# * pubsub - PUBLISH / SUBSCRIBE related
# * transaction - WATCH / MULTI / EXEC related commands.
# * scripting - Scripting related.
# * set - Data type: sets related.
# * sortedset - Data type: zsets related.
# * list - Data type: lists related.
# * hash - Data type: hashes related.
# * string - Data type: strings related.
# * bitmap - Data type: bitmaps related.
# * hyperloglog - Data type: hyperloglog related.
# * geo - Data type: geo related.
# * stream - Data type: streams related.
#
# For more information about ACL configuration please refer to # For more information about ACL configuration please refer to
# the Redis web site at https://redis.io/topics/acl # the Redis web site at https://redis.io/topics/acl
@ -787,8 +1030,24 @@ acllog-max-len 128
# AUTH <password> as usually, or more explicitly with AUTH default <password> # AUTH <password> as usually, or more explicitly with AUTH default <password>
# if they follow the new protocol: both will work. # if they follow the new protocol: both will work.
# #
# The requirepass is not compatible with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.
#
# requirepass foobared # requirepass foobared
# New users are initialized with restrictive permissions by default, via the
# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it
# is possible to manage access to Pub/Sub channels with ACL rules as well. The
# default Pub/Sub channels permission if new users is controlled by the
# acl-pubsub-default configuration directive, which accepts one of these values:
#
# allchannels: grants access to all Pub/Sub channels
# resetchannels: revokes access to all Pub/Sub channels
#
# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission.
#
# acl-pubsub-default resetchannels
# Command renaming (DEPRECATED). # Command renaming (DEPRECATED).
# #
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
@ -877,14 +1136,12 @@ acllog-max-len 128
# Both LRU, LFU and volatile-ttl are implemented using approximated # Both LRU, LFU and volatile-ttl are implemented using approximated
# randomized algorithms. # randomized algorithms.
# #
# Note: with any of the above policies, Redis will return an error on write # Note: with any of the above policies, when there are no suitable keys for
# operations, when there are no suitable keys for eviction. # eviction, Redis will return an error on write operations that require
# # more memory. These are usually commands that create new keys, add data or
# At the date of writing these commands are: set setnx setex append # modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd # SORT (due to the STORE argument), and EXEC (if the transaction includes any
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby # command that requires memory).
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
# getset mset msetnx exec sort
# #
# The default is: # The default is:
# #
@ -901,6 +1158,14 @@ acllog-max-len 128
# #
# maxmemory-samples 5 # maxmemory-samples 5
# Eviction processing is designed to function well with the default setting.
# If there is an unusually large amount of write traffic, this value may need to
# be increased. Decreasing this value may reduce latency at the risk of
# eviction processing effectiveness
# 0 = minimum latency, 10 = default, 100 = process without regard to latency
#
# maxmemory-eviction-tenacity 10
# Starting from Redis 5, by default a replica will ignore its maxmemory setting # Starting from Redis 5, by default a replica will ignore its maxmemory setting
# (unless it is promoted to master after a failover or manually). It means # (unless it is promoted to master after a failover or manually). It means
# that the eviction of keys will be just handled by the master, sending the # that the eviction of keys will be just handled by the master, sending the
@ -994,6 +1259,13 @@ replica-lazy-flush no
lazyfree-lazy-user-del no lazyfree-lazy-user-del no
# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
# commands. When neither flag is passed, this directive will be used to determine
# if the data should be deleted asynchronously.
lazyfree-lazy-user-flush no
################################ THREADED I/O ################################# ################################ THREADED I/O #################################
# Redis is mostly single threaded, however there are certain threaded # Redis is mostly single threaded, however there are certain threaded
@ -1032,7 +1304,7 @@ lazyfree-lazy-user-del no
# Usually threading reads doesn't help much. # Usually threading reads doesn't help much.
# #
# NOTE 1: This configuration directive cannot be changed at runtime via # NOTE 1: This configuration directive cannot be changed at runtime via
# CONFIG SET. Aso this feature currently does not work when SSL is # CONFIG SET. Also, this feature currently does not work when SSL is
# enabled. # enabled.
# #
# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make # NOTE 2: If you want to test the Redis speedup using redis-benchmark, make
@ -1050,7 +1322,7 @@ lazyfree-lazy-user-del no
# attempt to have background child processes killed before all others, and # attempt to have background child processes killed before all others, and
# replicas killed before masters. # replicas killed before masters.
# #
# Redis supports three options: # Redis supports these options:
# #
# no: Don't make changes to oom-score-adj (default). # no: Don't make changes to oom-score-adj (default).
# yes: Alias to "relative" see below. # yes: Alias to "relative" see below.
@ -1071,6 +1343,19 @@ oom-score-adj no
# oom-score-adj-values to positive values will always succeed. # oom-score-adj-values to positive values will always succeed.
oom-score-adj-values 0 200 800 oom-score-adj-values 0 200 800
#################### KERNEL transparent hugepage CONTROL ######################
# Usually the kernel Transparent Huge Pages control is set to "madvise" or
# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
# case this config has no effect. On systems in which it is set to "always",
# redis will attempt to disable it specifically for the redis process in order
# to avoid latency problems specifically with fork(2) and CoW.
# If for some reason you prefer to keep it enabled, you can set this config to
# "no" and the kernel global to "always".
disable-thp yes
############################## APPEND ONLY MODE ############################### ############################## APPEND ONLY MODE ###############################
# By default Redis asynchronously dumps the dataset on disk. This mode is # By default Redis asynchronously dumps the dataset on disk. This mode is
@ -1089,14 +1374,43 @@ oom-score-adj-values 0 200 800
# If the AOF is enabled on startup Redis will load the AOF, that is the file # If the AOF is enabled on startup Redis will load the AOF, that is the file
# with the better durability guarantees. # with the better durability guarantees.
# #
# Please check http://redis.io/topics/persistence for more information. # Please check https://redis.io/topics/persistence for more information.
appendonly no appendonly no
# The name of the append only file (default: "appendonly.aof") # The base name of the append only file.
#
# Redis 7 and newer use a set of append-only files to persist the dataset
# and changes applied to it. There are two basic types of files in use:
#
# - Base files, which are a snapshot representing the complete state of the
# dataset at the time the file was created. Base files can be either in
# the form of RDB (binary serialized) or AOF (textual commands).
# - Incremental files, which contain additional commands that were applied
# to the dataset following the previous file.
#
# In addition, manifest files are used to track the files and the order in
# which they were created and should be applied.
#
# Append-only file names are created by Redis following a specific pattern.
# The file name's prefix is based on the 'appendfilename' configuration
# parameter, followed by additional information about the sequence and type.
#
# For example, if appendfilename is set to appendonly.aof, the following file
# names could be derived:
#
# - appendonly.aof.1.base.rdb as a base file.
# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
# - appendonly.aof.manifest as a manifest file.
appendfilename "appendonly.aof" appendfilename "appendonly.aof"
# For convenience, Redis stores all persistent append-only files in a dedicated
# directory. The name of the directory is determined by the appenddirname
# configuration parameter.
appenddirname "appendonlydir"
# The fsync() call tells the Operating System to actually write data on disk # The fsync() call tells the Operating System to actually write data on disk
# instead of waiting for more data in the output buffer. Some OS will really flush # instead of waiting for more data in the output buffer. Some OS will really flush
# data on disk, some other OS will just try to do it ASAP. # data on disk, some other OS will just try to do it ASAP.
@ -1136,7 +1450,7 @@ appendfsync everysec
# BGSAVE or BGREWRITEAOF is in progress. # BGSAVE or BGREWRITEAOF is in progress.
# #
# This means that while another child is saving, the durability of Redis is # This means that while another child is saving, the durability of Redis is
# the same as "appendfsync none". In practical terms, this means that it is # the same as "appendfsync no". In practical terms, this means that it is
# possible to lose up to 30 seconds of log in the worst scenario (with the # possible to lose up to 30 seconds of log in the worst scenario (with the
# default Linux settings). # default Linux settings).
# #
@ -1189,34 +1503,69 @@ auto-aof-rewrite-min-size 64mb
# will be found. # will be found.
aof-load-truncated yes aof-load-truncated yes
# When rewriting the AOF file, Redis is able to use an RDB preamble in the # Redis can create append-only base files in either RDB or AOF formats. Using
# AOF file for faster rewrites and recoveries. When this option is turned # the RDB format is always faster and more efficient, and disabling it is only
# on the rewritten AOF file is composed of two different stanzas: # supported for backward compatibility purposes.
#
# [RDB file][AOF tail]
#
# When loading, Redis recognizes that the AOF file starts with the "REDIS"
# string and loads the prefixed RDB file, then continues loading the AOF
# tail.
aof-use-rdb-preamble yes aof-use-rdb-preamble yes
################################ LUA SCRIPTING ############################### # Redis supports recording timestamp annotations in the AOF to support restoring
# the data from a specific point-in-time. However, using this capability changes
# the AOF format in a way that may not be compatible with existing AOF parsers.
aof-timestamp-enabled no
# Max execution time of a Lua script in milliseconds. ################################ SHUTDOWN #####################################
# Maximum time to wait for replicas when shutting down, in seconds.
# #
# If the maximum execution time is reached Redis will log that a script is # During shut down, a grace period allows any lagging replicas to catch up with
# still in execution after the maximum allowed time and will start to # the latest replication offset before the master exists. This period can
# reply to queries with an error. # prevent data loss, especially for deployments without configured disk backups.
# #
# When a long running script exceeds the maximum execution time only the # The 'shutdown-timeout' value is the grace period's duration in seconds. It is
# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be # only applicable when the instance has replicas. To disable the feature, set
# used to stop a script that did not yet call any write commands. The second # the value to 0.
# is the only way to shut down the server in the case a write command was
# already issued by the script but the user doesn't want to wait for the natural
# termination of the script.
# #
# Set it to 0 or a negative value for unlimited execution without warnings. # shutdown-timeout 10
lua-time-limit 5000
# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default
# an RDB snapshot is written to disk in a blocking operation if save points are configured.
# The options used on signaled shutdown can include the following values:
# default: Saves RDB snapshot only if save points are configured.
# Waits for lagging replicas to catch up.
# save: Forces a DB saving operation even if no save points are configured.
# nosave: Prevents DB saving operation even if one or more save points are configured.
# now: Skips waiting for lagging replicas.
# force: Ignores any errors that would normally prevent the server from exiting.
#
# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
# Example: "nosave force now"
#
# shutdown-on-sigint default
# shutdown-on-sigterm default
################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
# Maximum time in milliseconds for EVAL scripts, functions and in some cases
# modules' commands before Redis can start processing or rejecting other clients.
#
# If the maximum execution time is reached Redis will start to reply to most
# commands with a BUSY error.
#
# In this state Redis will only allow a handful of commands to be executed.
# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
# module specific 'allow-busy' commands.
#
# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
# the server in the case a write command was already issued by the script when
# the user doesn't want to wait for the natural termination of the script.
#
# The default is 5 seconds. It is possible to set it to 0 or a negative value
# to disable this mechanism (uninterrupted execution). Note that in the past
# this config had a different name, which is now an alias, so both of these do
# the same:
# lua-time-limit 5000
# busy-reply-threshold 5000
################################ REDIS CLUSTER ############################### ################################ REDIS CLUSTER ###############################
@ -1240,6 +1589,11 @@ lua-time-limit 5000
# #
# cluster-node-timeout 15000 # cluster-node-timeout 15000
# The cluster port is the port that the cluster bus will listen for inbound connections on. When set
# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires
# you to specify the cluster bus port when executing cluster meet.
# cluster-port 0
# A replica of a failing master will avoid to start a failover if its data # A replica of a failing master will avoid to start a failover if its data
# looks too old. # looks too old.
# #
@ -1298,12 +1652,21 @@ lua-time-limit 5000
# master in your cluster. # master in your cluster.
# #
# Default is 1 (replicas migrate only if their masters remain with at least # Default is 1 (replicas migrate only if their masters remain with at least
# one replica). To disable migration just set it to a very large value. # one replica). To disable migration just set it to a very large value or
# set cluster-allow-replica-migration to 'no'.
# A value of 0 can be set but is useful only for debugging and dangerous # A value of 0 can be set but is useful only for debugging and dangerous
# in production. # in production.
# #
# cluster-migration-barrier 1 # cluster-migration-barrier 1
# Turning off this option allows to use less automatic cluster configuration.
# It both disables migration to orphaned masters and migration from masters
# that became empty.
#
# Default is 'yes' (allow automatic migrations).
#
# cluster-allow-replica-migration yes
# By default Redis Cluster nodes stop accepting queries if they detect there # By default Redis Cluster nodes stop accepting queries if they detect there
# is at least a hash slot uncovered (no available node is serving it). # is at least a hash slot uncovered (no available node is serving it).
# This way if the cluster is partially down (for example a range of hash slots # This way if the cluster is partially down (for example a range of hash slots
@ -1318,7 +1681,7 @@ lua-time-limit 5000
# cluster-require-full-coverage yes # cluster-require-full-coverage yes
# This option, when set to yes, prevents replicas from trying to failover its # This option, when set to yes, prevents replicas from trying to failover its
# master during master failures. However the master can still perform a # master during master failures. However the replica can still perform a
# manual failover, if forced to do so. # manual failover, if forced to do so.
# #
# This is useful in different scenarios, especially in the case of multiple # This is useful in different scenarios, especially in the case of multiple
@ -1328,7 +1691,7 @@ lua-time-limit 5000
# cluster-replica-no-failover no # cluster-replica-no-failover no
# This option, when set to yes, allows nodes to serve read traffic while the # This option, when set to yes, allows nodes to serve read traffic while the
# the cluster is in a down state, as long as it believes it owns the slots. # cluster is in a down state, as long as it believes it owns the slots.
# #
# This is useful for two cases. The first case is for when an application # This is useful for two cases. The first case is for when an application
# doesn't require consistency of data during node failures or network partitions. # doesn't require consistency of data during node failures or network partitions.
@ -1343,8 +1706,54 @@ lua-time-limit 5000
# #
# cluster-allow-reads-when-down no # cluster-allow-reads-when-down no
# This option, when set to yes, allows nodes to serve pubsub shard traffic while
# the cluster is in a down state, as long as it believes it owns the slots.
#
# This is useful if the application would like to use the pubsub feature even when
# the cluster global stable state is not OK. If the application wants to make sure only
# one shard is serving a given channel, this feature should be kept as yes.
#
# cluster-allow-pubsubshard-when-down yes
# Cluster link send buffer limit is the limit on the memory usage of an individual
# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
# this limit. This is to primarily prevent send buffers from growing unbounded on links
# toward slow peers (E.g. PubSub messages being piled up).
# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
# PubSub message by default. (client-query-buffer-limit default value is 1gb)
#
# cluster-link-sendbuf-limit 0
# Clusters can configure their announced hostname using this config. This is a common use case for
# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is
# communicated along the clusterbus to all nodes, setting it to an empty string will remove
# the hostname and also propagate the removal.
#
# cluster-announce-hostname ""
# Clusters can advertise how clients should connect to them using either their IP address,
# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS.
# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?'
# will be returned instead.
#
# When a cluster advertises itself as having an unknown endpoint, it's indicating that
# the server doesn't know how clients can reach the cluster. This can happen in certain
# networking situations where there are multiple possible routes to the node, and the
# server doesn't know which one the client took. In this case, the server is expecting
# the client to reach out on the same endpoint it used for making the last request, but use
# the port provided in the response.
#
# cluster-preferred-endpoint-type ip
# In order to setup your cluster make sure to read the documentation # In order to setup your cluster make sure to read the documentation
# available at http://redis.io web site. # available at https://redis.io web site.
########################## CLUSTER DOCKER/NAT support ######################## ########################## CLUSTER DOCKER/NAT support ########################
@ -1354,16 +1763,21 @@ lua-time-limit 5000
# #
# In order to make Redis Cluster working in such environments, a static # In order to make Redis Cluster working in such environments, a static
# configuration where each node knows its public address is needed. The # configuration where each node knows its public address is needed. The
# following two options are used for this scope, and are: # following four options are used for this scope, and are:
# #
# * cluster-announce-ip # * cluster-announce-ip
# * cluster-announce-port # * cluster-announce-port
# * cluster-announce-tls-port
# * cluster-announce-bus-port # * cluster-announce-bus-port
# #
# Each instructs the node about its address, client port, and cluster message # Each instructs the node about its address, client ports (for connections
# bus port. The information is then published in the header of the bus packets # without and with TLS) and cluster message bus port. The information is then
# so that other nodes will be able to correctly map the address of the node # published in the header of the bus packets so that other nodes will be able to
# publishing the information. # correctly map the address of the node publishing the information.
#
# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set
# to zero, then cluster-announce-port refers to the TLS port. Note also that
# cluster-announce-tls-port has no effect if cluster-tls is set to no.
# #
# If the above options are not used, the normal Redis Cluster auto-detection # If the above options are not used, the normal Redis Cluster auto-detection
# will be used instead. # will be used instead.
@ -1376,7 +1790,8 @@ lua-time-limit 5000
# Example: # Example:
# #
# cluster-announce-ip 10.1.1.5 # cluster-announce-ip 10.1.1.5
# cluster-announce-port 6379 # cluster-announce-tls-port 6379
# cluster-announce-port 0
# cluster-announce-bus-port 6380 # cluster-announce-bus-port 6380
################################## SLOW LOG ################################### ################################## SLOW LOG ###################################
@ -1424,10 +1839,24 @@ slowlog-max-len 128
# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed. # "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
latency-monitor-threshold 0 latency-monitor-threshold 0
################################ LATENCY TRACKING ##############################
# The Redis extended latency monitoring tracks the per command latencies and enables
# exporting the percentile distribution via the INFO latencystats command,
# and cumulative latency distributions (histograms) via the LATENCY command.
#
# By default, the extended latency monitoring is enabled since the overhead
# of keeping track of the command latency is very small.
# latency-tracking yes
# By default the exported latency percentiles via the INFO latencystats command
# are the p50, p99, and p999.
# latency-tracking-info-percentiles 50 99 99.9
############################# EVENT NOTIFICATION ############################## ############################# EVENT NOTIFICATION ##############################
# Redis can notify Pub/Sub clients about events happening in the key space. # Redis can notify Pub/Sub clients about events happening in the key space.
# This feature is documented at http://redis.io/topics/notifications # This feature is documented at https://redis.io/topics/notifications
# #
# For instance if keyspace events notification is enabled, and a client # For instance if keyspace events notification is enabled, and a client
# performs a DEL operation on key "foo" stored in the Database 0, two # performs a DEL operation on key "foo" stored in the Database 0, two
@ -1449,9 +1878,11 @@ latency-monitor-threshold 0
# z Sorted set commands # z Sorted set commands
# x Expired events (events generated every time a key expires) # x Expired events (events generated every time a key expires)
# e Evicted events (events generated when a key is evicted for maxmemory) # e Evicted events (events generated when a key is evicted for maxmemory)
# n New key events (Note: not included in the 'A' class)
# t Stream commands # t Stream commands
# d Module key type events
# m Key-miss events (Note: It is not included in the 'A' class) # m Key-miss events (Note: It is not included in the 'A' class)
# A Alias for g$lshzxet, so that the "AKE" string means all the events # A Alias for g$lshzxetd, so that the "AKE" string means all the events
# (Except key-miss events which are excluded from 'A' due to their # (Except key-miss events which are excluded from 'A' due to their
# unique nature). # unique nature).
# #
@ -1474,71 +1905,13 @@ latency-monitor-threshold 0
# specify at least one of K or E, no events will be delivered. # specify at least one of K or E, no events will be delivered.
notify-keyspace-events "" notify-keyspace-events ""
############################### GOPHER SERVER #################################
# Redis contains an implementation of the Gopher protocol, as specified in
# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt).
#
# The Gopher protocol was very popular in the late '90s. It is an alternative
# to the web, and the implementation both server and client side is so simple
# that the Redis server has just 100 lines of code in order to implement this
# support.
#
# What do you do with Gopher nowadays? Well Gopher never *really* died, and
# lately there is a movement in order for the Gopher more hierarchical content
# composed of just plain text documents to be resurrected. Some want a simpler
# internet, others believe that the mainstream internet became too much
# controlled, and it's cool to create an alternative space for people that
# want a bit of fresh air.
#
# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol
# as a gift.
#
# --- HOW IT WORKS? ---
#
# The Redis Gopher support uses the inline protocol of Redis, and specifically
# two kind of inline requests that were anyway illegal: an empty request
# or any request that starts with "/" (there are no Redis commands starting
# with such a slash). Normal RESP2/RESP3 requests are completely out of the
# path of the Gopher protocol implementation and are served as usual as well.
#
# If you open a connection to Redis when Gopher is enabled and send it
# a string like "/foo", if there is a key named "/foo" it is served via the
# Gopher protocol.
#
# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher
# talking), you likely need a script like the following:
#
# https://github.com/antirez/gopher2redis
#
# --- SECURITY WARNING ---
#
# If you plan to put Redis on the internet in a publicly accessible address
# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance.
# Once a password is set:
#
# 1. The Gopher server (when enabled, not by default) will still serve
# content via Gopher.
# 2. However other commands cannot be called before the client will
# authenticate.
#
# So use the 'requirepass' option to protect your instance.
#
# Note that Gopher is not currently supported when 'io-threads-do-reads'
# is enabled.
#
# To enable Gopher support, uncomment the following line and set the option
# from no (the default) to yes.
#
# gopher-enabled no
############################### ADVANCED CONFIG ############################### ############################### ADVANCED CONFIG ###############################
# Hashes are encoded using a memory efficient data structure when they have a # Hashes are encoded using a memory efficient data structure when they have a
# small number of entries, and the biggest entry does not exceed a given # small number of entries, and the biggest entry does not exceed a given
# threshold. These thresholds can be configured using the following directives. # threshold. These thresholds can be configured using the following directives.
hash-max-ziplist-entries 512 hash-max-listpack-entries 512
hash-max-ziplist-value 64 hash-max-listpack-value 64
# Lists are also encoded in a special way to save a lot of space. # Lists are also encoded in a special way to save a lot of space.
# The number of entries allowed per internal list node can be specified # The number of entries allowed per internal list node can be specified
@ -1553,7 +1926,7 @@ hash-max-ziplist-value 64
# per list node. # per list node.
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), # The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
# but if your use case is unique, adjust the settings as necessary. # but if your use case is unique, adjust the settings as necessary.
list-max-ziplist-size -2 list-max-listpack-size -2
# Lists may also be compressed. # Lists may also be compressed.
# Compress depth is the number of quicklist ziplist nodes from *each* side of # Compress depth is the number of quicklist ziplist nodes from *each* side of
@ -1581,8 +1954,8 @@ set-max-intset-entries 512
# Similarly to hashes and lists, sorted sets are also specially encoded in # Similarly to hashes and lists, sorted sets are also specially encoded in
# order to save a lot of space. This encoding is only used when the length and # order to save a lot of space. This encoding is only used when the length and
# elements of a sorted set are below the following limits: # elements of a sorted set are below the following limits:
zset-max-ziplist-entries 128 zset-max-listpack-entries 128
zset-max-ziplist-value 64 zset-max-listpack-value 64
# HyperLogLog sparse representation bytes limit. The limit includes the # HyperLogLog sparse representation bytes limit. The limit includes the
# 16 bytes header. When an HyperLogLog using the sparse representation crosses # 16 bytes header. When an HyperLogLog using the sparse representation crosses
@ -1604,7 +1977,7 @@ hll-sparse-max-bytes 3000
# maximum number of items it may contain before switching to a new node when # maximum number of items it may contain before switching to a new node when
# appending new stream entries. If any of the following settings are set to # appending new stream entries. If any of the following settings are set to
# zero, the limit is ignored, so for instance it is possible to set just a # zero, the limit is ignored, so for instance it is possible to set just a
# max entires limit by setting max-bytes to 0 and max-entries to the desired # max entries limit by setting max-bytes to 0 and max-entries to the desired
# value. # value.
stream-node-max-bytes 4096 stream-node-max-bytes 4096
stream-node-max-entries 100 stream-node-max-entries 100
@ -1661,6 +2034,13 @@ activerehashing yes
# Instead there is a default limit for pubsub and replica clients, since # Instead there is a default limit for pubsub and replica clients, since
# subscribers and replicas receive data in a push fashion. # subscribers and replicas receive data in a push fashion.
# #
# Note that it doesn't make sense to set the replica clients output buffer
# limit lower than the repl-backlog-size config (partial sync will succeed
# and then replica will get disconnected).
# Such a configuration is ignored (the size of repl-backlog-size will be used).
# This doesn't have memory consumption implications since the replica client
# will share the backlog buffers memory.
#
# Both the hard or the soft limit can be disabled by setting them to zero. # Both the hard or the soft limit can be disabled by setting them to zero.
client-output-buffer-limit normal 0 0 0 client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit replica 256mb 64mb 60
@ -1674,6 +2054,25 @@ client-output-buffer-limit pubsub 32mb 8mb 60
# #
# client-query-buffer-limit 1gb # client-query-buffer-limit 1gb
# In some scenarios client connections can hog up memory leading to OOM
# errors or data eviction. To avoid this we can cap the accumulated memory
# used by all client connections (all pubsub and normal clients). Once we
# reach that limit connections will be dropped by the server freeing up
# memory. The server will attempt to drop the connections using the most
# memory first. We call this mechanism "client eviction".
#
# Client eviction is configured using the maxmemory-clients setting as follows:
# 0 - client eviction is disabled (default)
#
# A memory value can be used for the client eviction threshold,
# for example:
# maxmemory-clients 1g
#
# A percentage value (between 1% and 100%) means the client eviction threshold
# is based on a percentage of the maxmemory setting. For example to set client
# eviction at 5% of maxmemory:
# maxmemory-clients 5%
# In the Redis protocol, bulk requests, that are, elements representing single # In the Redis protocol, bulk requests, that are, elements representing single
# strings, are normally limited to 512 mb. However you can change this limit # strings, are normally limited to 512 mb. However you can change this limit
# here, but must be 1mb or greater # here, but must be 1mb or greater
@ -1714,13 +2113,13 @@ hz 10
dynamic-hz yes dynamic-hz yes
# When a child rewrites the AOF file, if the following option is enabled # When a child rewrites the AOF file, if the following option is enabled
# the file will be fsync-ed every 32 MB of data generated. This is useful # the file will be fsync-ed every 4 MB of data generated. This is useful
# in order to commit the file to the disk more incrementally and avoid # in order to commit the file to the disk more incrementally and avoid
# big latency spikes. # big latency spikes.
aof-rewrite-incremental-fsync yes aof-rewrite-incremental-fsync yes
# When redis saves RDB file, if the following option is enabled # When redis saves RDB file, if the following option is enabled
# the file will be fsync-ed every 32 MB of data generated. This is useful # the file will be fsync-ed every 4 MB of data generated. This is useful
# in order to commit the file to the disk more incrementally and avoid # in order to commit the file to the disk more incrementally and avoid
# big latency spikes. # big latency spikes.
rdb-save-incremental-fsync yes rdb-save-incremental-fsync yes
@ -1817,7 +2216,7 @@ rdb-save-incremental-fsync yes
# defragmentation process. If you are not sure about what they mean it is # defragmentation process. If you are not sure about what they mean it is
# a good idea to leave the defaults untouched. # a good idea to leave the defaults untouched.
# Enabled active defragmentation # Active defragmentation is disabled by default
# activedefrag no # activedefrag no
# Minimum amount of fragmentation waste to start active defrag # Minimum amount of fragmentation waste to start active defrag

View File

@ -7,7 +7,7 @@ services:
else\n redis-server /etc/redis/redis.conf --requirepass ${REDIS_ROOT_PASSWORD}\n\ else\n redis-server /etc/redis/redis.conf --requirepass ${REDIS_ROOT_PASSWORD}\n\
fi'\n" fi'\n"
container_name: redis container_name: redis
image: redis:6.2.16-alpine image: redis:7.4.1-alpine
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -4,3 +4,9 @@ UPTIME_KUMA_ROOT_PATH=/home/uptime-kuma
# WebUI 端口 [必填] # WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=3001 PANEL_APP_PORT_HTTP=3001
# Cloudflared 隧道令牌
UPTIME_KUMA_CLOUDFLARED_TOKEN=
# 禁用 Frame SameOrigin [必填]
UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=false

View File

@ -7,7 +7,16 @@ services:
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
image: louislam/uptime-kuma:2.0.0-beta.0 environment:
- PUID=0
- PGID=0
- UPTIME_KUMA_PORT=3001
- UPTIME_KUMA_HOST=0.0.0.0
- DATA_DIR=/app/data
- NODE_TLS_REJECT_UNAUTHORIZED=0
- UPTIME_KUMA_ALLOW_ALL_CHROME_EXEC=0
- UPTIME_KUMA_WS_ORIGIN_CHECK=cors-like
image: louislam/uptime-kuma:1.23.15
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks:

View File

@ -1,12 +0,0 @@
# 数据持久化路径 [必填]
UPTIME_KUMA_ROOT_PATH=/home/uptime-kuma
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=3001
# Cloudflared 隧道令牌
UPTIME_KUMA_CLOUDFLARED_TOKEN=
# 禁用 Frame SameOrigin [必填]
UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=false

View File

@ -0,0 +1,6 @@
# 数据持久化路径 [必填]
UPTIME_KUMA_ROOT_PATH=/home/uptime-kuma
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=3001

View File

@ -7,16 +7,7 @@ services:
env_file: env_file:
- ./envs/global.env - ./envs/global.env
- .env - .env
environment: image: louislam/uptime-kuma:2.0.0-beta.0
- PUID=0
- PGID=0
- UPTIME_KUMA_PORT=3001
- UPTIME_KUMA_HOST=0.0.0.0
- DATA_DIR=/app/data
- NODE_TLS_REJECT_UNAUTHORIZED=0
- UPTIME_KUMA_ALLOW_ALL_CHROME_EXEC=0
- UPTIME_KUMA_WS_ORIGIN_CHECK=cors-like
image: louislam/uptime-kuma:1.23.15
labels: labels:
createdBy: Apps createdBy: Apps
networks: networks: