{"_id":"959.js","_rev":"2-fe230241d4bd694626554b63766f017b","name":"959.js","description":"Simple node ftp server.","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"959.js","description":"Simple node ftp server.","version":"0.1.0","homepage":"https://github.com/nyon/959.js","author":{"name":"Timm Decker","email":"me@nyon.de"},"repository":{"type":"git","url":"git://github.com/nyon/959.js.git"},"bin":{"959.js":"./bin/959.js","nftp":"./bin/959.js"},"bugs":{"url":"https://github.com/nyon/959.js/issues"},"licenses":[{"type":"MIT","url":"https://github.com/nyon/959.js/blob/master/LICENSE-MIT"}],"main":"bin/959.js","engines":{"node":">= 4"},"devDependencies":{"babel-preset-env":"^1.6.0","eslint":"^3.19.0","eslint-config-airbnb-base":"^11.3.1","eslint-plugin-import":"^2.7.0","grunt":"^1.0.1","grunt-babel":"^6.0.0","grunt-contrib-watch":"^1.0.0","gruntify-eslint":"^4.0.0"},"keywords":[],"dependencies":{"moment":"^2.18.1"},"gitHead":"b9ec8ecfa01ce8c21256a49b23f986081008abe7","_id":"959.js@0.1.0","_npmVersion":"5.0.4","_nodeVersion":"7.7.4","_npmUser":{"name":"nyon","email":"npm@nyon.de"},"dist":{"integrity":"sha512-MNv/GnxariGCyGp8qN/Mvk+AYdrkCiJenlxxrp52l5F1N3aLL2ey+xnIENe+/LXcZZjF0spFMcRy4pvpnIoosA==","shasum":"674b1ad43a758203145bac514c06c67c54580ed8","tarball":"https://registry.npmjs.org/959.js/-/959.js-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCHwHsaxfKbD9DUi2GmtLz8yRY++jo3yKlH4qfzKXS2QIgEjhKwPxS8M1+Hv0QSESyoWAZqrN59oahkk0u3P90A30="}]},"maintainers":[{"name":"nyon","email":"npm@nyon.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/959.js-0.1.0.tgz_1504031975487_0.23661828855983913"}},"0.1.1":{"name":"959.js","description":"Simple node ftp server.","version":"0.1.1","homepage":"https://github.com/nyon/959.js","author":{"name":"Timm Decker","email":"me@nyon.de"},"repository":{"type":"git","url":"git://github.com/nyon/959.js.git"},"bin":{"959.js":"./bin/959.js","nftp":"./bin/959.js"},"bugs":{"url":"https://github.com/nyon/959.js/issues"},"licenses":[{"type":"MIT","url":"https://github.com/nyon/959.js/blob/master/LICENSE-MIT"}],"main":"bin/959.js","engines":{"node":">= 4"},"devDependencies":{"babel-preset-env":"^1.6.0","eslint":"^3.19.0","eslint-config-airbnb-base":"^11.3.1","eslint-plugin-import":"^2.7.0","grunt":"^1.0.1","grunt-babel":"^6.0.0","grunt-contrib-watch":"^1.0.0","gruntify-eslint":"^4.0.0"},"keywords":[],"dependencies":{"moment":"^2.18.1"},"gitHead":"d2021811652ca24e696ae01162335d40fca79aa3","_id":"959.js@0.1.1","_npmVersion":"5.0.4","_nodeVersion":"7.7.4","_npmUser":{"name":"nyon","email":"npm@nyon.de"},"dist":{"integrity":"sha512-dPj7ir8kNtcBIBkfWMaNhDdf4gbHo/f1lXTallkb6jwPdNniVSBssx0IM++KrS8kZe1wWGJLA4kQdoykbJsIPw==","shasum":"c917a81932dba44a76d6c07a340fcfde6e5fe260","tarball":"https://registry.npmjs.org/959.js/-/959.js-0.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkl1n0w7PW0EiUVpeGMMEIMmU6G3Z3/+H7fpUnq5LZ/AIhAKyrTpOj0Ni/EKTybY5qAvYYTiNJN+YgLmUDgsCF1oQ8"}]},"maintainers":[{"name":"nyon","email":"npm@nyon.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/959.js-0.1.1.tgz_1504032638203_0.9511626518797129"}}},"readme":"# 959.js\n\nA simple FTP server written in pure ECMAScript 6. \n\n## Features:\n\n* User management through simple JSON configuration file\n* Implements RFC 959 (but without active data transfer)\n* Implements RFC 697 (CWD)\n* CHMOD of files\n* Working directories per user\n* port ranges for passive mode\n* instant configuration reloading. you do not have to restart the ftp server when you change the ftp-config.json\n\n## Planned features:\n\nI plan implementing the following features. Pull requests are welcomed.\n\n* Simple installation: `npm install -g 959.js && 959.js`\n* configurable configuration file name\n* Docker image\n* Windows compatibility\n* Anonymous support\n* Testing...\n* Remove moment.js dependency\n* TLS support (FTPS, FTPES)\n* RFC 2428 (IPv6)\n* RFC 7151 (Virtual Hosts)\n* RFC 3659\n\n## Usage\n\nBecause there is no npm module published, you need to `git clone` this repository directly and run the following command:\n\n    grunt babel && node dist/user.js [YOUR_USERNAME] [YOUR_PASSWORD]\n\nThis outputs something like:\n\n    sha512#9ba1f63365a6caf66e46348f43cdef956015bea997adeb06e69007ee3ff517df10fc5eb860da3d43b82c2a040c931119d2dfc6d08e253742293a868cc2d82015\n\nCopy this string and put it in a file named ftp-config.json\n\n    {\n      \"users\": [\n        {\n          \"directory\": \"/var/ftp/[YOUR_USERNAME]\",\n          \"username\": \"[YOUR_USERNAME]\",\n          \"password\": \"sha512#9ba1f63365a6caf66e46348f43cdef956015bea997adeb06e69007ee3ff517df10fc5eb860da3d43b82c2a040c931119d2dfc6d08e253742293a868cc2d82015\"\n        }\n      ]\n    }\n\nAfter this, you can start your FTP-Server like the following:\n\n    sudo node dist/server.js\n\n`sudo` is necessary, because it has to be bound to port 21.\n\nTo configure the passive ports used you can edit the configuration file like this:\n\n    {\n        \"passivePorts\": [\"10000-11000\", \"1337\"],\n        \"users\": [\n            // ...\n        ]\n    }\n\n## License\nCopyright (c) 2017 Timm Decker\nLicensed under the MIT license.\n","maintainers":[{"name":"nyon","email":"npm@nyon.de"}],"time":{"modified":"2022-04-04T10:25:13.457Z","created":"2017-08-29T18:39:36.544Z","0.1.0":"2017-08-29T18:39:36.544Z","0.1.1":"2017-08-29T18:50:39.198Z"},"homepage":"https://github.com/nyon/959.js","keywords":[],"repository":{"type":"git","url":"git://github.com/nyon/959.js.git"},"author":{"name":"Timm Decker","email":"me@nyon.de"},"bugs":{"url":"https://github.com/nyon/959.js/issues"},"readmeFilename":"README.md"}