Skip to content

Forgejo

Forgejo is an open source self hosted git server and frontend.

⚠️ forgejo is an experimental smol-k8s-lab app, so it may be unstable

Example configuration

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
apps:
  forgejo:
    description: |
       [magenta]⚠️ Experimental[/magenta]
       [link=https://forgejo.org/]forgejo[/link] is an open source self hosted git server and frontend.

       To provide sensitive values via environment variables to smol-k8s-lab use:
          - FORGEJO_S3_BACKUP_SECRET_KEY
          - FORGEJO_S3_BACKUP_ACCESS_ID
          - FORGEJO_RESTIC_REPO_PASSWORD
          - FORGEJO_SMTP_PASSWORD
    enabled: false
    init:
      enabled: false
      values:
        admin_user: admin
        admin_email: test@test.com
        smtp_user: test
        smtp_host: mymailhost.com
        smtp_password:
          value_from:
            env: FORGEJO_SMTP_PASSWORD
    backups:
      # cronjob syntax schedule to run forgejo pvc backups
      pvc_schedule: 10 0 * * *
      # cronjob syntax (with SECONDS field) for forgejo postgres backups
      # must happen at least 10 minutes before pvc backups, to avoid corruption
      # due to missing files. This is because the backup shows as completed before
      # it actually is
      postgres_schedule: 0 0 0 * * *
      s3:
        # these are for pushing remote backups of your local s3 storage, for speed and cost optimization
        endpoint: ""
        bucket: ""
        region: ""
        secret_access_key:
          value_from:
            env: FORGEJO_S3_BACKUP_SECRET_KEY
        access_key_id:
          value_from:
            env: FORGEJO_S3_BACKUP_ACCESS_ID
      restic_repo_password:
        value_from:
          env: FORGEJO_RESTIC_REPO_PASSWORD
    argo:
      # secrets keys to make available to Argo CD ApplicationSets
      secret_keys:
        # hostname that users go to in the browser
        hostname: ""
        ## you can delete these if you're not using tolerations/affinity
        # toleration_key: ""
        # toleration_operator: ""
        # toleration_value: ""
        # toleration_effect: ""
        ## these are for node affinity, delete if not in use
        # affinity_key: ""
        # affinity_value: ""
        pvc_capacity: 10Gi
        # set the local s3 provider for forgejo's public data in one bucket
        # and private database backups in another. can be seaweedfs for now
        s3_provider: seaweedfs
        # how large the backing pvc's capacity should be for minio or seaweedfs
        s3_pvc_capacity: 10Gi
        # local s3 endpoint for postgresql backups, backed up constantly
        s3_endpoint: ""
        # optional region where your s3 bucket lives
        s3_region: eu-central-1
        # access mode the gotosocial pvc
        access_mode: ReadWriteOnce
      # git repo to install the Argo CD app from
      repo: https://github.com/small-hack/argocd-apps
      # path in the argo repo to point to. Trailing slash very important!
      path: forgejo/app_of_apps/
      # either the branch or tag to point at in the argo repo above
      revision: main
      # kubernetes cluster to install the k8s app into, defaults to Argo CD default
      cluster: https://kubernetes.default.svc
      # namespace to install the k8s app in
      namespace: forgejo
      # recurse directories in the git repo
      directory_recursion: false
      # source repos for Argo CD App Project (in addition to argo.repo)
      project:
        name: forgejo
        # depending on if you use seaweedfs or minio, you can remove the other source repo
        source_repos:
          - code.forgejo.org
          - seaweedfs.github.io/seaweedfs/helm
          - https://small-hack.github.io/cloudnative-pg-cluster-chart
        destination:
          # automatically includes the app's namespace and argocd's namespace
          namespaces: []