https://github.com/acdh-oeaw/clariah-at-website

CLARIAH-AT website

https://github.com/acdh-oeaw/clariah-at-website

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.7%) to scientific vocabulary

Keywords

frontend
Last synced: 6 months ago · JSON representation

Repository

CLARIAH-AT website

Basic Info
  • Host: GitHub
  • Owner: acdh-oeaw
  • License: mit
  • Language: MDX
  • Default Branch: main
  • Homepage: https://clariah.at
  • Size: 816 MB
Statistics
  • Stars: 1
  • Watchers: 7
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Topics
frontend
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License

readme.md

clariah-at

project website for clariah-at.

deployed at https://clariah.at.

how to run

prerequisites:

[!TIP]

you can use pnpm to install the required node.js version with pnpm env use 22 --global

set required environment variables in .env.local:

bash cp .env.local.example .env.local

also, set environment variables required by validation and deployment github actions. use "variables" for every environment variable prefixed with PUBLIC_, and "secrets" for all others.

the default template accepts the following variables:

  • PUBLIC_REDMINE_ID (required): service issue for this application in the acdh-ch redmine issue tracker.
  • PUBLIC_APP_BASE_URL (required): the base url for this application. the default of "http://localhost:3000" should be fine for local development.
  • PUBLIC_APP_BASE_PATH (optional): set this when deploying to a path other than "/".
  • PUBLIC_BOTS (required): whether this website can be indexed by web crawlers like the google bot. supported values are "disabled" and "enabled", defaults to "disabled".
  • PUBLIC_MATOMO_BASE_URL and PUBLIC_MATOMO_ID (optional): set these to support client-side analytics with matomo.
  • PUBLIC_GOOGLE_SITE_VERIFICATION (optional): set this to verify site ownership for google search console.
  • ENV_VALIDATION (optional): whether environment variables should be validated. supported values are "disabled", "enabled" and "public" (only validate public variables, which can be useful in a docker build context to avoid having to pass secrets to docker build), defaults to "enabled".

when adding new environment variables, don't forget to add them to .env.local.example as well.

install dependencies:

bash pnpm install

run a development server on http://localhost:3000:

bash pnpm run dev

[!TIP]

this template supports developing in containers. when opening the project in your editor, you should be prompted to re-open it in a devcontainer.

how to edit content

use the admin ui at http://localhost:3000/admin when developing locally (this will save changes to the filesystem), or at https://clariah.at/admin (this will commit changes to the github repository).

how to deploy

  • ask a sysadmin to create a new acdh-ch kubernetes project.
  • create a new namespace in that project via rancher, and set the KUBE_NAMESPACE github variable to that namespace.
  • adjust the app_name, which will be the name of the deployment in the above namespace.
  • set the PUBLIC_URL github variable to the application's public url (e.g. "https://my-app.acdh-ch-dev.oeaw.ac.at"), and set the KUBE_INGRESS_BASE_DOMAIN to the public url's base domain (e.g. "acdh-ch-dev.oeaw.ac.at"). PUBLIC_URL should match PUBLIC_APP_BASE_URL.
  • when deploying to a production domain (i.e. a domain not ending in "acdh-ch-dev.oeaw.ac.at"), set HELM_UPGRADE_EXTRA_ARGS to --set 'ingress.annotations.cert-manager\.io/cluster-issuer=acdh-prod' for "acdh.oeaw.ac.at" domains, or to --set 'ingress.annotations.cert-manager\.io/cluster-issuer=letsencrypt-prod' for any other non-oeaw domains, and ensure KUBE_INGRESS_BASE_DOMAIN is set correctly.
  • if you haven't yet, create a service issue in the acdh-ch redmine issue tracker, and set the SERVICE_ID github variable to the issue number. this should match the PUBLIC_REDMINE_ID variable in your .env.local file.
  • ensure required build args (prefixed with PUBLIC_) are referenced in both the Dockerfile, as well as the validation and deployment pipelines, and set as github variables.
  • ensure required runtime environment variables are referenced in the validation and deployment pipelines, and set as github secrets. github secrets need to be prefixed with K8S_SECRET_ to be automatically copied to the runtime environment. in case you need secrets in the docker build context, you can mount a secret in the Dockerfile.
  • ensure both the github repository, as well as the package registry is set to public.
  • the PUBLIC_BOTS variable defaults to "disabled", which signals to web crawlers that the website should not be indexed. when deploying to a production domain (i.e. a domain not ending in "acdh-ch-dev.oeaw.ac.at") this should be set to "enabled".

if everything is set up correctly, every git push to the main branch will create a new deployment if the validation pipeline passes.

you can reference the template repository for a working setup.

[!IMPORTANT]

don't forget to include relevant data in the rss feed.

[!NOTE]

by default, this will deploy a node server, which will serve pre-rendered pages, assets, and api routes. if you prefer a truly static build, which uses caddy as a fileserver, use the Dockerfile.static instead, and remove output: "hybrid" from astro.config.ts. you will also need to change the generate:search-index script to pagefind --site ./dist/.

Owner

  • Name: Austrian Centre for Digital Humanities & Cultural Heritage
  • Login: acdh-oeaw
  • Kind: organization
  • Email: acdh@oeaw.ac.at
  • Location: Vienna, Austria

GitHub Events

Total
  • Issues event: 11
  • Delete event: 43
  • Issue comment event: 9
  • Push event: 373
  • Pull request event: 88
  • Create event: 44
Last Year
  • Issues event: 11
  • Delete event: 43
  • Issue comment event: 9
  • Push event: 373
  • Pull request event: 88
  • Create event: 44

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 107
  • Average time to close issues: about 21 hours
  • Average time to close pull requests: about 1 hour
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 1.14
  • Average comments per pull request: 0.03
  • Merged pull requests: 94
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 91
  • Average time to close issues: about 10 hours
  • Average time to close pull requests: 2 minutes
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 1.17
  • Average comments per pull request: 0.02
  • Merged pull requests: 82
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • PixlTracer (5)
  • stefanprobst (2)
Pull Request Authors
  • PixlTracer (88)
  • stefanprobst (15)
  • ctot-nondef (2)
  • babslgam (2)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels

Dependencies

.github/workflows/build-deploy.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
.github/workflows/validate.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
  • actions/upload-artifact v4 composite
  • pnpm/action-setup v4 composite
Dockerfile docker
  • base latest build
  • node 20-alpine build
package.json npm
  • @acdh-oeaw/eslint-config ^1.0.7 development
  • @acdh-oeaw/eslint-config-astro ^1.0.10 development
  • @acdh-oeaw/eslint-config-playwright ^1.0.7 development
  • @acdh-oeaw/eslint-config-react ^1.0.8 development
  • @acdh-oeaw/prettier-config ^2.0.0 development
  • @acdh-oeaw/stylelint-config ^2.0.1 development
  • @acdh-oeaw/tailwindcss-preset ^0.0.22 development
  • @acdh-oeaw/tsconfig ^1.0.2 development
  • @astrojs/check ^0.6.0 development
  • @astrojs/ts-plugin ^1.7.0 development
  • @playwright/test ^1.44.0 development
  • @types/mdx ^2.0.13 development
  • @types/node ^20.12.11 development
  • @types/nodemailer ^6.4.15 development
  • @types/react ^18.3.1 development
  • @types/react-dom ^18.3.0 development
  • autoprefixer ^10.4.19 development
  • axe-core ^4.9.1 development
  • axe-playwright ^2.0.1 development
  • ci-info ^4.0.0 development
  • dotenv ^16.4.5 development
  • dotenv-expand ^11.0.6 development
  • eslint ^8.57.0 development
  • eslint-plugin-tailwindcss ^3.15.1 development
  • is-ci ^3.0.1 development
  • lint-staged ^15.2.2 development
  • npm-run-all2 ^6.1.2 development
  • postcss ^8.4.38 development
  • prettier ^3.2.5 development
  • prettier-plugin-astro ^0.13.0 development
  • schema-dts ^1.1.2 development
  • simple-git-hooks ^2.11.1 development
  • stylelint ^16.5.0 development
  • tailwindcss ^3.4.3 development
  • type-fest ^4.18.2 development
  • typescript ^5.4.5 development
  • @acdh-oeaw/lib ^0.1.11
  • @acdh-oeaw/validate-env ^0.0.3
  • @astrojs/mdx ^3.0.0
  • @astrojs/node ^8.2.5
  • @astrojs/react ^3.3.4
  • @astrojs/rss ^4.0.5
  • @astrojs/sitemap ^3.1.4
  • @floating-ui/dom ^1.6.5
  • @fontsource-variable/inter ^5.0.18
  • @iconify-json/lucide ^1.1.187
  • @keystatic/astro ^5.0.0
  • @keystatic/core ^0.5.14
  • @mdx-js/mdx ^3.0.1
  • @pagefind/default-ui ^1.1.0
  • @shikijs/rehype ^1.5.1
  • astro ^4.8.2
  • astro-icon ^1.1.0
  • cva ^1.0.0-beta.1
  • date-fns ^3.6.0
  • lucide-react ^0.378.0
  • nodemailer ^6.9.13
  • pagefind ^1.1.0
  • react ^18.3.1
  • react-dom ^18.3.1
  • rehype-mdx-import-media ^1.2.0
  • rehype-slug ^6.0.0
  • remark-frontmatter ^5.0.0
  • remark-gfm ^4.0.0
  • remark-mdx-frontmatter ^4.0.0
  • remark-smartypants ^3.0.1
  • retext-smartypants ^6.1.0
  • satori ^0.10.13
  • shiki ^1.5.1
  • valibot ^0.30.0
  • vite ^5.2.11
pnpm-lock.yaml npm
  • 379 dependencies