#
Configuration
#
Config File Setup
Make a copy of config-template.yaml and rename it config.yaml, then populate it as you see fit.
If database is enabled and running for the first time, run npm run migrate to migrate the database schema.
#
Template
directory:
# Root directory of the files to be served, do not include a trailing slash
root: '/app/data'
# Files/directories to exclude when querying with /list or /retrieve, relative to root, matches glob patterns
exclude:
- '**/.metadata.json' # Exclude server-generated metadata files
# Require admin authorization for query requests on these routes, relative to root, matches glob patterns
protected:
- '/events-log.log' # Log of all server events
- '/secret.jpg'
- '/secret-dir'
- '/secret-dir/**/*'
server:
# Domain file server is hosted on
domain: https://example.com
# HTTP server settings
http:
port: 80
# HTTPS server settings
https:
enabled: false
port: 443
private-key: '/route/to/privkey/key.pem'
certfile: '/route/to/cert/cert.pem'
ca: '/route/to/ca/chain.pem'
# API keys that function as admin passwords, in an array
api-key: ['secretAPIKey']
# Domains of sites to allow for CORS
cors-allowed-origins: [https://sitea.com, https://siteb.com]
# JWT secret for cookies (see: https://jwt.io/introduction)
secret: 'change-me'
# Rate limiter settings (default: 25 requests per second)
rate-limiter:
enabled: true
window: 1000
max: 25
# Use these to enable and disable certain routes
routes:
makedir: true
upload: true
rename: true
copy: true
move: true
delete: true
shortcut: true
# Controls which routes require authorization. Setting to false disables the need for users to authorize. Can also be set to an integer to specify minimum rank allowed.
route-authorization:
list: false
filetree: false
retrieve: false
logs: true
# Creates metadata files in each directory, setting to false deletes all existing metadata files
metadata: false
# Indexes files for searching
indexing:
enabled: false
indexing-interval: 3600
# Sqlite database to store users data or logs
database:
enabled: true
features:
users:
# Stores user data, also enabling registration and permissions
enabled: false
# Usernames that cannot be used for registration
restricted-usernames: ['admin']
# Rank value, above which a user will be considered an admin of the server
# Admins have access to user data and unlimited permissions, but higher ranks are possible
admin-rank: 99
logs:
# Stores detailed logs on server interactions
enabled: true
metadata:
# Store metadata on each file, to facilitate custom metadata
enabled: true