https://github.com/bfren/docker-ftps
Docker FTPS image.
https://github.com/bfren/docker-ftps
docker docker-ftps docker-vsftpd ftps vsftpd
Last synced: about 1 month ago
JSON representation
Docker FTPS image.
- Host: GitHub
- URL: https://github.com/bfren/docker-ftps
- Owner: bfren
- License: mit
- Created: 2021-02-08T13:50:08.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-01-28T22:51:22.000Z (4 months ago)
- Last Synced: 2026-01-29T13:50:22.584Z (4 months ago)
- Topics: docker, docker-ftps, docker-vsftpd, ftps, vsftpd
- Language: Nushell
- Homepage:
- Size: 167 KB
- Stars: 18
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Docker FTPS
   
[Docker Repository](https://hub.docker.com/r/bfren/ftps) - [bfren ecosystem](https://github.com/bfren/docker)
Comes with vsftpd installed and running in passive mode, with TLS support (self-signed certificates).
WinSCP config (for example):
```c
// do not choose SFTP, this is a completely different protocol
Protocol: FTP
// i.e. not 'plain' or 'implicit'
Encryption: TLS/SSL Explicit encryption
// choose either the IP or URI defined in docker-compose.yml
Host: BF_FTPS_EXTERNAL_IP or BF_FTPS_EXTERNAL_URI
// you need to open ports 990 and 18700-18710 as well - the
// connection begins on port 21 and is escalated to the others
Port: 21
// defined in docker-compose.yml
User name: BF_FTPS_VSFTPD_USER
// defined in docker-compose.yml
Password: BF_FTPS_VSFTPD_PASS
```
## Contents
* [Ports](#ports)
* [Volumes](#volumes)
* [Environment Variables](#environment-variables)
* [Licence / Copyright](#licence)
## Ports
* 21
* 990
* 18700-18710
## Volumes
| Volume | Purpose |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `/files` | Contains the files that can be accessed / written. |
| `/ssl` | Stores (self-signed) SSL certificates - if you symlink a PEM file called `server.pem` here with a valid SSL certificate, `vsftpd` will use it instead. |
## Environment Variables
| Variable | Values | Description | Default |
| ----------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| `BF_FTPS_EXTERNAL_IP` | string | The external IP of the server - required for passive mode (unless `BF_FTPS_EXTERNAL_URI` is set). | *None* - **required** unless `BF_FTPS_EXTERNAL_URI` is set |
| `BF_FTPS_EXTERNAL_URI` | string | The URI of the server - required for passive mode (unless `BF_FTPS_EXTERNAL_IP` is set).
If both are set this takes precedence. | *None* - **required** unless `BF_FTPS_EXTERNAL_IP` is set |
| `BF_FTPS_SSL_BITS` | string | The number of bits to use for the self-signed SSL certificate. | 4096 |
| `BF_FTPS_VSFTPD_MIN_PORT` | number | The minimum port number to use for data transfer for VSFTPD. | 18700 |
| `BF_FTPS_VSFTPD_MAX_PORT` | number | The maximum port number to use for data transfer for VSFTPD. | 18710 |
| `BF_FTPS_VSFTPD_USER` | string | A user account will be created for connecting to the server. | *None* - **required** |
| `BF_FTPS_VSFTPD_PASS` | string | The password to use for connecting to the server. | *None* - **required** |
| `BF_FTPS_VSFTPD_UID` | string | User ID with access rights to the `/files` directory. | 1000 |
| `BF_FTPS_VSFTPD_ENABLE_DEBUG_LOG` | 0 or 1 | Whether or not to enable all FTP commands and responses for vsftpd. | 0 |
| `BF_FTPS_VSFTPD_ENABLE_PASV_PROMISCUOUS` | 0 or 1 | If set to '1' then `pasv_promiscuous` will be set to 'yes' for vsftpd - be sure you know what you're doing. | 0 |
| `BF_FTPS_VSFTPD_WELCOME` | string | Welcome message when people sign in to the server. | "Welcome to the FTPS server." |
## Licence
> [MIT](https://mit.bfren.dev/2021)
## Copyright
> Copyright (c) 2021-2026 [bfren](https://bfren.dev) (unless otherwise stated)