Skip to content
Snippets Groups Projects
README.md 3.07 KiB
Newer Older
# Stackspin Outwards - Stackspout
Varac's avatar
Varac committed

This repository extends [Stackspin](https://open.greenhost.net/stackspin/stackspin)
with extra applications and overrides
xeruf's avatar
xeruf committed
focused on business use.
Once stabilized, the aim is to contribute as much upstream as possible.
Varac's avatar
Varac committed

Stackspout is used in day-to-day business
xeruf's avatar
xeruf committed
with a double-digit user number,
so all experiments happen carefully.
xeruf's avatar
xeruf committed
Still, it is an experimental offering.
xeruf's avatar
xeruf committed
## Tools

Useful tools for administration:
- my `stack` CLI helper, currently part of my dotfiles:
  https://git.jfischer.org/xeruf/dotfiles/src/branch/main/.config/shell/server#L11
- stackspin docs:
  https://docs.stackspin.net/en/v2/system_administration/customizing.html

xeruf's avatar
xeruf committed
### Guide: Creating OAuth Credentials for an external service
xeruf's avatar
xeruf committed
- add a line in `install.sh` and run it to generate the secret (TODO: Update to new stackspin mechanism)
- append another OAuth2Client definition to `overrides/oauth-clients.yaml`,
xeruf's avatar
xeruf committed
  adjusting `metadata.name` and `spec.secretName` as well as `spec.redirectUris`
- apply changes to the cluster 
xeruf's avatar
xeruf committed
- obtain the generated `client_secret` for your application from kubernetes:
xeruf's avatar
xeruf committed
      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
xeruf's avatar
xeruf committed
  -> most notably `external` to add Applications into Nextcloud as hub
- Add Email Auth back to Zulip so guests can be invited

### New Applications
xeruf's avatar
xeruf committed
below list is formatted as:
> subdomain: Service (helmrepo, if not provided by the service authors)
xeruf's avatar
xeruf committed

#### Stable including Single-Sign-On
xeruf's avatar
xeruf committed
- dev: Gitea (TODO: Forgej)
- do: Vikunja (k8s-at-home - migrating to creators chart)
- ninja: InvoiceNinja (No SSO)
#### 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
xeruf's avatar
xeruf committed
- connect: Bonfire
xeruf's avatar
xeruf committed
### Issues to Tackle
- generate_secrets.py was copied from Stackpin
xeruf's avatar
xeruf committed
  -> new mechanism
#### Functionally
xeruf's avatar
xeruf committed
- Nextcloud too slow - add Redis?
- Preconfigure user settings in Nextcloud, Vikunja and more

xeruf's avatar
xeruf committed
## Setup

> Warning: Lots of experiments happening here!
xeruf's avatar
xeruf committed
First [install Stackspin](https://docs.stackspin.net/en/latest/installation/install_stackspin.html).
Then apply the configuration to your cluster:
xeruf's avatar
xeruf committed
install.sh
xeruf's avatar
xeruf committed
Done!
Note that the added applications are currently only toggled via repository changes
and integration with Stackspin mechanisms is very rudimentary.
To list the central 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
xeruf's avatar
xeruf committed
But there are also ConfigMaps, Secrets, StatefulSets, PVCs, Helmrepos and more...