Este projeto foi desenvolvido sob uma fase anterior do Yale Digital Humanities Lab. Agora, parte do departamento de dados e do Departamento de Dados da Biblioteca de Yale, o laboratório não inclui mais esse projeto em seu escopo de trabalho. Como tal, não receberá mais atualizações. A versão atual deste site, não refletida aqui, é de propriedade do professor Elihu Rubin.
Mapeando a história arquitetônica de New Haven.
O New Haven Building Archive (NHBA) é um arquivo digital dos edifícios em New Haven. Este repositório abriga o código -fonte e os guias do site para criar o site localmente ou em instâncias do EC2.

Este aplicativo requer Node.js (versão 6 ou superior) e MongoDB.
As migrações de dados dentro deste aplicativo requerem pymongo ( pip install pymongo ).
Para executar este aplicativo em sua máquina, abra um terminal e execute:
# 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
O aplicativo estará disponível no localhost:8080 .
Opcionalmente, você pode abrir outra janela de terminal, CD no diretório NHBA e executar npm run start para iniciar um servidor de desenvolvimento no 8081. Este servidor de desenvolvimento depende do servidor de produção, mas apresenta recarregamento do módulo quente para uma velocidade de desenvolvimento mais rápida.
Para implantar este aplicativo em uma instância do Amazon Linux no EC2, é preciso:
# 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 permite que os usuários obtenham certificados SSL gratuitos para endereços de domínio vinculado. Para executar o cliente Let's Encrypt e obter certificados, você deve criar um IP elástico para sua instância do EC2, obter um nome de domínio (por exemplo, CATS.com) e vincular sua instância EC2 ao domínio. Para os usuários que usam o Namecheap, esta postagem fornece um guia completo.
Quando isso for feito, pode -se baixar e executar o cliente Let's Encrypt com os seguintes 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
Aqui YounDomain.EXT refere -se ao domínio ao qual sua instância está vinculada. Quando solicitado, selecione a segunda opção (servidor temporário) para processar seus certificados.
Em seguida, atualize o arquivo nhba/config.js para refletir a localização de seus certificados. O local padrão é /etc/letsencrypt/live/YOURDOMAIN.EXT/fullchain.pem
Para executar seu aplicativo no HTTPS, basta atualizar nhba/config.js :
config.api = {
protocol: 'https',
host: 'YOURDOMAIN.EXT',
port: 443,
prefix: 'api'
}
Adicione as seguintes variáveis 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
Em seguida, source ~/.bash_profile
Crie um diretório no qual os uploads do usuário possam ser mantidos: mkdir build/atts/uploads/arquivos
Somente os usuários de superadmin podem nomear outros usuários administrativos. Os usuários de superadmin devem ser nomeados no nível da linha de comando:
# 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
Você pode usar um invólucro como o Forever.js para manter seu servidor funcionando ...