stackspout/README.md

2.6 KiB

Stackspin Outwards - Stackspout

This repository extends Stackspin with extra applications and overrides to make it more commercially/professionally interesting. Once stabilized, the aim is to contribute as much upstream as possible.

Stackspout is used in day-to-day business with a double-digit user number, so all experiments happen carefully.

Tools

Useful tools for administration:

Guide: Create OAuth Credentials for an external service

  • add a line in basic/install.sh and run it to generate the secret

  • append another OAuth2Client definition to basic/overrides/oauth-clients.yaml, adjusting metadata.name and spec.secretName as well as spec.redirectUris

  • apply changes to the cluster

  • obtain the generated client_secret for your application from kubernetes:

    kubectl get secret -n flux-system stackspin-APP-oauth-variables --template '{{.data.client_secret}}' | base64 -d
    

    with client_id:

    kubectl get secret -n flux-system stackspin-APP-oauth-variables --template '{{.data.client_id}}{{"\n"}}{{.data.client_secret}}{{"\n"}}' | while read in; do echo $in | base64 -d; echo; done
    

Customizations

Overrides

  • Adds many Nextcloud extensions and some configuration
  • Add Email Auth back to Zulip

New Applications

below list is formatted as:

subdomain: Service (helmrepo, if not provided by the service authors)

Stable including Single-Sign-On

  • dev: Gitea
  • do: Vikunja (k8s-at-home - migrating to truecharts)
  • ninja: InvoiceNinja

In Development

  • people: SuiteCRM (bitnami repo)
  • time: Kimai (robjuz repo)

Planned

  • meet: Jitsi Meet
  • wiki: Wiki (maybe wikijs, but I'd like something that integrated with Nextcloud and Markdown/Orgdown)

Ideas

  • link: URL Shortener
  • Bonfire

Issues to tackle

Structurally

  • generate_secrets.py was copied from Stackpin

Functionally

  • Nextcloud too slow - add Redis
  • Preconfigure user settings in Nextcloud, Vikunja and more

Installation

Warning: Lots of experiments happening here!

Apply it to your cluster:

basic/install.sh

List the resource related to this repo:

kubectl get gitrepositories -A
kubectl get kustomization -A -o=jsonpath='{.items[?(@.spec.sourceRef.name=="stackspout")].metadata.name}'
kubectl -n stackspout get helmreleases
kubectl -n stackspout get pods

But there are also ConfigMaps, Secrets, StatefulSets, PVCs, Helmrepos and all that stuff...