Catalog npm
Back to packageRELEASE DETAILS

0.1.0

npm

959.js

Simple node ftp server.

Published29 Aug 2017
Direct dependencies9
Transitive dependenciesNot calculated

README

Current package documentation

959.js

A simple FTP server written in pure ECMAScript 6.

Features:

  • User management through simple JSON configuration file
  • Implements RFC 959 (but without active data transfer)
  • Implements RFC 697 (CWD)
  • CHMOD of files
  • Working directories per user
  • port ranges for passive mode
  • instant configuration reloading. you do not have to restart the ftp server when you change the ftp-config.json

Planned features:

I plan implementing the following features. Pull requests are welcomed.

  • Simple installation: npm install -g 959.js && 959.js
  • configurable configuration file name
  • Docker image
  • Windows compatibility
  • Anonymous support
  • Testing...
  • Remove moment.js dependency
  • TLS support (FTPS, FTPES)
  • RFC 2428 (IPv6)
  • RFC 7151 (Virtual Hosts)
  • RFC 3659

Usage

Because there is no npm module published, you need to git clone this repository directly and run the following command:

grunt babel && node dist/user.js [YOUR_USERNAME] [YOUR_PASSWORD]

This outputs something like:

sha512#9ba1f63365a6caf66e46348f43cdef956015bea997adeb06e69007ee3ff517df10fc5eb860da3d43b82c2a040c931119d2dfc6d08e253742293a868cc2d82015

Copy this string and put it in a file named ftp-config.json

{
  "users": [
    {
      "directory": "/var/ftp/[YOUR_USERNAME]",
      "username": "[YOUR_USERNAME]",
      "password": "sha512#9ba1f63365a6caf66e46348f43cdef956015bea997adeb06e69007ee3ff517df10fc5eb860da3d43b82c2a040c931119d2dfc6d08e253742293a868cc2d82015"
    }
  ]
}

After this, you can start your FTP-Server like the following:

sudo node dist/server.js

sudo is necessary, because it has to be bound to port 21.

To configure the passive ports used you can edit the configuration file like this:

{
    "passivePorts": ["10000-11000", "1337"],
    "users": [
        // ...
    ]
}

License

Copyright (c) 2017 Timm Decker Licensed under the MIT license.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 9

Native requirements
9 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
moment
Environment
{
  "local_name": "moment",
  "alias": false,
  "peer_metadata": null
}
^2.18.1runtime
babel-preset-env
Environment
{
  "local_name": "babel-preset-env",
  "alias": false,
  "peer_metadata": null
}
^1.6.0development
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^3.19.0development
eslint-config-airbnb-base
Environment
{
  "local_name": "eslint-config-airbnb-base",
  "alias": false,
  "peer_metadata": null
}
^11.3.1development
eslint-plugin-import
Environment
{
  "local_name": "eslint-plugin-import",
  "alias": false,
  "peer_metadata": null
}
^2.7.0development
grunt
Environment
{
  "local_name": "grunt",
  "alias": false,
  "peer_metadata": null
}
^1.0.1development
grunt-babel
Environment
{
  "local_name": "grunt-babel",
  "alias": false,
  "peer_metadata": null
}
^6.0.0development
grunt-contrib-watch
Environment
{
  "local_name": "grunt-contrib-watch",
  "alias": false,
  "peer_metadata": null
}
^1.0.0development
gruntify-eslint
Environment
{
  "local_name": "gruntify-eslint",
  "alias": false,
  "peer_metadata": null
}
^4.0.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "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="
    }
  ]
}

Repository

PENDING
nyon/959.js

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:32 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:bcc803cc9387f7f0e6ee4cef405d52174bac47f5612bcb62fa702fd0eb4c7546

Other collected versions

0.1.129 AugView all collected versions →