Skip to content

Setup FNDTN project

  1. Create a Github repo from the Foundation template with the name {{ projectName }}.

Go to FNDTN repo on Github

There is an automatic CLI tool: foundation-cli.

Checkout repo and install tool

This tool uses a combination of different CLI tools. Please make sure you have the gh CLI enabled and authorized. In 1Password you can find secrets (Foundation Starter) and the Rootnet API password.

  1. Run: foundation create-aws-bucket
  2. See the Rootnet steps below for creating projects on Rootnet (this is no longer automatic because of 2FA).
  3. Enable Deployment Tools > Github CI/CD for both projects.
  4. Run: foundation generate ssh
  5. Copy the public key from servers (web and CMS): cat ~/.ssh/id_rsa.pub
  6. Add this key to Rootnet > Deployment Tools > SSH keys for tools for both projects.
  7. Run: foundation setup-cms-server
  8. Run: foundation setup-web-server
  1. Create Rootnet staging projects for web and CMS.
    • Staging servers are on Wispy Stork.
  2. Create a Strapi project:
    • Name: {{ projectName }} - Staging - CMS
    • Template: Strapi + MySQL + PM2
    • Server: wispy-stork
    • You’ll receive credentials by email. Store them in 1Password under {{ projectName }} Staging.
    • Go to: Toegang > Rollen toevoegen > check Beheerder and save.
    • Enable Github CI/CD via deployment tools.
    • Add domain: staging.cms.{{ projectName }}.ef2.builders
  3. Create a NextJS project:
    • Name: {{ projectName }} - Staging - Web
    • Template: Next.js
    • Server: wispy-stork
    • You’ll receive another email with info. Store this in 1Password (same note as above).
    • Enable Github CI/CD via deployment tools.
    • Add domain: staging.web.{{ projectName }}.ef2.builders
  1. Create Rootnet production projects for web and CMS.
    • Production servers are on Naval Wolf.
  2. Create a Strapi project:
    • Name: {{ projectName }} - Production - CMS
    • Template: Strapi + MySQL + PM2
    • Server: naval-wolf
    • You’ll receive credentials by email. Store them in 1Password under {{ projectName }} Production.
    • Go to: Toegang > Rollen toevoegen > check Beheerder and save.
    • Enable Github CI/CD via deployment tools.
    • Add domain: cms.{{ projectName }}.ef2.builders
  3. Create a NextJS project:
    • Name: {{ projectName }} - Production - Web
    • Template: Next.js
    • Server: naval-wolf
    • You’ll receive another email with info. Store this in 1Password (same note as above).
    • Enable Github CI/CD via deployment tools.
    • Add domain: web.{{ projectName }}.ef2.builders
  1. It is possible that the main branch is missing. In that case go to the Github repo, and create the branch in /branches
  2. It is possible that the production environment is missing from environments. Check Github repo > /settings/environments and add production if needed. Otherwise it’s not possible to store envs

If you’re done setting up an environment and it works on your local machine, save the .env from the root in 1Password named:
{{projectName}} - Local .env.