System Administration

System Administration information

Noodle verifies redirects it sends to your browser.
If you are accessing Noodle through one IP/domain this will not effect you.
If you use multiple IP/domains via NAT etc you will need one of 3 solutions:

  1. Add the IP/domains to the hosts file
  2. Add the IP/domains to your DNS (as A/CNAME and PTR) pointing to the Noodle server
  3. Add the following to noodle.properties: URLOverride = "https://noodle.domain.tld , or just: URLOverride = "/"

Be sure to update the "URL for Noodle" in the settings so that links in emails will resolve properly.
If you use multiple IPs without a domain name links in emails can not be expected to work reliably.
If you use multiple IPs on the same server you must bind to one of them.

If the Noodle log contains something like this:

2012.01.24 13:48:51: .intranet,ALERT: ConnectionAllocator: failed to allocate a new connection
2012.01.24 13:48:51: .intranet,ALERT+ The connection pool is empty!
2012.01.24 13:48:51: .intranet,ALERT+ due tocom.inet.tds.ab: Msg 4064, Level 11, State 1, Line 1, Sqlstate 01000
2012.01.24 13:48:51: .intranet,ALERT+ [WIN-5A73M1LPPMU]Cannot open user default database. Login failed.Error code: 4064
2012.01.24 13:48:51: .intranet,ALERT+ SQLState: 01000

Unlisted codes:

01 ambiguous
02 Invalid userid
05 Invalid userid
06 Attempt to use a Windows login name with SQL Authentication
07 Login disabled and password mismatch
08 Password mismatch or password policy clash
09 Invalid password
11 Valid login but server access failure
12 Valid login but server access failure
13 SQL Server service paused
16 user does not have permissions to log into the target database
18 Change password required
27 could not determine the initial database for the session.
4064 Cannot open user default database. Login failed. (wait a few more seconds for the database to start and use net start in the intranet.bat)
18456 can be caused by a firewall

SQL to list all error codes for your MSSQL version:

SELECT error,description FROM sysmessages where msglangid='1033' order by error;

If your server has more than one (non lo) IP you will need to bind Noodle to one of them for the license key to work.
Add the address to the connection In server.xml

Restart the service for changes to take effect.

Noodle works with PostgreSQL and uses the contributions which are included in the windows installer but installed separately with package management systems like apt and yum.

before PGSQL-v9 will need:

CREATE LANGUAGE plpgsql;

All versions need a user, database and rights and the following to load the lo-manage triggers (the Noodle installer for Windows will do this for you):

ALTER USER noodleuser WITH SUPERUSER;

You will need these SQLs if you are upgrading from an old version.

Noodle uses 4 things on the server

  1. The Noodle folder (older versions are named IntraNet)
  2. The database folders (can be on a different server)
  3. The Java Folder
  4. Optional tools; ffmpeg, anything used by custom search filters, etc

On Windows the Noodle folder is in %PROGRAMFILES(x86)% by default.

On Linux the Noodle folder is in /opt/ by default.

Among other things the Noodle folder contains the following of potential interest:

  1. conf/server.xml (connection settings)
  2. conf/noodle.properties (application settings)
  3. logs
  4. optional files like MOTD.html/custom.js/noodle.jks

Noodle will run on almost anything but we recommend the following setups:

Moderate dedicated server or VM only running operating system, Java, database, and Noodle:

  • 4GB RAM (1 for the OS 0.5 for Noodle and the rest for the RDBMS)
  • Dual core
  • 1TB drive space
  • 100mbps

Big configuration:

  • 2GB RAM + the size of your database
  • Quad core (any more cores will likely not be used)
  • AES-NI
  • software raid 0 (or SSDs)
  • 10mbps per user

An off site backup is recommended.

When using a VM shared IO can be a issue so be sure to verify your VM is getting the speed it needs.

How to reset PostgreSQL password on Windows:

0) Kill java from the task manager
1) Update your

%PROGRAMFILES%\PostgreSQL\9.0\data\pg_hba.conf

to "trust" for local connections.
2) Restart the PostgreSQL service
3) Connect as user postgres with PGAdmin
4) Set your password:

ALTER USER postgres WITH PASSWORD 'Pgsq1p@ssword';

5) Undo your changes to pg_hba.conf
6) Restart the PostgreSQL service
7) Restart the Noodle service

--Restore from file or on attach

---------------------------------------------------------
DECLARE tabcurs CURSOR
FOR
    SELECT 'intranet.' + [name]
      FROM sysobjects
     WHERE xtype = 'u'

OPEN tabcurs
DECLARE @tname NVARCHAR(517)
FETCH NEXT FROM tabcurs INTO @tname

WHILE @@fetch_status = 0
BEGIN

    EXEC sp_changeobjectowner @tname, 'intranet2'

    FETCH NEXT FROM tabcurs INTO @tname
END
CLOSE tabcurs
DEALLOCATE tabcurs
---------------------------------------------------------
--?--EXEC sp_changeobjectowner 'intranet.AllocObjectId', 'intranet2';
---------------------------------------------------------

Edit server.xml and add the following to the Engine tag;

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="${catalina.base}/logs" prefix="access." fileDateFormat="yyyy-MM-dd" suffix=".log" pattern="%{YYYY-MM-dd HH:mm:ss}t,%a,%v,%r,%s,%p,%{user}r,%X,%{c}L" />

Restart Noodle.

Further options here.

Moving Noodle from one environment to another can be done in a few ways:

  • Copy the files (linux only).
  • Install Noodle on the new box and reconfigure or copy the conf files over.

Migrating your RDBMS data from one environment to another can be done in a few ways: