NP's paths and folders

<< NP Dynamic Libraries and ...
Back to Portfolio FAQ index
Updating uploaded NP cata ... >>

Manual: pages 21-22

Locations and Paths

To use NetPublish effectively, it is often helpful to understand exactly where files are placed on the NetPublish Server. The following directories are where your published files are located on NetPublish/NetPublish Server.

The default installation directory on Windows is:
C:\Program Files\Extensis\Portfolio NetPublish Server\Web Root\

The default installation directory for Macintosh is:
//Boot Volume/Applications/Portfolio NetPublish Server/Web Root

Here is the v7.0.4 Windows location:

The /cache/ folder will contain a /[site name]/ sub-folder for any sites on the NP server that have user collections stored or which used images created dynamically via the NP API thumbnail, preview or original commands. The /sites/ folder will contain a /[site name]/ sub-folder for every site published on the NP server.

The main app (web/local Win/local Mac):
C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\app\
~/Applications/Portfolio NetPublish Server/WebRoot/app/

Published sites (web/local Win/local Mac):[user-defined-name]/ served from...
C:\Program Files\Extensis\Portfolio NetPublish Server\User Data\sites\web\[user-defined-site-name]\
~/Applications/Portfolio NetPublish Server/User Data/sites/web/[user-defined-site-name]/

Local static web pages (Win/Mac):
C:\My Documents\Extensis\Portfolio\Webpages\[user-defined-site-name]\Webpages\

Local custom or saved customised NPT sets (web and static page, Win/Mac):
C:\My Documents\Extensis\Portfolio\NetPublish\User Data\sites\web\
C:\My Documents\Extensis\Portfolio\NetPublish\User Data\sites\static\
~/Documents/Portfolio/NetPublish/User Data/sites/static/
~/Documents/Portfolio/NetPublish/User Data/sites/web/

'Built-in' NPT sets - NPA defaults(web and static page):
Do not tinker with these! See separate section below - including warnings about keeping custom code in the default template location.

NP installs configures these virtual folders (Win/Mac) - in the default web site for IIS (Win):
C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\
~/Application//Portfolio NetPublish Server/WebRoot/

C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\app\
~/Application//Portfolio NetPublish Server/WebRoot/app/

All dynamic pages, e.g. results, are 'rooted' at...
...all static pages at...[site name]/
...and media such as css, previews, etc., at...[site name]/[sub-folder name]/

Where are the 'dynamic' libraries used by NetPublishAssistant?

Windows (2k/XP):

Portfolio v7.x client: C:\Documents and Settings\All Users\Application Data\Extensis\Portfolio\NetPublish\en\GlobalRoot\
Portfolio v8.0/8.1 client: C:\Documents and Settings\All Users\Application Data\Extensis\Portfolio 8\NetPublish\en\GlobalRoot\

(N.B. the Application Data folder is a 'hidden' flag set, so you'll probably need admin privileges to see it)

Mac (OS10.3.9 / !0.4.4+):

Note that this involves opening app packages - if you don't understand what this means consult your IT department/consultant, but do not just tinker as you may break the application and need to re-install.

Portfolio 7.x client: in the Portfolio 7.0 application folder, Control+click the 'Portfolio 7.0 app' icon and select 'Show Package Contents'. From within this package, in the 'Plugins' folder Control+click the 'NetPublish Plugin.plugin' icon and select 'Show Package Contents'. Now navigate to:

Portfolio 8.0/8.1 client: in the Portfolio 8.x application folder, Control+click the 'Portfolio 8.x app' icon and select 'Show Package Contents'. From within this package, in the 'Plugins' folder Control+click the 'NetPublish Plugin.plugin' icon and select 'Show Package Contents'. Now navigate to:

Folders inside Portfolio NetPublish Server's "Web Root"

This directory contains the program files for the NetPublish server including EXE, DLL, NP and other program related files. On the Mac this is where the NetPublish application Launcher program lives; Windows uses an OS service to handle this task automatically. This folder is mapped as the virtual folder /netpub/, though you could also access via /res/app/ if needs be.

Tinker with caution here! Any settings not accessible for editing via the NP admin dialog will most likely require an app re-start. For PortWeb users, this is equivalent to portweb.ini, although richer in attributes. The file contains settings that affect the server's general operation. Here is a sample from a Windows NP Server (v7.0.4):
####[file contents]####
# Server Properties

general.adminPort = 8086
general.cacheInterval = 30
general.cacheSizeMegs = 150
general.collectionExpires = 10
general.dynamicFormats = jpg,gif,png
general.dynamicMaxSize = 1500
general.isAdminPasswordSet = TRUE
general.language = en
general.listenerPort = 8085
general.logging = info
general.passwordAdmin =
general.passwordPublish =

path.cache = C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\cache
path.collectionDatabase = C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\app\Collection.fdb = C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\global
path.sites = C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\sites
path.webroot = C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot


Mac OS version's equivalent default paths:
path.cache = /Applications/Portfolio NetPublish Server/WebRoot/cache
path.collectionDatabase = /Applications/Portfolio NetPublish Server/WebRoot/app/Collection.cdb = /Applications/Portfolio NetPublish Server/WebRoot/global/
path.sites = /Applications/Portfolio NetPublish Server/WebRoot/sites/
path.webroot = /Applications/Portfolio NetPublish Server/WebRoot/

This text file contains a log of messages from the server. Plain text file format. To view this via NP, administer the NP Server and click the 'Server Setting' tab and then the 'View Log' button. The resulting re-sizable viewer dialog lets you save the current log to a folder of your choice. Here is an excerpt of example content from an NP Server log:
####[file contents]####
06-09-04 21:31:19 [536] INFO pw.main <> - ---------------------------------------------------------------
06-09-04 21:31:19 [536] INFO pw.main <> - Starting Portfolio NetPublish daemon on a 1 processor server
06-09-04 21:31:19 [536] INFO pw.main <> - ---------------------------------------------------------------
06-09-04 21:31:19 [536] INFO pw.main <> - Loading preferences from C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\app\
06-09-04 21:31:19 [536] INFO pw.main <> - Loading resource data from C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\app\
06-09-04 21:31:20 [536] INFO pw.main <> - Found server listening port of 8085
06-09-04 21:31:20 [536] INFO pw.main <> - Found logging level of info
06-09-04 21:31:20 [536] INFO pw.main <> - Found collection expiration of 10
06-09-04 21:31:20 [536] INFO pw.main <> - Found webroot path of C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot/

..and here's a line with a trapped error:
06-22-04 15:13:30 [804] ERROR pw.worker <base&site=Effervescence&> - Caught exception : 'C:\Program Files\Extensis\Portfolio NetPublish Server\WebRoot\sites//Effervescence/templates/

TypeError: CatalogSet.get("catalog").getType("Color").getPreDefinedList is not a function'

The above examples are from a Windows IIS installed NP but Mac server logging would look similar except for the style of local paths, which would use Unix-style paths.

Exact purpose unknown, appears to track access by Portfolio clients to the NP Server. Plain text file format.

Exact purpose unknown, appears to track site publishing activity. Plain text file format.

This holds the user Collection data (i.e. lightboxes/carts) and is not an image database - the Mac OS uses the extension ".cdb". Leave it alone! For PortWeb users this is the equivalent of the portweb.wdb.

This is the 'program' you call to execute calls to NP. It is a compiled program and cannot be edited. For PortWeb users, this is the equivalent of Portweb.dll

The English language support files. This is set by the general.language line in the file. The folder contains two (UTF-8) text files. To add another language, say Swedish, you might add an /app/data/se/ folder and then localise the two properties files to use Swedish language. Note this language setting is global for the whole server. There is no easy way (doubtless there's a kludge) to have concurrent users from different nationalities seeing language specific error settings. although this system clearly allows for different language sets, it is most likely it will be left to users or their contractors to localise content - for the time being anyway, as Extensis have announced no plans to launch localised language sets of data. There is no reason for a server of , for example, a German site with German speaking primary users to leave the language 'setting' as is and simply localise the language strings in various properties files; this might be simpler than attempting to create a full set of 'de' files. As of v7.0.4, the [language name] folder has been added to both NP and NPA assets making it more feasible to roll out a full localisation.

This file contains error string mappings, localised for the language in use. This file is plain text and can be edited in Notepad (Win) or TextEdit (Mac). Take care to save any Mac changes in plain text form. When translating this file, it must be encoded using UTF-8. It appears that %s is a macro for an error-returned string to be inserted in an error message and %d for an error-returned number.

This file contains translated field names. Thus the 'screen' fieldname Number of Pages translates to internal catalogue field name MultipageCount; a Russian screen translation string of 'Number of pages' would still map to 'MultipageCount' and so on for other languages. This file is plain text and can be edited in Notepad (Win) or TextEdit (Mac). Take care to save any Mac changes in plain text form. When translating this file, it must be encoded using UTF-8 (8-bit Unicode).

This directory contains temporary files generated by NetPublish server during the creation of ZIP and SIT files. Note that adding an item to a lightbox causes its linked download item - if any (e.g. preview or original) - to be written to the cache. Each site has its own /cache/[site name]/ sub-folder. Bear this in mind when planning the size of the cache. Collection items - but not dynamically resized image assets - in the cache items are auto-deleted after the number of days specified in the general.cacheInterval setting in the file. NOTE: dynamically resized image assets are never deleted.

Server-level files with 'global' scope; libraries, error messages, etc.

[The /en/ folder was added in v7.0.4]. This directory contains global server-side JavaScript files used by '.np' templates. Global items are available to any site template that requires it. This folder is parsed before per-site /libraries/ folder should library naming conflicts occur - the first found file will be used. JavaScript libraries intended for server-side use should have '.np' extensions whereas client-side files are better left as '.js' extensions. Note this means you may occasionally need to duplicate some utility functions between server-side and client-side libraries. In default, NPA created sites this folder will only hold '.np' JavaScript library files. In v7.0.4 the /global/ folder's sub-folders were moved inside an /en/ (language = English) folder better to support language nationalisation.

The library found here by default is an editable JS library - though don't tinker with it unless you understand JS. One example might be to add your own server-side functions though you might be better advised to keep these in a separate library (consider the effects of app upgrades etc.), especially if added at site level. The latter is the mechanism several built-in sites use to replace the default Page object methods with their own versions. Libraries are loaded in the order specified in any templates/libraries so ensure any libraries amending the global are loaded after the global template.

[The /en/ folder was added in v7.0.4]. This directory contains any support files. Again scope is server-wide (i.e. all sites). The responseErrorMessage.html is the configurable error page called by NP as well as custom calls from the NP API Response.showErrorHtml() method. The responseError.html is a version for untrapped errors where there is no specific message but NP reports an error.

This directory contains a set of site-specific files created by the NetPublish Assistant for each site published. If adding a totally custom-written site, i.e. without NPA, you will need to re-start NPA for the new site's top level folder name to show up in the NP Admin dialog as a list site so you can enable it for web access.

['site_name' is set by the user at time of web publishing, via NPA]. With built-in NPA template sets, the site name defaults to the template name but the user can give the site any name they want. In general, spaces in site names should be avoided - better to use underscores; thus "my_site" not "my site". This folder includes two properties files, an index (home) HTML page as well as any static catalogue uploaded to the server; a dynamic catalogue is served from in situ. For both types of catalogues the remainder of the fields in this set of folders are the site-specific configuration files.

This file contains settings that define catalogue aliases for this specific site. This mechanism allows a single 'site' to access more than one catalogue, though such a configuration cannot be set up via NPA. Extensis have yet to document this file (it is not properly covered in the user guide) but it is necessary to enable multi-catalogue search. Here is a general example:

####[file contents]####
catalog = true
catalog.1.access = level
catalog.1.password =
catalog.1.path = \\Lap2k\my documents\Portfolio projects\bbf\NetDemo\7_poc.fdb
catalog.1.user =

For Portfolio Server-served catalogues the path format is "portfolio://[IP of Portfolio Server]/[catalogue name]", e.g. "portfolio://123.456.789.123/mycat.fdb". For SQL Connect catalogues use "portfoliosql://" at the beginning of the string. As with Server, depending on your DNS set-up you may be able to use a machine name (LAN) or domain name (WAN) rather than a numeric IP.

Note the default alias name - for all sites created via NPA - is 'catalog', though you may change this by manual editing later using the NetPublish Administration dialogs. Alias names are discussed in more detail below.

catalog = true - not documented and role unclear (value of true seems the default).
.access is the type of catalogue access in use (None / Level (default) / user).
.password - the catalogues password (for Level or User type access)
.path - the server-side (OS) path to the catalogue.
.user - the username in user-based access.

You can have more than one alias per file - e.g. 2 sets of entries catalog1.etc... and myAlias1.etc... In addition any named alias can point to more than one catalogue, e.g. catalog1.etc..., catalog2.etc..., catalog3.etc... In the later case each numbered 'set' of entries would point to a different catalogue, each with it's own path/password/etc. However, calling the alias 'catalog' would return records from all 3 catalogues.

Thus if you want a site to look at several catalogues use the numbered alias method. If you want the site to host several different catalogues but which aren't looked at simultaneously, use different alias names. For example, on site 'xyz' we might have catalogues for 200, 2001, 2002 with aliases archive1/archive2/archive3. By using the value "archive" for NP command parameter 'catalog' any search is done on all 3 catalogues, as in '...&site=xyz&catalog=archive'. In contrast, site 'xyz' also hosts catalogues for customers BigCo and LargeCo who must not see each other's data. If we give them separate aliases of 'big' and 'large', when we do a search on '...&site=xyz&catalog=big...', the BigCo customer won't see data from the LargeCo catalogue - or indeed data from the archive catalogues.

It may be the alias true/false values allows whole alias sets - if more than one - to be switched in/out of the active search scope of a site (not tested/confirmed).

This file contains settings that are specific to this named site. Here is a general example:

####[file contents]####
# Site Properties
description = A general description of this site and its features
enabled = 1
passwordModify =
passwordWeb =

description A text string describing the site used in the NP admin Site Edit dialog and in NPA.
enabled 1 = enabled, 0 = disabled
passwordModify - the site modification password, encrypted. The encryption format changed from v7.0.0 to v7.04 and after upgrade this will need resetting so as to save the password in the new format.
passwordWeb - the site's web browser access password, encrypted (see note above re v7.0.4 changes). Users browser will ask for a username and password - the username value can be anything.

This is where the NetPublish Assistant uploads any static catalogues for this specific site. Dynamic catalogues are accessed in situ where they are stored.

This directory contains site-specific JavaScript files used by the '.np templates'. As above, you can have a mix of '.np' server-side libraries and '.js' client-side libraries. If two libraries bear the same name the global library will be used.

This directory contains any site-specific generic images, such as logos, navigation buttons.

If a copy of a catalogue is uploaded by the NetPublish Assistant, this is where the preview images are located. Uploading preview images is optional and are only available for upload if already existing. In other words, if you want to use previews make sure you create disk previews before you web publish your site.

This directory contains any site-specific Cascading Style Sheets. For NPA built-in template sets, this folder also holds generic HTML pages for header, footer, etc., IFrame pages.

This directory contains any site-specific '.np' templates files used by the server.

If a copy of a catalogue is uploaded by the NetPublish Assistant, this is where the original images are located. Uploading original images is optional.

sites/site_name/[custom name]/
With a custom programmed site, you can additional folders files to hold additional assets. Anything placed in the folders below /sites/ will be accessible to web-browsers if so directed by your templates.

NP's built-in templates (NPT files)

Portfolio does not allow you to edit the default, 'built-in' templates. Instead you are allowed to save your own versions, in the location already listed above. However, should you/wish need to alter text in these default sets (e.g. perhaps remove them to only present in-house templates) then you need to locate these NPT sets. To do this you will need - in both OSs - to be using the Admin account or an account with Admin privileges. In the case of Windows the files are OS hidden files. For the Mac it is even more hidden, involving unpacking two nested application packages. DO NOT TINKER - especially in the case of the Mac as you may cause Portfolio to require removal/re-installation. Unlike custom saved NPT sets the set folders will have names like "Site 1", "Site 9" - which are 'decrypted' for you in the table further below.

Do not save any custom code in these folders - use the designated custom code locations cited above. As the v7.0.0 -v7.0.4 update showed, the whole folder is replaced - not just existing code; I think this is pragmatically correct to ensure any bad/altered code doesn't survive, but if you customise default code/templates in this location you must take responsibility for archiving elsewhere as well (or certainly before upgrading).

Here is the layout as seen in Windows for v7.0.4:

In v7.0.0 the /en/ (English language) folder didn't exist and the there was a folder called /Data/ which held both /sites/ and /style sheets/. The v7.0.0 /Data/, /GlobalRoot/, /PropertiesRoot/ and /UI/ were all held directly in /NetPublish/. There were no changes in v7.0.6.

The sites themselves - in both versions are held in individual folders in either/both /web/ and /static/ with names like /Site 1/ or /Site 14/.

Your OS user account will need permission to display hidden files - ideally log on as admin. Unlike custom saved NPT sets the set folders will have names like "Site 1", "Site 9"
C:\My Documents\Documents and Settings\All Users\Application Data\Extensis\Portfolio\NetPublish\Data\sites\web\
C:\My Documents\Documents and Settings\All Users\Application Data\Extensis\Portfolio\NetPublish\Data\sites\static\

In the Portfolio 7.0 application folder, Control+click the 'Portfolio 7.0 app' icon and select 'Show Package Contents'. From within this package, in the 'Plugins' folder Control+click the 'NetPublish Plugin.plugin' icon and select 'Show Package Contents'. Expand this package and find the sites in /Resources/Data/sites/. Don't fiddle around here if you don't know what you are doing!

Default folder names for built-in NPA sites
When you use a built-in template set in NPA, the wizard is pre-configured to use these names (search/collection pages are only applicable to Dynamic site templates):

  Source Name     Screen Name     Static?     Dynamic?     Search Page?     Collection?     IFrames?     Extra Templates?     Custom CSS?  
Site 1 Lightbox   Yes Yes Yes Yes 2 (d,s)  
Site 4 Grace Yes Yes Yes     1 (d) Yes
Site 5 Museum Yes Yes     Yes (Frames) 1 (d)  
Site 6 Bravado   Yes Yes Yes   3 (c,d,s) Yes
Site 7 Slideshow   Yes          
Site 8 Exhibition Yes Yes     Yes 1? (r)  
Site 9 Dossier Yes Yes          
Site 10 Effervescence   Yes Yes Yes Yes   Yes
Site 11 Journal Yes Yes Yes   Yes 1? (r) Yes
Site 12 Illumination Yes Yes Yes   Yes 1 (r) Yes
Site 13 Showcase Yes Yes     Yes    
Site 14 Luminosity   Yes Yes Yes Yes 1 (d) Yes
Site 15 Darkroom Yes            

Site 5 uses Frames as opposed to IFrames.

'Extra Templates?' refers to the presences of extra templates than can only be hand edited if you wish to change anything beyond NPA on-scren options, there is no 'view source' for these extra template. (c = Collection page folder, d = DetailsWeb/DetailsStatic page folder, r = Results/Gallery page folder and s = Search page folder.

'Custom CSS?' refers to template sets that have a specific /style sheets/ sub-folder and which don't use the generic NP CSS.

All these sites can be seen as demos (usually with page variant #1 of each page type) at, a site created by Extensis (UK).

You can set your own site names either when using output directly from built-in templates or from customised/saved sites. Note that you must set the name before uploading ('publishing') the site. NP host ISPs may give you the name of the site name as part of your account, in which case you must use that name. Changing the site/folder name after publishing is non-trivial, especially if publishing to a remote server for which you have no OS-side access. If you have been allocated a name to don't like, resolve this before you start uploading.

Contains the same files as found in the /WebRoot/Global/en/libraries/ folder on the NP server:

The 'dynamic_' series of libraries are used when processing the blocks of double-square-bracketed delineated NPT code, e.g. [[code]], into final user NP code. You can add your own custom libraries here to add to what may happen in NPT->NP processing but it appears custom libraries for this purpose can be stored this folder only and nowhere else. Do bear in mind access to the folder needs OS admin privileges, so this should be considered if planning to use custom libraries. You can also 'customise' the installed libraries to remove some of the more egregious errors and add extra output features but you'll need to re-add these after any updates/upgrades/re-installations.

Contains and as also found in /WebRoot/app/data/en/ on the NP server

Contains various HTML and image files used for configuring the NetPublish Assistant 'wizard' user interface.

Question: NP's paths and folders [FAQ00013.htm]
Last Update:- 26 July 2007

<< NP Dynamic Libraries and ...
Back to Portfolio FAQ index
Updating uploaded NP cata ... >>

Quick Search of PortfolioFAQ (word, words or phase): or try the Advanced Search

User-to-User Forums  |  Report error/typo/broken link  |  Request new topic  |  Ask a question

Site and articles © Mark Anderson 2001-2007 - Visit my home page

This FAQ is created and maintained using
Friday logo
Friday - The Automatic FAQ Maker