이 프로젝트는 Yale Digital Humanities Lab의 이전 단계에서 개발되었습니다. 이제 Yale Library의 계산 방법 및 데이터 부서의 일부인이 실험실에는 더 이상이 프로젝트가 작업 범위에 포함되지 않습니다. 따라서 더 이상 업데이트를받지 못할 것입니다. 여기에 반영되지 않은이 웹 사이트의 현재 버전은 Elihu Rubin 교수가 소유하고 있습니다.
뉴 헤이븐의 건축사 매핑.
NHBA (New Haven Building Archive)는 New Haven의 건물의 디지털 아카이브입니다. 이 저장소에는 사이트의 소스 코드와 로컬 또는 EC2 인스턴스에 사이트를 구축하기위한 가이드가 있습니다.

이 응용 프로그램에는 Node.js (버전 6 이상) 및 MongoDB가 필요합니다.
이 응용 프로그램 내 데이터 마이그레이션에는 Pymongo ( pip install pymongo )가 필요합니다.
이 응용 프로그램을 컴퓨터에서 실행하려면 터미널을 열고 실행하십시오.
# obtain application source and enter repository
git clone https://github.com/duhaime/nhba
cd nhba
# load database
wget https://s3-us-west-2.amazonaws.com/lab-apps/nhba/archives/nhba-11-12-08.archive -O nhba.archive
mongo nhba --eval "db.dropDatabase()"
mongorestore --db nhba --archive=nhba.archive
# obtain images
wget https://s3-us-west-2.amazonaws.com/lab-apps/nhba/archives/build.tar.gz -O build.tar.gz
tar -zxf build.tar.gz
# install nvm, e.g. with brew
brew install nvm
# install node compatible with this library
nvm install v10.24.1
nvm use v10.24.1
# install dependencies
npm install --no-optional
# start production server
npm run production
그런 다음 응용 프로그램은 localhost:8080 에서 사용할 수 있습니다.
선택적으로 다른 터미널 창, CD를 NHBA 디렉토리로 열고 npm run start 수 있습니다.이 개발 서버는 프로덕션 서버에 따라 다르지만 더 빠른 개발 속도를 위해 핫 모듈 리로드 기능을 제공합니다.
EC2의 Amazon Linux 인스턴스 에이 앱을 배포하려면 다음과 같습니다.
# Install Node.js on Amazon Linux
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 6.10.0
node -v
# Install MongoDB on Amazon Linux
sudo touch /etc/yum.repos.d/mongodb-org-3.4.repo
sudo vim /etc/yum.repos.d/mongodb-org-3.4.repo
# paste the following:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
sudo yum install -y mongodb-org
sudo service mongod start
sudo chkconfig mongod on
암호화하자 사용자는 바운드 도메인 주소에 대한 무료 SSL 인증서를 얻을 수 있습니다. Let 's Encrypt 클라이언트를 실행하고 인증서를 얻으려면 EC2 인스턴스에 대한 탄성 IP를 생성하고 도메인 이름 (예 : Cats.com)을 얻고 EC2 인스턴스를 도메인에 바인딩해야합니다. Namecheap을 사용하는 사용자의 경우이 게시물은 철저한 안내서를 제공합니다.
이 작업이 완료되면 다음 명령으로 Let 's Encrypt 클라이언트를 다운로드하여 실행할 수 있습니다.
# get Let's Encrypt client
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
# pass domain to -d; must be a bound domain, not a raw IP
sudo ./certbot-auto --debug -v --server https://acme-v01.api.letsencrypt.org/directory certonly -d YOURDOMAIN.EXT
여기서 your domain.ext는 인스턴스가 묶인 도메인을 나타냅니다. 프롬프트되면 인증서를 처리하려면 두 번째 옵션 (임시 서버)을 선택하십시오.
그런 다음 인증서의 위치를 반영하려면 nhba/config.js 파일을 업데이트하십시오. 기본 위치는 /etc/letsencrypt/live/YOURDOMAIN.EXT/fullchain.pem 입니다
HTTPS에서 응용 프로그램을 실행하려면 nhba/config.js 업데이트하기 만하면됩니다.
config.api = {
protocol: 'https',
host: 'YOURDOMAIN.EXT',
port: 443,
prefix: 'api'
}
다음 변수를 ~/.bash_profile 에 추가하십시오.
export NHBA_EMAIL='YOURGMAILACCOUNT' # e.g. catparty
export NHBA_EMAIL_PASSWORD='YOURGMAILPASSWORD' # e.g. meow
export NHBA_SECRET='NHBA_SECRET' # equivalent to `rake secret`
export NHBA_SALT_WORK_FACTOR=10 # encryption difficulty
export NHBA_ENVIRONMENT='production' # switch to production
export NHBA_ADMIN_EMAILS='[email protected] [email protected]' # space separated emails
export NHBA_SUPERADMIN_EMAILS='[email protected]' # space separated emails
그런 다음 source ~/.bash_profile
사용자 업로드를 유지할 수있는 디렉토리 생성 : mkdir 빌드/자산/업로드/파일
SuperAdmin 사용자 만 다른 관리자 사용자를 임명 할 수 있습니다. SuperAdmin 사용자는 명령 줄 수준에서 임명해야합니다.
# enter nhba db
mongo nhba
# find a user by their email address and make them a superadmin
db.users.update({'email': '[email protected]'}, {$set: {'superadmin': true}})
npm run compress
sudo node server.js
서버와 같은 래퍼를 사용하여 서버를 계속 실행할 수 있습니다 ...