mirror of
https://github.com/replicatedhq/ttl.sh.git
synced 2026-08-25 03:07:15 +00:00
40 lines
1.6 KiB
Markdown
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.
|