------------------------ WINDOWS PORT OF PURE-FTPD ------------------------ Pure-FTPd was designed for Unix-like systems. Still, it is possible to run it on Windows using Cygwin. This should be considered experimental and unsupported. ------------------------ INSTALLATION ------------------------ Copy the executable files (*.EXE) in a suitable directory. Also copy CYGWIN1.DLL in that directory. Create a C:\CYGWIN directory (you can leave it empty, but the directory should be there) . ------------------------ RUNNING THE SERVER ------------------------ PURE-FTPD.EXE works like Unix's /usr/local/sbin/pure-ftpd program and all command-line switches apply as well. A noticeable difference, though, is that users can't be stored in /etc/passwd (or equivalent files) . All users have the same UID/GID. So better chroot everyone. Users must be in a puredb database. PURE-PW.EXE can be used to create virtual users. It you use it in the default configuration, you have to create C:\CYGWIN\etc and C:\etc . Ray Jachrist says that Pure-FTPd can run as a service using Firedaemon: http://www.firedaemon.com/ . ------------------------ SERVER FILES ------------------------ All files managed by Pure-FTPd have their path relative to C:\CYGWIN . It means that starting the server with: pure-ftpd -lpuredb:/etc/pureftpd.pdb Will read: C:\CYGWIN\etc\pureftpd.pdb It also applies to log files and users directories. ------------------------ ANONYMOUS FTP ------------------------ Files for anonymous FTP must be stored in a directory called: C:\CYGWIN\FTP (of course you can use the -e switch to disable anonymous FTP) . Alternatively, you can have a FTP_ANON_DIR environment variable to define the directory for public files. Virtual hosting is supported as well. Files must be in: C:\CYGWIN\PURE-FTPD\\ If you don't want anonymous users to upload files, use the -i switch. ------------------------ COMPILATION ENVIRONMENT ------------------------ Pure-FTPd can be compiled on Cygwin with the following command: env LDFLAGS="-static -s" \ ./configure --with-everything --with-brokenrealpath \ --without-shadow --with-nonroot --with-tls All these switches (except --with-everything and --with-tls) are highly recommended to compile Pure-FTPd on Windows. Required packages are: base, gcc (+ dependencies), make and the crypt library. libsodium is also recommended if you are using PureDB. All of these can be installed with the standard Cygwin installer (http://www.cygwin.com/) .