Skip to content

Free Server (Community)

free.flexfs is the admin server for flexFS Community edition. It provides the same core mount client deployment and volume configuration functionality as the Enterprise admin server, but is designed for single-volume deployments without a license key.

CapabilityCommunity (free.flexfs)Enterprise (admin.flexfs)
Volumes1Unlimited
End-to-end encryption—Supported
Proxy groups—Supported
configure.flexfs—Supported
Dynamic CSI provisioning—Supported
Configurable volume quotasFixed at 5 TiB / 5M inodesConfigurable
Volume tokens with mount-path scoping—Supported
Accounts11

A Community installation can be converted to Enterprise in place, keeping its volume, data, and tokens; see Upgrading a Community installation.

The Community edition supports CSI static provisioning for Kubernetes. Dynamic provisioning requires Enterprise.

SubcommandDescription
deinit credsRemove the credentials file
deinit systemdRemove the systemd service unit
init credsInitialize the credentials file
init systemdCreate and enable a systemd service unit
licensePrint license information
startStart the free server
versionPrint the build version

Unlike the Enterprise admin server, free.flexfs init creds configures the entire single-volume deployment in one step. It generates all required tokens (account, metadata, and volume) automatically. Run it as the user that runs the server; it writes ~/.flexfs/free/creds in that user’s home folder (/root/.flexfs/free/creds for root) unless --credsFile names another path.

Terminal window
free.flexfs init creds \
--provider aws \
--region <region> \
--api s3 \
--bucket <bucket> \
--prefix <prefix> \
--metaAddr meta-host:8443

See free.flexfs init creds for the full list of init creds flags and their defaults.

The volume ID is derived deterministically from the bucket and prefix, so re-initializing with the same bucket and prefix produces the same volume.

The credentials file is TOML and contains all tokens, storage configuration, and the metadata server address:

accountToken = "<account-token>"
metaToken = "<meta-token>"
volumeToken = "<volume-token>"
volumeID = "<volume-id>"
provider = "aws"
region = "<region>"
api = "s3"
bucket = "<bucket>"
prefix = "<prefix>"
metaAddr = "meta-host:8443"
retention = 604800
volumeFlags = "admin"
Terminal window
free.flexfs start

The server reads its credentials file and starts the REST API. The credentials file must be initialized before the first start. Any user can run it; a non-root user needs a --bindAddr port above 1023, since the default is port 443.

See free.flexfs start for the full list of start flags and their defaults.

Optionally, to run the free server as a root service that starts at boot, create and enable a systemd service unit:

Terminal window
sudo free.flexfs init systemd --now

See free.flexfs init systemd for the full list of init systemd flags and their defaults.

This creates the unit file flexfs-free.service. Requires root. The service runs as root, so it reads /root/.flexfs/free/creds unless --startFlags names another --credsFile; create the credentials with sudo free.flexfs init creds.

Terminal window
sudo free.flexfs deinit systemd

Stops and removes the flexfs-free.service unit. Requires root.

Terminal window
free.flexfs deinit creds

Removes the credentials file. If the file is referenced by a systemd unit, the command refuses unless --force is passed.

See free.flexfs deinit creds for its flags and their defaults.

--accessFile names a TOML file of IP addresses and CIDR blocks allowed to reach each endpoint. There is no file by default, so every endpoint is unrestricted; the file is re-read every couple of seconds, so access can be tightened or widened without a restart.

Take care here: mount clients, the metadata server and the CSI driver all call this API directly, so a rule meant to fence off volume administration can cut off the cluster. Whenever it loads a file with a global list, the server logs every endpoint that list gates. See API Access Control.

The free server has the same TLS behavior as the Enterprise admin server: a self-signed certificate is generated automatically if none exists, and custom certificates can be provided via --sslCert and --sslKey.