Overview
This page documents the steps and tools needed to build the Voices in Biotech Project. Many of these will be broadly applicable to other Voices projects.
Software:
The Voices project uses the following software components
Strapi (a headless CMS)
Postgres (database holding site data)
Gatsby (static site generator)
Apache (Webserver for admin site)
Strapi and Gatsby are both handled in repositories. Science-history-web is the public facing Gatsby code and science-history-api is the private Strapi code.
Currently the git repos are locked and only accessible via an ssh key.
All of these components are used on the server and are automatically set up with the ansible command creates_voices.yml see the Ansible README for command details.
AWS Services:
The Voices project uses the following AWS services to manage and run the site
EC2 (server to run the above software)
S3 (Image hosting and static website component hosting)
Cloudfront (used to support https access to S3 sites)
Amazon Certificate Manager (for SSL certificates)
A key issue is that the Voices project is managed separately. See the AWS page for details on switching accounts to the Community History Project account.
Setup:
Create S3 Bucket for Website
This follows instructions from (https://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html) which detail steps from the console.
Create an S3 bucket with the name of the site (i.e. voices.sciencehistory.org)
Under properties to Static Website Hosting to “Use this Bucket to Host a Website”
The index document should be index.html
The error document should be 404.html
Under Permissions make sure Block Public Access (and all subsections) are set to Off
In Bucket Policy under Permissions follow the example under Step 2 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html) using our bucket name instead of Example
Import SSL Cert
This should only need to be done when we renew our SSL certs or if we change them. We are not using Amazon’s certificate creation service so we will need to import ours after making some changes to the format to work with AWS.