Repository  -  API  -  Source


July 16, 2018
  • Added
    • --preinst-template CLI option and node_deb.templates.preinst for Debian preinst templates.
    • --install-dir CLI option and node_deb.install_dir for variable install locations (e.g., /opt/ instead of /usr/share/)
  • Fixed
    • Possible NPM related errors on install


May 2, 2018
  • Fixed
    • Bug where Unix user/group names over 32 characters were accepted, thus breaking installs


May 30, 2018
  • Fixed
    • Permissions errors during install for native builds
    • Incorrect quoting on app entrypoints


February 20, 2018
  • Fixed
    • Error with sed commands on macOS


February 5, 2018
  • Fixed
    • Typo prevented cleanup of symlinks.


January 13, 2018
  • Added
    • no-default-dependencie flag to not include the dependency on nodejs and sudo.


October 7, 2017
  • Removed
    • Creation/removal of Unix user/group for non-service applications


September 20, 2017
  • Added
    • Now includes package-lock.json if it exists
    • Debian package now has a dependency on sudo which is needed for starting the app with Upstart


September 7, 2017
  • Fixed
    • When using the intall strategy copy or auto, symlinks in node_modules are dereferenced


April 23, 2017
    • Apps are now started with either .node_deb.entrypoints.cli or .node_deb.entrypoints.daemon and not .start or .node_deb.start_command in package.json. See for more details.
  • Fixed
    • CLI apps don't cd to the install root before executing


April 4, 2017
  • Fixed
    • Broken node_modules was fixed by the addition of --install-strategy option
  • Added
    • Parsing of node_deb.architecture field in package.json
    • --install-strategy to decide if a package should include dependencies or add them at install time


March 15, 2017
  • Fixed
    • More minor bash errors.
  • Added
    • --output-deb-name option to change the name of the generated debian package.
    • System V support via autogenerated init scripts.


March 5, 2017
  • Fixed
    • Miscellaneous bash errors.


March 5, 2017
  • Changed
    • Automatically include package.json, npm-shrinkwrap.json, and node_modules. These no longer need to be specified on the command line.
    • Allow md5sums to not be calculated.
    • Deprecated the --no-md5sums CLI arg.
  • Added
    • --no-rebuild flag to prevent postinst maintainer script from running npm rebuild.
    • --arch CLI option to allow setting the architecture of the target system. Intended to be used primarily with the --no-rebuild option for finecky packages.
  • Fixed
    • node_modules is reduced down to only the production dependencies via npm ls --prod.


March 4, 2017
  • Fixed
    • broken xargs call


March 3, 2017
  • Fixed
    • removed lingering usage of rsync
    • fixed broken postrm script
    • made script shellcheck pure


March 1, 2017
  • Changed
    • node-deb has reverted back to using cp instead of rsync for copying files


December 21, 2016
  • Fixed
    • postrm now correctly cleans up /var/log/{{ package }} on purge
  • Removed
    • node-deb no longer creates /var/run/{{ package }}. This never worked correctly anyway on systems using systemd because of a typo.
  • Changed
    • postinst and prerm default to prioritizing systemctl over service and start/stop for stopping and startin services


November 4, 2016
  • Added
    • Included LICENSE in node-deb's Debian package.
  • Changed
    • Added clarifications to README


November 3, 2016
  • Added
    • CLI flag to display the README
    • CLI flag to display the CHANGELOG
    • More examples to the README


October 30, 2016
  • Added
    • Command line flag --extra-files that adds a single directory of files to the Debian package. These files are added to the root of the file system. E.g., if the dir extra contains /var/lib/foo.dat, then the Debian package will install foo.dat to /var/lib/ at install time.


September 21, 2016
  • Changed
    • Minor formatting changes, updates to README


July 7, 2016
  • Added
    • Allows the default Debian dependencies in the control file to be overridden


June 16, 2016
  • Added
    • The dropped commit that fixed node_modules install step mentioned in release notes from 0.1.13


June 16, 2016
    • The executable template now by default includes the bash variable $@ as arguments to the start_command. This is breaking in the sense that is a user set their start_command to something like node my-exe-thing $@, then this change will pass the arguments twice.
    • The build step now forces the usage of fakeroot while creating the package to avoid uid and gid collisions between the environment where a package is built and where it is deployed.
  • Fixed
    • deb packages that did not include node_modules did not do an npm install when installed with dpkg or apt. The postinst now conditionally installs based on the existence of node_modules.
  • Added
    • Template and command line args for default environment variables. Template is empty for now.


June 6, 2016
  • Fixed
    • node-deb no longer produces jq errors about missing package.json when run outside a project directory
  • Added
    • Command line option --start-command to allow setting of the start command from the command line


April 21, 2016
    • Reverting the change from 0.1.9 where node-deb did not include the node_modules directory. Now the default behavior is to include this directory and warn when it is not included on the command line.
  • Added
    • Less tolerance for shell script failures both in node-deb itself and all templates
    • postinst template now runs npm rebuild to recompile platform specific binaries
      • This combined with the forced inclusion of node_modules and npm-shrinkwrap.json aims to make packages and builds as reproducible as possible.


March 9, 2016
  • Changed
    • postinst now runs npm install with the --production option


March 8, 2016
    • node-deb will no longer include the node_modules directory, but instead will run npm install during the postinst step in the install directory. Thus, if package.json exists, it will be auto included in the .deb.
  • Added
    • Better script logging
    • package.json and npm-shrinkwrap.json are included by default, and warning messages are displayed if they aren't included
    • If node_deb.start_command is not present in package.json, default to using scripts.start


March 1, 2016
  • Changed
    • Using MIT license over GPL license
    • Slightly faster copying of files
    • Slightly faster md5sum calculations
    • Support using gmd5sum for packages built on OSX (with brew install gmd5sum)


November 19, 2015
  • Changed
    • Handling of template injection that includes shell redirects


October 31, 2015
  • Added
    • Command line flag --list-template-variables so users can see which variables are injected into templates
    • Allow the selections of systemd and upstart to the --init flag


October 27, 2015
    • Moved installed files to /usr/share/$package_name/app/ instead of /usr/share/$package_name/ to avoid name conflicts if a user has a directory in their project called bin
  • Added
    • Command line option to list and print available templates
    • Command line options to override default templates: --template-{control, executable, postinst, postrm, prerm, systemd-service, upstart-conf}
  • Changed
    • The executable's start command now defaults to node_deb.start_command in the package.json


October 26, 2015
  • Added
    • Command line flags for:
      • -d | --description: Debian package description
      • -e | --executable-name: the name of the runnable file
      • -h | --help: print help/usage message
      • -i | --init: select init type (auto, none)
      • -m | --maintainer: Debian package maintainer
      • -n | --package-name: the named of the Debian package
      • --no-md5sums: disable creating of md5sums in Debian package
    • systemd init support
    • Ability to disable init (useful for command line tools)
    • Command line options for (dev only)
  • Changed
    • Changed references from binary to executable (because that's what it actually is)
    • Command line flag -N is now named --no-delete-temp


August 31, 2015
  • Added
    • Automatic removal of the .deb staging directory
    • Command line flag to prevent deletion of the .deb staging directory
    • Add md5sums for all files in the .deb directory to the DEBIAN directory in the package


August 28, 2015
  • Added
    • Check to ensure all target files exist before building .deb
    • and test/ for automated testing (dev only)
  • Fixed
    • Correct handling of paths with whitespace


August 26, 2015
  • Added
    • Command line flag and package.json field for Debian package version


August 26, 2015
  • Added
    • Simple command line flags
    • Simple modifiers for Debian package, extracted from package.json
    • Templates for: Debian control file, preinst, postinst, prerm, binary, and Upstart script