Add Clay agent interface, fix registry UI routing, and misc improvements
- Deploy Clay (claude Code web UI) at agent.ladkau.de behind basic auth; Traefik proxies to clay's HTTPS port 2633 with insecureSkipVerify - Document MCP server persistence: binaries need to be baked into the Dockerfile, config in /opt/clay/data survives rebuilds - Document scheduled agent workflows via Gitea Actions on.schedule with email reporting via Gmail SMTP - Fix registry UI: split /v2/ (registry) and / (UI) into separate Traefik routers; add registry_internal network - Add weekly registry GC cron job (/usr/local/bin/registry-gc) - Remove rate-limit middleware from Gitea router (act_runner polling exceeded 60 req/min limit) - Set Traefik websecure readTimeout: 0 to fix large layer upload 499s
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Managed by Ansible — do not edit manually
|
||||
services:
|
||||
clay:
|
||||
image: clay:local
|
||||
build:
|
||||
context: {{ clay_data_dir }}
|
||||
dockerfile: Dockerfile
|
||||
container_name: clay
|
||||
restart: unless-stopped
|
||||
tty: true
|
||||
environment:
|
||||
- ANTHROPIC_API_KEY={{ anthropic_api_key }}
|
||||
volumes:
|
||||
- {{ clay_data_dir }}/data:/root/.clay
|
||||
- {{ clay_data_dir }}/workspace:/workspace
|
||||
command: ["clay-server", "--yes", "-p", "2633"]
|
||||
networks:
|
||||
- traefik_public
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.clay.rule=Host(`{{ domain_clay }}`)"
|
||||
- "traefik.http.routers.clay.entrypoints=websecure"
|
||||
- "traefik.http.routers.clay.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.clay.loadbalancer.server.scheme=https"
|
||||
- "traefik.http.services.clay.loadbalancer.server.port=2633"
|
||||
- "traefik.http.routers.clay.middlewares=clay-auth"
|
||||
{% set ns = namespace(entries=[]) %}
|
||||
{% for user in clay_users %}
|
||||
{% set ns.entries = ns.entries + [user.username + ':' + (user.password | password_hash('bcrypt', (user.username | hash('md5'))[:22]) | replace('$', '$$'))] %}
|
||||
{% endfor %}
|
||||
- "traefik.http.middlewares.clay-auth.basicauth.users={{ ns.entries | join(',') }}"
|
||||
|
||||
networks:
|
||||
traefik_public:
|
||||
external: true
|
||||
Reference in New Issue
Block a user