FROM ghcr.io/openabdev/openab:latest
USER root
RUN apt-get update && apt-get install -y curl && \ curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install -y nodejs && \ npm install -g @google/gemini-cli
USER 1000
FROM ghcr.io/openabdev/openab:latest
USER root
RUN apt-get update && apt-get install -y curl && \ curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install -y nodejs && \ npm install -g @google/gemini-cli
USER 1000
FROM ghcr.io/openabdev/openab:latest
USER root
RUN apt-get update && apt-get install -y curl && \ curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install -y nodejs && \ npm install -g @google/gemini-cli
USER 1000
gcloud compute instances create openab-server \ --project=your-project-id \ --zone=asia-east1-b \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata-from-file startup-script=setup-openab.sh \ --metadata=tg_bot_token=YOUR_BOT_TOKEN
gcloud compute instances create openab-server \ --project=your-project-id \ --zone=asia-east1-b \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata-from-file startup-script=setup-openab.sh \ --metadata=tg_bot_token=YOUR_BOT_TOKEN
gcloud compute instances create openab-server \ --project=your-project-id \ --zone=asia-east1-b \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata-from-file startup-script=setup-openab.sh \ --metadata=tg_bot_token=YOUR_BOT_TOKEN
[agent]
command = "gemini"
args = ["--acp"]
env = { GEMINI_API_KEY = "AIzaSy..." }
[agent]
command = "gemini"
args = ["--acp"]
env = { GEMINI_API_KEY = "AIzaSy..." }
[agent]
command = "gemini"
args = ["--acp"]
env = { GEMINI_API_KEY = "AIzaSy..." } - OpenAB Reference Documentation: https://openabdev.github.io/openab/
- OpenAB Repo: https://github.com/openabdev/openab - Stateful Session: OpenAB will start a child process (such as Gemini CLI) for each conversation thread. These processes must reside for a long time to maintain the conversation context. Cloud Run's automatic scaling mechanism will kill these processes, leading to conversation interruption.
- Authentication Persistence: The AI CLI's Token needs to be stored on the local disk. GCE, combined with Persistent Disk, can ensure that the login status does not disappear after restarting. - Run on VM: cloudflared tunnel --url http://localhost:8080.
- Get a randomly generated HTTPS URL.
- Register Webhook: curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url=<CF_URL>/webhook/telegram&secret_token=<SECRET>" - Solution: You must use ghcr.io/openabdev/openab:latest. - Solution: Correct the Docker Volume mount path to /etc/openab/config.toml. - Reason: openab-gateway generates an internal checksum to prevent illegal requests.
- Solution: You must extract the Token from the Gateway container and pass it as the secret_token parameter when setWebhook.