# The FUSE section handles settings on the FUSE file system. FUSE # provides a layer for intercepting SQLite transactions on the # primary node so they can be shipped to replica nodes transparently. fuse: # Required. This is the mount directory that applications will # use to access their SQLite databases. dir: "/persistent" # The debug flag enables debug logging of all FUSE API calls. # This will produce a lot of logging. Not for general use. debug: false # The data section specifies where internal LiteFS data is stored # and how long to retain the transaction files. # # Transaction files are used to ship changes to replica nodes so # they should persist long enough for replicas to retrieve them, # even in the face of a short network interruption or a redeploy. # Under high load, these files can grow large so it's not advised # to extend retention too long. data: # Path to internal data storage. dir: "/etc/lib/litefs" # Duration to keep LTX files. Latest LTX file is always kept. retention: "10m" # Frequency with which to check for LTX files to delete. retention-monitor-interval: "1m" # The exec field specifies a command to run as a subprocess of # LiteFS. This command will be executed after LiteFS either # becomes primary or is connected to the primary node. LiteFS # will forward signals to the subprocess and LiteFS will # automatically shut itself down when the subprocess stops. # # This can also be specified after a double-dash (--) on the # command line invocation of the 'litefs mount' command. exec: "headscale serve" # If true, then LiteFS will not wait until the node becomes the # primary or connects to the primary before starting the subprocess. skip-sync: false # If true, then LiteFS will not exit if there is a validation # issue on startup. This can be useful for debugging issues as # it avoids constantly restarting the node on ephemeral hosting. exit-on-error: false # This section defines settings for the LiteFS HTTP API server. # This API server is how nodes communicate with each other. http: # Specifies the bind address of the HTTP API server. addr: ":20202" # The lease section defines how LiteFS creates a cluster and # implements leader election. For dynamic clusters, use the # "consul". This allows the primary to change automatically when # the current primary goes down. For a simpler setup, use # "static" which assigns a single node to be the primary and does # not failover. lease: # Required. Must be either "consul" or "static". type: "static" candidate: ${FLY_REGION == PRIMARY_REGION} hostname: ${FLY_REGION}.${FLY_APP_NAME}.internal # Required. The URL for this node's LiteFS API. # Should match HTTP port. advertise-url: "http://${PRIMARY_REGION}.${FLY_APP_NAME}.internal:20202"