Running Buru SFTP Server in Docker

Rebex Buru SFTP Server can run natively in Windows Docker images, e.g. Nano Server.

Use portable edition, make any adjustments to the configuration files, add a license. Then copy the server to the Docker image.

You can use the following bash / fish shell script as a starting point.

The example generates the server keys before the docker image is created. If you wish to deploy on multiple servers, be sure to generate the server keys for each server separately, for example on container startup.

# This example will use C:\demo mkdir /c/demo cd /c/demo # Download and unzip the portable edition mkdir burusftp && cd burusftp wget -qO- https://www.rebex.net/buru-sftp-server/download/pkg/trial-RebexBuruSftpServer-x64-latest.zip | bsdtar -xvf- cd .. # Create Dockerfile echo > Dockerfile ' FROM mcr.microsoft.com/windows/nanoserver:ltsc2019 WORKDIR /app ENTRYPOINT ["burusftp.exe", "run"] COPY burusftp /app' # Create SFTP user data directory mkdir userdata # Initialize Buru SFTP Server ./burusftp/burusftp.exe init # Build and run docker image docker build -t buru-app . docker run -d -p 22:22 --name buru --mount 'type=bind,src=C:\demo\userdata,dst=C:\userdata' buru-app # Add user in running container docker exec buru 'C:\app\burusftp.exe' user add guybrush --password elaine --root-dir 'C:\userdata\guybrush' mkdir userdata/guybrush touch userdata/guybrush/hello_elaine # Force fingerprint renewal ssh-keygen -R localhost # Connect to Buru SFTP Server running in docker (use 'elaine' as password) ssh guybrush@localhost # Show contents of Guybrush's home directory - it should display 'hello_elaine' file created earlier ls exit # Stop and delete the container docker stop buru docker rm buru