Ce projet a été développé dans une phase précédente du Yale Digital Humanities Lab. Désormais partie du service de calcul et du service de données de la bibliothèque de Yale, le laboratoire n'inclut plus ce projet dans sa portée de travail. En tant que tel, il ne recevra aucune autre mise à jour. La version actuelle de ce site Web, non reflétée ici, appartient au professeur Elihu Rubin.
Mappage de l'histoire de l'architecture de New Haven.
Le New Haven Building Archive (NHBA) est une archive numérique des bâtiments de New Haven. Ce référentiel abrite le code source et les guides du site pour la construction du site localement ou sur les instances EC2.

Cette application nécessite Node.js (version 6 ou supérieure) et MongoDB.
Les migrations de données dans cette application nécessitent Pymongo ( pip install pymongo ).
Pour exécuter cette application sur votre machine, ouvrez un terminal et exécutez:
# 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
La demande sera ensuite disponible sur localhost:8080 .
Vous pouvez éventuellement ouvrir une autre fenêtre de terminal, CD dans le répertoire NHBA et exécuter npm run start pour démarrer un serveur de développement sur 8081. Ce serveur de développement dépend du serveur de production, mais dispose de rechargement de module chaud pour une vitesse de développement plus rapide.
Pour déployer cette application sur une instance Amazon Linux sur EC2, il faut:
# 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 permet aux utilisateurs d'obtenir des certificats SSL gratuits pour les adresses de domaine liées. Pour exécuter le client Let's Encrypt et obtenir des certificats, vous devez créer une IP élastique pour votre instance EC2, obtenir un nom de domaine (par exemple Cats.com) et lier votre instance EC2 au domaine. Pour les utilisateurs utilisant Namecheap, ce message fournit un guide approfondi.
Une fois cela fait, on peut télécharger et exécuter le client Let's Encrypt avec les commandes suivantes:
# 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
Ici yourDomain.ext fait référence au domaine auquel votre instance est liée. Lorsque vous êtes invité, sélectionnez la deuxième option (serveur temporaire) pour traiter vos certificats.
Mettez ensuite à jour le fichier nhba/config.js pour refléter l'emplacement de vos certificats. L'emplacement par défaut est /etc/letsencrypt/live/YOURDOMAIN.EXT/fullchain.pem
Pour exécuter votre application sur HTTPS, mettez simplement à jour nhba/config.js :
config.api = {
protocol: 'https',
host: 'YOURDOMAIN.EXT',
port: 443,
prefix: 'api'
}
Ajoutez les variables suivantes à ~/.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
Puis source ~/.bash_profile
Créer un répertoire dans lequel les téléchargements des utilisateurs peuvent être conservés: MKDIR Build / Assets / Téléchargements / fichiers
Seuls les utilisateurs de SuperAdmin peuvent nommer d'autres utilisateurs d'administration. Les utilisateurs de SuperAdmin doivent être nommés au niveau de la ligne de commande:
# 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
Vous souhaiterez peut-être utiliser un wrapper comme Forever.js pour faire fonctionner votre serveur ...