Files
ttl.sh/README.md

40 lines
1.6 KiB
Markdown

# ttl.sh
## An ephemeral container registry for CI workflows.
## What is ttl.sh?
ttl.sh is an anonymous, expiring container registry built on [zot](https://zotregistry.dev).
This repo holds the host configuration (Ansible), the Next.js marketing site (`web/`), and
the Docker Compose stack that runs on the server. It does not provision infrastructure —
it configures a host that already exists.
## Layout
| Path | What it is |
| --------------------- | ------------------------------------------------------ |
| `ansible/` | Nginx + TLS, Docker, and the Compose deployment |
| `web/` | Next.js site served at https://ttl.sh |
| `static/` | Legacy static site assets |
| `docker-compose.yaml` | The two services that run on the host: `web` and `zot` |
## How it runs
Nginx terminates TLS and proxies:
- `/` to the `web` container on port 3000
- `/v2` to the `zot` container on port 5000 (`/v2/_catalog` is blocked)
Zot runs an off-the-shelf image (`ghcr.io/project-zot/zot-linux-amd64`) with no local
customization. Its only configuration is `zot-config.json`, rendered onto the host by
Ansible from `ansible/templates/zot-config.json.j2`, which points zot at an S3-compatible
bucket for blob storage.
Tag expiry is handled separately and is not yet wired up in this repo.
## Deploying
See [DEPLOYING.md](DEPLOYING.md). Pushes to the deploy branch also run
`.github/workflows/deploy.yml`, which builds and pushes the `web` image and then runs the
Ansible playbook.