title: Repos Conf Application Registry hashtags:
- "#configuration"
- "#git"
- "#deployment"
- "#ini"
Repos Conf Application Registry
Intent
Represent managed applications in a small, hand-editable registry file that both CLI commands and the web UI can read and write.
The registry becomes the source of truth for Git repository location, deployment domains, port mapping, rate-limit policy, environment overrides, and extra volumes.
When To Use
Use this when an operator should be able to manage applications without a database, and when a single file should drive cloning, launch generation, and UI editing.
Implementation
repos.conf is parsed as repeated [repo] blocks. Supported settings include:
name,url,path, andbranchfor repository identity and Git operations.portandcontainer_portfor host/container routing.- Repeated
domainvalues for Caddy routes. rate_limit_enabled,rate_limit_zone,rate_limit_events, andrate_limit_window.- Repeated
envandvolumeentries for Compose service customization.
The parser validates unknown settings, missing URLs, bad ports, bad booleans, and non-positive rate-limit event counts. Missing names are derived from the repository URL; missing paths default to apps/<repo-name>. Repository paths are resolved relative to the discovered project root so commands can be run from nested directories.
Project Evidence
main.godefinesRepo,RateLimit,readRepos,writeRepos,addRepo,removeRepo,findProjectRoot, andresolveRepoPaths.generate.goconsumesRepovalues when rendering Caddy and Docker Compose files.web.gouses the same registry for repo add/edit/delete flows.README.mddocuments therepos.confformat.
Reuse Notes
Keep the file format small and explicit. Validate during parsing so every downstream command receives normalized data. If both humans and tools edit the file, preserve repeated fields in a deterministic order when writing.