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.
A comprehensive self-management system
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.
--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 --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
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_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
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>
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>
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] [--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>
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
--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_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>
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>