Skip to content

Deployment Platforms

The FiNAN website is deployed on Cloudflare Pages. This platform was chosen for its global edge network, speed, and seamless integration with GitHub.

The project is connected to the GitHub repository. Whenever you push changes to the main branch, Cloudflare automatically builds and deploys the new version.

  • Project Name: finan-website
  • Production Branch: main
  • Framework Preset: Astro
  • Build Command: pnpm build
  • Output Directory: dist
  • Node Version: v20 or higher (Current: v22.11.0)

The website is accessible via the primary domain and an alias:

  1. Primary: finan.eu.com (Main production site)
  2. Redirect: www.finan.eu.com (Redirects to non-www)
  3. Pages Domain: finan-website.pages.dev (Cloudflare default)

DNS settings are managed within Cloudflare’s dashboard under existing DNS records for the finan.eu.com zone.

Secure secrets and build configurations are managed through Cloudflare Pages Environment Variables. These are never committed to the repository.

  1. Log in to the Cloudflare Dashboard.
  2. Navigate to Workers & Pages > finan-website.
  3. Go to Settings > Environment Variables.
  4. Add variables for Production and Preview environments.
Variable NameDescriptionRequired
GHOST_CONTENT_API_KEYAPI Key for fetching blog posts from Ghost CMSYes
GHOST_API_URLURL of the Ghost CMS instanceYes
PUBLIC_SITE_URLThe canonical URL of the site (e.g., https://finan.eu.com)Yes

For local development, create a .env file in the root of the project:

.env
GHOST_CONTENT_API_KEY=your_local_key_here
GHOST_API_URL=https://your-ghost-instance.com
PUBLIC_SITE_URL=http://localhost:4321

Cloudflare Pages automatically creates a Preview Deployment for every Pull Request (PR) opened against the repository.

  • URL Pattern: https://<pr-id>.finan-website.pages.dev
  • Use Case: Send this URL to stakeholders (board members, editors) to review changes before they go live.
  • Comments: Cloudflare Bot will comment on the PR with the direct link.

This allows us to test changes in a production-like environment without affecting the live site.