Commit
9c4ec49
CI is green on 93ef0b7, but my session's permission check blocked the merge as unreviewed. Could you press Rebase and merge on #36, or allow merges for my session?
Permission granted
@dtinth Merged to main (rebase, b52508c): https://github.com/dtinth/agent-env/pull/36
GitHubConfigurator: Preact stepper, Import button, answers inside compose.yaml by dtinth-claw[bot] · Pull Request #36 · dtinth/agent-envThe web configurator, redone as a Preact stepper in the dt.in.th design system that claw uses (dark only), and the setup answers moved into compose.yaml. Picked from three prototypes discussed on d...
What is
name: agent-env in the compose file? Would this prevent running multiple envs on a single machine?It's the Compose project name, so yes: a second deploy with the same name replaces the first's containers and shares its volumes, even from another directory. Dropping the line makes the folder name the default. Ports must still differ. Want that?
Yes. I think we should allow configuring the environment name. This will impact the hostname of the container too so when not using Tailscale the shell prompt looks nice. Default
agent-env.https://github.com/dtinth/agent-env/pull/37 The name is asked first, defaults to agent-env, and sets both the Compose project and the hostname (under Tailscale the sidecar's hostname applies instead). CI is running.
GitHubConfigurator: name the environment (Compose project and hostname) by dtinth-claw[bot] · Pull Request #37 · dtinth/agent-envEvery generated compose.yaml had name: agent-env, so a second deployment on the same host was the same Compose project as the first. docker compose up took over its containers and shared its volume...
Why https port detault to 8443? Can it be 443 instead? Also for public domain, is it possible to make it support shortlived Let's Encrypt IP certs? Alternatives are nip and sslip.
IP certs: yes. Caddy gets one with the IP as the site address and profile shortlived; I still have to check our image has that fix. Google sign-in may refuse an IP redirect URI. sslip.io/nip.io names already work. Put 443 + IP mode in #37, or a new PR?
sslip.ioWelcome to nip.io / sslip.ionip.io / sslip.io
Put in same PR pls.
@dtinth Pushed to https://github.com/dtinth/agent-env/pull/37: None mode (expose only), IPv4 certs via profile shortlived (Google refused for an IP, sslip.io suggested), 443 default. CI running.
GitHubConfigurator: name the environment (Compose project and hostname) by dtinth-claw[bot] · Pull Request #37 · dtinth/agent-envEvery generated compose.yaml had name: agent-env, so a second deployment on the same host was the same Compose project as the first. docker compose up took over its containers and shared its volume...
I want to ask for a new feature in the configurator: Allow specifying memory limit. Not sure how to deal with swap too. And maybe CPU limits too. Also need advice if disk quota or limit is possible and what are the possible ways to do it. These are advanced optional features tho.
Ways, easiest first: a ZFS dataset with quota=50G, or btrfs qgroups, if the host has one; else a loop-mounted ext4 image (fallocate, mkfs, mount, plus fstab). Then use host-directory mode for both. Want the page to print those commands?
Let's talk about disk later, let's do RAM and CPU first.
RAM and CPU are already in: https://github.com/dtinth/agent-env/commit/2ef225718e35758eff0b53b5718051f1ab7593ff. GitHub missed the push, so #37 still shows a71ffd4 and CI hasn't run. Closing and reopening #37 should fix it. Can you do that, or should I?
GitHubConfigurator: optional memory, swap and CPU limits · dtinth/agent-env@2ef2257For a shared host, the configurator can now cap the agent-env container: mem_limit, memswap_limit and cpus, all blank (no limit) by default. They cover everything in the container, rootless Docker&...
37 is already merged yesterday. Need a new PR I think
Right, sorry. New PR with just the limits, on top of main: https://github.com/dtinth/agent-env/pull/38. Checks and tests pass locally; CI is running.
GitHubConfigurator: optional memory, swap and CPU limits by dtinth-claw[bot] · Pull Request #38 · dtinth/agent-envOptional memory, swap and CPU limits in the configurator, for a shared host. Asked for on dev-null; it missed #37, which was merged before it was pushed. Memory (GiB) writes mem_limit. CPUs writes...
Watch review comments too.
@dtinth Both fixed in https://github.com/dtinth/agent-env/commit/cfbfeb1, CI green. In the wizard, - removes a limit on a re-run. The page now refuses 0x10 and 1e2. Draft replies to Devin's threads are in my session. Watching for more review comments.
GitHubLimits: "-" removes one on a re-run; the page takes only plain decimals · dtinth/agent-env@cfbfeb1On a re-run Enter keeps the previous answer, so a limit could never come off interactively; the question now says "-" where it said blank. The page converted its text with Number(), which...
Merged. QoL improvement request for Google OAuth - it should match actual steps they would do
1. Link user to https://console.cloud.google.com/auth/clients/create
2. Tell user to select "Web application" and let them easily copy the redirect URL
3. Let them paste a client ID and secret
console.cloud.google.comGoogle Cloud PlatformGoogle Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google.
commit 9c4ec49
Thanks. On it: the Google step will be link → pick Web application + copy redirect URL → paste client ID and secret, on the page and in the wizard. New PR when done.
Google steps: https://github.com/dtinth/agent-env/pull/39. Link, Web application + copyable redirect URI, then paste ID and secret. The secret goes to .env only, never compose.yaml or browser storage. Same steps in the wizard. CI and review running.
GitHubConfigurator: Google sign-in follows the console's own steps by dtinth-claw[bot] · Pull Request #39 · dtinth/agent-envGoogle sign-in now follows the steps Google's console actually takes, as asked on dev-null: A link to create the OAuth client. Pick Web application, and add the redirect URI, which has a Copy ...
Devin found 2 on #39, both real: an imported .env's secret lost to one typed earlier, and a quoted CHANGEME read as a real secret. Fixed in https://github.com/dtinth/agent-env/commit/47c437f, CI running.
GitHubClient secret: an imported .env wins, and a quoted placeholder still … · dtinth/agent-env@47c437f…counts Importing a .env on its own now clears a client secret typed earlier, since the .env's secrets are the ones meant. Whether a secret is still missing is read from the parsed value (need...