このプロジェクトは、Yale Digital Humanities Labの以前の段階で開発されました。現在、Yale Libraryの計算方法とデータ部門の一部であるこの研究室は、このプロジェクトをその範囲にもはや含めていません。そのため、それ以上の更新は受けられません。ここには反映されていないこのウェブサイトの現在のバージョンは、エリフ・ルービン教授が所有しています。
ニューヘブンの建築史のマッピング。
ニューヘブンビルディングアーカイブ(NHBA)は、ニューヘブンの建物のデジタルアーカイブです。このリポジトリには、サイトのソースコードと、サイトをローカルまたは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で利用できます。
オプションで別の端末ウィンドウを開き、NHBAディレクトリにCDを開き、 npm run startを実行して8081で開発サーバーを起動することができます。この開発サーバーは生産サーバーに依存しますが、開発速度を高めるためにホットモジュールのリロードを備えています。
このアプリをAmazon LinuxインスタンスにEC2に展開するには、次のことが必要です。
# 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
Let's Encryptを使用すると、ユーザーはバウンドドメインアドレスの無料のSSL証明書を取得できます。 Let's Clients Clientsを実行して証明書を取得するには、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
ここで、yourdomain.extは、インスタンスがバインドされるドメインを指します。プロンプトが表示されたら、2番目のオプション(一時サーバー)を選択して、証明書を処理します。
次に、 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 build/assets/uploads/files
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
サーバーを実行し続けるために、forever.jsのようなラッパーを使用することをお勧めします...