A collection of Argo CD Applications and ApplicationSets to deploy common FOSS building blocks and web applications. Many are in a "smol-app" format and heavily used in smol-k8s-lab. This repo is mirrored to codeberg.org. https://codeberg.org/open-engineering/argocd-apps
  • Go Template 62.1%
  • CSS 33.2%
  • Shell 4.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-14 23:45:24 +00:00
.forgejo allow renovate to run hourly again 2026-10-23 13:41:10 +02:00
alloy Update Helm release alloy to v1.16.0 2026-11-13 15:45:29 +00:00
argocd clean up argocd server scaling 2026-11-13 15:13:03 +01:00
autoscaler fix where we get our VPA CRDs 2026-10-17 18:56:34 +02:00
cert-manager fix servicemonitor and gatewayapi referecne 2026-11-13 19:51:44 +01:00
cilium update gateway CRDs to 1.6.3 2026-11-10 10:18:53 +01:00
collabora_online Update Helm release collabora-online to v1.3.8 2026-11-07 18:45:54 +00:00
coturn clean up more references to the bitnami helm charts 2026-10-17 16:23:57 +02:00
crowdsec unduplicate rule 2026-11-14 22:24:57 +01:00
demo Update Helm release coturn to v10.4.0 2026-11-14 10:45:37 +00:00
external-secrets-operator Update Helm release external-secrets to v2.15.0 (#221) 2026-11-10 11:39:31 +00:00
forgejo don't deploy httproute for forgejo through our smol-plugin 2026-11-12 10:00:42 +01:00
funkwhale funkwhale: use new valkey smol-plugin (#274) 2026-11-14 22:57:47 +00:00
generic-app begin the process of getting rid of bitwarden 2026-11-02 10:37:34 +01:00
generic-device-plugin cleaning up more new org and repos 2026-09-08 10:55:26 +02:00
ghost explicitly disable ghost ingress when gateway is enabled 2026-11-12 12:40:44 +01:00
gotosocial gts: don't deploy ssl frontend if we're using listenersets 2026-11-11 22:29:08 +01:00
grafana_stack more query tuning 2026-11-14 18:18:44 +01:00
harbor Update Helm release valkey to v1 (#257) 2026-11-13 07:39:50 +00:00
headscale get headscale ready for listenersets 2026-11-12 02:10:38 +01:00
home-assistant get home assistant ready for listenerSets 2026-11-12 02:07:30 +01:00
ingress-nginx cleaning up more new org and repos 2026-09-08 10:55:26 +02:00
invoice-ninja get invoice-ninja more smol-appy, including using the new valkey smol-plugin (#273) 2026-11-14 22:41:33 +00:00
jellyfin get jellyfin ready for listenersets 2026-11-12 02:27:47 +01:00
k8tz Update Helm release k8tz to v0.22.0 2026-10-31 19:46:09 +00:00
k8up add more data about k8up docs 2026-11-14 10:46:25 +01:00
k8up_backups_helm_chart update all helm docs and clean up home assitant namespace stuff 2026-06-11 10:25:16 +02:00
kubevirt Update kubevirt/kubevirt-stack-appset.yaml 2026-11-08 17:07:44 +00:00
kyverno Add some default alerts (#245) 2026-11-12 15:17:11 +00:00
libretranslate fix duplicate listenerset thingy 2026-11-13 20:50:37 +01:00
longhorn add another longhornctl command 2026-11-06 14:30:29 +01:00
mail-stack get mailstack ready for listenersets 2026-11-12 10:14:14 +01:00
mastodon get mastodon ready for new valkey and new db-credentials (#272) 2026-11-14 22:16:50 +00:00
matrix Update harbor.open.engineering/charts/matrix Docker tag to v25.19.0 (#268) 2026-11-14 13:57:37 +00:00
metallb enable more prometheus rules 2026-11-12 17:57:05 +01:00
mysql/operators Add some default alerts (#245) 2026-11-12 15:17:11 +00:00
nextcloud Update Helm release nextcloud to v9.4.4 2026-11-14 23:45:24 +00:00
nvidia_device_plugin Update Helm release nvidia-device-plugin to v0.20.1 2026-09-27 12:56:23 +00:00
openbao enable more prometheus rules 2026-11-12 17:57:05 +01:00
peertube update peertube to user valkey standalone smol-plugin (#271) 2026-11-14 21:46:58 +00:00
postgres Add some default alerts (#245) 2026-11-12 15:17:11 +00:00
renovate Update Helm release renovate to v46.432.1 2026-11-14 04:45:25 +00:00
s3-httproutes clean up how we generate s3 routes 2026-11-11 20:48:59 +01:00
s3_bucket_ingresses don't hardcode s3 ingresses to peertube 2025-01-17 22:36:30 +01:00
s3_persistence_and_backups clean up values 2026-01-30 21:33:16 +01:00
scripts remove more ./ from scripts 2024-12-15 17:44:11 +01:00
seaweedfs Update Helm release seaweedfs-csi-driver to v0.2.45 2026-11-08 20:45:54 +00:00
slink get slink ready for listenersets 2026-11-10 13:07:39 +01:00
smol-plugins fix collabora admin credentials 2026-11-14 16:45:40 +01:00
snapshot-controller/smol-app begin the process of getting rid of bitwarden 2026-11-02 10:37:34 +01:00
stalwart start work on smol-plugins, including ListenerSets (#215) 2026-11-09 15:12:26 +00:00
traefik Update traefik/README.md 2026-11-13 20:33:44 +00:00
valkey Update Helm release valkey to v1 (#257) 2026-11-13 07:39:50 +00:00
velero Update Helm release velero to v12.2.5 2026-11-12 13:22:46 +00:00
writefreely remove enabled from podsecuritycontext for writefreely 2026-11-12 12:47:50 +01:00
zitadel fix listenersets for zitadel, again 2026-11-13 21:26:40 +01:00
.gitignore update gitignore 2024-03-23 10:45:54 +01:00
AI_POLICY.md fix funkwhale docs and ai policy 2026-08-25 16:05:41 +02:00
badargoart_small.png add bad argocd art directly to repo 2024-07-07 14:26:06 +02:00
CODEOWNERS Update CODEOWNERS - add valkey for cloudymax 2024-07-25 20:24:53 +02:00
CONTRIBUTING.md update contributing docs 2026-10-18 11:33:11 +02:00
LICENSE initial recommit 2023-07-01 14:35:38 +02:00
README.md start work on smol-plugins, including ListenerSets (#215) 2026-11-09 15:12:26 +00:00
renovate.json allow more auto-merges of minor versions 2026-11-05 13:50:16 +01:00

Shared Argo CD templates for self hosted infra

A collection of Argo CD templates for deploying helm apps or directories of Kubernetes (k8s) manifests as Argo CD apps called Smol Apps. We're still working on full stability, but please feel free to ask questions or make suggestions 🧡

These apps were originally designed to be compatible with smol-k8s-lab, but they can be used anywhere :)

Note

This repo is also mirrored to https://codeberg.org/open-engineering/argocd-apps where you can submit Issues and PRs.

Core Tenants

Here's some quick guidelines, but you if you'd like to contribute, please read the full contributing guidelines here 😃!

  • Follow a base schema for all our files and directories so that we can easily make more of them faster.

  • Make secure as we go to avoid the dreaded all-at-once security pass (but we may have missed something, in which case, please let us know).

  • Be kind and if something doesn't work as it should, try to fix the upstream repo before introducing a good-enough fix here.

  • NEVER FORGET THE BACKUPS. DO YOU REMEMBER WHAT HAPPENED LAST TIME WE DIDN'T HAVE THIS RULE? 😭

All Smol Apps

Continuous Deployment

App Directory Description
argocd The one, the only, Argo CD is used for declarative continuous delivery to Kubernetes with a fully-loaded UI. This actually deploys all the other apps and manages itself too :3

Chat

App Directory Description
coturn TURN/STUN server for connecting VoIP peers
matrix matrix is a selfhosted chat server that plugs into a bunch of other chat apps

Experimental

App Directory Description
element server suite community edition ESS is the official Element HQ maintained matrix stack, but it's a little behind on things like support for gateway API, so we don't recommend it at this time.

Backups

App Directory Description
k8up K8up is a k8s native backups done via restic, so you can sync your persistent volumes to external s3 compliant storage
velero Verlo is a k8s native backups done via restic, so you can sync your persistent volumes (and volumeSnapshots) to external s3 compliant storage

Database and Key Value Stores

MySQL

We mostly just use the PXC operator at this point.

App Directory Description
mysql-operator MySQL database management operator to spin up MySQL clusters, and create backups
percona-pxc-operator MySQL database management operator to spin up MySQL clusters, and create backups

PostgreSQL

App Directory Description
cloud-native-postgres PostgreSQL database management operator to spin up postgres instances, collect metrics, and create backups

Valkey

App Directory Description
Valkey Official stand alone Valkey helm chart on k8s. Valkey is a more FOSS alternative to Redis.
Valkey Cluster ValkeyCluster object. Valkey is a more FOSS alternative to Redis Cluster.
Valkey Operator Valkey Operator helm chart on k8s. Valkey is a more FOSS alternative to Redis Cluster.

Email

It was only a matter of time before we completed our grey beard metamorphasis and started self-hosting email...

App Directory Description
Open Engineering Mail Stack The Open Engineering Mail Stack is a self hosted email suite using traditional tooling like exim/postfix and dovecot. Still in beta
Stalwart Stalwart is a self hosted email suite. Not currently supported due to lack of production readiness on stalwart's side.

File Storage

App Directory Description
Collabora Online Collabora Online is a powerful online document editing suite
harbor Container Registry and OCI artifact store with built-in vulernability scanning via Trivy
nextcloud Nextcloud is a self hosted file storage cloud solution. Replaces something like google drive/photos/notes/meets/calendar - mostly stable
Volume Snapshot Controller Volume Snapshot Controller for taking snapshots of PVCs

Multi-media

App Directory Description
funkwhale Funkwhale is kind of like a self hosted spotify. It specializes in audio.
jellyfin Jellyfin is a home media storage and viewing web app. It specializes in video.

S3 Compatible

App Directory Description
SeaweedFS SeaweedFS is a secure and very fast self hosted S3 compatible Object Store specialized for either many files or large files

Experimental

App Directory Description
garage Garage is a self hosted S3 compatible Object Store
longhorn Longhorn is a lightweight, reliable and easy-to-use distributed block storage system for Kubernetes. (not currently actively in development)

Identity Providers and SSO

App Directory Description
zitadel helm chart for Zitadel, an Identity Access Management tool with built in OpenIDConnect for authenticating to self hosted apps. Recommended over keycloak.

Experimental

App Directory Description
keycloak helm chart for Keycloak, an Identity Access Management tool with built in OpenIDConnect for authenticating to self hosted apps
oauth2-proxy Oauth2 proxy that works with Google, however we're testing a keycloak provider right now
vouch-proxy helm chart for Vouch, an OAuth2 proxy that allows you to use ingress-nginx annotations to connect to a third party identity provider, giving you proper auth on websites that don't have auth. Currently works with the zitadel provider in this template, but also known to work with keycloak, google, and github. Deprecated as we don't use ingress-nginx anymore.

Monitoring

App Directory Description
alloy Alloy for collecting metrics, logs, and traces. We also bundle kube-state-metrics and cadvisor in this smol-app. Alloy forwards all it's data to our LGTM Stack.
LGTM Stack Loki, Grafana, Tempo, Mimir for aggregating and visualizing metrics, logs, and traces for monitoring/alerting, and dashboards.
prometheus-push-gateway Installs the Prometheus Push Gateway which enables pushing metrics from jobs that would be difficult or impossible to scrape

Experimental

App Directory Description
kepler helm chart for Kepler, (Kubernetes-based Efficient Power Level Exporter), which uses eBPF to probe performance counters and other system stats, use ML models to estimate workload energy consumption based on these stats, and exports them as Prometheus metrics.

Networking

App Directory Description
metallb A helm chart for metallb which will let you manager your own ip address pool for use with ingress

Ingress

App Directory Description
cert-manager helm chart for cert-manager, for providing TLS certificates based on nginx ingress annotations
traefik helm chart for traefik, an ingress controller to allow external traffic to the cluster

Experimental and Deprecated

App Directory Description
cilium A helm chart for cilium, for transparently securing network connectivity/loadbalancing b/w app workloads such as app containers or processes
ingress-nginx helm chart for ingress-nginx, an nginx ingress controller to allow external traffic to the cluster (now Deprecated and slowly being phased out in favor of traefik)

VPN

App Directory Description
headscale VPN, there isn't an official helm chart, so we're still working on this
wireguard A helm chart for wg-access-server which uses Wireguard®️ for a VPN

Other

Other useful tools that don't fit neatly into any one category.

Experimental

App Directory Description
k8tz A helm chart for k8tz, to inject timezone info into cronjob pods
LibreTranslate A helm chart for LibreTranslate, to self host a translation tool

Security

App Directory Description
kyverno Kubernetes-native policy management

Experimental

App Directory Description
opa Open Policy Agent Gatekeeper

Secrets Management

App Directory Description
external-secrets-operator ESO (External Secrets Operator) used for sourcing k8s secrets from an external provider
openbao OpenBao is an open source secrets management solution forked from Vault and supported by the Linux Foundation. It works great with ESO and is what we'll be transitioning all our apps to use going forward.

Experimental and Deprecated

App Directory Description
infisical Infisical is an open source secrets management solution and it has a k8s secrets operator. We demoed it, but never really used it much.

Social Media

App Directory Description
ghost Ghost is a selfhosted blogging platform.
gotosocial GoToSocial is a selfhosted social media site, includes postgresql. Advertised as lighter weight in requirements than Mastodon.
mastodon Mastodon is a selfhosted social media site, includes postgresql, elastic search (for full text searching), and valkey (in memory caching)
peertube PeerTube is a selfhosted video hosting website that acts a replacement for YouTube. This app of apps includes postgresql, valkey, and S3 (via SeaweedFS).
writefreely WriteFreely is a slim selfhosted blogging platform.

Virtual Machines

App Directory Description
kubevirt KubeVirt is a virtual machine management add-on for Kubernetes.

Experimental

App Directory Description
Nvidia GPU Operator The GPU Operator allows administrators of Kubernetes clusters to manage GPU nodes

All Smol Plugins

These are used for generating specific objects and components related to smol-apps. Read more in the smol-plugins README.

Troubleshooting Tips

  • Namespace stuck in terminating state

    kubectl get namespace "<NAMESPACE>" -o json   | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/"   | kubectl replace --raw /api/v1/<NAMESPACE>/cdi/finalize -f -
    
  • Find all items in a namespace

    kubectl api-resources --verbs=list --namespaced -o name   | xargs -n 1 kubectl get --show-kind --ignore-not-found -n <NAMESPACE>
    
  • be sure to check for and remove Mutatingwebhookconfiguration and Validatingwebhookconfiguration

  • Patching a resource you found via the Xargs search

    kubectl patch <CLASS>/<NAME>-p '{"metadata":{"finalizers":[]}}' --type=merge -n <NAMESPACE>