From a753c58989ff101fd1157f586ba9a10a8578e2ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 26 Oct 2026 08:18:45 +0000 Subject: [PATCH] Delete honcho (ct) after migration to ProxmoxVE --- ct/honcho.sh | 82 ------------------ install/honcho-install.sh | 172 -------------------------------------- json/honcho.json | 109 ------------------------ 3 files changed, 363 deletions(-) delete mode 100644 ct/honcho.sh delete mode 100644 install/honcho-install.sh delete mode 100644 json/honcho.json diff --git a/ct/honcho.sh b/ct/honcho.sh deleted file mode 100644 index 2cecaa66c9..0000000000 --- a/ct/honcho.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/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: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE -# Source: https://github.com/plastic-labs/honcho - -APP="Honcho" -var_tags="${var_tags:-ai;memory;agents}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-6}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -export var_honcho_provider="${var_honcho_provider:-}" -export var_honcho_api_key="${var_honcho_api_key:-}" -export var_honcho_base_url="${var_honcho_base_url:-}" -export var_honcho_model="${var_honcho_model:-}" -export var_honcho_embedding_key="${var_honcho_embedding_key:-}" -export var_honcho_embedding_model="${var_honcho_embedding_model:-}" -export var_honcho_embedding_dims="${var_honcho_embedding_dims:-}" - -header_info "$APP" -variables -color -catch_errors - -if [[ -n "${var_honcho_provider}" && ! "${var_honcho_provider}" =~ ^(openai|anthropic|gemini)$ ]]; then - msg_error "var_honcho_provider must be openai, anthropic or gemini" - exit 1 -fi - -function update_script() { - header_info - check_container_storage - check_container_resources - - if [[ ! -d /opt/honcho ]]; then - msg_error "No Honcho Installation Found!" - exit - fi - - if check_for_gh_release "honcho" "plastic-labs/honcho" "" "" "v"; then - msg_info "Stopping Honcho" - systemctl stop honcho-deriver honcho - msg_ok "Stopped Honcho" - - PYTHON_VERSION="3.13" setup_uv - CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP=".env" fetch_and_deploy_gh_release "honcho" "plastic-labs/honcho" "tarball" "latest" "/opt/honcho" "" "v" - - msg_info "Updating Honcho" - cd /opt/honcho - $STD uv sync --frozen --no-dev - $STD .venv/bin/python scripts/provision_db.py - msg_ok "Updated Honcho" - - if systemctl is-enabled -q honcho; then - msg_info "Starting Honcho" - systemctl start honcho honcho-deriver - msg_ok "Started Honcho" - 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 the API (interactive docs at /docs) using the following URL:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:8000${CL}" -echo -e "${INFO}${YW}Admin key, sent as Authorization: Bearer (more with: cd /opt/honcho && .venv/bin/python scripts/generate_jwt.py --admin):${CL}" -echo -e "${TAB}${DGN}$(pct exec "$CTID" -- bash -c 'cd /opt/honcho && .venv/bin/python scripts/generate_jwt.py --admin --print-only')${CL}" -echo -e "${INFO}${YW}Without an LLM provider key Honcho stays stopped: set one in /opt/honcho_data/.env, then run: systemctl enable --now honcho honcho-deriver${CL}" diff --git a/install/honcho-install.sh b/install/honcho-install.sh deleted file mode 100644 index 00d2d1fd90..0000000000 --- a/install/honcho-install.sh +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE -# Source: https://github.com/plastic-labs/honcho - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt install -y redis-server -msg_ok "Installed Dependencies" - -PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql -PG_DB_NAME="honcho" PG_DB_USER="honcho" PG_DB_EXTENSIONS="vector,pg_trgm" setup_postgresql_db -PYTHON_VERSION="3.13" setup_uv -fetch_and_deploy_gh_release "honcho" "plastic-labs/honcho" "tarball" "latest" "/opt/honcho" "" "v" - -msg_info "Installing Honcho" -cd /opt/honcho -# Like upstream's Dockerfile: exactly what uv.lock pins -$STD uv sync --frozen --no-dev -msg_ok "Installed Honcho" - -if [[ -t 0 && -z "${var_honcho_provider:-}${var_honcho_api_key:-}${var_honcho_base_url:-}" ]]; then - echo -e "${INFO}${YW} Honcho needs an LLM provider for memory, embeddings and chat; without a key it is installed but not started.${CL}" - read -t 300 -rsp "${TAB3}OpenAI API key (Enter to set up a provider later): " var_honcho_api_key || true - echo -fi - -declare -A HONCHO_KEY=([openai]="" [anthropic]="" [gemini]="") -case "${var_honcho_provider:-openai}" in -anthropic) - HONCHO_TRANSPORT="anthropic" HONCHO_MODEL="${var_honcho_model:-claude-haiku-4-5}" - HONCHO_EMBEDDING="openai" HONCHO_EMBEDDING_MODEL="${var_honcho_embedding_model:-text-embedding-3-small}" - HONCHO_KEY[anthropic]="${var_honcho_api_key:-}" - HONCHO_KEY[openai]="${var_honcho_embedding_key:-}" - ;; -gemini) - HONCHO_TRANSPORT="gemini" HONCHO_MODEL="${var_honcho_model:-gemini-2.5-flash}" - HONCHO_EMBEDDING="gemini" HONCHO_EMBEDDING_MODEL="${var_honcho_embedding_model:-gemini-embedding-001}" - HONCHO_KEY[gemini]="${var_honcho_api_key:-}" - ;; -*) - HONCHO_TRANSPORT="openai" HONCHO_MODEL="${var_honcho_model:-gpt-5.4-mini}" - HONCHO_EMBEDDING="openai" HONCHO_EMBEDDING_MODEL="${var_honcho_embedding_model:-text-embedding-3-small}" - # Honcho only builds a client when the key is set; local endpoints such as Ollama ignore its value - HONCHO_KEY[openai]="${var_honcho_api_key:-${var_honcho_base_url:+not-needed}}" - ;; -esac - -msg_info "Configuring Honcho" -mkdir -p /opt/honcho_data -cat </opt/honcho_data/.env -DB_CONNECTION_URI=postgresql+psycopg://honcho:${PG_DB_PASS}@localhost:5432/honcho -CACHE_ENABLED=true -CACHE_URL=redis://localhost:6379/0?suppress=true - -# Every /v3 API request needs a JWT signed with this secret. Mint one with: -# cd /opt/honcho && .venv/bin/python scripts/generate_jwt.py --admin -AUTH_USE_AUTH=true -AUTH_JWT_SECRET=$(openssl rand -hex 32) -WEBHOOK_SECRET=$(openssl rand -hex 32) - -# Transports: openai (OpenAI or any OpenAI-compatible endpoint), anthropic, gemini. -# Embeddings run on openai or gemini only. Apply changes with: systemctl restart honcho honcho-deriver -LLM_OPENAI_API_KEY=${HONCHO_KEY[openai]} -LLM_ANTHROPIC_API_KEY=${HONCHO_KEY[anthropic]} -LLM_GEMINI_API_KEY=${HONCHO_KEY[gemini]} - -# An OpenAI-compatible endpoint (OpenRouter, Ollama, vLLM, LiteLLM) replaces api.openai.com through both lines: -#LLM_OPENAI_BASE_URL=http://192.168.1.50:11434/v1 -#EMBEDDING_MODEL_CONFIG__OVERRIDES__BASE_URL=http://192.168.1.50:11434/v1 -# Endpoints without OpenAI Structured Outputs need: -#DERIVER_MODEL_CONFIG__STRUCTURED_OUTPUT_MODE=json_object - -EMBEDDING_MODEL_CONFIG__TRANSPORT=${HONCHO_EMBEDDING} -EMBEDDING_MODEL_CONFIG__MODEL=${HONCHO_EMBEDDING_MODEL} -# A model with another vector size works only while nothing is embedded yet: set it here, then run -# cd /opt/honcho && .venv/bin/python scripts/configure_embeddings.py --yes -#EMBEDDING_VECTOR_DIMENSIONS=1536 - -# The deriver waits for about 512 new tokens per peer, or 30 minutes, before it calls the LLM -#DERIVER_FLUSH_ENABLED=true - -# Models for the deriver, summaries, dreams and dialectic chat; they must support tool calling -EOF -for prefix in DERIVER SUMMARY DREAM_DEDUCTION DREAM_INDUCTION DIALECTIC_LEVELS__{minimal,low,medium,high,max}_; do - cat <>/opt/honcho_data/.env -${prefix}_MODEL_CONFIG__TRANSPORT=${HONCHO_TRANSPORT} -${prefix}_MODEL_CONFIG__MODEL=${HONCHO_MODEL} -EOF -done -if [[ -n "${var_honcho_base_url:-}" ]]; then - cat <>/opt/honcho_data/.env - -LLM_OPENAI_BASE_URL=${var_honcho_base_url} -EMBEDDING_MODEL_CONFIG__OVERRIDES__BASE_URL=${var_honcho_base_url} -EOF -fi -if [[ -n "${var_honcho_embedding_dims:-}" ]]; then - cat <>/opt/honcho_data/.env -EMBEDDING_VECTOR_DIMENSIONS=${var_honcho_embedding_dims} -EOF -fi -chmod 600 /opt/honcho_data/.env -# Honcho and its scripts load .env from /opt/honcho, which updates empty; only the link lives there -ln -sf /opt/honcho_data/.env /opt/honcho/.env -msg_ok "Configured Honcho" - -msg_info "Migrating Honcho Database" -$STD .venv/bin/python scripts/provision_db.py -$STD .venv/bin/python scripts/configure_embeddings.py --yes -msg_ok "Migrated Honcho Database" - -msg_info "Creating Honcho Services" -cat </etc/systemd/system/honcho.service -[Unit] -Description=Honcho API -After=network.target postgresql.service redis-server.service -Requires=postgresql.service - -[Service] -Type=simple -User=root -WorkingDirectory=/opt/honcho -Environment=PYTHONUNBUFFERED=1 -ExecStart=/opt/honcho/.venv/bin/fastapi run --host 0.0.0.0 --port 8000 src/main.py -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -cat </etc/systemd/system/honcho-deriver.service -[Unit] -Description=Honcho Deriver -After=network.target postgresql.service redis-server.service honcho.service -Requires=postgresql.service - -[Service] -Type=simple -User=root -WorkingDirectory=/opt/honcho -Environment=PYTHONUNBUFFERED=1 -ExecStart=/opt/honcho/.venv/bin/python -m src.deriver -# The deriver exits 0 after an unhandled error, which Restart=on-failure would leave stopped -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -msg_ok "Created Honcho Services" - -if [[ -n "${HONCHO_KEY[$HONCHO_TRANSPORT]}" && -n "${HONCHO_KEY[$HONCHO_EMBEDDING]}" ]]; then - msg_info "Starting Honcho" - systemctl enable -q --now honcho honcho-deriver - msg_ok "Started Honcho" -else - msg_warn "No LLM provider key (with Anthropic also an OpenAI key for embeddings): Honcho stays stopped until it is set in /opt/honcho_data/.env" -fi - -motd_ssh -customize -cleanup_lxc diff --git a/json/honcho.json b/json/honcho.json deleted file mode 100644 index 8efb408c0c..0000000000 --- a/json/honcho.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "name": "Honcho", - "slug": "honcho", - "categories": [ - 20 - ], - "date_created": "2026-10-16", - "type": "ct", - "updateable": true, - "privileged": false, - "architectures": [ - "amd64", - "arm64" - ], - "interface_port": 8000, - "documentation": "https://honcho.dev/docs/v3/contributing/self-hosting", - "website": "https://honcho.dev/", - "repository": "https://github.com/plastic-labs/honcho", - "logo": "https://cdn.jsdelivr.net/gh/plastic-labs/honcho@main/docs/favicon.svg", - "description": "Honcho is an open-source memory server for building stateful AI agents. Apps store the messages of users and agents through a REST API or the Python and TypeScript SDKs, and an LLM derives conclusions about each peer that agents can then query in natural language.", - "install_methods": [ - { - "type": "default", - "script": "ct/honcho.sh", - "config_path": "/opt/honcho_data/.env", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "app_vars": [ - { - "name": "var_honcho_provider", - "label": "LLM Provider", - "type": "select", - "options": [ - "openai", - "anthropic", - "gemini" - ], - "default": "openai", - "help": "Serves the chat models. openai also covers OpenAI-compatible endpoints (OpenRouter, Ollama, vLLM, LiteLLM) through the base URL. Anthropic has no embeddings and needs an OpenAI key for them" - }, - { - "name": "var_honcho_api_key", - "label": "Provider API Key", - "type": "password", - "secret": true, - "help": "Key of the chosen provider; an Ollama endpoint needs none. Empty leaves Honcho installed but stopped until a key is set in /opt/honcho_data/.env" - }, - { - "name": "var_honcho_base_url", - "label": "OpenAI-compatible Base URL", - "type": "text", - "default": "", - "help": "Only with provider openai: replaces api.openai.com for chat and embeddings, e.g. http://192.168.1.50:11434/v1 for Ollama or https://openrouter.ai/api/v1" - }, - { - "name": "var_honcho_model", - "label": "Chat Model", - "type": "text", - "default": "", - "help": "Used by the deriver, summaries, dreams and dialectic chat, and must support tool calling. Empty means gpt-5.4-mini, claude-haiku-4-5 or gemini-2.5-flash; with a base URL give a model that endpoint serves" - }, - { - "name": "var_honcho_embedding_key", - "label": "OpenAI Key for Embeddings", - "type": "password", - "secret": true, - "help": "Only with provider anthropic: an OpenAI API key, because Anthropic offers no embedding model" - }, - { - "name": "var_honcho_embedding_model", - "label": "Embedding Model", - "type": "text", - "default": "", - "help": "Empty means text-embedding-3-small (gemini-embedding-001 with Gemini); with a base URL give one the endpoint serves, e.g. nomic-embed-text on Ollama" - }, - { - "name": "var_honcho_embedding_dims", - "label": "Embedding Dimensions", - "type": "number", - "default": "", - "help": "Vector size of the embedding model when it is not 1536, e.g. 768 for nomic-embed-text. It cannot change once the first message is embedded" - } - ], - "notes": [ - { - "text": "Honcho needs an API key for OpenAI, Anthropic or Gemini, or an OpenAI-compatible endpoint such as Ollama. Without one the install leaves it stopped.", - "type": "warning" - }, - { - "text": "There is no web interface. Every API request needs a key sent as Authorization: Bearer ; the install prints an admin key.", - "type": "info" - }, - { - "text": "Port 8000 is plain HTTP, and /docs and /health answer without a key. Put a reverse proxy with TLS in front before exposing Honcho beyond your LAN.", - "type": "warning" - } - ] -}