تم تطوير هذا المشروع في ظل مرحلة سابقة من مختبر Yale Digital Humanities Lab. الآن جزء من الأساليب الحسابية وبيانات مكتبة ييل ، لم يعد المختبر يتضمن هذا المشروع في نطاق عمله. على هذا النحو ، لن يتلقى أي تحديثات أخرى. النسخة الحالية من هذا الموقع ، غير المنعكس هنا ، مملوكة للبروفيسور إيليهو روبن.
تعيين تاريخ نيو هافن المعماري.
أرشيف بناء New Haven (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 ، وبدء 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
دعنا نسمح للمستخدمين بالحصول على شهادات SSL مجانية لعناوين المجال المربوطة. لتشغيل العميل Let's Encrypt والحصول على الشهادات ، يجب عليك إنشاء IP مرن لمثيل EC2 الخاص بك ، والحصول على اسم مجال (على سبيل المثال 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 يشير إلى المجال الذي يكون مثيلك ملزمًا. عند المطالبة ، حدد الخيار الثاني (الخادم المؤقت) لمعالجة الشهادات الخاصة بك.
ثم قم بتحديث ملف 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
قد ترغب في استخدام غلاف مثل Forever.js للحفاظ على تشغيل الخادم الخاص بك ...