flexifyio/ce

By flexifyio

Updated 1 day ago

Flexify.IO Community Edition

Image
Databases & Storage

100K+

Flexify.IO Community Edition

Flexify.IO is the cloud data migration and storage virtualization solution that allows:

  • Migrate data between clouds at cloud-native speeds;
  • Migrate data from on-premise storage to cloud and back (in combination with Minio);
  • Combine multiple cloud and on-premise storage to a single virtual S3-compatible storage with unified namespace;
  • Distribute or replicate new data between attached storages;
  • Translate Azure Blob Storage and Alibaba OSS APIs to S3-compatible API (i.e. allowing your S3 applications to store data in Azure or Alibaba).

Start and Configure

  1. Start a Docker container.
docker run -d -p 80:80 -p 443:443 flexifyio/ce
  1. Open http://localhost (or http://[server-ip]) in your browser.
  2. Wait for Flexify.IO to initialize for the first time (may take a few minutes on slow machines).
  3. Create an account. You can use any email address as username, we do not verify it and do not "call home".
  4. Go to Data tab and add one or more storages.
  5. Go to Migrations tab to copy or move your data between your storages.
  6. Go to Endpoint tab to attach your storages to the Virtual Endpoint and generate S3 keys.

Persisting Configuration

Flexify.IO does not storage any object data, metadata, list or catalogue. However, your settings and state are stored locally.

To persist the configuration (very useful for future upgrades), mount a volume or a directory to the container.

docker run -d \
  --restart unless-stopped \
  -p 80:80 -p 443:443 \
  -v flexify:/var/opt/flexify/ \
  flexifyio/ce

External Database

Sometimes you may be not able to map /var/opt/flexify/ to a volume or local directory, such us when running in Azure App Service. This is usually due to incompatibility with MariaDB that is runs inside the container. Instead, external database can be used:

docker run -d \
  --restart unless-stopped \
  -p 80:80 -p 443:443 \
  -e DB_URL='jdbc:sqlserver://<your-db-server>.database.windows.net:1433;database=<db-name>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;' \
  -e DB_USERNAME='<SQL username>' \
  -e DB_PASSWORD='<SQL password>' \
  -e FLEXIFY_ENGINE_PASSKEY='<some_secure_passkey>'
  flexifyio/ce

Specifying FLEXIFY_ENGINE_PASSKEY is necessary because otherwise a new passkey will be generated every time the container starts and will not match they passkey stored in the database.

TLS/SSL

The container listens on port 80 (HTTP) and port 443 (HTTPS). When the container starts for the first time, it generates a self-signed certificate for HTTPS. The certificate can be changed in one of two ways:

  • By replacing /var/opt/flexify/ssl/cert.pem and /var/opt/flexify/ssl/cert.pem files.
  • By specifying FLEXIFY_SSL_CERT and FLEXIFY_SSL_PRIVATE_KEY environment variables.

Certificate and private key should in PEM format. We recommend configuring full certificate chain rather than a single certificate.

Supported Storage Providers

  • Amazon S3
  • Microsoft Azure Blob Storage
  • Google Cloud Storage
  • IBM Cloud Object Storage
  • Alibaba OSS
  • DigitalOcean Spaces
  • Backblaze B2
  • Wasabi
  • Gcore
  • Impossible Cloud
  • Seagate Lyve Cloud
  • Storj
  • Synology C2
  • Linode (Akamai)
  • OVHcloud
  • Exoscale
  • Filebase
  • Yandex Cloud
  • Dropbox
  • Dell EMC ECS
  • Ceph (via Object Gateway S3 API)
  • Minio

You can also add any S3-compatible storage, but we only test with the storages in the list.

Community Edition Limitations

Flexify.IO is a horizontally scalable solution with centralized management of geographically distributed engines scaling to any needs. Migrations are also distributed between all available engines using Flexify.IO’s unique slot-based distribution technique.

The Community Edition, however, is limited to a single machine and is not scalable. If you need better reliability or performance, please, use our service or contact us to purchase a commercial license.

License

Flexify.IO Community Edition is free to use and is provided under Flexify.IO License Agreement.

Contacts

Docker Pull Command

docker pull flexifyio/ce