Этот проект был разработан под предыдущей фазой Йельской цифровой гуманитарной лаборатории. Теперь часть вычислительной библиотеки Йельской библиотеки, лаборатория, больше не включает этот проект в свой объем работы. Таким образом, он не получит дальнейших обновлений. Текущая версия этого веб -сайта, не отраженная здесь, принадлежит профессору Элиху Рубину.
Картирование истории архитектуры Нью -Хейвена.
Архив здания Нью -Хейвена (NHBA) - это цифровой архив зданий в Нью -Хейвене. В этом хранилище находится исходный код сайта и направляющие для построения сайта на местном уровне или на экземплярах EC2.

Это приложение требует node.js (версия 6 или выше) и mongodb.
Миграции данных в рамках этого приложения требуют Pimongo ( 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. Этот сервер разработки зависит от производственного сервера, но имеет Hot Module Reloading для более быстрой скорости разработки.
Чтобы развернуть это приложение на экземпляре 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 Encrypt и получить сертификаты, вы должны создать Elastic 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 /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
Только пользователи суперузой могут назначить других пользователей администратора. Пользователи суперусти должны быть назначены на уровне командной строки:
# 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, чтобы ваш сервер работал ...