56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
env_file="${project_dir}/.env"
|
|
|
|
if [[ -e "${env_file}" ]]; then
|
|
echo "${env_file} already exists; refusing to overwrite it." >&2
|
|
exit 1
|
|
fi
|
|
|
|
umask 077
|
|
read -r -p "Bootstrap admin email: " admin_email
|
|
read -r -s -p "Rotated model API key: " model_api_key
|
|
echo
|
|
|
|
if [[ -z "${admin_email}" || -z "${model_api_key}" ]]; then
|
|
echo "Admin email and model API key are required." >&2
|
|
exit 1
|
|
fi
|
|
|
|
random_hex() {
|
|
openssl rand -hex "$1"
|
|
}
|
|
|
|
admin_password="$(random_hex 18)"
|
|
postgres_password="$(random_hex 18)"
|
|
|
|
{
|
|
echo "WEBUI_URL=http://localhost:3000"
|
|
echo "CORS_ALLOW_ORIGIN=http://localhost:3000"
|
|
echo "WEBUI_COOKIE_SECURE=false"
|
|
echo "WEBUI_SECRET_KEY=$(random_hex 32)"
|
|
echo "WEBUI_ADMIN_EMAIL=${admin_email}"
|
|
echo "WEBUI_ADMIN_PASSWORD=${admin_password}"
|
|
echo "OPENWEBUI_FORWARD_JWT_SECRET=$(random_hex 32)"
|
|
echo "INTERNAL_PROVIDER_KEY=$(random_hex 32)"
|
|
echo "INTERNAL_GATEWAY_KEY=$(random_hex 32)"
|
|
echo "MODEL_API_KEY=${model_api_key}"
|
|
echo "MODEL_API_BASE_URL=https://api.k1412.top"
|
|
echo "POSTGRES_USER=agent"
|
|
echo "POSTGRES_PASSWORD=${postgres_password}"
|
|
echo "POSTGRES_DB=agent"
|
|
echo "EXECUTION_PROVIDER=local-docker"
|
|
echo "WORKSPACE_IMAGE=k1412-agent-workspace:dev"
|
|
echo "WORKSPACE_NETWORK_ENABLED=true"
|
|
echo "WORKSPACE_MEMORY_LIMIT=2g"
|
|
echo "WORKSPACE_CPU_LIMIT=2"
|
|
echo "WORKSPACE_PIDS_LIMIT=512"
|
|
} > "${env_file}"
|
|
|
|
chmod 600 "${env_file}"
|
|
echo "Created ${env_file} with mode 600."
|
|
echo "Bootstrap admin password: ${admin_password}"
|
|
echo "Store that password in a password manager; it is not printed again."
|