myCloud

a bundle of OpenSource Software with one user management.

Current based only on: authentik

First Login

Your main Account must be initalized: https://auth.<commons.ingress.domain>/if/flow/initial-setup/

Components

Usage

My base-values/mycloud-*.yaml does not set any namespace, so the same the the Base-Helmchart is used (maybe you like to use multiple myClouds in different namespaces).

Example usage (warning, the base-values are not versioned, see Base):
---
apiVersion: v1
kind: Namespace
metadata:
  name: mycloud (1)

---
apiVersion: v1
kind: Secret (2)
metadata:
  name: mycloud-mail
  namespace: mycloud (1)
data:
  password: MAIL_ACCOUNT_PASSWORD

---
apiVersion: v1
kind: Secret (3)
metadata:
  name: mycloud-master-password
  namespace: mycloud (1)
data:
  masterPassword: MASTER_PASSWORD_FOR_GENERATE_EVERY_A_NEW_ONE

---
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: wrenix-flux-charts (4)
  namespace: flux-system
spec:
  url: https://codeberg.org/wrenix/flux-charts.git
  ref:
    branch: main
  interval: 10m
  # for more info about verification take an look here:
  #   - https://fluxcd.io/flux/components/source/gitrepositories/#verification
  #   - https://wrenix.codeberg.page/docs/wrenix-flux/latest/#_secure_with_verify
  # later replaced with oci and cosign
  # verify:
  #   mode: HEAD
  #   secretRef:
  #     name: gpg-publickey

---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: mycloud (5)
  namespace: mycloud (1)
spec:
  chart:
    spec:
      sourceRef:
        kind: GitRepository
        name: wrenix-flux-charts (4)
        namespace: flux-system
      chart: "./base"
      reconcileStrategy: "Revision"
      valuesFiles:
        - "./base/values.yaml"
        - "./base-values/commons.yaml" (6)
        - "./base-values/mycloud-core.yaml" (7)
        - "./base-values/mycloud-nextcloud.yaml" (8)
        - "./base-values/mycloud-collabora.yaml" (9)
  interval: 10m
  values:
    ##
    # Commons
    ##
    commons:
      mail: (10)
        host: "posteo.de"
        username: "mycloud@posteo.net"
        use_tls: true
        from: "mycloud@posteo.net"

      helm:
        chart:
          sourceRef: (4)
            kind: GitRepository
            name: wrenix-flux-charts
            namespace: flux-system

      ingress:
        domain: "mycloud.eu" (11)

    componentCommons:
      helm:
        release:
          valuesFrom:
            - kind: Secret (3)
              name: mycloud-master-password
              valuesKey: masterPassword
              targetPath: commons.masterPassword
            - kind: Secret (2)
              name: mycloud-mail
              valuesKey: password
              targetPath: commons.mail.password

    ##
    # Compoments
    ##
    components:
      mycloud-nextcloud:
        values: (12)
          quota: "100 MB"
1 namespace where install all the components later
2 secret to bypass secure values into the mycloud-components (mail)
3 secret to bypass secure values into the mycloud-components (masterPassword)
4 reference where base and all the components are founded by fluxcd
5 use of base-helm chart for fluxcd to bundle the different mycloud-components together
6 use my default commons values for flux-chart components
7 use my default to setup all commons for mycloud-components and the mycloud-core components (e.g. mycloud-services and mycloud-authentik)
8 use my default values for usage of mycloud-nextcloud (it also configure mycloud-services for another database and mycloud-authentik for user management)
9 use my default values for usage of mycloud-collabora (it also configure mycloud-nextcloud if it is also used)
10 setup default mail configuration (for all components) for more commons values take an look into the used components (or base-values)
11 setup default domain (where subdomains are generate for the different components)
12 overwrite componets values (here setup default quota for an use in mycloud-nextcloud)