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.
- Cédric Magnan (@Cedric-Magnan or [email protected])
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.
- 1/ Setup your environment by running
export ENV=dev
(heredev
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