Using ftp-deploy in node.js to publish websites over FTP
In the Open Event Webapp Generator, we recently added the functionality for organisers to submit their ftp credentials and when the website is generated, it’ll automatically upload the website to the chosen ftp server (allowing creation of subdirectory internally, if the organiser so wants).
To achieve we used the very useful nodejs module ftp-deploy which is a wrapper on the popular jsftp library
The code dealing with ftp deployment in our webapp generator can be found hereĀ –
https://github.com/fossasia/open-event-webapp/blob/development/src/backend/ftpdeploy.js
As can be seen, deploying using ftp-deploy is pretty straightforward. Primarily we need a config object
var config = { username: ftpDetails.user, //prompted on commandline if not given password: ftpDetails.pass, // optional, prompted if none given host: ftpDetails.host, port: 21, localRoot: path.join(__dirname, '/../../dist', appFolder), //local folder containing website remoteRoot: ftpDetails.path, //path on ftp server to host website exclude: ['.git', '.idea', 'tmp/*'], continueOnError: true };
You can set up some event listeners for events like uploaded
uploading
and upload-error