Skip to content

elixir-cloud-aai/landing-page

Repository files navigation

ELIXR Cloud & AAI landing page

license website chat ci cd

This is the repository for the official website of ELIXIR Cloud & AAI, a transnational effort towards establishing a federated cloud computing network enabling the analysis of population-scale genomic and phenotypic data across participating nodes.

ELIXIR Cloud & AAI is led by the ELIXIR Compute Platform and is a Driver Project of the Global Alliance for Genomics and Health.

banner

About this repository

This website is built using the Next.js framework for React.js. Most of the pages on the website are built by Incremental Static Regeneration server-side for fast client-side rendering and better SEO.

Dynamic content for the website is fetched from Notion, where it can be conveniently edited by authorized users. If you are a member of ELIXIR Cloud & AAI and would like to contribute dynamic content, please contact us.

Developing

Anyone is welcome to contribute to website development. To set up a development environment, follow the steps outlined in this section.

Development requirements

Ensure you have the following software installed:

  • Node (v14.8.0)
  • Node.js (v10.19.0)
  • NPM (6.14.7)

These are the versions used for development/testing. Other versions may or may not work. Please let us know if you encounter any issues with newer versions than the ones listed.

Setting up the development environment

Fork & clone this repository on your local machine, then install the required dependencies with:

npm install

For the API/backend, first create a Notion. Then, open the ELIXIR Cloud & AAI Notion page and duplicate it to your account. Then, create a Notion Developers account with the same email. Finally, create a new integration in your account, note down the "Internal Integration Token" and link the integration to the to the duplicated page in your account.

Create a file .env.local in the repository's root directory with the following command (don't forget to replace the values with your own ones):

cat << EOF > .env.local
NOTION_TOKEN=<YOUR_TOKEN>
EOF

An example file with the required variables is also available in .sample.env. Instead of the command above, you can make a copy of the file in .env and replace the values with your own.

Start the local development server with:

npm run dev

Deploying

The website can be conveniently deployed via Docker Compose.

Deployment requirements

Ensure you have the following software installed:

  • Docker (19.03.8, build afacb8b7f0)
  • Docker Compose (1.23.1, build b02f1306)
  • Git (2.25.1)

These are the versions used for development/testing. Other versions may or may not work. Please let us know if you encounter any issues with newer versions than the ones listed.

Deploying the website

To deploy the app, first clone the repository with either of the following:

git clone https://github.com/elixir-cloud-aai/landing-page.git
git clone [email protected]:elixir-cloud-aai/landing-page.git
gh repo clone elixir-cloud-aai/landing-page

Then set the Notion token:

export NOTION_TOKEN=<YOUR-TOKEN>

Finally, build and deploy the app image with the following command:

docker-compose up --build -d

The website should now be available at http://localhost.

By default, the website is served at port 80. You can change that in docker-compose.yaml.

Of course, these deployment instructions are only a starting point. You may want to adapt them to your individual needs.

IMPORTANT NOTE: Never publish the built container image! It will be easy to access your Notion token.

Taking down the website

To stop the server, run:

docker-compose down

License

This project is available under the Apache 2.0 License also shipped with this repository.

Contact

If you have suggestions for or find issue with this website, please use the issue tracker. If you would like to reach out to us for anything else, you can join our Slack board, start a thread in our Q&A forum, or send us an email.