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.
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.
Anyone is welcome to contribute to website development. To set up a development environment, follow the steps outlined in this section.
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.
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
The website can be conveniently deployed via Docker Compose.
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.
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.
To stop the server, run:
docker-compose down
This project is available under the Apache 2.0 License also shipped with this repository.
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.