Este proyecto fue desarrollado bajo una fase anterior del Laboratorio de Humanidades Digitales de Yale. Ahora parte del departamento de métodos y datos de computación de la Biblioteca de Yale, el laboratorio ya no incluye este proyecto en su alcance de trabajo. Como tal, no recibirá más actualizaciones. La versión actual de este sitio web, no reflejada aquí, es propiedad del profesor Elihu Rubin.
Mapeo de la historia arquitectónica de New Haven.
El New Haven Building Archive (NHBA) es un archivo digital de los edificios en New Haven. Este repositorio alberga el código fuente del sitio y las guías para construir el sitio localmente o en instancias EC2.

Esta aplicación requiere Node.js (versión 6 o superior) y MongoDB.
Las migraciones de datos dentro de esta aplicación requieren Pymongo ( pip install pymongo ).
Para ejecutar esta aplicación en su máquina, abra un terminal y ejecute:
# 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 aplicación estará disponible en localhost:8080 .
Opcionalmente, puede abrir otra ventana de terminal, CD en el directorio de NHBA y ejecutar npm run start para iniciar un servidor de desarrollo en 8081. Este servidor de desarrollo depende del servidor de producción, pero presenta la recarga del módulo caliente para una velocidad de desarrollo más rápida.
Para implementar esta aplicación en una instancia de Amazon Linux en EC2, uno debe:
# 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
Vamos a encrypt permite a los usuarios obtener certificados SSL gratuitos para direcciones de dominio unidas. Para ejecutar Let's Cifrypt y obtener certificados, debe crear una IP elástica para su instancia de EC2, obtener un nombre de dominio (por ejemplo, Cats.com) y vincular su instancia de EC2 al dominio. Para los usuarios que usan Namecheap, esta publicación proporciona una guía exhaustiva.
Una vez hecho esto, uno puede descargar y ejecutar el cliente Let's Cifryp con los siguientes comandos:
# 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
Aquí YourDomain.Ext se refiere al dominio al que está vinculado su instancia. Cuando se le solicite, seleccione la segunda opción (servidor temporal) para procesar sus certificados.
Luego actualice el archivo nhba/config.js para reflejar la ubicación de sus certificados. La ubicación predeterminada es /etc/letsencrypt/live/YOURDOMAIN.EXT/fullchain.pem
Para ejecutar su aplicación en HTTPS, simplemente actualice nhba/config.js :
config.api = {
protocol: 'https',
host: 'YOURDOMAIN.EXT',
port: 443,
prefix: 'api'
}
Agregue las siguientes variables a ~/.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
Luego source ~/.bash_profile
Cree un directorio en el que se puedan mantener cargas de usuario: Mkdir Build/Assets/Supars/archivos
Solo los usuarios de SuperAdmin pueden nombrar a otros usuarios administrativos. Los usuarios de SuperAdmin deben ser designados a nivel de línea de comandos:
# 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
Es posible que desee usar un envoltorio como Forever.js para mantener su servidor en funcionamiento ...