Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Launching Global Hub #1651

Merged
merged 2 commits into from
Sep 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions content/news/2022-09-28-global-hub/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: 'Introducing the Galaxy Global Hub'
tease: Find all your Galaxy info in one website
date: '2022-09-28'
subsites: [all]
authors: Nick Stoler
---

A year ago we [launched](/blog/2021-09-hub2/) the new version of the Community Hub. This change brought author-friendly features, a modern, Vue-based architecture, and a fast browsing experience.

But galaxyproject.org is not the only Galaxy community site out there. [Communities](https://galaxyproject.eu) [across](https://site.usegalaxy.org.au) the [world](https://www.galaxyproject.in) run websites with similar features and a similar purpose. This leads to duplication of effort in a few ways. We reimplement similar features and each have to maintain a separate hosting setup. Another duplication is in cross-posting of updates. The majority of [news](/news/) and [events](/events/) posts are pointers to posts on other sites, often to other community sites.

To reduce this extra effort, we took a page from [galaxyproject.eu](https://galaxyproject.eu), which has a concept of "Member Sites". These are subsites within the galaxyproject.eu domain for each European group, like [galaxyproject.eu/freiburg/](https://galaxyproject.eu/freiburg/) for the University of Freiburg or [galaxyproject.eu/pasteur/](https://galaxyproject.eu/pasteur/) for the Pasteur Institute. Each subsite has its namespace under their url prefix. We've adopted this model so that every community can have their own home under the galaxyproject.org roof. For example:

<div class="compact">

| Subsite | Homepage | Events feed | Content page |
|----------|----------|-------------|--------------|
| Global | galaxyproject.org<strong>/</strong> | galaxyproject.org<strong>/events/</strong> | galaxyproject.org<strong>/learn/</strong> |
| Europe | galaxyproject.org<strong>/eu/</strong> | galaxyproject.org<strong>/eu/events/</strong> | galaxyproject.org<strong>/eu/tools/</strong> |
| US | galaxyproject.org<strong>/us/</strong> | galaxyproject.org<strong>/us/events/</strong> | galaxyproject.org<strong>/us/faq/</strong> |
| Freiburg | galaxyproject.org<strong>/freiburg/</strong> | galaxyproject.org<strong>/freiburg/events/</strong> | galaxyproject.org<strong>/freiburg/projects/</strong> |

</div>

We currently support every European community, plus a subsite for the [US](/us/) and of course a non-regional, Galaxy-wide [Global](/) space.

Now each community can benefit from having their own space with their own feeds and content, but without the need to maintain it on their own. And now cross-posting your content is as easy as adding a tag to the post metadata:

<div class="img-sizer" style="width: 600px; border: 1px solid black">

![Tagging a post with another subsite](./subsite-tagging.png)

</div>

This post will then automatically show up in the feed at [galaxyproject.org/belgium/events/](/belgium/events/).

The system also makes it very easy to create a new subsite for your community. Previously, you'd have to fork another community site or develop your own, customize it, and figure out your own hosting. Now, you simply clone the [galaxy-hub repo](https://github.com/galaxyproject/galaxy-hub), make a small edit to the `config.json` file, and submit the PR.

<div class="trim-p">

`config.json`:

</div>
<div class="img-sizer" style="width: 371px; border: 1px solid black">

![Editing config.json to add a new subsite](./config-json-edit.png)

</div>

## Governance

Communities retain full control over their subsites in the new system. They can freely create any content they want, customize their styling, or add features. When a new community joins, their leaders are given commit access so that they can manage their subsite independently. If you're trying to publish a new post while the US team is asleep, don't worry, you don't need us!

## Rollout

Today we're unveiling the new subsites, which you can find in the "Regions" dropdown menu in the navbar. Every community from galaxyproject.eu is there, but we're still working on migrating all the content from that domain. We currently have all events and news posts from the last 3 months, but older content still lives on the old domain.

As always, please let us know if you have feedback or see anything amiss. You can file an issue on [Github](https://github.com/galaxyproject/galaxy-hub/issues), or contact us on [Gitter](https://gitter.im/galaxyproject/hub2), [Matrix](https://matrix.to/#/#galaxyproject_hub2:gitter.im), or [email](mailto:[email protected]?subject=Global%20Hub%20issue).

## Thanks

I'd like to give a special thanks to Björn Grüning, Dannon Baker, Beatriz Serrano-Solano, and Helena Rasche for their support in this effort.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/components/NavBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
</b-navbar-brand>
<b-navbar-toggle target="nav-collapse"></b-navbar-toggle>
<b-collapse id="nav-collapse" is-nav>
<b-navbar-brand id="subsite-name" v-if="subsite !== defaultSubsite" :to="`${pathPrefix}/`">
<b-navbar-brand id="subsite-name" :to="`${pathPrefix}/`">
<p>{{ subsiteName }}</p>
</b-navbar-brand>
<b-navbar-nav id="subsite-items">
<b-nav-item-dropdown id="subsite-select" v-if="subsite !== defaultSubsite" text="Regions">
<b-nav-item-dropdown id="subsite-select" text="Regions">
<b-dropdown-item v-for="link of subsiteLinks" :key="link.key" :to="link.path">
{{ link.name }}
</b-dropdown-item>
Expand Down