App::Netdisco::Manual::Deployment - Tips and Tricks for Deployment
The Netdisco applications will generate RC scripts suitable for Linux systems:
bin/netdisco-web get_init_file bin/netdisco-daemon get_init_file
If you'd like to send a patch for BSD, please submit it against the Daemon::Control distribution.
Some installations of PostgreSQL don't have MD5 authentication enabled by default, which blocks database connections with the default Netdisco configuration.
If your database and Netdisco are on the same system, then the easiest solution is to comment out the "
host:" line in your
Alternatively, reconfigure PostgreSQL to permit MD5 auth for TCP connections by adding the following to your system's "
pg_hba.conf" file (and restarting the database service):
# TYPE DATABASE USER ADDRESS METHOD host all all 127.0.0.1/32 md5
The standard port for PostgreSQL is 5432. To connect on a different port you need to use the
host option under
database: config in your
~/environments/deployment.yml file. For example if connecting to a database on the local server:
database: name: 'netdisco' user: 'changeme' pass: 'changeme' host: 'localhost;port=5432'
Obviously, substitute the
pass, and actual port number for your local values. Note the separator character is a semicolon.
netdisco-deploy script asks for Internet access but it is possible to install off-line. You should download the following two files:
netdisco-deploy script but pass the OUI file name as a parameter on the command line:
Then answer yes to questions, even though you're not connected to the Internet. For the MIBs you can simply extract the downloaded archive to the home directory of Netdisco.
The installation process installs Netdisco self-contained to your home directory. The target directory can easily be changed by setting the
NETDISCO_HOME environment variable, for example:
Obviously, you'll need to substitute this wherever you see "
~" in the installation instructions. The Netdisco application will use this setting itself to locate files and configuration.
Simply add any options after the "
start" command. See other sections of this document for some examples.
Netdisco will assume its web site is hosted at the apex of your server - that is, the document root. To relocate the web application, pass the
--path parameter to the web startup script:
~/bin/netdisco-web start --path=/netdisco2
Alternatively, can set the
path configuration option in your
--port parameter to any of the web scripts. For example:
~/bin/netdisco-web start --port=8080
--host parameter to any of the web scripts. For example:
~/bin/netdisco-web start --host=127.0.0.1
By default the web application daemon starts listening on port 5000 and goes into the background. This is ideal for hosting behind a web proxy (e.g. Apache with
After enabling the
proxy_http modules in Apache, a suitable configuration would be:
ProxyPreserveHost On ProxyPass / http://localhost:5000/ retry=0 timeout=60 ProxyPassReverse / http://localhost:5000/ ProxyRequests Off <Proxy *> Order allow,deny Allow from all </Proxy>
To combine this with Non-root Hosting as above, simply change the paths referenced in the configuration, and set
path in your
deployment.yml as discussed above. Note there is no trailing slash in the Apache config:
ProxyPass /netdisco2 http://localhost:5000/netdisco2 retry=0 timeout=60 ProxyPassReverse /netdisco2 http://localhost:5000/netdisco2
To delegate user authentication to Apache, use the
trust_x_remote_user settings. See App::Netdisco::Manual::Configuration for more details.
There is no SSL support in the built-in web server. This is because it's not straightforward to support all the SSL options, and using port 443 requires root privilege, which the Netdisco application should not have.
You are instead recommended to run
netdisco-web behind a reverse proxy as described elsewhere in this document. Apache can easily act as an SSL reverse proxy.
You can see what HTTP Headers are received by Netdisco, and other information such as how it's parsing the config file, by enabling the Dancer debug plugin. First download the plugin:
~/bin/localenv cpanm --notest Dancer::Debug
Then run the web daemon with the environment variable to enable the feature:
DANCER_DEBUG=1 ~/bin/netdisco-web restart