easyai-ai-gateway/devenv.nix
chensipeng 2a9a833cd7 chore(dev): 配置本地开发环境
引入 devenv 与 starship 配置,统一 Go/Node/Postgres 开发依赖与快捷命令。
同时让脚本在使用本地数据库环境时跳过 Docker 创建步骤。
2026-05-13 06:44:26 +00:00

105 lines
2.4 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
pkgs,
lib,
config,
inputs,
...
}:
{
starship = {
enable = true;
config = {
enable = true;
path = ./starship.toml;
};
};
env = {
AI_GATEWAY_DATABASE_NAME = "easyai_ai_gateway";
AI_GATEWAY_DATABASE_URL = "host=${config.env.DEVENV_RUNTIME}/postgres dbname=easyai_ai_gateway sslmode=disable";
AI_GATEWAY_SKIP_DB_CREATE = "1";
};
packages = with pkgs; [
curl
docker-client
git
jq
lsof
postgresql_18
ripgrep
watchexec
];
scripts = {
dev.exec = "pnpm dev";
build.exec = "pnpm build";
test-all.exec = "pnpm test";
lint.exec = "pnpm lint";
migrate.exec = "pnpm migrate";
db-create.exec = "pnpm db:create";
api-test.exec = "pnpm nx run api:test";
web-build.exec = "pnpm nx run web:build";
};
services.postgres = {
enable = true;
package = pkgs.postgresql_18.withPackages (postgresPackages: [
postgresPackages.pgvector
]);
listen_addresses = "";
initialDatabases = [
{
name = "easyai_ai_gateway";
initialSQL = ''
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE EXTENSION IF NOT EXISTS vector;
'';
}
];
};
# https://devenv.sh/languages/
languages.go = {
enable = true;
package = pkgs.go;
};
languages.javascript = {
enable = true;
package = pkgs.nodejs_22;
nodejs.enable = true;
lsp.enable = true;
pnpm = {
enable = true;
install.enable = true;
};
};
enterShell = ''
echo ""
echo "EasyAI AI Gateway "
echo "$PWD"
echo ""
echo ""
echo " go: $(go version | awk '{print $3}')"
echo " node: $(node --version)"
echo " pnpm: $(pnpm --version)"
echo " psql: $(psql --version | awk '{print $3}')"
echo ""
echo ""
echo " dev / API Web"
echo " test-all API Web "
echo " build API Web"
echo " lint Web contracts "
echo " migrate API "
echo " db-create AI Gateway "
echo " api-test Go API "
echo " web-build Web "
echo ""
echo " package.json devenv scripts "
echo ""
'';
}