Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions ct/agentgateway.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/DevScripts/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")

# Copyright (c) 2021-2026 community-scripts ORG
# Author: andy-vdg
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
# Source: https://agentgateway.dev/

APP="agentgateway"
var_tags="${var_tags:-ai;proxy;mcp}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"

header_info "$APP"
variables
color
catch_errors

function update_script() {
header_info
check_container_storage
check_container_resources

if [[ ! -f /opt/agentgateway/agentgateway ]]; then
msg_error "No agentgateway Installation Found!"
exit
fi

if check_for_gh_release "agentgateway" "agentgateway/agentgateway"; then
cp -a /opt/agentgateway/agentgateway /opt/agentgateway/agentgateway.bak
cp -a ~/.agentgateway ~/.agentgateway.bak

msg_info "Stopping Service"
systemctl stop agentgateway
msg_ok "Stopped Service"

# Any failure from here on, including a new version that will not start, puts the
# previous binary back and restarts it.
if fetch_and_deploy_gh_release "agentgateway" "agentgateway/agentgateway" "singlefile" "latest" "/opt/agentgateway" "agentgateway-linux-$(arch_resolve "amd64" "arm64")" &&
AGW_SUM=$(curl -fsSL "https://github.com/agentgateway/agentgateway/releases/download/v$(cat ~/.agentgateway)/agentgateway-linux-$(arch_resolve "amd64" "arm64").sha256" | awk '{print $1}') &&
[[ -n "$AGW_SUM" && "$AGW_SUM" == "$(sha256sum /opt/agentgateway/agentgateway | awk '{print $1}')" ]] &&
chmod +x /opt/agentgateway/agentgateway &&
systemctl start agentgateway && sleep 5 && systemctl is-active -q agentgateway; then
rm -f /opt/agentgateway/agentgateway.bak ~/.agentgateway.bak
msg_ok "Started agentgateway $(cat ~/.agentgateway)"
else
systemctl stop agentgateway 2>/dev/null
mv /opt/agentgateway/agentgateway.bak /opt/agentgateway/agentgateway
mv ~/.agentgateway.bak ~/.agentgateway
systemctl start agentgateway
msg_error "agentgateway update failed (download, checksum or start); the previous version was restored and restarted"
exit 1
fi
msg_ok "Updated successfully!"
fi
exit
}

start
build_container
description

msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:4000/ui${CL}"
68 changes: 68 additions & 0 deletions install/agentgateway-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env bash

# Copyright (c) 2021-2026 community-scripts ORG
# Author: andy-vdg
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
# Source: https://agentgateway.dev/

source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os

fetch_and_deploy_gh_release "agentgateway" "agentgateway/agentgateway" "singlefile" "latest" "/opt/agentgateway" "agentgateway-linux-$(arch_resolve "amd64" "arm64")"

msg_info "Verifying agentgateway Checksum"
AGW_SUM=$(curl -fsSL "https://github.com/agentgateway/agentgateway/releases/download/v$(cat ~/.agentgateway)/agentgateway-linux-$(arch_resolve "amd64" "arm64").sha256" | awk '{print $1}')
if [[ -z "$AGW_SUM" || "$AGW_SUM" != "$(sha256sum /opt/agentgateway/agentgateway | awk '{print $1}')" ]]; then
msg_error "agentgateway checksum does not match the release"
exit 1
fi
chmod +x /opt/agentgateway/agentgateway
msg_ok "Verified agentgateway Checksum"

msg_info "Configuring agentgateway"
mkdir -p /etc/agentgateway /opt/agentgateway_data
cat <<EOF >/etc/agentgateway/config.yaml
# yaml-language-server: \$schema=https://agentgateway.dev/schema/config
# The config agentgateway bootstraps on first run: traffic and the UI on port 4000,
# state in SQLite. The UI has no login until you add policies:
# https://agentgateway.dev/docs/standalone/latest/documentation/setup/ui/secure-ui/
config:
database:
url: sqlite:///opt/agentgateway_data/data.db
gateways:
default:
port: 4000
ui:
gateways: default
EOF
chmod 600 /etc/agentgateway/config.yaml
msg_ok "Configured agentgateway"

msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/agentgateway.service
[Unit]
Description=agentgateway
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
ExecStart=/opt/agentgateway/agentgateway -f /etc/agentgateway/config.yaml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now agentgateway
msg_ok "Created Service"

motd_ssh
customize
cleanup_lxc
54 changes: 54 additions & 0 deletions json/agentgateway.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"name": "agentgateway",
"slug": "agentgateway",
"categories": [
20,
21
],
"date_created": "2026-10-23",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 4000,
"documentation": "https://agentgateway.dev/docs/",
"website": "https://agentgateway.dev/",
"repository": "https://github.com/agentgateway/agentgateway",
"architectures": [
"amd64",
"arm64"
],
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/agentgateway.webp",
"description": "agentgateway is an open-source proxy for AI agents, from the Linux Foundation. It sits in front of MCP servers, LLM providers and HTTP APIs, and adds authentication, authorization, rate limits and observability, so agents can reach tools without holding the upstream credentials.",
"install_methods": [
{
"type": "default",
"script": "ct/agentgateway.sh",
"config_path": "/etc/agentgateway/config.yaml",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Open http://<IP>:4000/ui and the Welcome to Agentgateway wizard guides the first setup.",
"type": "info"
},
{
"text": "The UI and gateway on port 4000 have no login until you add policies (ui.policies: basicAuth, OIDC, JWT). See https://agentgateway.dev/docs/standalone/latest/documentation/setup/ui/secure-ui/",
"type": "warning"
},
{
"text": "Config: /etc/agentgateway/config.yaml, data: /opt/agentgateway_data. The admin interface stays on 127.0.0.1:15000, as upstream ships it.",
"type": "info"
}
]
}
Loading