Skip to content
Snippets Groups Projects
README.md 2.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Stackspin Outwards - Stackspout
    
    Varac's avatar
    Varac committed
    
    
    This repository extends [Stackspin](https://open.greenhost.net/stackspin/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.
    
    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
    ## 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
    
    ### 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 
    
    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
    - Add Email Auth back to Zulip
    
    ### New Applications
    
    xeruf's avatar
    xeruf committed
    below list is formatted as:
    
    > subdomain: Service (helmrepo, if not provided by the service authors)
    #### Stable including Single-Sign-On
    - dev: Gitea 
    
    xeruf's avatar
    xeruf committed
    - 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!
    
    Varac's avatar
    Varac committed
    
    Apply it to your cluster:
    
    ```sh
    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...