ArgoCD + Gitea Playground
Experiment with GitOps - deploy a demo app to a Kubernetes cluster with ArgoCD, with app manifests stored in a Git repo hosted in Gitea.

Motivation
This is a playground to see GitOps in action using ArgoCD and Gitea. A demo app is deployed to a Kubernetes cluster when the playground starts. We can make changes to the app's manifest in the Git repo hosted in Gitea and see how ArgoCD automatically syncs those changes to the cluster.
Getting Started
- Go to
Giteatab and login with:
- username:
laborant - password:
laborant
- Go to
ArgoCDtab and login with:
- username:
admin - password:
laborant
- Go to
HelloWorldApptab to view the demo app. - Make changes to
hello-world.yamlin thehello-worldrepository in Gitea and observe how ArgoCD syncs the changes to the cluster.
The git repo can be cloned by:git clone http://cplane-01:32000/laborant/hello-world.git
Under the hood
ArgoCD is deployed by following the instructions in the Getting Started section.
Gitea is deployed as a single-pod instance with dev configs using the official Helm chart.
When the playground starts:
- A
hello-worldGit repo is created in Gitea. - An app manifest
hello-world.yamlis pushed to the repo. This is a simple HTML page served onnginxweb server. - An
hello-worldArgoCD app is created that points to thehello-worldGit repo and thehello-world.yamlmanifest.
References
A real VM, not a container
Get root on a VM with its own kernel, so Docker, Kubernetes, and systemd just work.
Read the docs →
SSH from browser or CLI
Use the built-in web terminal, or connect with labctl ssh, plain ssh, scp, or rsync.
Read the docs →
Drive it with AI
Let Claude, Codex, or any MCP client start this playground and run commands in it.
Read the docs →
Expose HTTP(S) ports
Give any web app running inside the VM a public URL - for yourself or to share with others.
Read the docs →
Share terminals
Invite others into your terminal session, or open it yourself from another device.
Read the docs →
Customize with init scripts
Add shell scripts that run at boot to install packages, clone repos, or seed test data.
Read the docs →
Private networking
VMs reach the internet via NAT with no public IP; several VMs share bridge networks.
Read the docs →
Ephemeral or persistent
By default, VMs are destroyed when the session ends; enable persistence to keep the disks for next time.
Read the docs →
Built-in container registry
A private registry.iximiuz.com for every playground to share images across services and VMs.
Read the docs →