EducatesHub is a static site built with Astro and TypeScript that catalogs and showcases Educates Workshops. It provides a searchable, filterable, and visually rich interface inspired by ArtifactHub, with Educates branding and a responsive Bootstrap 5 UI.
- Browse Workshops: View a curated list of Educates YAML workshop definitions.
- Search & Filter: Instantly search and filter workshops by title, description, and labels.
- Workshop Details: See detailed info, release notes, and install instructions for each workshop.
- Install Modal: One-click install instructions with a copy-to-clipboard button.
- Responsive Design: Clean, modern UI using Bootstrap 5, with custom Educates branding.
- About Page & Footer: Includes project info, links, and a persistent footer.
/
├── public/ # Static assets (images, favicon, etc.)
├── src/
│ ├── components/ # Astro UI components
│ ├── data/ # Workshop YAML files
│ ├── layouts/ # Main layout and shared UI
│ ├── pages/ # Astro pages (index, about, [slug])
│ └── utils/ # Data loader utilities
├── package.json # Project dependencies and scripts
├── astro.config.mjs # Astro configuration
└── Dockerfile # Containerizing the app
-
Install dependencies:
npm install
-
Run the dev server:
npm run dev
The site will be available at http://localhost:4321 by default.
-
Build for production:
npm run build
-
Preview the production build:
npm run preview
- Build the Docker image:
docker buildx build --platform linux/amd64,linux/arm64 -t educates-hub .
- Run the container:
docker run -it --rm -p 4321:4321 educates-hub
- Open your browser: Visit http://localhost:4321
- Add or edit YAML files in
src/content/
to update the workshop, extensions, kyverno policies or themes catalog. - Images referenced in YAML should be placed in
public/images/
or mapped in the loader utility. - Fetch referenced assets, run
./fetch_assets.sh
to fetch referenced workshops, kyverno policies, themes and extensions.
- Always work in develop branch
- Make sure that everything works locally and make astro check:
npm run astro check
- When things are ready to be released, merge code into main via PR (this will publish the site)
- Rebase develop on main
Pull requests and issues are welcome! See the About page or visit educates.dev for more info.
Apache 2.0 or as specified by the Educates project.