myCloud

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

The following components for an myCloud setup exists: include::partial-list-components.adoc[]

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 xref:base:index.adoc[Base]):

fluxcd-mycloud.yaml
---
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 <1>
  namespace: mycloud <2>
spec:
  chart:
    spec:
      sourceRef:
        kind: GitRepository
        name: wrenix-flux-charts <3>
        namespace: flux-system
      chart: "./base"
      reconcileStrategy: "Revision"
      valuesFiles:
        - "./base/values.yaml"
        - "./base-values/commons.yaml" <4>
        - "./base-values/mycloud-core.yaml" <5>
        - "./base-values/mycloud-nextcloud.yaml" <6>
        - "./base-values/mycloud-collabora.yaml" <7>
  interval: 10m
  values:
    base:
      helm:
        release:
          valuesFrom:
            - kind: Secret <8>
              name: mycloud-secrets
              valuesKey: masterPassword
              targetPath: commons.masterPassword
            - kind: Secret <9>
              name: mycloud-secrets
              valuesKey: password
              targetPath: commons.mail.password
    ##
    # Commons
    ##
    commons:
      mail: <10>
        host: "posteo.de"
        username: "mycloud@posteo.net"
        use_tls: true
        from: "mycloud@posteo.net"

      helm:
        chart:
          sourceRef: <11>
            kind: GitRepository
            name: wrenix-flux-charts
            namespace: flux-system

      ingress:
        domain: "mycloud.eu" <12>


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