# Site config settings

Most of settings have default values to "/"  for paths or "" for text or false for boolean, if are not set properly  **DocServer** config loadd will dispplay ain error an will not abort running.

Attributes order does not matter, in case of file path attributes relative path (the ones ending with path") is tried and finally **root_path** valued as root path for values. Pay attention to **cert** and **key** paths

## site.toml

```toml
## Root path for filea and relative path settings 
root_path = "sitehome"
# Sever name
name = "docserver"
org = "org"
# Show verbose info from 0 to 2 
verbose = 0
# Main root path for all rest
home_path = ""
prefix = ""
resources_path = "resources"

## Certs for SSL only for protocol = "https"
cert_file = "sitehome/certs/fullchain.pem"
key_file = "sitehome/certs/privkey.pem"

## Templates path
templates_path = "templates"
defaults_path = "resources/defaults"

## Main URLs
html_url = "/html"
assets_url = "/assets"

## Origin allowed for CORS requests
allow_origin = ["http://localhost:3000"]

## HOST ip or name for Web service
hostport = "localhost:3000"

## IP address to bind web service
bind = "0.0.0.0"

## PORT for Web service
port = 8800
## PROTOCOL for Web service: "http" or "https" (will do bind_rustls with cert_file and key_file) 
protocol = "http"

## Availables Langs
langs = ["en","es"]
dflt_lang = "en"
## Setting path for locales 
path_locales_config  = "config/locales.toml"

## How to signup by "invitation" or "open"
signup_mode = "open"
## Exporation time for invitations in seconds
invite_expire = 900 # in seconds

## Use of TOTP Mode: "mandatory", "optional", "no" (default)  
totp_mode = "optional"
## Number of TOTP digits: 6 (default) or 8 
totp_digits = 6
## TOTP Algorithm: "sha1" (default), "sha256", "sha512""
totp_algorithm = "sha256"

## Password score value from 0 to 3
password_score = 0
## Defaul ADMIN fields 
admin_fields = "roles,otp_base32,status"

## Token use: true or false
use_token = false

## Main use for notifications: true or false
use_mail = false
## SMTP host 
smtp = "mailserver.example"
## SMTP auth can be text as: "user@domain|password" but for safety is much better to generate via "tools/get_mail_token.sh" after setting "sitehome/srv" token keys
smtp_auth = "v4.public...."
## Mails from address
mail_from ="docserver@mydomain.com"

## Users Storage URI 

#users_store_uri = "file:///data/users"
users_store_uri = "sqlite:sitehome/data/users.db"

## Log user store access 
user_store_access = "access"

## CASBIN authorizations and access control files settings
authz_model_path = "srvc/model.conf"
authz_policy_path = "srvc/policy.csv"

## Defaul auth roles 
auth_roles = ["dev"]

## Store trace values: 
trace_store_uri = "file:///logs/trace"
trace_level = 1

## Sessions store URI
#session_store_uri = "file:///data/sessions"
session_store_uri = "sqlite:sitehome/data/sessions.db"

## Sessions store file
session_store_file = "session"
## Expiration session time in seconds if sessions is not used
session_expire = 300

## Menu Items settings path
path_menu_items = "config/menu_items.toml"
## Serv path settings file, where path are defined: url, auth, is_restricted ...
path_serv_paths = "config/serv_paths.toml"

## Templates path and settings
[tpls]
  url = "http://localhost:8800/"
  main = "home.html.j2"
  info = "info.html.j2"
  help = "help.html.j2"
  notfound = "notfound.html.j2"
  notauth = "notauth.html.j2"
  login = "login.html.j2"
  logout = "logout.html.j2"
  signup = "signup.html.j2"
  user_settings = "user_settings.html.j2"
  invite_create = "invite_create.html.j2"
  invite_output = "invite_output.html.j2"
  invite_mail_html = "invite_mail.html.j2"
  invite_mail_txt = "invite_mail.txt.j2"
  reset_password_mail_html = "reset_password_mail.html.j2"
  reset_password_mail_txt = "reset_password_mail.txt.j2"
  logs = "logs.html.j2"
  users = "users.html.j2"
  trylater = "trylater.j2"
  session  = "session.j2"
  js = "js"
  css = ""

## Paseto Tokens settings
[paseto] 
  public_path = "srvc/public.ky"
  secret_path = "srvc/secret.ky"
  is_bin = false
  assert_val = ""
  expire = true
[paseto.map_footer]
[paseto.data]


## UI settings: css and links paths
[ui]
main_name = "<h3>Doc Server</h3>"
title = "Doc Libraries" 
#title = "<div>A Cryptographic Library</div><div> You can TRust</div>"
#subtitle = "<p>Fast, Secure, Agile</p> <p> Customizable to contexts and needs</p>"
subtitle = "Documentations"
css_link = "https://cdn.jsdelivr.net/npm/@unocss/reset/tailwind.min.css"
js_link = "https://cdn.jsdelivr.net/npm/@unocss/runtime"
main_js_link = "/assets/js/main.js"
utils_js_link = "/assets/js/utils.js"
other_css_link = "https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.6.5/flowbite.min.css"
other_js_link="https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.6.5/flowbite.min.js"

```

