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.

| 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.

| Subcommand | Description | |---|---| | deinit creds | Remove the credentials file | | deinit systemd | Remove the systemd service unit | | init creds | Initialize the credentials file | | init systemd | Create and enable a systemd service unit | | license | Print license information | | start | Start the free server | | version | Print 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.

Terminal window
free.flexfs init creds \
--provider aws \
--region us-east-1 \
--api s3 \
--bucket my-flexfs-bucket \
--prefix flexfs \
--metaAddr meta-host:8443

| Flag | Default | Description | |---|---|---| | --api | (required) | Block storage API code (e.g., s3, gcs, azure, oci) | | --blockAddr | (empty) | Custom block storage endpoint (for S3-compatible stores) | | --blockPass | (empty) | Block storage secret key / password | | --blockUser | (empty) | Block storage access key / username | | --bucket | (required) | Object storage bucket name | | --force | false | Overwrite an existing credentials file | | --metaAddr | (required) | Metadata server address (host:port) | | --prefix | flexfs | Key prefix within the bucket | | --provider | (required) | Cloud provider code (e.g., aws, gcp, azure, oci) | | --region | (required) | Cloud region code (e.g., us-east-1) | | --retention | 604800 | Block retention period in seconds (default 7 days) |

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 = "$TOKEN"
metaToken = "$TOKEN"
volumeToken = "$TOKEN"
volumeID = "$TOKEN"
provider = "aws"
region = "us-east-1"
api = "s3"
bucket = "my-flexfs-bucket"
prefix = "flexfs"
metaAddr = "meta-host:8443"
retention = 604800
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.

| Flag | Default | Description | |---|---|---| | --bindAddr | 0.0.0.0:443 | Address and port to bind | | --credsFile | ~/.flexfs/free/creds | Credentials file path (persistent flag) | | --noInstaller | false | Disable the /deploy/install-mount.sh installer endpoint | | --noSSL | false | Disable TLS for the REST API | | --sslCert | ~/.flexfs/ssl/cert | TLS certificate file path | | --sslKey | ~/.flexfs/ssl/key | TLS private key file path |

Create and enable a systemd service unit:

Terminal window
sudo free.flexfs init systemd --now

| Flag | Default | Description | |---|---|---| | --force | false | Overwrite an existing systemd unit file | | --now | false | Start the service immediately after enabling | | --startFlags | (empty) | Additional flags to pass to the start command |

This creates the unit file flexfs-free.service. Requires root.

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.

| 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.