# hackerspace.zone

This site is a demo of how several useful open source, self-hosted tools can be combined with single-sign-on to make it easy for a community to quickly setup their own decentralized private infrastructure to host their data without depending on the big tech companies.
Using a shared identity across all of the separate tools makes it easy to onboard new users, as well to control administration, moderation, and updates.
There is a longer [mission statement](/mission) that goes into detail about they "_why?_" of some of the choices and the overall goals of the project.
## Sub-sites
Visit [Hackerspace Zone's](https://hackerspace.zone) self hosted sub-sites:
* [matrix.hackerspace.zone](https://matrix.hackerspace.zone/): realtime e2e federated chat with [matrix.org](https://matrix.org/)
* [docs.hackerspace.zone](https://docs.hackerspace.zone/): collaborative document editing with [HedgeDoc](https://hedgedoc.org/)
* [social.hackerspace.zone](https://social.hackerspace.zone/): federated social media with [Mastodon](https://joinmastodon.org/)
* [pixelfed.hackerspace.zone](https://pixelfed.hackerspace.zone/): image sharing [Pixelfed](https://pixelfed.org/)
* [events.hackerspace.zone](https://events.hackerspace.zone/): event planning with [FramaSoft's Mobilizon](https://joinmobilizon.org/en/)
* [cloud.hackerspace.zone](https://cloud.hackerspace.zone/): self hosted documents and calendaring with [Nextcloud](https://nextcloud.com/)
* [dashboard.hackerspace.zone](https://dashboard.hackerspace.zone/): dashboards and statistic collection with [Grafana](https://grafana.com/)
* [git.hackerspace.zone](https://git.hackerspace.zone/): source code hosting with [Gitea](https://gitea.io/en-us/)
* [login.hackerspace.zone](https://login.hackerspace.zone/): single sign on and user management for the domain with [Keycloak](https://www.keycloak.org/)
## Showcase
These sites are running on top of hackerspace-zone
* [basement.woodbine.nyc](https://basement.woodbine.nyc) - maker space in the basement of [woodbine.nyc](https://woodbine.nyc)
* [v.st](https://v.st) - community group of nerds in Amsterdam
## Upcoming events
<!-- this doesn't appear in the docs domain due to CSP, but does show up on the main domain -->
<iframe src="https://hackerspace.zone/html/calview.html?ics=https://events.hackerspace.zone/@events/feed/ics" width="100%" height=600 style="border:0"></iframe>
## Source code and issues
Source code for building the environments and configuring them:
* [`github.com/osresearch/hackerspace-zone`](https://github.com/osresearch/hackerspace-zone)
* [`git.hackerspace.zone/hudson/hackerspace-zone`](https://git.hackerspace.zone/hudson/hackerspace-zone).
There is [probably a better way to do this](https://github.com/osresearch/hackerspace-zone/issues/1), so feel free to open issues and make suggestions.
## Account Management
* Keycloak
* [User account](https://login.hackerspace.zone/realms/hackerspace/account)
* [Realm management](https://login.hackerspace.zone/admin/hackerspace/console)
* Mastodon
* [Admin dashboard](https://social.hackerspace.zone/admin/dashboard)
* [Moderation dashboard](https://social.hackerspace.zone/admin/reports)
* Mastodon doesn't set roles via SSO ([issue 18335](https://github.com/mastodon/mastodon/issues/18335)). To make a user admin from the command line as `root` requires the username:
```shell
cd mastodon
docker-compose exec -T mastodon \
bin/tootctl accounts modify USERNAME --role admin
```
* Mobilizon
* Mobilizon doesn't set roles via SSO ([issue 1105](https://framagit.org/framasoft/mobilizon/-/issues/1105), on roadmap for 2.2). To make a user admin from the command line as <tt>root</tt> requires the registered email address:
```shell
cd mobilizon
docker-compose exec -T mobilizon \
bin/mobilizon_ctl users.modify EMAIL --admin
```
* Hedgedoc doesn't have roles, so there is no need to configure admin
* Grafana roles need to be figured out: https://community.grafana.com/t/grafana-keycloak-role-mapping/41191
* Gitea seems to make the first user admin; need to track down roles.
* Matrix roles?