Skip to content

Configuration overhaul: version 2 for the configuration toml file (breaking changes) #591

@josecelano

Description

@josecelano

Parent issue: #586
Relates to: torrust/torrust-tracker#878
Updated on: 2024-06-02 (added more changes)

There are two groups of changes. Changes in the 2024-05 group have already been implemented and merged.

Changes (2024-07)

After a discussion, we decided to make more changes:

Changes (2024-06)

After a discussion, we decided to make more changes:

Some are pending confirmation/feedback:

Old toml version (before 2024-06 changes)

[logging]
log_level = "info"

[tracker]
mode = "public"

[auth]
email_on_signup = "optional"
secret_key = "MaxVerstappenWC2021"

[mail]
email_verification_enabled = false
from = "[email protected]"
reply_to = "[email protected]"

NOTE: omitted non-changed fields.

New toml version (after 2024-06 changes)

version = "2"

[logging]
threshold = "info"

[tracker]
private = false
listed = false

[auth]
password_database_pepper = "MaxVerstappenWC2021"

[registration]
# Other future options related to registration in addition to mail.
# All options related to mail go into the mail subtype.

  [registration.mail]
  required = true
  verification_required = true

[mail]
from = "[email protected]"
reply_to = "[email protected]"

NOTE: omitted non-changed fields.

Changes (2024-05)

  1. Use TrackerMode from torrust-tracker-primitives crate.

Enum variants (Index -> Tracker):

  • Public -> Public
  • Private -> Private
  • Whitelisted -> Listed
  • PrivateWhitelisted -> PrivateListed

Enum serialized values (Index -> Tracker):

  • Public -> public
  • Private -> private
  • Whitelisted -> listed
  • PrivateWhitelisted -> private_listed

We have to use the Tracker version (enum variant -> serialized value):

  • Public -> public
  • Private -> private
  • Listed -> listed
  • PrivateListed -> private_listed
  1. Include log_level in a new section [loggging].

Old toml version (before 2024-05 changes)

log_level = "info"

[website]
name = "Torrust"

[tracker]
api_url = "http://localhost:1212"
mode = "Public"
token = "MyAccessToken"
token_valid_seconds = 7257600
url = "udp://localhost:6969"

[net]
port = 3001

# Uncomment if you want to enable TSL for development
#[net.tsl]
#ssl_cert_path = "./storage/index/lib/tls/localhost.crt"
#ssl_key_path = "./storage/index/lib/tls/localhost.key"

[auth]
email_on_signup = "Optional"
max_password_length = 64
min_password_length = 6
secret_key = "MaxVerstappenWC2021"

[database]
connect_url = "sqlite://data.db?mode=rwc"

[mail]
email_verification_enabled = false
from = "[email protected]"
password = ""
port = 25
reply_to = "[email protected]"
server = ""
username = ""

[image_cache]
capacity = 128000000
entry_size_limit = 4000000
max_request_timeout_ms = 1000
user_quota_bytes = 64000000
user_quota_period_seconds = 3600

[api]
default_torrent_page_size = 10
max_torrent_page_size = 30

[tracker_statistics_importer]
port = 3002
torrent_info_update_interval = 3600

New toml version (alfter 2024-05 changes)

[logging]
log_level = "info"

[website]
name = "Torrust"

[tracker]
api_url = "http://localhost:1212"
mode = "public"
token = "MyAccessToken"
token_valid_seconds = 7257600
url = "udp://localhost:6969"

[net]
base_url = "http://localhost"
bind_address = "0.0.0.0:3001"

# Uncomment if you want to enable TSL for development
#[net.tsl]
#ssl_cert_path = "./storage/index/lib/tls/localhost.crt"
#ssl_key_path = "./storage/index/lib/tls/localhost.key"

[auth]
email_on_signup = "Optional"
secret_key = "MaxVerstappenWC2021"

[auth.password_constraints]
max_password_length = 64
min_password_length = 6

[database]
connect_url = "sqlite://data.db?mode=rwc"

[mail]
email_verification_enabled = false
from = "[email protected]"
reply_to = "[email protected]"

[mail.smtp]
port = 25
server = ""

[mail.smtp.credentials]
password = ""
username = ""

[image_cache]
capacity = 128000000
entry_size_limit = 4000000
max_request_timeout_ms = 1000
user_quota_bytes = 64000000
user_quota_period_seconds = 3600

[api]
default_torrent_page_size = 10
max_torrent_page_size = 30

[tracker_statistics_importer]
port = 3002
torrent_info_update_interval = 3600

Notice:

  • The new value mode = "public" instead of mode = "Public".
  • The [net] bind_address

cc @da2ce7

Metadata

Metadata

Assignees

Labels

EPICContains several subissues

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions