Smos Logo Smos

A comprehensive self-management system

The Smos Server

Documentation for the Smos Server, for hosting your own Smos API

You can set up your own Smos server to host your own syncing.

A community sync-server has been set up at api.smos.online in case do not want to do that.

Reference

Options

  --config-file                               Path to the configuration file                                                                                                                                
  --log-level                                 Minimal severity of log messages                                            default: Info                           examples: "Debug", "Info", "Warn", "Error"
  --uuid-file                                 The file to store the server uuid in                                        default: "smos-server-uuid.json"                                                  
  --database-file                             The file to store the server database in                                    default: "smos-server-database.sqlite3"                                           
  --signing-key-file                          The file to store the JWT signing key in                                    default: "smos-signing-key.json"                                                  
  --port                                      The port to serve web requests on                                           default: 8000                                                                     
  --max-backup-size-per-user                  The maximum number of bytes that backups can take up per user                                                                                                 
  --(enable|disable)-auto-backup              enable the auto-backup looper                                                                                                                                 
  --auto-backup-phase                         phase of the auto-backup looper in seconds                                  default: 30s                                                                      
  --auto-backup-period                        period of the auto-backup looper in seconds                                 default: 3600s                                                                    
  --(enable|disable)-backup-garbage-collector enable the backup-garbage-collector looper                                                                                                                    
  --backup-garbage-collector-phase            phase of the backup-garbage-collector looper in seconds                     default: 60s                                                                      
  --backup-garbage-collector-period           period of the backup-garbage-collector looper in seconds                    default: 3600s                                                                    
  --(enable|disable)-file-migrator            enable the file-migrator looper                                                                                                                               
  --file-migrator-phase                       phase of the file-migrator looper in seconds                                default: 120s                                                                     
  --file-migrator-period                      period of the file-migrator looper in seconds                               default: 86400s                                                                   
  --admin                                     The user that will have admin rights                                                                                                                          
  --necrork-switch                            Name of the necrork switch                                                                                                                                    
  --necrork-url                               Base url of the necrork server                                              default: https://necrork.cs-syd.eu                                                
  --necrork-(enable|disable)-notifier         enable the notifier looper                                                                                                                                    
  --necrork-notifier-phase                    phase of the notifier looper in seconds                                     default: 0s                                                                       
  --necrork-notifier-period                   period of the notifier looper in seconds                                    default: 300s                                                                     
  --necrork-timeout                           How long after last hearing from this switch, nodes should consider it dead                                                                                   
  --necrork-intray-username                   Username                                                                                                                                                      
  --necrork-intray-key                        Access key                                                                                                                                                    
  --booking-email-address                     Email address to send booking emails from                                                                                                                     
  --monetisation-stripe-secret-key            The stripe api secret key                                                                                                                                     
  --monetisation-stripe-publishable-key       The stripe api publishable key                                                                                                                                
  --monetisation-stripe-price                 The stripe price id                                                                                                                                           
  --monetisation-freeloaders                  The usernames of users that will not have to pay, comma separated                                                                                             

Environment variables

  SMOS_SERVER_CONFIG_FILE FILE_PATH                                 Path to the configuration file                                                                                                                                    
  SMOS_SERVER_LOG_LEVEL LOG_LEVEL                                   Minimal severity of log messages                                              default: Info                             examples: "Debug", "Info", "Warn", "Error"
  SMOS_SERVER_UUID_FILE FILE_PATH                                   The file to store the server uuid in                                          default: "smos-server-uuid.json"                                                    
  SMOS_SERVER_DATABASE_FILE FILE_PATH                               The file to store the server database in                                      default: "smos-server-database.sqlite3"                                             
  SMOS_SERVER_SIGNING_KEY_FILE FILE_PATH                            The file to store the JWT signing key in                                      default: "smos-signing-key.json"                                                    
  SMOS_SERVER_PORT PORT                                             The port to serve web requests on                                             default: 8000                                                                       
  SMOS_SERVER_MAX_BACKUP_SIZE_PER_USER BYTES                        The maximum number of bytes that backups can take up per user                                                                                                     
  SMOS_SERVER_AUTO_BACKUP_ENABLE BOOL                               enable the auto-backup looper                                                                                                                                     
  SMOS_SERVER_AUTO_BACKUP_PHASE SECONDS                             phase of the auto-backup looper in seconds                                    default: 30s                                                                        
  SMOS_SERVER_AUTO_BACKUP_PERIOD SECONDS                            period of the auto-backup looper in seconds                                   default: 3600s                                                                      
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_ENABLE BOOL                  enable the backup-garbage-collector looper                                                                                                                        
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PHASE SECONDS                phase of the backup-garbage-collector looper in seconds                       default: 60s                                                                        
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PERIOD SECONDS               period of the backup-garbage-collector looper in seconds                      default: 3600s                                                                      
  SMOS_SERVER_FILE_MIGRATOR_ENABLE BOOL                             enable the file-migrator looper                                                                                                                                   
  SMOS_SERVER_FILE_MIGRATOR_PHASE SECONDS                           phase of the file-migrator looper in seconds                                  default: 120s                                                                       
  SMOS_SERVER_FILE_MIGRATOR_PERIOD SECONDS                          period of the file-migrator looper in seconds                                 default: 86400s                                                                     
  SMOS_SERVER_ADMIN USERNAMES                                       The user that will have admin rights                                                                                                                              
  SMOS_SERVER_NECRORK_SWITCH SWITCH_NAME                            Name of the necrork switch                                                                                                                                        
  SMOS_SERVER_NECRORK_URL URL                                       Base url of the necrork server                                                default: https://necrork.cs-syd.eu                                                  
  SMOS_SERVER_NECRORK_NOTIFIER_ENABLE BOOL                          enable the notifier looper                                                                                                                                        
  SMOS_SERVER_NECRORK_NOTIFIER_PHASE SECONDS                        phase of the notifier looper in seconds                                       default: 0s                                                                         
  SMOS_SERVER_NECRORK_NOTIFIER_PERIOD SECONDS                       period of the notifier looper in seconds                                      default: 300s                                                                       
  SMOS_SERVER_NECRORK_TIMEOUT SECONDS                               How long after last hearing from this switch, nodes should consider it dead                                                                                       
  SMOS_SERVER_NECRORK_INTRAY_USERNAME USERNAME                      Username                                                                                                                                                          
  SMOS_SERVER_NECRORK_INTRAY_KEY KEY                                Access key                                                                                                                                                        
  SMOS_SERVER_BOOKING_EMAIL_ADDRESS EMAIL_ADDRESS                   Email address to send booking emails from                                                                                                                         
  SMOS_SERVER_MONETISATION_STRIPE_SECRET_KEY SECRET_KEY             The stripe api secret key                                                                                                                                         
  SMOS_SERVER_MONETISATION_STRIPE_PUBLISHABLE_KEY PUBLISHABLE_KEY   The stripe api publishable key                                                                                                                                    
  SMOS_SERVER_MONETISATION_STRIPE_PRICE PRICE_ID                    The stripe price id                                                                                                                                               
  SMOS_SERVER_MONETISATION_FREELOADERS USERNAME                     The usernames of users that will not have to pay, comma separated                                                                                                 

Configuration values

  Minimal severity of log messages
  default: Info
  examples: "Debug", "Info", "Warn", "Error"
  log-level:
    # or null
    def: LogLevel
    # The log level to use, options:
    # ["Debug","Info","Warn","Error"]
    <string>
  The file to store the server uuid in
  default: "smos-server-uuid.json"
  uuid-file:
    # or null
    <string>
  The file to store the server database in
  default: "smos-server-database.sqlite3"
  database-file:
    # or null
    <string>
  The file to store the JWT signing key in
  default: "smos-signing-key.json"
  signing-key-file:
    # or null
    <string>
  The port to serve web requests on
  default: 8000
  port:
    # or null
    <integer> # 64 bit signed integer
  The maximum number of bytes that backups can take up per user
  default: [(14400s,4),(86400s,4),(604800s,7),(4838400s,8),(31536000s,12)]
  max-backups-per-user-per-period:
    # any of
    [ null
    , # Period
      period: # required
        # period, in seconds
        <number>
      max-backups: # required
        # maximum backups in this period
        <integer> # 64 bit unsigned integer
    , - # Period
        period: # required
          # period, in seconds
          <number>
        max-backups: # required
          # maximum backups in this period
          <integer> # 64 bit unsigned integer
    ]
  The maximum number of bytes that backups can take up per user
  max-backup-size-per-user:
    # or null
    <integer> # 64 bit unsigned integer
  enable the auto-backup looper
  auto-backup.enable:
    # or null
    <boolean>
  phase of the auto-backup looper in seconds
  default: 30s
  auto-backup.phase:
    # or null
    <number>
  period of the auto-backup looper in seconds
  default: 3600s
  auto-backup.period:
    # or null
    <number>
  enable the backup-garbage-collector looper
  backup-garbage-collector.enable:
    # or null
    <boolean>
  phase of the backup-garbage-collector looper in seconds
  default: 60s
  backup-garbage-collector.phase:
    # or null
    <number>
  period of the backup-garbage-collector looper in seconds
  default: 3600s
  backup-garbage-collector.period:
    # or null
    <number>
  enable the file-migrator looper
  file-migrator.enable:
    # or null
    <boolean>
  phase of the file-migrator looper in seconds
  default: 120s
  file-migrator.phase:
    # or null
    <number>
  period of the file-migrator looper in seconds
  default: 86400s
  file-migrator.period:
    # or null
    <number>
  The user that will have admin rights
  admin:
    # or null
    <string>
  Name of the necrork switch
  necrork.switch:
    # or null
    <string>
  Base url of the necrork server
  default: https://necrork.cs-syd.eu
  necrork.url:
    # or null
    <string>
  enable the notifier looper
  necrork.notifier.enable:
    # or null
    <boolean>
  phase of the notifier looper in seconds
  default: 0s
  necrork.notifier.phase:
    # or null
    <number>
  period of the notifier looper in seconds
  default: 300s
  necrork.notifier.period:
    # or null
    <number>
  How long after last hearing from this switch, nodes should consider it dead
  necrork.timeout:
    # or null
    <integer> # 32 bit unsigned integer
  Username
  necrork.intray.username:
    # or null
    <string>
  Access key
  necrork.intray.key:
    # or null
    <string>
  Email address to send booking emails from
  booking-email-address:
    # or null
    <string>
  The stripe api secret key
  monetisation.stripe-secret-key:
    # or null
    <string>
  The stripe api publishable key
  monetisation.stripe-publishable-key:
    # or null
    <string>
  The stripe price id
  monetisation.stripe-price:
    # or null
    <string>
  The usernames of users that will not have to pay, comma separated
  monetisation.freeloaders:
    # or null
    - <string>

Combined settings

Usage: smos-server [--config-file FILE_PATH] [--log-level LOG_LEVEL] [--uuid-file FILE_PATH] [--database-file FILE_PATH] [--signing-key-file FILE_PATH] [--port PORT] [--max-backup-size-per-user BYTES] [--(enable|disable)-auto-backup] [--auto-backup-phase SECONDS] [--auto-backup-period SECONDS] [--(enable|disable)-backup-garbage-collector] [--backup-garbage-collector-phase SECONDS] [--backup-garbage-collector-period SECONDS] [--(enable|disable)-file-migrator] [--file-migrator-phase SECONDS] [--file-migrator-period SECONDS] [--admin USERNAMES] [--necrork-switch SWITCH_NAME [--necrork-url URL] [--necrork-(enable|disable)-notifier] [--necrork-notifier-phase SECONDS] [--necrork-notifier-period SECONDS] [--necrork-timeout SECONDS] --necrork-intray-username USERNAME --necrork-intray-key KEY] [--booking-email-address EMAIL_ADDRESS] [--monetisation-stripe-secret-key SECRET_KEY --monetisation-stripe-publishable-key PUBLISHABLE_KEY --monetisation-stripe-price PRICE_ID --monetisation-freeloaders USERNAME]

All settings:
  Show this help text
  switch: -h|--help

  Output version information
  switch: --version

  Path to the configuration file
  option: --config-file FILE_PATH
  env: SMOS_SERVER_CONFIG_FILE FILE_PATH

  Minimal severity of log messages
  option: --log-level LOG_LEVEL
  env: SMOS_SERVER_LOG_LEVEL LOG_LEVEL
  config:
    log-level: # or null
      def: LogLevel
      # The log level to use, options:
      # ["Debug","Info","Warn","Error"]
      <string>
  default: Info
  examples: "Debug", "Info", "Warn", "Error"

  The file to store the server uuid in
  option: --uuid-file FILE_PATH
  env: SMOS_SERVER_UUID_FILE FILE_PATH
  config:
    uuid-file: # or null
      <string>
  default: "smos-server-uuid.json"

  The file to store the server database in
  option: --database-file FILE_PATH
  env: SMOS_SERVER_DATABASE_FILE FILE_PATH
  config:
    database-file: # or null
      <string>
  default: "smos-server-database.sqlite3"

  The file to store the JWT signing key in
  option: --signing-key-file FILE_PATH
  env: SMOS_SERVER_SIGNING_KEY_FILE FILE_PATH
  config:
    signing-key-file: # or null
      <string>
  default: "smos-signing-key.json"

  The port to serve web requests on
  option: --port PORT
  env: SMOS_SERVER_PORT PORT
  config:
    port: # or null
      <integer> # 64 bit signed integer
  default: 8000

  The maximum number of bytes that backups can take up per user
  config:
    max-backups-per-user-per-period: # any of
      [ null
      , # Period
        period: # required
          # period, in seconds
          <number>
        max-backups: # required
          # maximum backups in this period
          <integer> # 64 bit unsigned integer
      , - # Period
          period: # required
            # period, in seconds
            <number>
          max-backups: # required
            # maximum backups in this period
            <integer> # 64 bit unsigned integer
      ]
  default: [(14400s,4),(86400s,4),(604800s,7),(4838400s,8),(31536000s,12)]

  The maximum number of bytes that backups can take up per user
  option: --max-backup-size-per-user BYTES
  env: SMOS_SERVER_MAX_BACKUP_SIZE_PER_USER BYTES
  config:
    max-backup-size-per-user: # or null
      <integer> # 64 bit unsigned integer

  enable the auto-backup looper
  switch: --(enable|disable)-auto-backup
  env: SMOS_SERVER_AUTO_BACKUP_ENABLE BOOL
  config:
    auto-backup.enable: # or null
      <boolean>

  phase of the auto-backup looper in seconds
  option: --auto-backup-phase SECONDS
  env: SMOS_SERVER_AUTO_BACKUP_PHASE SECONDS
  config:
    auto-backup.phase: # or null
      <number>
  default: 30s

  period of the auto-backup looper in seconds
  option: --auto-backup-period SECONDS
  env: SMOS_SERVER_AUTO_BACKUP_PERIOD SECONDS
  config:
    auto-backup.period: # or null
      <number>
  default: 3600s

  enable the backup-garbage-collector looper
  switch: --(enable|disable)-backup-garbage-collector
  env: SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_ENABLE BOOL
  config:
    backup-garbage-collector.enable: # or null
      <boolean>

  phase of the backup-garbage-collector looper in seconds
  option: --backup-garbage-collector-phase SECONDS
  env: SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PHASE SECONDS
  config:
    backup-garbage-collector.phase: # or null
      <number>
  default: 60s

  period of the backup-garbage-collector looper in seconds
  option: --backup-garbage-collector-period SECONDS
  env: SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PERIOD SECONDS
  config:
    backup-garbage-collector.period: # or null
      <number>
  default: 3600s

  enable the file-migrator looper
  switch: --(enable|disable)-file-migrator
  env: SMOS_SERVER_FILE_MIGRATOR_ENABLE BOOL
  config:
    file-migrator.enable: # or null
      <boolean>

  phase of the file-migrator looper in seconds
  option: --file-migrator-phase SECONDS
  env: SMOS_SERVER_FILE_MIGRATOR_PHASE SECONDS
  config:
    file-migrator.phase: # or null
      <number>
  default: 120s

  period of the file-migrator looper in seconds
  option: --file-migrator-period SECONDS
  env: SMOS_SERVER_FILE_MIGRATOR_PERIOD SECONDS
  config:
    file-migrator.period: # or null
      <number>
  default: 86400s

  The user that will have admin rights
  option: --admin USERNAMES
  env: SMOS_SERVER_ADMIN USERNAMES
  config:
    admin: # or null
      <string>

  Name of the necrork switch
  option: --necrork-switch SWITCH_NAME
  env: SMOS_SERVER_NECRORK_SWITCH SWITCH_NAME
  config:
    necrork.switch: # or null
      <string>

  Base url of the necrork server
  option: --necrork-url URL
  env: SMOS_SERVER_NECRORK_URL URL
  config:
    necrork.url: # or null
      <string>
  default: https://necrork.cs-syd.eu

  enable the notifier looper
  switch: --necrork-(enable|disable)-notifier
  env: SMOS_SERVER_NECRORK_NOTIFIER_ENABLE BOOL
  config:
    necrork.notifier.enable: # or null
      <boolean>

  phase of the notifier looper in seconds
  option: --necrork-notifier-phase SECONDS
  env: SMOS_SERVER_NECRORK_NOTIFIER_PHASE SECONDS
  config:
    necrork.notifier.phase: # or null
      <number>
  default: 0s

  period of the notifier looper in seconds
  option: --necrork-notifier-period SECONDS
  env: SMOS_SERVER_NECRORK_NOTIFIER_PERIOD SECONDS
  config:
    necrork.notifier.period: # or null
      <number>
  default: 300s

  How long after last hearing from this switch, nodes should consider it dead
  option: --necrork-timeout SECONDS
  env: SMOS_SERVER_NECRORK_TIMEOUT SECONDS
  config:
    necrork.timeout: # or null
      <integer> # 32 bit unsigned integer

  Username
  option: --necrork-intray-username USERNAME
  env: SMOS_SERVER_NECRORK_INTRAY_USERNAME USERNAME
  config:
    necrork.intray.username: # or null
      <string>

  Access key
  option: --necrork-intray-key KEY
  env: SMOS_SERVER_NECRORK_INTRAY_KEY KEY
  config:
    necrork.intray.key: # or null
      <string>

  Email address to send booking emails from
  option: --booking-email-address EMAIL_ADDRESS
  env: SMOS_SERVER_BOOKING_EMAIL_ADDRESS EMAIL_ADDRESS
  config:
    booking-email-address: # or null
      <string>

  The stripe api secret key
  option: --monetisation-stripe-secret-key SECRET_KEY
  env: SMOS_SERVER_MONETISATION_STRIPE_SECRET_KEY SECRET_KEY
  config:
    monetisation.stripe-secret-key: # or null
      <string>

  The stripe api publishable key
  option: --monetisation-stripe-publishable-key PUBLISHABLE_KEY
  env: SMOS_SERVER_MONETISATION_STRIPE_PUBLISHABLE_KEY PUBLISHABLE_KEY
  config:
    monetisation.stripe-publishable-key: # or null
      <string>

  The stripe price id
  option: --monetisation-stripe-price PRICE_ID
  env: SMOS_SERVER_MONETISATION_STRIPE_PRICE PRICE_ID
  config:
    monetisation.stripe-price: # or null
      <string>

  The usernames of users that will not have to pay, comma separated
  option: --monetisation-freeloaders USERNAME
  env: SMOS_SERVER_MONETISATION_FREELOADERS USERNAME
  config:
    monetisation.freeloaders: # or null
      - <string>

Options:
  -h|--help                                   Show this help text                                                                                                                                           
  --version                                   Output version information                                                                                                                                    
  --config-file                               Path to the configuration file                                                                                                                                
  --log-level                                 Minimal severity of log messages                                            default: Info                           examples: "Debug", "Info", "Warn", "Error"
  --uuid-file                                 The file to store the server uuid in                                        default: "smos-server-uuid.json"                                                  
  --database-file                             The file to store the server database in                                    default: "smos-server-database.sqlite3"                                           
  --signing-key-file                          The file to store the JWT signing key in                                    default: "smos-signing-key.json"                                                  
  --port                                      The port to serve web requests on                                           default: 8000                                                                     
  --max-backup-size-per-user                  The maximum number of bytes that backups can take up per user                                                                                                 
  --(enable|disable)-auto-backup              enable the auto-backup looper                                                                                                                                 
  --auto-backup-phase                         phase of the auto-backup looper in seconds                                  default: 30s                                                                      
  --auto-backup-period                        period of the auto-backup looper in seconds                                 default: 3600s                                                                    
  --(enable|disable)-backup-garbage-collector enable the backup-garbage-collector looper                                                                                                                    
  --backup-garbage-collector-phase            phase of the backup-garbage-collector looper in seconds                     default: 60s                                                                      
  --backup-garbage-collector-period           period of the backup-garbage-collector looper in seconds                    default: 3600s                                                                    
  --(enable|disable)-file-migrator            enable the file-migrator looper                                                                                                                               
  --file-migrator-phase                       phase of the file-migrator looper in seconds                                default: 120s                                                                     
  --file-migrator-period                      period of the file-migrator looper in seconds                               default: 86400s                                                                   
  --admin                                     The user that will have admin rights                                                                                                                          
  --necrork-switch                            Name of the necrork switch                                                                                                                                    
  --necrork-url                               Base url of the necrork server                                              default: https://necrork.cs-syd.eu                                                
  --necrork-(enable|disable)-notifier         enable the notifier looper                                                                                                                                    
  --necrork-notifier-phase                    phase of the notifier looper in seconds                                     default: 0s                                                                       
  --necrork-notifier-period                   period of the notifier looper in seconds                                    default: 300s                                                                     
  --necrork-timeout                           How long after last hearing from this switch, nodes should consider it dead                                                                                   
  --necrork-intray-username                   Username                                                                                                                                                      
  --necrork-intray-key                        Access key                                                                                                                                                    
  --booking-email-address                     Email address to send booking emails from                                                                                                                     
  --monetisation-stripe-secret-key            The stripe api secret key                                                                                                                                     
  --monetisation-stripe-publishable-key       The stripe api publishable key                                                                                                                                
  --monetisation-stripe-price                 The stripe price id                                                                                                                                           
  --monetisation-freeloaders                  The usernames of users that will not have to pay, comma separated                                                                                             

Environment Variables:
  SMOS_SERVER_CONFIG_FILE FILE_PATH                                 Path to the configuration file                                                                                                                                    
  SMOS_SERVER_LOG_LEVEL LOG_LEVEL                                   Minimal severity of log messages                                              default: Info                             examples: "Debug", "Info", "Warn", "Error"
  SMOS_SERVER_UUID_FILE FILE_PATH                                   The file to store the server uuid in                                          default: "smos-server-uuid.json"                                                    
  SMOS_SERVER_DATABASE_FILE FILE_PATH                               The file to store the server database in                                      default: "smos-server-database.sqlite3"                                             
  SMOS_SERVER_SIGNING_KEY_FILE FILE_PATH                            The file to store the JWT signing key in                                      default: "smos-signing-key.json"                                                    
  SMOS_SERVER_PORT PORT                                             The port to serve web requests on                                             default: 8000                                                                       
  SMOS_SERVER_MAX_BACKUP_SIZE_PER_USER BYTES                        The maximum number of bytes that backups can take up per user                                                                                                     
  SMOS_SERVER_AUTO_BACKUP_ENABLE BOOL                               enable the auto-backup looper                                                                                                                                     
  SMOS_SERVER_AUTO_BACKUP_PHASE SECONDS                             phase of the auto-backup looper in seconds                                    default: 30s                                                                        
  SMOS_SERVER_AUTO_BACKUP_PERIOD SECONDS                            period of the auto-backup looper in seconds                                   default: 3600s                                                                      
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_ENABLE BOOL                  enable the backup-garbage-collector looper                                                                                                                        
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PHASE SECONDS                phase of the backup-garbage-collector looper in seconds                       default: 60s                                                                        
  SMOS_SERVER_BACKUP_GARBAGE_COLLECTOR_PERIOD SECONDS               period of the backup-garbage-collector looper in seconds                      default: 3600s                                                                      
  SMOS_SERVER_FILE_MIGRATOR_ENABLE BOOL                             enable the file-migrator looper                                                                                                                                   
  SMOS_SERVER_FILE_MIGRATOR_PHASE SECONDS                           phase of the file-migrator looper in seconds                                  default: 120s                                                                       
  SMOS_SERVER_FILE_MIGRATOR_PERIOD SECONDS                          period of the file-migrator looper in seconds                                 default: 86400s                                                                     
  SMOS_SERVER_ADMIN USERNAMES                                       The user that will have admin rights                                                                                                                              
  SMOS_SERVER_NECRORK_SWITCH SWITCH_NAME                            Name of the necrork switch                                                                                                                                        
  SMOS_SERVER_NECRORK_URL URL                                       Base url of the necrork server                                                default: https://necrork.cs-syd.eu                                                  
  SMOS_SERVER_NECRORK_NOTIFIER_ENABLE BOOL                          enable the notifier looper                                                                                                                                        
  SMOS_SERVER_NECRORK_NOTIFIER_PHASE SECONDS                        phase of the notifier looper in seconds                                       default: 0s                                                                         
  SMOS_SERVER_NECRORK_NOTIFIER_PERIOD SECONDS                       period of the notifier looper in seconds                                      default: 300s                                                                       
  SMOS_SERVER_NECRORK_TIMEOUT SECONDS                               How long after last hearing from this switch, nodes should consider it dead                                                                                       
  SMOS_SERVER_NECRORK_INTRAY_USERNAME USERNAME                      Username                                                                                                                                                          
  SMOS_SERVER_NECRORK_INTRAY_KEY KEY                                Access key                                                                                                                                                        
  SMOS_SERVER_BOOKING_EMAIL_ADDRESS EMAIL_ADDRESS                   Email address to send booking emails from                                                                                                                         
  SMOS_SERVER_MONETISATION_STRIPE_SECRET_KEY SECRET_KEY             The stripe api secret key                                                                                                                                         
  SMOS_SERVER_MONETISATION_STRIPE_PUBLISHABLE_KEY PUBLISHABLE_KEY   The stripe api publishable key                                                                                                                                    
  SMOS_SERVER_MONETISATION_STRIPE_PRICE PRICE_ID                    The stripe price id                                                                                                                                               
  SMOS_SERVER_MONETISATION_FREELOADERS USERNAME                     The usernames of users that will not have to pay, comma separated                                                                                                 

Configuration Values:
  Minimal severity of log messages
  default: Info
  examples: "Debug", "Info", "Warn", "Error"
  log-level:
    # or null
    def: LogLevel
    # The log level to use, options:
    # ["Debug","Info","Warn","Error"]
    <string>
  The file to store the server uuid in
  default: "smos-server-uuid.json"
  uuid-file:
    # or null
    <string>
  The file to store the server database in
  default: "smos-server-database.sqlite3"
  database-file:
    # or null
    <string>
  The file to store the JWT signing key in
  default: "smos-signing-key.json"
  signing-key-file:
    # or null
    <string>
  The port to serve web requests on
  default: 8000
  port:
    # or null
    <integer> # 64 bit signed integer
  The maximum number of bytes that backups can take up per user
  default: [(14400s,4),(86400s,4),(604800s,7),(4838400s,8),(31536000s,12)]
  max-backups-per-user-per-period:
    # any of
    [ null
    , # Period
      period: # required
        # period, in seconds
        <number>
      max-backups: # required
        # maximum backups in this period
        <integer> # 64 bit unsigned integer
    , - # Period
        period: # required
          # period, in seconds
          <number>
        max-backups: # required
          # maximum backups in this period
          <integer> # 64 bit unsigned integer
    ]
  The maximum number of bytes that backups can take up per user
  max-backup-size-per-user:
    # or null
    <integer> # 64 bit unsigned integer
  enable the auto-backup looper
  auto-backup.enable:
    # or null
    <boolean>
  phase of the auto-backup looper in seconds
  default: 30s
  auto-backup.phase:
    # or null
    <number>
  period of the auto-backup looper in seconds
  default: 3600s
  auto-backup.period:
    # or null
    <number>
  enable the backup-garbage-collector looper
  backup-garbage-collector.enable:
    # or null
    <boolean>
  phase of the backup-garbage-collector looper in seconds
  default: 60s
  backup-garbage-collector.phase:
    # or null
    <number>
  period of the backup-garbage-collector looper in seconds
  default: 3600s
  backup-garbage-collector.period:
    # or null
    <number>
  enable the file-migrator looper
  file-migrator.enable:
    # or null
    <boolean>
  phase of the file-migrator looper in seconds
  default: 120s
  file-migrator.phase:
    # or null
    <number>
  period of the file-migrator looper in seconds
  default: 86400s
  file-migrator.period:
    # or null
    <number>
  The user that will have admin rights
  admin:
    # or null
    <string>
  Name of the necrork switch
  necrork.switch:
    # or null
    <string>
  Base url of the necrork server
  default: https://necrork.cs-syd.eu
  necrork.url:
    # or null
    <string>
  enable the notifier looper
  necrork.notifier.enable:
    # or null
    <boolean>
  phase of the notifier looper in seconds
  default: 0s
  necrork.notifier.phase:
    # or null
    <number>
  period of the notifier looper in seconds
  default: 300s
  necrork.notifier.period:
    # or null
    <number>
  How long after last hearing from this switch, nodes should consider it dead
  necrork.timeout:
    # or null
    <integer> # 32 bit unsigned integer
  Username
  necrork.intray.username:
    # or null
    <string>
  Access key
  necrork.intray.key:
    # or null
    <string>
  Email address to send booking emails from
  booking-email-address:
    # or null
    <string>
  The stripe api secret key
  monetisation.stripe-secret-key:
    # or null
    <string>
  The stripe api publishable key
  monetisation.stripe-publishable-key:
    # or null
    <string>
  The stripe price id
  monetisation.stripe-price:
    # or null
    <string>
  The usernames of users that will not have to pay, comma separated
  monetisation.freeloaders:
    # or null
    - <string>