Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


FreeNATS Network Monitor -

Licenced under the GNU General Purpose Licence (GPL) v3 (or later).

Documentation and Support

See the main website -

Source Repository

This repository contains the active development code for FreeNATS along with build and release tools, to package and release versions through the main download site.

File Structure

/src - Source

Actual source as contained within a release including the upgrade/install scripts with both server (src/server) and nodeside (src/node) versions.

/doc - Bundled Documentation

Very limited bundled documentation (based on the .txt files; the .html are built dynamically at build time). These are the main README etc which are packaged with the distribution.

/pub - Publication Files

Files which are overwritten at build time into a release (mainly just the config file which will overwrite whatever the development setup is in /src).


Random (and outdated) test files of various types used at different times.


Build scripts used by build.php (or can be used manually - view their internal usage notes).


The easiest option is to just develop within the /src directory as needed. You can expose this as needed, and commit files as needed to a branch etc.


The build script build.php will build a release and optionally archive it and upload it directly to with the relevant release notes etc.

To build:

php build.php

The command line options are as follows: Usage: php build.php [options]


 Tag    --tag -t X
        Add the tag to the release e.g. freenats-X.YY.ZZ-tag.tar.gz
 Prefix --prefix -p X
        Prefix the release with X e.g. prefix-freenats-X.YY.ZZ.tar.gz
 Zip    --zip -z
        Use Zip rather than TAR+GZIP (if archiving)
 Dummy  --dummy -d
        Dummy - do not compress e.g. creates folder structure in release/ but does not compress
 Upload --upload -u
        Upload to release server (as specified in configuration)
 Dir    --dir
        Directory to put release into (defaults to ./release/)
 Yes    --yes -y
        Say yes to all prompts (dangerous!)
 Clean  --noclean -nc
        No cleaning (don't remove directory after compression)
 Dots  --dotclean -dc
        Run a recursive dot_clean to clean up OSX ._ files from the built directory

So for example, let's say the file /src/server/base/ contains the version 1.2.3 and release x, the compound version would be 1.2.3x.

A php build.php would create a release in the release folder called freenats-1.2.3x containing the full release file structure, before then creating a tarball (.tar.gz) and deleting the folder - resulting in a file /release/freenats-1.2.3x.tar.gz.

Putting the -d (dummy) flag means only the folder is created, it's not compressed.

The -u upload flag will try and upload the release to and prompt you for credentials to allow this to happen.