fab-city-software-kit/README.md

122 lines
5.5 KiB
Markdown
Raw Normal View History

2022-07-12 13:44:03 +02:00
<p align="center">
<img src="https://raw.githubusercontent.com/dyne/interfacer-docs/main/docs/_media/general/interfacer-logo.png" alt="Interfacer" />
2022-07-12 13:44:03 +02:00
</p>
<h1 align="center">Fab City Software Kit for Kubernetes ⚓️</h1>
2022-07-12 13:44:03 +02:00
<h4 align="center">
<a href="https://interfacerproject.github.io/interfacer-docs">Documentation</a> |
2022-07-12 13:44:03 +02:00
<a href="https://www.interfacerproject.eu/">Website</a> |
<a href="https://www.interfacerproject.eu/#news">Blog</a>
2022-07-12 13:44:03 +02:00
</h4>
<p align="center">
<a href="https://gitlab.fabcity.hamburg/software/fab-city-os-core-chart/LICENSE"><img src="https://img.shields.io/badge/license-AGPL-informational" alt="License"></a>
<a href="https://matrix.to/#/#fcos:fabcity.hamburg"><img src="https://img.shields.io/badge/Matrix-FabCityOS-blue.svg?logo=element" alt="Matrix"></a>
2022-07-12 13:44:03 +02:00
</p>
Welcome to the Fab City Software Kit! This Repo is designed to be a lightweight way to configure the Fab City Software Kit applications. Fab City Software Kit is a bundle of Applications to enabling a data-based circular economy via global collaboration and local production.
## About the **INTERFACER** Project
The goal of the INTERFACER project is to build the open-source digital infrastructure for Fab Cities.
Our vision is to promote a green, resilient, and digitally-based mode of production and consumption that enables the greatest possible sovereignty, empowerment and participation of citizens all over the world.
We want to help Fab Cities to produce everything they consume by 2054 on the basis of collaboratively developed and globally shared data in the commons.
To know more [DOWNLOAD THE WHITEPAPER](https://www.interfacerproject.eu/assets/news/whitepaper/IF-WhitePaper_DigitalInfrastructureForFabCities.pdf).
2022-07-12 13:44:03 +02:00
## Table of Contents <!-- omit in toc -->
- [About the **INTERFACER** Project](#about-the-interfacer-project)
2022-07-12 13:44:03 +02:00
- [🚀 Getting Started](#-getting-started)
- [Kubernetes introduction](#kubernetes-introduction)
2022-07-12 13:44:03 +02:00
- [Repository structure](#repository-structure)
- [⚙️ Dependencies](#-dependencies)
- [Install kubectl](#install-kubectl)
- [Install helm](#install-helm)
- [💾 Install Fab City Software Kit](#-install-fab-city-software-kit)
- [📖 Documentation](#-documentation)
- [Tools](#tools)
- [Helm Charts](#helm-charts)
- [👤 Contributing](#-contributing)
- [🌐 Links](#-links)
- [💼 License](#-license)
2022-07-12 13:44:03 +02:00
## 🚀 Getting Started
### Kubernetes introduction
2022-07-12 13:44:03 +02:00
Please refer to our [introductory guide](./KUBERNETES.md) for a brief overview of Kubernetes setup, cluster sizing, command-line tools, and security considerations.
2022-07-12 13:44:03 +02:00
### Repository structure
```yaml
├── base # kustomize global objects folder
│   ├── kustomization.yaml # kustomize global application config
│   └── ... # kustomize global cluster objects
├── apps # kustomize global applications folder
│   ├── gitea # kustomize global application folder
│   │ ├── kustomization.yaml # kustomize global application definition
│   │   ├── charts # helm global chart config folder
│   │ └── ... # kustomize global application objects
│   └── ... # kustomize global applications objects
├── overlays # kustomize environment overrides
│   ├── dev # kustomize environment specific
│   │   ├── kustomization.yaml # kustomize environment definition
│   │   └── cert-manager # kustomize applications folder
│   │   ├── kustomization.yaml # kustomize application config
│   │   └── ... # kustomize application objects
│   └── ... # kustomize environment folder
├── .envrc # direnv support file
└── flake.nix # nix flake for local runtime dependency
2022-07-12 13:44:03 +02:00
```
## ⚙️ Dependencies
### Install kubectl
2022-07-12 13:44:03 +02:00
`kubectl` is the most commonly used CLI to manage a Kubernetes cluster. The installation instructions are [available here](https://kubernetes.io/docs/tasks/tools/install-kubectl/).
### Install helm
2022-07-12 13:44:03 +02:00
`helm` is a Command Line Interface which will automate chart management and installation on your Kubernetes cluster. To install Helm, follow the [Helm installation instructions](https://helm.sh/docs/intro/install/).
2022-07-12 13:44:03 +02:00
### 💾 Install Fab City Software Kit
2022-07-12 13:44:03 +02:00
```sh
git clone https://gitlab.fabcity.hamburg/software/fab-city-software-kit/
cd fab-city-software-kit
2022-11-30 12:14:39 +01:00
kubectl kustomize --enable-helm overlays/dev | kubectl apply -f -
2022-07-12 13:44:03 +02:00
```
## 📖 Documentation
### Tools
- [kubectl](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands)
- [kustomize](https://kubectl.docs.kubernetes.io/guides/)
- [helm](https://helm.sh/docs/)
### Helm Charts
- [Cert Manager](https://cert-manager.io/docs/)
- [Ingress Nginx](https://kubernetes.github.io/ingress-nginx/)
- [Fab City OS Core](https://gitlab.fabcity.hamburg/software/fab-city-os-core-chart)
- [Gitea](https://gitea.com/gitea/helm-chart/)
- [Matrix Synapse](https://github.com/ananace/matrix-synapse)
## 👤 Contributing
Any new contribution is more than welcome in this project! If you want to know more about the development workflow or want to contribute, please visit our [contributing guidelines](/CONTRIBUTING.md) for detailed instructions!
## 🌐 Links
- <https://interfacerproject.eu/>
- <https://fabcity.hamburg/>
2022-07-12 13:44:03 +02:00
## 💼 License
2022-07-12 13:44:03 +02:00
[AGPL-3.0](./LICENSE). © 2023 Fab City Hamburg e. V.