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.
Differences from Enterprise
Section titled “Differences from Enterprise”| Capability | Community (free.flexfs) | Enterprise (admin.flexfs) |
|---|---|---|
| Volumes | 1 | Unlimited |
| End-to-end encryption | — | Supported |
| Proxy groups | — | Supported |
configure.flexfs | — | Supported |
| Dynamic CSI provisioning | — | Supported |
| Volume quotas | — | Supported |
| Volume tokens with mount-path scoping | — | Supported |
| Multiple accounts | — | Supported |
The Community edition supports CSI static provisioning for Kubernetes. Dynamic provisioning requires Enterprise.
Subcommands
Section titled “Subcommands”| Subcommand | Description |
|---|---|
start | Start the free server |
init creds | Initialize the credentials file |
init systemd | Create and enable a systemd service unit |
deinit creds | Remove the credentials file |
deinit systemd | Remove the systemd service unit |
version | Print the build version |
license | Print license information |
Credential Initialization
Section titled “Credential Initialization”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.
free.flexfs init creds \ --provider aws \ --region us-east-1 \ --api s3 \ --bucket my-flexfs-bucket \ --prefix flexfs \ --metaAddr meta-host:8443init creds Flags
Section titled “init creds Flags”| Flag | Default | Description |
|---|---|---|
--provider | (required) | Cloud provider code (e.g., aws, gcp, azure, oci) |
--region | (required) | Cloud region code (e.g., us-east-1) |
--api | (required) | Block storage API code (e.g., s3, gcs, azure, oci) |
--bucket | (required) | Object storage bucket name |
--prefix | flexfs | Key prefix within the bucket |
--metaAddr | (required) | Metadata server address (host:port) |
--blockAddr | (empty) | Custom block storage endpoint (for S3-compatible stores) |
--blockUser | (empty) | Block storage access key / username |
--blockPass | (empty) | Block storage secret key / password |
--retention | 604800 | Block retention period in seconds (default 7 days) |
--force | false | Overwrite an existing credentials file |
The volume ID is derived deterministically from the bucket and prefix, so re-initializing with the same bucket and prefix produces the same volume.
Credential File Format
Section titled “Credential File Format”The credentials file is TOML and contains all tokens, storage configuration, and the metadata server address:
accountToken = "$TOKEN"metaToken = "$TOKEN"volumeToken = "$TOKEN"volumeID = "$TOKEN"provider = "aws"region = "us-east-1"api = "s3"bucket = "my-flexfs-bucket"prefix = "flexfs"metaAddr = "meta-host:443"retention = 604800Starting the Server
Section titled “Starting the Server”free.flexfs startThe server reads its credentials file and starts the REST API. The credentials file must be initialized before the first start.
Start Flags
Section titled “Start Flags”| Flag | Default | Description |
|---|---|---|
--bindAddr | 0.0.0.0:443 | Address and port to bind |
--noSSL | false | Disable TLS for the REST API |
--noInstaller | false | Disable the /deploy/install-mount.sh installer endpoint |
--sslCert | ~/.flexfs/ssl/cert | TLS certificate file path |
--sslKey | ~/.flexfs/ssl/key | TLS private key file path |
--credsFile | ~/.flexfs/free/creds | Credentials file path (persistent flag) |
Systemd Integration
Section titled “Systemd Integration”Create and enable a systemd service unit:
sudo free.flexfs init systemd --nowinit systemd Flags
Section titled “init systemd Flags”| Flag | Default | Description |
|---|---|---|
--now | false | Start the service immediately after enabling |
--startFlags | (empty) | Additional flags to pass to the start command |
--force | false | Overwrite an existing systemd unit file |
This creates the unit file flexfs-free.service. Requires root.
Teardown
Section titled “Teardown”Remove Systemd Unit
Section titled “Remove Systemd Unit”sudo free.flexfs deinit systemdStops and removes the flexfs-free.service unit. Requires root.
Remove Credentials
Section titled “Remove Credentials”free.flexfs deinit credsRemoves the credentials file. If the file is referenced by a systemd unit, the command refuses unless --force is passed.
| Flag | Default | Description |
|---|---|---|
--force | false | Remove credentials even if referenced by systemd units |
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.