Simple container for FTP+TLS+authentication
Go to file
Paolo Asperti bbaa8496eb
more docs and fixed tls
2019-05-18 01:20:52 +02:00
Dockerfile Initial release 2019-05-18 00:41:50 +02:00
LICENSE Initial commit 2019-05-17 22:22:28 +00:00
README.md more docs and fixed tls 2019-05-18 01:20:52 +02:00
custom.conf more docs and fixed tls 2019-05-18 01:20:52 +02:00
run.sh more docs and fixed tls 2019-05-18 01:20:52 +02:00

README.md

docker-ftps

Simple container for FTP+TLS+authentication

build

docker build . -t docker.asperti.com/paspo/ftps

run

docker run -d --name my-ftps \
  -p 21:21 -p 20:20 -p 50000-50500:50000-50500 \
  -e "MASQUERADE=ftp.mydomain.com" \
  -v "$PWD/auth:/auth" -v "$PWD/ftpdata:/home" \
  -v "$PWD/certs:/certs" \
  docker.asperti.com/paspo/ftps

The MASQUERADE parameter is the only required one. You can use an IP address (which is discouraged) or a DNS name. You must provide valid certificates for TLS; if you use Lets'Encrypt, you can mofify like this:

docker run -d --name my-ftps \
  -p 21:21 -p 20:20 -p 50000-50500:50000-50500 \
  -e "MASQUERADE=ftp.mydomain.com" \
  -v "$PWD/auth:/auth" -v "$PWD/ftpdata:/home" \
  -v "/etc/letsencrypt/live/ftp.mydomain.com:/certs" \
  docker.asperti.com/paspo/ftps

docker-compose

version: "3"
services:

  ftps-server:
    image: docker.asperti.com/paspo/ftps
    restart: always
    ports:
      - "21:21"
      - "20:20"
      - "50000-50500:50000-50500"
    volumes:
      - "/srv/ftps/auth:/auth"
      - "/srv/ftps/data:/home"
      - "/etc/letsencrypt/live/ftp.mydomain.com:/certs"
    environment:
      - MASQUERADE=ftp.mydomain.com

notes

Please note that you have to restart the container whenever the certificate is renewed.

users management

To change/set a password, do like this (replace "paolo" with the correct username):

docker exec -ti my-ftps ftpasswd --passwd --name=paolo --uid=1000 --home=/home/paolo --shell=/bin/false --file=/auth/passwd

You also have to create and chown the user's home folder.