# Installing FileMage Gateway on IBM Cloud

FileMage Gateway, an SFTP and FTP server backed by IBM Cloud Object Storage, is available on IBM Cloud as a virtual machine (VM) image. The VM image contains a fully configured installation of FileMage Gateway ready to be used on IBM Cloud.

Note

When deploying a Linux image, SFTP is running on port 2222.

# Creating a Virtual Machine

We provide a virtual machine image of FileMage Gateway for IBM Cloud. No installation is required. You just need to create a virtual machine from the IBM Cloud Marketplace. This virtual machine image is fully functional upon launch and requires no additional configuration to use. However, you may need to make certain changes depending on your specific use case.

You can quickly find the FileMage Gateway catalog entry in the IBM Cloud console by typing filemage into the Search resources and offerings... search bar at the top of the page.

IBM Catalog

IBM Cloud uses IBM Cloud Schematics to provision catalog entries using Terraform. The FileMage Gateway Terraform templates for IBM Cloud are available at https://github.com/filemage/ibmcloud-schematics-filemage. For more information about IBM Cloud schematics see https://cloud.ibm.com/docs/schematics.

# Accessing FileMage Gateway for the First Time

After deploying the virtual machine make note of its IP address. The web portal will be available at https://<server-ip>/. A self-signed certificate is used, which you will have to accept to bypass the browser warning. See Encryption and Certificates for instructions on how to install a signed certificate.

When logging in to the web portal for the first time, you must prove your ownership of the virtual machine by connecting as a system administrator user. From there you will be able to create your initial application administrator account. Once you have created an account, refresh the page to login to the application web portal.

# Linux

  • Connect to your Linux virtual machine using SSH with the username ubuntu and the private key you specified when launching it.
  • Run the command:
sudo filemage init
  • Enter a email address for the administrator account.
  • Enter a password for the administrator account.
  • Refresh the page, or click Done.

IBM Cloud - Connecting to your Linux instance

# Default Ports

By default, the following ports are used. See Configuration Reference for information on how to change these ports.

Description Ports
OS SSH 22
Web Portal 80, 443
SFTP 2222
FTP Command 21
FTP Passive 32768-60999

Note

When HTTPS is enabled traffic on the HTTP port will be redirected to the HTTPS port.

Note

To use SFTP in Linux on port 22 sshd must be reconfigured to use a different port.

Restrict Administrative Ports

It is strongly recommended that you restrict access to the web portal (80, 443) and SSH (22) to trusted IP ranges.

# IBM Cloud IAM Permissions

FileMage Gateway requires the following IAM roles to function:

  • Content Reader
  • Content Writer
  • Object Writer

If you wish to configure a custom role with more granular permissions the actions in the table below are required.

Action Description
cloud-object-storage.bucket.get List all the objects in a bucket.
cloud-object-storage.bucket.head View bucket metadata.
cloud-object-storage.bucket.get_location View the location and storage class of a bucket.
cloud-object-storage.object.get View and download objects.
cloud-object-storage.object.head Read an object's metadata.
cloud-object-storage.object.put Write and upload objects.
cloud-object-storage.object.post_initiate_upload Initiate multipart uploads.
cloud-object-storage.object.put_part Upload an object part.
cloud-object-storage.object.copy_part Copy (write) an object part.
cloud-object-storage.object.copy_part_get Copy (read) an object part.
cloud-object-storage.object.post_complete_upload Complete a multipart upload.
cloud-object-storage.object.copy Copy (write) an object from one bucket to another.
cloud-object-storage.object.copy_get Copy (read) an object from one bucket to another.
cloud-object-storage.object.delete Delete an object.
cloud-object-storage.object.get_uploads List parts of a multi-part object upload.
cloud-object-storage.object.delete_upload Abort a multipart upload.
cloud-object-storage.object.post_multi_delete Delete multiple objects.