Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Prerequisites

  • SQL Express 2014 or later
  • Visual Studio 2017 or later
  • Docker (Optional) - Used to host ElasticSearch and RabbitMQ, which enable full-text search.

Notes

  • The folder holding the bhl-us source code is referred to throughout this document as <BHLRoot>.
  • These instructions assume that the databases will be named "BHL", "BHLImport", "BHLAuditArchive", and "IAAnalysis".

Setup

After downloading the bhl-us source code, do the following to get the web sites and utility applications running.

Database Creation

  1. Open a Windows command prompt.

  2. Make sure that the sqlcmd utility, which is part of the SQL Server client tools, is included in your path. More information can be found at http://technet.microsoft.com/en-us/library/ms162773.aspx.

  3. Navigate to the <BHLRoot>\Database-BHL folder.

  4. Run the BHLDBBuildScript.bat batch file. This will build the primary database.

    Usage:

    BHLDBBuildScript SERVERNAME DATABASENAME FULLTEXTCATALOGFILEPATH ISPRODUCTION DATAORSTRUCTURE

    where

    SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHL" be used as the database name. FULLTEXTCATALOGFILEPATH is the path in which to place the full-text catalog file. Use quotes around this value if the path contains spaces. ISPRODUCTION is true for a production database, and false for a development database. Auditing triggers are removed from development databases. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.

    Example:

    BHLDBBuildScript localhost BHL "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA" false all

  5. In the new BHL database, create roles named db_executor and db_webuser.

    USE [BHL]; CREATE ROLE db_executor; GRANT EXECUTE TO db_executor;

    CREATE ROLE db_webuser; GRANT INSERT ON dbo.PDF TO db_webuser; GRANT INSERT ON dbo.PDFPage TO db_webuser; GRANT UPDATE ON dbo.Page TO db_webuser;

  6. Navigate to the <BHLRoot>\Database-BHLImport folder.

  7. Run the BHLImportDBBuildScript.bat batch file. This will build the database used as a staging area for new material.

    Usage:

    BHLImportDBBuildScript SERVERNAME DATABASENAME DATAORSTRUCTURE

    SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHLImport" be used as the database name. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.

    Example:

    BHLImportDBBuildScript localhost BHLImport all

  8. In the new BHLImport database, create a role named db_webuser.

    USE [BHLImport]; CREATE ROLE db_webuser; GRANT SELECT ON dbo.IAFile TO db_webuser; GRANT SELECT ON dbo.IAItem TO db_webuser;

  9. Navigate to the <BHLRoot>\Database-BHLAuditArchive folder.

  10. Run the BHLAuditArchiveDBBuildScript.bat batch file. This will build the auditing database.

    Usage:

    BHLAuditArchiveDBBuildScript SERVERNAME DATABASENAME

    where

    SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHLAuditArchive" be used as the database name.

    Example:

    BHLAuditArchiveDBBuildScript localhost BHLAuditArchive

  11. Navigate to the <BHLRoot>\Database-IAAnalysis folder.

  12. Run the IAAnalysisDBBuildScript.bat batch file. This will build the database used to ingest non-biodiversity-collection items from Internet Archive.

    Usage:

    IAAnalysisDBBuildScript SERVERNAME DATABASENAME DATAORSTRUCTURE

    where

    SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "IAAnalysis" be used as the database name. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.

    Example:

    IAAnalysisDBBuildScript localhost IAAnalysis all

  13. Create a new SQL Server login named BHLWebUser. Map it to a user named BHLWebUser in the new BHL database, and assign it to the "db_executor" and "db_webuser" database roles.

    USE [master]; CREATE LOGIN [BHLWebUser] WITH PASSWORD=N'BHLWebUser';

    USE [BHL]; CREATE USER [BHLWebUser] FOR LOGIN [BHLWebUser] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_executor] ADD MEMBER [BHLWebUser]; ALTER ROLE [db_webuser] ADD MEMBER [BHLWebUser];

  14. Map the BHLWebUser login to a user named BHLWebUser in the new BHLImport database, and assign it to the "db_webuser" database role.

    USE [BHLImport]; CREATE USER [BHLWebUser] FOR LOGIN [BHLWebUser] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_webuser] ADD MEMBER [BHLWebUser];

  15. Create a new SQL Server login named BHLService. Map it to a user named BHLService in the BHL, BHLAuditArchive, BHLImport, and IAAnalysis databases. In each database, assign the new user to the "db_datareader", "db_datawriter", and "db_owner" database roles.

    USE [master]; CREATE LOGIN [BHLService] WITH PASSWORD=N'BHLService';

    USE [BHL]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];

    USE [BHLAuditArchive]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];

    USE [BHLImport]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];

    USE [IAAnalysis]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];

ElasticSearch Installation and Configuration (Optional)

The BHL web site uses ElasticSearch to implement many of its search capabilities. However, if ElasticSearch is not present, the web site will fall back to a SQL Server search implementation. The SQL Server search performs basic searches of catalog metadata. Full-text searches are disabled, faceting is not available, and the “search within a book” feature will not work. Therefore, for a full-featured BHL implementation, the instructions in this section should be followed. If a limited search is satisfactory, then this section, the “RabbitMQ” section, and the “Index Data in ElasticSearch” section can be skipped.

  1. (If necessary) Download and install Docker from docker.com. As of January 2019, the product to install is called “Docker Desktop”.

  2. Open a Windows command prompt.

  3. Get the official ElasticSearch image.

    docker pull docker.elastic.co/elasticsearch/elasticsearch:5.4.2

  4. Start a new ElasticSearch docker container that will be accessible at http://localhost:9200.

    docker run -d --name es542 -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.4.2

  5. Locate the "elasticsearch.yml" file within the running Docker container. The following command should return something like "/usr/share/elasticsearch/config/elasticsearch.yml"

    docker exec -it es542 find / -name "elasticsearch.yml"

  6. Copy the elasticsearch.yml file from the container to the host.

    docker cp es542:/usr/share/elasticsearch/config/elasticsearch.yml c:\elasticsearch.yml

  7. On the host, use a text editor to disable Xpack security by adding the following line to the elasticsearch.yml file:

    xpack.security.enabled: false

    The file contents should now look something like this:

    cluster.name: "docker-cluster" network.host: 0.0.0.0

    # minimum_master_nodes need to be explicitly set when bound on a public IP # set to 1 to allow single node clusters # Details: https://github.com/elastic/elasticsearch/pull/17288 discovery.zen.minimum_master_nodes: 1

    xpack.security.enabled: false

  8. Copy the edited elasticsearch.yml file from the host to the running Docker container.

    docker cp c:\elasticsearch.yml es542:/usr/share/elasticsearch/config/elasticsearch.yml

  9. Add the ICU analysis plug-in to ElasticSearch to add better support for Unicode characters, including Asian characters.

    docker exec -it es542 /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

  10. Stop the running container.

    docker stop es542

  11. Restart the ElasticSearch container. Note that by using the name (es542) assigned to the container is Step 4, all of the other arguments we specified in Step 4 (-d -e -p ) are used by default.

docker start es542
  1. Verify the operation of ElasticSearch by opening a browser and navigating to http://localhost:9200. You should get a response that looks something like this:

    { "name" : "90WsOOT", "cluster_name" : "docker-cluster", "cluster_uuid" : "Ok4_vavaTuSxn9qrsAGZwA", "version" : { "number" : "5.4.2", "build_hash" : "f9d9b74", "build_date" : "2017-02-24T17:26:45.835Z", "build_snapshot" : false, "lucene_version" : "6.4.1" }, "tagline" : "You Know, for Search" }

  2. Create new indexes using curl or a comparable tool.

    curl –X PUT http://localhost:9200/items -d @\ElasticSearch\items.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/catalog -d @\ElasticSearch\catalog.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/authors -d @\ElasticSearch\authors.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/keywords -d @\ElasticSearch\keywords.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/names -d @\ElasticSearch\names.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/pages -d @\ElasticSearch\pages.json –H “Content-Type:application/json”

RabbitMQ Installation and Configuration (Optional)

  1. Open a Windows command prompt.

  2. Get the official RabbitMQ image

    docker pull rabbitmq

  3. Start a new ElasticSearch docker container that will be accessible at http://localhost:5672.

    docker run -d --name rabbit373 --hostname my-rabbit -p 5672:5672 rabbitmq

    (RECOMMENDED) To alternately include the RabbitMQ management console, which will be accessible at http://localhost:15672, use this instead:

    docker run -d --name rabbit373 --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:management

  4. the operation of RabbitMQ by opening a browser and navigating to http://localhost:5672. You should get a response that looks something like this:

    AMQP

  5. Verify the operation of the RabbitMQ management console by opening a browser and navigating to http://localhost:15672. Use guest/guest as the username/password.

    NOTE: To supply a different username and password, change the command that creates a RabbitMQ container with the management console to the following:

    docker run -d --name rabbit373mgmt --hostname my-rabbit -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:management

Application Configuration

  1. Make copies of the config files as indicated in the following list:
Original FileCopy To
<BHLRoot>\BHLAdminWeb\Web.config.template<BHLRoot>\BHLAdminWeb\Web.config
<BHLRoot>\BHLApiDALTest\App.config.template<BHLRoot>\BHLApiDALTest\App.config
<BHLRoot>\BHLBioStorHarvest\app.config.template<BHLRoot>\BHLBioStorHarvest\app.config
<BHLRoot>\BHLCoreDALTest\App.config.template<BHLRoot>\BHLCoreDALTest\App.config
<BHLRoot>\BHLDOIService\app.config.template<BHLRoot>\BHLDOIService\app.config
<BHLRoot>\BHLExportProcessor\App.config.template<BHLRoot>\BHLExportProcessor\App.config
<BHLRoot>\BHLFileAccessRemotingUtilities\Remoting.config.template<BHLRoot>\BHLFileAccessRemotingUtilities\Remoting.config
<BHLRoot>\BHLFlickrTagHarvest\app.config.template<BHLRoot>\BHLFlickrTagHarvest\app.config
<BHLRoot>\BHLFlickrThumbGrab\app.config.template<BHLRoot>\BHLFlickrThumbGrab\app.config
<BHLRoot>\BHLImportEFDataModel\App.Config.template<BHLRoot>\BHLImportEFDataModel\App.Config
<BHLRoot>\BHLImportService\Web.config.template<BHLRoot>\BHLImportService\Web.config
<BHLRoot>\BHLMETSUpload\app.config.template<BHLRoot>\BHLMETSUpload\app.config
<BHLRoot>\BHLNameFileGenerator\app.config.template<BHLRoot>\BHLNameFileGenerator\app.config
<BHLRoot>\BHLNameFileGenerator\Remoting.config.template<BHLRoot>\BHLNameFileGenerator\Remoting.config
<BHLRoot>\BHLOAIHarvester\app.config.template<BHLRoot>\BHLOAIHarvester\app.config
<BHLRoot>\BHLOCRRefresh\app.config.template<BHLRoot>\BHLOCRRefresh\app.config
<BHLRoot>\BHLPageNameRefresh\app.config.template<BHLRoot>\BHLPageNameRefresh\app.config
<BHLRoot>\BHLPDFGenerator\app.config.template<BHLRoot>\BHLPDFGenerator\app.config
<BHLRoot>\BHLSearchIndexer\AppConfig.xml.template<BHLRoot>\BHLSearchIndexer\AppConfig.xml
<BHLRoot>\BHLSearchIndexer\AppConfig.xml.template<BHLRoot>\BHLSearchIndexer\AppConfig.Names.xml
<BHLRoot>\BHLSearchIndexer\AppConfig.xml.template<BHLRoot>\BHLSearchIndexer\AppConfig.Full.xml
<BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml.template<BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml
<BHLRoot>\BHLServerTest\app.config.template<BHLRoot>\BHLServerTest\app.config
<BHLRoot>\BHLService\Remoting.config.template<BHLRoot>\BHLService\Remoting.config
<BHLRoot>\BHLService\Web.config.template<BHLRoot>\BHLService\Web.config
<BHLRoot>\BHLTextImportProcessor\app.config.template<BHLRoot>\BHLTextImportProcessor\app.config
<BHLRoot>\BHLUSWeb2\Remoting.config.template<BHLRoot>\BHLUSWeb2\Remoting.config
<BHLRoot>\BHLUSWeb2\Web.config.template<BHLRoot>\BHLUSWeb2\Web.config
<BHLRoot>\BHLUSWeb2\Views\Web.config.template<BHLRoot>\BHLUSWeb2\Views\Web.config
<BHLRoot>\BHLUSWeb2\services\Name\Web.config.template<BHLRoot>\BHLUSWeb2\services\Name\Web.config
<BHLRoot>\IAAnalysisHarvest\App.config.template<BHLRoot>\IAAnalysisHarvest\App.config
<BHLRoot>\IAHarvest\App.config.template<BHLRoot>\IAHarvest\App.config
<BHLRoot>\SiteServices\Remoting.config.template<BHLRoot>\SiteServices\Remoting.config
<BHLRoot>\SiteServices\Web.config.template<BHLRoot>\SiteServices\Web.config

 
2) Make the specified modifications to each of the config files in the following list:

# = denotes optional modifications that are not required for development installations

 
WWW.BIODIVERSITYLIBRARY.ORG

<BHLRoot>\BHLService\Web.config

ElementValue
# appSettings/SMTPHostSMTP host address
appSettings/UseRemoteFileAccessProviderfalse
connectionStrings/BHLConnection string for BHL database

<BHLRoot>\BHLUSWeb2\Web.config

ElementValue
appSettings/UseRemoteFileAccessProviderfalse
# appSettings/TwitterConsumerKeyConsumer Key for Twitter API
# appSettings/TwitterConsumerSecretConsumer Secret for Twitter API
# appSettings/GeminiURLIssue tracking service URL
# appSettings/GeminiUserIssue tracking service username
# appSettings/GeminiPasswordIssue tracking service password
connectionStrings/BHLConnection string for BHL database
# system.net/mailSettings/smtp/networkSTMP host address, username, and password

 
ADMIN.BIODIVERSITYLIBRARY.ORG

<BHLRoot>\BHLAdminWeb\Web.config

ElementValue
appSettings/CollectionImageUploadPathPath in which to place uploaded images.
appSettings/ItunesImageUploadPathPath in which to place uploaded images.
appSettings/AlertMsgPathPath in which to place text file with informational messages.
appSettings/MARCUploadPathPath in which to place uploaded MARC files.
appSettings/MARCUploadDriveDrive letter or server name for MARC uploads.
appSettings/MARCUploadServerServer name for MARC uploads.
appSettings/CitationNewPathPath for new uploads of citation information.
appSettings/CitationCompletePathPath for completed uploads of citation information.
appSettings/CitationErrorPathPath for failed uploads of citation information.
appSettings/OCRJobNewPathPath for OCR job files.
# appSettings/FlickrUserIdFlickr user identifier.
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromNameEmail sender address to use when sending emails.
# appSettings/EmailFromAddressEmail sender name to use when sending emails.
# appSettings/BHLUserAdminEmailAddressEmail address of a BHL user administrator.
appSettings/LocalFileFolderFile folder in which to place new data files ingested from Internet Archive.
appSettings/DOIDepositFileLocationPath to CrossRef deposit files.
appSettings/DOISubmitLogFileLocationPath to Crossref log files.
# appSettings/FlickrKeyFlickr API key
# appSettings/FlickrSecretFlickr API secret
connectionStrings/BHLConnection string for BHL database
connectionStrings/BHLUserConnection string for BHL user account database

 
<BHLRoot>\SiteServices\Web.config

ElementValue
# appSettings/SMTPHostSMTP host address
appSettings/DOIDepositFileLocationLocation of DOI deposit files
appSettings/DOISubmitLogFileLocationLocation of DOI submit log files
appSettings/OCRJobNewPathPath to new OCR job files
appSettings/MQHostMessage queue host URL
appSettings/MQPortMessage queue port
appSettings/MQAPIPortMessage queue API port
appSettings/MQUsernameMessage queue username
appSettings/MQPasswordMessage queue password
connectionStrings/BHLConnection string for BHL database
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

 
DATA IMPORT APPS

<BHLRoot>\BHLBioStorHarvest\app.config

ElementValue
# appSettings/SMTPHost SMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
connectionStrings/BHLImportEntitiesConnection string for BHLImport database
connectionStrings/BHLConnection string for BHL database

<BHLRoot>\BHLImportEFDataModel\App.Config

ElementValue
connectionStrings/BHLImportEntitiesConnection string for BHLImport database

<BHLRoot>\BHLImportService\Web.config

ElementValue
connectionStrings/BHLImportConnection string for BHLImport database

<BHLRoot>\IAAnalysisHarvest\App.config

ElementValue
connectionStrings/IAAnalysisConnection string for IAAnalysis database
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process

<BHLRoot>\IAHarvest\App.config

ElementValue
connectionStrings/BHLImportConnection string for BHLImport database
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/LocalFileFolderLocal folder to hold downloaded files

 
UTILITY APPS

<BHLRoot>\BHLDOIService\app.config

ElementValue
# appSettings/SMTPHost SMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/CrossRefDepositorNameDepositor name associated with CrossRef account
appSettings/CrossRefDepositorEmailDepositor email associated with CrossRef account
appSettings/CrossRefLoginLogin for CrossRef account
appSettings/CrossRefPasswordPassword for CrossRef account

<BHLRoot>\BHLExportProcessor\App.config

ElementValue
# appSettings/SMTPHost SMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/RISTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/RISTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/RISItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISItemFileReplace \\SERVER\FOLDER with valid path
appSettings/RISItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/RISSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/RISSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalItemFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/RISInternalSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSItemFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalItemFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/MODSInternalSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXItemFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalTitleTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalTitleZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalItemTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalItemFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalItemZipFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalSegmentTempFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalSegmentFileReplace \\SERVER\FOLDER with valid path
appSettings/BibTeXInternalSegmentZipFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVDOIFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVAuthorFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVItemFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVPageFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVPageNameFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVPartFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVPartAuthorFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVKeywordFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVTitleIdentifierFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalDOIFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalAuthorFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalItemFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalPageFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalPageNameFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalPartFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalPartAuthorFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalKeywordFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalTitleFileReplace \\SERVER\FOLDER with valid path
appSettings/TSVInternalTitleIdentifierFileReplace \\SERVER\FOLDER with valid path
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

<BHLRoot>\BHLFlickrTagHarvest\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/FlickrApiKeyFlickr API Key
appSettings/BHLFlickrUserIDFlickr username
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

<BHLRoot>\BHLFlickrThumbGrab\app.config

ElementValue
# appSettings/SMTPHost SMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/FlickrAPIKeyFlickr API key
appSettings/ImageFileNameReplace \\SERVER\FOLDER with valid path
appSettings/ImageFolderReplace \\SERVER\FOLDER with valid path
appSettings/ImageListFilePathReplace \\SERVER\FOLDER with valid path
appSettings/DefaultFilesFolderReplace \\SERVER\FOLDER with valid path

<BHLRoot>\BHLMETSUpload\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/METSEmailOrganization email address to place in METS files
appSettings/IAS3AccessKeyInternet Archive access key
appSettings/IAS3SecretKeyInternet Archive secret key

<BHLRoot>\BHLNameFileGenerator\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/IAS3AccessKeyInternet Archive access key
appSettings/IAS3SecretKeyInternet Archive secret key

<BHLRoot>\BHLOAIHarvester\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
connectionStrings/BHLImportConnection string for BHLImport database
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

<BHLRoot>\BHLOCRRefresh\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/OcrJobNewPathPath to new job files
appSettings/OcrJobProcessingPathPath to job files being processed
appSettings/OcrJobCompletePathPath to complete job files
appSettings/OcrJobErrorPathPath to failed job files
appSettings/OcrJobTempPathPath to temporary OCR files
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

<BHLRoot>\BHLPageNameRefresh\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process

<BHLRoot>\BHLPDFGenerator\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
appSettings/PdfFilePathReplace \\SERVER\FOLDER with valid path

<BHLRoot>\BHLSearchIndexer\AppConfig.xml

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/SMTPPortSMTP host port
# appSettings/EmailToAddressesRecipients of emails sent by the process (comma-separated)
appSettings/ElasticSearchServerAddressSearch Server address, including port number
appSettings/MQAddressMessage queue host URL
appSettings/MQPortMessage queue port
appSettings/MQUserMessage queue username
appSettings/MQPasswordMessage queue password
appSettings/MQQueueNameName of message queue for items/authors/keywords
appSettings/MQErrorExchangeNameName of MQ error exchange for items/authors/keywords
appSettings/MQErrorQueueNameName of MQ error queue for items/authors/keywords
appSettings/DocFolderFolder for debug output files
appSettings/OCRLocationSet to “remote”
# connectionStrings/ProductionConnection string for production BHL database
connectionStrings/QAConnection string for QA BHL database

<BHLRoot>\BHLSearchIndexer\AppConfig.Names.xml

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/SMTPPortSMTP host port
# appSettings/EmailToAddressesRecipients of emails sent by the process (comma-separated)
appSettings/ElasticSearchServerAddressSearch Server address, including port number
appSettings/MQAddressMessage queue host URL
appSettings/MQPortMessage queue port
appSettings/MQUserMessage queue username
appSettings/MQPasswordMessage queue password
appSettings/MQQueueNameName of message queue for names
appSettings/MQErrorExchangeNameName of MQ error exchange for names
appSettings/MQErrorQueueNameName of MQ error queue for names
appSettings/DocFolderFolder for debug output files
appSettings/OCRLocationSet to “remote”
# connectionStrings/ProductionConnection string for production BHL database
connectionStrings/QAConnection string for QA BHL database

<BHLRoot>\BHLSearchIndexer\AppConfig.Full.xml

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/SMTPPortSMTP host port
# appSettings/EmailToAddressesRecipients of emails sent by the process (comma-separated)
appSettings/ElasticSearchServerAddressSearch Server address, including port number
appSettings/DocFolderFolder for debug output files
appSettings/OCRLocationSet to “remote”
appSettings/DoFullIndexSet to “true”
# connectionStrings/ProductionConnection string for production BHL database
connectionStrings/QAConnection string for QA BHL database

<BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/SMTPPortSMTP host port
# appSettings/EmailToAddressesRecipients of emails sent by the process (comma-separated)
appSettings/MQAddressMessage queue host URL
appSettings/MQPortMessage queue port
appSettings/MQUserMessage queue username
appSettings/MQPasswordMessage queue password
appSettings/MQQueueName of message queue for items/authors/keywords
appSettings/MQErrorExchangeName of MQ error exchange for items/authors/keywords
appSettings/MQErrorQueueName of MQ error queue for items/authors/keywords
appSettings/MQQueueNamesName of MQ queue for names
appSettings/MQErrorExchangeNamesName of MQ error exchange for names
appSettings/MQErrorQueueNamesName of MQ error queue for names
connectionStrings/ProductionConnection string for production BHL database
# connectionStrings/QAConnection string for QA BHL database

<BHLRoot>\BHLTextImportProcessor\app.config

ElementValue
# appSettings/SMTPHostSMTP host address
# appSettings/EmailFromAddress"From" address for emails sent by the process
# appSettings/EmailToAddressRecipient of emails sent by the process
# appSettings/DebugPathPath for debugging output
appSettings/TextImportFilePathURL of location of text import files
connectionStrings/BHLConnection string for BHL database
# system.net/mailSettings/smtp/network(@host) SMTP host address
# system.net/mailSettings/smtp/network(@port)STMP host port
# system.net/mailSettings/smtp/network(@userName)SMTP host username
# system.net/mailSettings/smtp/network(@password)SMTP host password

TEST PROJECTS

<BHLRoot>\BHLApiDALTest\App.config

ElementValue
connectionStrings/BHLConnection string for BHL database

<BHLRoot>\BHLCoreDALTest\App.config

ElementValue
connectionStrings/BHLConnection string for BHL database

<BHLRoot>\BHLServerTest\app.config

ElementValue
connectionStrings/BHLConnection string for BHL database
Connectionstrings/AdminOptional connection string for logging database

Index Data in ElasticSearch (Optional)

  1. Open the BHLUtility solution in Visual Studio.
  2. Build the BHLSearchIndexer project.
  3. Make sure you have completed the configuration within the AppConfig.Full.xml file.
  4. Run the BHLSearchIndex project, specifying “AppConfig.Full.xml” as the application argument.

About

Source code for the Biodiversity Heritage Library's web site and supporting processes.

Resources

Releases

No releases published

Packages

No packages published