[global]
# Application instance name
app_name = ezBookkeeping

# Either "production", "development"
mode = production

[server]
# Protocol (http, https, socket)
protocol = http

# The ip address to bind to, "0.0.0.0" will bind to all interfaces
http_addr = 0.0.0.0

# The http port to bind to
http_port = 8080

# The domain name used to access ezBookkeeping
domain = localhost

# The full url used to access ezBookkeeping in browser
root_url = %(protocol)s://%(domain)s:%(http_port)s/

# https certification and its key file
cert_file =
cert_key_file =

# Unix socket path, for "socket" only
unix_socket =

# Static file root path (relative or absolute path)
static_root_path = public

# Enable GZip
enable_gzip = false

# Set to true to log each request and execution time
log_request = true

[database]
# Either "mysql", "postgres" or "sqlite3"
type = sqlite3

# Database connection configuration, for "mysql" and "postgres"
host = 127.0.0.1:3306
name = ezbookkeeping
user = root
passwd =

# For "postgres" only, Either "disable", "require" or "verify-full"
ssl_mode = disable

# For "sqlite3" only, db file path (relative or absolute path)
db_path = data/ezbookkeeping.db

# Max idle connection number (0 - 65535, 0 means no idle connections are retained), default is 2
max_idle_conn = 2

# Max opened connection number (0 - 65535), default is 0 (unlimited)
max_open_conn = 0

# Max connection lifetime (0 - 4294967295 seconds), default is 14400 (4 hours)
conn_max_lifetime = 14400

# Set to true to log each sql statement and execution time
log_query = false

# Set to true to automatically update database structure when starting web server
auto_update_database = true

[mail]
# Set to true to enable sending mail by SMTP server
enable_smtp = false

# SMTP Server connection configuration
smtp_host = 127.0.0.1:25
smtp_user =
smtp_passwd =
smtp_skip_tls_verify = false

# Mail from address. This can be just an email address, or the "Name" <user@domain.com> format.
from_address =

[log]
# Either "console", "file", default is "console"
# Use space to separate multiple modes, e.g. "console file"
mode = console file

# Either "debug", "info", "warn", "error", default is "info"
level = info

# For "file" only, log file path (relative or absolute path)
log_path = log/ezbookkeeping.log

[uuid]
# Uuid generator type, supports "internal" currently
generator_type = internal

# For "internal" only, each server must have unique id (0 - 255)
server_id = 0

[security]
# Used for signing, you must change it to keep your user data safe before you first run ezBookkeeping
secret_key =

# Set to true to enable two factor authorization
enable_two_factor = true

# Token expired seconds (0 - 4294967295), default is 2592000 (30 days)
token_expired_time = 2592000

# Temporary token expired seconds (0 - 4294967295), default is 300 (5 minutes)
temporary_token_expired_time = 300

# Email verify token expired seconds (0 - 4294967295), default is 3600 (60 minutes)
email_verify_token_expired_time = 3600

# Password reset token expired seconds (0 - 4294967295), default is 3600 (60 minutes)
password_reset_token_expired_time = 3600

# Add X-Request-Id header to response to track user request or error, default is true
request_id_header = true

[user]
# Set to true to allow users to register account by themselves
enable_register = true

# Set to true to allow users to verify email address
enable_email_verify = false

# Set to true to require email must be verified when login
enable_force_email_verify = false

# Set to true to allow users to reset password
enable_forget_password = true

# Set to true to require email must be verified when use forget password
forget_password_require_email_verify = false

# User avatar provider, supports the following types:
# "gravatar": https://gravatar.com
# Leave blank if you want to disable user avatar
avatar_provider =

[data]
# Set to true to allow users to export their data
enable_export = true

[map]
# Map provider, supports the following types:
# "openstreetmap": https://www.openstreetmap.org
# "openstreetmap_humanitarian": http://map.hotosm.org
# "opentopomap": https://opentopomap.org
# "opnvkarte": https://publictransportmap.org
# "cyclosm": https://www.cyclosm.org
# "tomtom": https://www.tomtom.com
# "googlemap": https://map.google.com
# "baidumap": https://map.baidu.com
# "amap": https://amap.com
# Leave blank if you want to disable map
map_provider = openstreetmap

# Set to true to use the ezbookkeeping server to proxy map data requests, for "openstreetmap", "openstreetmap_humanitarian", "opentopomap", "opnvkarte", "cyclosm" or "tomtom"
map_data_fetch_proxy = false

# For "tomtom" only, TomTom map API key, please visit https://developer.tomtom.com/how-to-get-tomtom-api-key
tomtom_map_api_key =

# For "googlemap" only, Google map JavaScript API key, please visit https://developers.google.com/maps/get-started for more information
google_map_api_key =

# For "baidumap" only, Baidu map JavaScript API application key, please visit https://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/getkey for more information
baidu_map_ak =

# For "amap" only, Amap JavaScript API application key, please visit https://lbs.amap.com/api/javascript-api/guide/abc/prepare for more information
amap_application_key =

# For "amap" only, Amap JavaScript API security verification method, supports the following methods:
# "internal_proxy": use the internal proxy to request amap api with amap application secret (default)
# "external_proxy": use an external proxy to request amap api (amap application secret should be set by external proxy)
# "plain_text": append amap application secret to frontend request directly (insecurity for public network)
# Please visit https://developer.amap.com/api/jsapi-v2/guide/abc/load for more information
amap_security_verification_method = plain_text

# For "amap" only, Amap JavaScript API application secret, this setting must be provided when "amap_security_verification_method" is set to "internal_proxy" or "plain_text", please visit https://lbs.amap.com/api/javascript-api/guide/abc/prepare for more information
amap_application_secret =

# For "amap" only, Amap JavaScript API external proxy url, this setting must be provided when "amap_security_verification_method" is set to "external_proxy"
amap_api_external_proxy_url =

[exchange_rates]
# Exchange rates data source, supports the following types:
# "euro_central_bank"
# "bank_of_canada"
# "reserve_bank_of_australia",
# "czech_national_bank"
# "national_bank_of_poland"
# "monetary_authority_of_singapore"
data_source = euro_central_bank

# Requesting exchange rates data timeout (0 - 4294967295 milliseconds), default is 10000 (10 seconds)
request_timeout = 10000

# Set to true skip tls verification when request exchange rates data
skip_tls_verify = false
