โครงการนี้ได้รับการพัฒนาภายใต้ขั้นตอนก่อนหน้าของห้องปฏิบัติการ Humanities Yale Digital ตอนนี้เป็นส่วนหนึ่งของวิธีการคำนวณและแผนกข้อมูลของ Library Library ห้องปฏิบัติการไม่รวมโครงการนี้ไว้ในขอบเขตการทำงานอีกต่อไป เช่นนี้จะไม่ได้รับการอัปเดตเพิ่มเติม เวอร์ชันปัจจุบันของเว็บไซต์นี้ไม่สะท้อนที่นี่เป็นเจ้าของโดยศาสตราจารย์ Elihu Rubin
การทำแผนที่ประวัติศาสตร์สถาปัตยกรรมของ New Haven
New Haven Building Archive (NHBA) เป็นคลังเก็บดิจิตอลของอาคารใน 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 เพื่อเริ่มต้นเซิร์ฟเวอร์การพัฒนาใน 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
ENCRYPT มาช่วยให้ผู้ใช้ได้รับใบรับรอง SSL ฟรีสำหรับที่อยู่โดเมนที่ถูกผูกไว้ ในการเรียกใช้ไคลเอนต์ Let's Encrypt และรับใบรับรองคุณต้องสร้าง IP ยืดหยุ่นสำหรับอินสแตนซ์ EC2 ของคุณรับชื่อโดเมน (เช่น cats.com) และผูกอินสแตนซ์ EC2 ของคุณเข้ากับโดเมน สำหรับผู้ใช้ที่ใช้ NAMECHEAP โพสต์นี้ให้คำแนะนำอย่างละเอียด
เมื่อทำเสร็จแล้วเราสามารถดาวน์โหลดและเรียกใช้ Let's Encrypt Client ด้วยคำสั่งต่อไปนี้:
# 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 หมายถึงโดเมนที่อินสแตนซ์ของคุณถูกผูกไว้ เมื่อได้รับแจ้งให้เลือกตัวเลือกที่สอง (เซิร์ฟเวอร์ชั่วคราว) เพื่อประมวลผลใบรับรองของคุณ
จากนั้นอัปเดตไฟล์ 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/essets/uploads/files
ผู้ใช้ 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
คุณอาจต้องการใช้ wrapper เช่น Forever.js เพื่อให้เซิร์ฟเวอร์ของคุณทำงาน ...