Skip to content

This repository contains a docker image configured to use the SSH File Transfer Protocol (SFTP) to transfer all its files to Cloud Blob Storage Services. This image can be deployed on a Kubernetes cluster with Helm.

License

Notifications You must be signed in to change notification settings

artefactory/sftp-gateway

Repository files navigation

sftp-gateway

Architecture

Nautilus SFTP Gateway architecture

A Docker image containing a SSH server and an INotify daemon allows to create a SFTP gateway server. Once deployed, you can connect to the SFTP server and read/write files that are immediately synchronised to GCS, S3, Azure Blob Storage (in development) and/or other cloud storage services.

The repository contains the appropriate files to deploy the container to Kubernetes.

Maintainer

Overview

When you run a container based on this image, it creates a SFTP server that can only be accessed by specific users, and moves to uploaded data to one or more specific buckets.

The users and the buckets are provided at runtime via container Environment variables. When the container starts, it uses the Environment variables to generate the appropriate configuration files and start the services. The container does not persist any data by default.

The docker image does not contain any credentials, they must be provided during the container deployment via a mounted secrets volume on Kubernetes, or a mounted volume for vanilla Docker. See below for more information.

Quick setup

  • 1/ Setup your environment by running export ENV=dev (here dev for example). Also run the following command : export PYTHONPATH=$PYTHONPATH:.
  • 2/ Fill in your configuration by copying the ./config/example.yaml into a new ./config/${ENV}.yaml file and replace the values by the ones you need for your project.
  • 3/ Add your secrets into the ./credentials/${ENV} folder or let the project generate them for you.
  • 4/ Test your configuration by running the following command : make docker_run
  • 5/ Generate or copy an existing external IPv4 address that can be used by your Kubernetes cluster in your configuration file under APP -> SERVICE_IP.
  • 6/ Deploy the SFTP on Kubernetes by running the following command : make helm_install

Table of contents

About

This repository contains a docker image configured to use the SSH File Transfer Protocol (SFTP) to transfer all its files to Cloud Blob Storage Services. This image can be deployed on a Kubernetes cluster with Helm.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •