{"id":18802153,"url":"https://github.com/oracle-quickstart/oci-cloud-native-sftp","last_synced_at":"2026-02-26T23:01:40.812Z","repository":{"id":37494009,"uuid":"419015951","full_name":"oracle-quickstart/oci-cloud-native-sftp","owner":"oracle-quickstart","description":"Terraform module to deploy a cloud-native SFTP solution on Oracle Cloud Infrastructure (OCI)","archived":false,"fork":false,"pushed_at":"2025-06-20T10:20:05.000Z","size":80,"stargazers_count":3,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-10T17:19:53.771Z","etag":null,"topics":["cloud","oci","oracle","oracle-led","sftp","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"upl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle-quickstart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-19T16:59:12.000Z","updated_at":"2024-03-29T09:53:19.000Z","dependencies_parsed_at":"2025-07-10T12:11:59.009Z","dependency_job_id":"571c0b0a-8f66-4376-a7f8-1771597ec386","html_url":"https://github.com/oracle-quickstart/oci-cloud-native-sftp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/oracle-quickstart/oci-cloud-native-sftp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-quickstart%2Foci-cloud-native-sftp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-quickstart%2Foci-cloud-native-sftp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-quickstart%2Foci-cloud-native-sftp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-quickstart%2Foci-cloud-native-sftp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle-quickstart","download_url":"https://codeload.github.com/oracle-quickstart/oci-cloud-native-sftp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-quickstart%2Foci-cloud-native-sftp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29876340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T22:37:10.609Z","status":"ssl_error","status_checked_at":"2026-02-26T22:37:09.019Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","oci","oracle","oracle-led","sftp","terraform"],"created_at":"2024-11-07T22:26:47.806Z","updated_at":"2026-02-26T23:01:40.790Z","avatar_url":"https://github.com/oracle-quickstart.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cloud-native-sftp\nHave you ever wondered how to turn a legacy, but still widely adopted, solution like SFTP into a fresh Cloud Native solution ?\n\nThat's a Terraform module for [_Turning SFTP Cloud Native_](https://blogs.oracle.com/cloud-infrastructure/post/turning-sftp-cloud-native), therefore you may would like to know more and go through [_Turning SFTP Cloud Native...with a click_](https://blogs.oracle.com/cloud-infrastructure/post/turning-sftp-cloud-native-click) post on [Oracle Blogs](https://blogs.oracle.com/).\n\n## Prerequisites\n- Permission to `manage` the following types of resources in your Oracle Cloud Infrastructure tenancy:\n  - `vcns`\n  - `internet-gateways`\n  - `service-gateways`\n  - `nat-gateways`\n  - `route-tables`\n  - `security-lists`\n  - `subnets`\n  - `load-balancers`\n  - `instances`\n  - `buckets`\n  - `objects`\n  - `instances`\n  - `cloudevents-rules`\n  - `ons-topics`\n  - `ons-subscriptions`\n- Quota to create the following resources:\n  - VCN: 1\n  - Subnet: 2\n  - Internet Gateway: 1\n  - Service Gateway/NAT Gateway: 1\n  - Routing Table rules: 2\n  - Network Load Balancer: 1\n  - Object Storage Bucket: 1\n  - Compute instances: 2\n\nIf you don't have the required permissions and quota, contact your tenancy administrator. See [Policy Reference](https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Reference/policyreference.htm), [Service Limits](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm), [Compartment Quotas](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcequotas.htm).\n\n## Deploy Using Oracle Resource Manager\n1. Click [![Deploy to Oracle Cloud](https://oci-resourcemanager-plugin.plugins.oci.oraclecloud.com/latest/deploy-to-oracle-cloud.svg)](https://cloud.oracle.com/resourcemanager/stacks/create?region=home\u0026zipUrl=https://github.com/oracle-quickstart/oci-cloud-native-sftp/releases/latest/download/oci-cloud-native-sftp-stack-latest.zip)\n\n    If you aren't already signed in, when prompted, enter the tenancy and user credentials.\n\n2. Review and accept the terms and conditions.\n\n3. Select the region where you want to deploy the stack.\n\n4. Follow the on-screen prompts and instructions to create the stack.\n\n5. After creating the stack, click **Terraform Actions**, and select **Plan**.\n\n6. Wait for the job to be completed, and review the plan.\n\n    To make any changes, return to the Stack Details page, click **Edit Stack**, and make the required changes. Then, run the **Plan** action again.\n\n7. If no further changes are necessary, return to the Stack Details page, click **Terraform Actions**, and select **Apply**.\n\n## Deploy Using the Terraform CLI\n### Clone the Module\nNow, you'll want a local copy of this repo. You can make that with the commands:\n\n    git clone https://github.com/oracle-quickstart/oci-cloud-native-sftp.git\n    cd oci-cloud-native-sftp\n\n### Set Up and Configure Terraform\n1. Complete the prerequisites described [here](https://github.com/cloud-partners/oci-prerequisites).\n2. Configure the Terraform's [OCI Provider](https://registry.terraform.io/providers/hashicorp/oci/latest/docs) using [Environment Variables](https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformproviderconfiguration.htm#environmentVariables). The required variables are:\n   - `TF_VAR_region`\n   - `TF_VAR_tenancy_ocid`\n   - `TF_VAR_user_ocid`\n   - `TF_VAR_fingerprint`\n   - `TF_VAR_private_key_path`\n3. Create a `terraform.tfvars` file, and specify the following variables:\n```\n# Region of the Tenancy\nregion = \"\u003cregion\u003e\"\n\n# OCID of the Tenancy\ntenancy_ocid = \"\u003ctenancy_ocid\u003e\"\n\n# The user OCID (https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm#five)\nuser_ocid = \"\u003cuser_ocid\u003e\"\n\n# OCID of the compartment where creating network resources\nnetwork_compartment_id = \"\u003cnetwork_compartment_id\u003e\"\n\n# OCID of the VCN to use for configuring a Cloud Native SFTP\n# Required when using an existing VCN\nvcn_id = \"\u003cvcn_id\u003e\"\n\n# OCID of the subnet (public) where the Network Load Balancer is instantiated\n# Required when using an existing VCN\nlb_subnet_id = \"\u003clb_subnet_id\u003e\"\n\n# OCID of the subnet (private) where SFTP servers are instantiated\n# Required when using an existing VCN\nservers_subnet_id = \"\u003cservers_subnet_id\u003e\"\n\n# The CIDR of the VCN to create for configuring a Cloud Native SFTP\n# Required when using a new VCN\nvcn_cidr         = \"\u003cvcn_cidr\u003e\"\n\n# The CIDR of the subnet (public) to create for the Network Load Balancer\n# Required when using a new VCN\nlb_subnet_cidr   = \"\u003clb_subnet_cidr\u003e\"\n\n# The CIDR of the subnet (private) to create for the SFTP servers\n# Required when using a new VCN\nservers_subnet_cidr = \"\u003cservers_subnet_cidr\u003e\"\n\n# OCID of the compartment designated for S3 Compatibility API\ns3_compatibility_compartment_id\t= \"\u003cs3_compatibility_compartment_id\u003e\"\n\n# The name of the bucket, in designated S3 Compatibility compartment, where to store files\nbucket_name = \"\u003cbucket_name\u003e\"\n\n# OCID of the compartment where creating the Network Load Balancer\nlb_compartment_id = \"\u003clb_compartment_id\u003e\"\n\n# OCID of the compartment where creating the SFTP servers\nservers_compartment_id = \"\u003cservers_compartment_id\u003e\"\n\n# The OCID of the image used for SFTP servers Compute instances\nservers_image_id = \"\u003cservers_image_id\u003e\"\n\n# The number of SFTP servers to istantiate\nservers_count = \"\u003cservers_count\u003e\"\n\n# The public key, in OpenSSH format, allowed for connecting to SFTP servers Compute instances through SSH\nservers_ssh_authorized_keys=\"\u003cservers_ssh_authorized_keys\u003e\"\n\n# The name of the SFTP user\nsftp_user_name = \"\u003csftp_user_name\u003e\"\n\n# The public key, in OpenSSH format, allowed for connecting to SFTP\nsftp_user_ssh_authorized_keys=\"\u003csftp_user_ssh_authorized_keys\u003e\"\n\n# OCID of the compartment where creating OCI Notifications and Events resources\nnotifications_compartment_id = \"\u003cnotifications_compartment_id\u003e\"\n\n# The mail recipient of the messages about SFTP files changes\nnotifications_email = \"\u003cnotifications_email\u003e\"\n````\n\n### Create the resources\nRun the following commands:\n\n    terraform init\n    terraform plan\n    terraform apply\n\n### Destroy the deployment\nWhen you no longer need the deployment, you can run this command to destroy the resources:\n\n    terraform destroy\n\n## Deployment Notes\nIf you select to use existing VCN and subnets, please be sure that:\n- The Route Table attached to the Load Balancer subnet is configured to enable access from Internet\n- The Route Table attached to the SFTP Servers subnet is configured to enable access to Internet, because:\n  - SFTP Servers bootstrap requires [s3fs](https://github.com/s3fs-fuse/s3fs-fuse) installation\n  - SFTP Servers access to Object Storage for storing the files\n\n  If Oracle Linux images are used for SFTP Servers, a [Service Gateway](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/servicegateway.htm#Access_to_Oracle_Services_Service_Gateway) is enough, otherwise a [NAT Gateway](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/NATgateway.htm#NAT_Gateway) is required.\n\nFor further information about Route Tables, take a look at [VCN Route Tables](https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingroutetables.htm).\n\n## Contributing\n\nThis project welcomes contributions from the community. Before submitting a pull request, please [review our contribution guide](./CONTRIBUTING.md)\n\n## Security\n\nPlease consult the [security guide](./SECURITY.md) for our responsible security vulnerability disclosure process\n\n## License\n\nCopyright (c) 2019 Oracle and/or its affiliates.\n\nReleased under the Universal Permissive License v1.0 as shown at\n\u003chttps://oss.oracle.com/licenses/upl/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-quickstart%2Foci-cloud-native-sftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle-quickstart%2Foci-cloud-native-sftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-quickstart%2Foci-cloud-native-sftp/lists"}