chore(docker): update environment variable prefixes to AMCS
This commit is contained in:
@@ -25,6 +25,6 @@ USER appuser
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENV OB1_CONFIG=/app/configs/docker.yaml
|
||||
ENV AMCS_CONFIG=/app/configs/docker.yaml
|
||||
|
||||
ENTRYPOINT ["/app/amcs-server"]
|
||||
|
||||
@@ -66,7 +66,7 @@ LLM integration instructions are served at `/llm`.
|
||||
The repo now includes a `Dockerfile` and Compose files for running the app with Postgres + pgvector.
|
||||
|
||||
1. Set a real LiteLLM key in your shell:
|
||||
`export OB1_LITELLM_API_KEY=your-key`
|
||||
`export AMCS_LITELLM_API_KEY=your-key`
|
||||
2. Start the stack with your runtime:
|
||||
`docker compose -f docker-compose.yml -f docker-compose.docker.yml up --build`
|
||||
`podman compose -f docker-compose.yml up --build`
|
||||
@@ -75,8 +75,10 @@ The repo now includes a `Dockerfile` and Compose files for running the app with
|
||||
Notes:
|
||||
|
||||
- The app uses `configs/docker.yaml` inside the container.
|
||||
- `OB1_LITELLM_BASE_URL` overrides the LiteLLM endpoint, so you can retarget it without editing YAML.
|
||||
- `OB1_OLLAMA_BASE_URL` overrides the Ollama endpoint for local or remote servers.
|
||||
- The local `./configs` directory is mounted into `/app/configs`, so config edits apply without rebuilding the image.
|
||||
- `AMCS_LITELLM_BASE_URL` overrides the LiteLLM endpoint, so you can retarget it without editing YAML.
|
||||
- `AMCS_OLLAMA_BASE_URL` overrides the Ollama endpoint for local or remote servers.
|
||||
- The Compose stack uses a default bridge network named `amcs`.
|
||||
- The base Compose file uses `host.containers.internal`, which is Podman-friendly.
|
||||
- The Docker override file adds `host-gateway` aliases so Docker can resolve the same host endpoint.
|
||||
- Database migrations `001` through `005` run automatically when the Postgres volume is created for the first time.
|
||||
|
||||
@@ -25,14 +25,20 @@ services:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./configs:/app/configs:ro
|
||||
environment:
|
||||
OB1_CONFIG: /app/configs/docker.yaml
|
||||
OB1_DATABASE_URL: postgres://postgres:postgres@db:5432/amcs?sslmode=disable
|
||||
OB1_LITELLM_BASE_URL: ${OB1_LITELLM_BASE_URL:-http://host.containers.internal:4000/v1}
|
||||
OB1_LITELLM_API_KEY: ${OB1_LITELLM_API_KEY:-replace-me}
|
||||
OB1_SERVER_PORT: 8080
|
||||
AMCS_CONFIG: /app/configs/docker.yaml
|
||||
AMCS_DATABASE_URL: postgres://postgres:postgres@db:5432/amcs?sslmode=disable
|
||||
AMCS_LITELLM_BASE_URL: ${AMCS_LITELLM_BASE_URL:-http://host.containers.internal:4000/v1}
|
||||
AMCS_LITELLM_API_KEY: ${AMCS_LITELLM_API_KEY:-replace-me}
|
||||
AMCS_SERVER_PORT: 8080
|
||||
ports:
|
||||
- "8080:8080"
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: amcs
|
||||
|
||||
@@ -36,7 +36,7 @@ func ResolvePath(explicitPath string) string {
|
||||
return explicitPath
|
||||
}
|
||||
|
||||
if envPath := strings.TrimSpace(os.Getenv("OB1_CONFIG")); envPath != "" {
|
||||
if envPath := strings.TrimSpace(os.Getenv("AMCS_CONFIG")); envPath != "" {
|
||||
return envPath
|
||||
}
|
||||
|
||||
@@ -98,14 +98,14 @@ func defaultConfig() Config {
|
||||
}
|
||||
|
||||
func applyEnvOverrides(cfg *Config) {
|
||||
overrideString(&cfg.Database.URL, "OB1_DATABASE_URL")
|
||||
overrideString(&cfg.AI.LiteLLM.BaseURL, "OB1_LITELLM_BASE_URL")
|
||||
overrideString(&cfg.AI.LiteLLM.APIKey, "OB1_LITELLM_API_KEY")
|
||||
overrideString(&cfg.AI.Ollama.BaseURL, "OB1_OLLAMA_BASE_URL")
|
||||
overrideString(&cfg.AI.Ollama.APIKey, "OB1_OLLAMA_API_KEY")
|
||||
overrideString(&cfg.AI.OpenRouter.APIKey, "OB1_OPENROUTER_API_KEY")
|
||||
overrideString(&cfg.Database.URL, "AMCS_DATABASE_URL")
|
||||
overrideString(&cfg.AI.LiteLLM.BaseURL, "AMCS_LITELLM_BASE_URL")
|
||||
overrideString(&cfg.AI.LiteLLM.APIKey, "AMCS_LITELLM_API_KEY")
|
||||
overrideString(&cfg.AI.Ollama.BaseURL, "AMCS_OLLAMA_BASE_URL")
|
||||
overrideString(&cfg.AI.Ollama.APIKey, "AMCS_OLLAMA_API_KEY")
|
||||
overrideString(&cfg.AI.OpenRouter.APIKey, "AMCS_OPENROUTER_API_KEY")
|
||||
|
||||
if value, ok := os.LookupEnv("OB1_SERVER_PORT"); ok {
|
||||
if value, ok := os.LookupEnv("AMCS_SERVER_PORT"); ok {
|
||||
if port, err := strconv.Atoi(strings.TrimSpace(value)); err == nil {
|
||||
cfg.Server.Port = port
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestResolvePathPrecedence(t *testing.T) {
|
||||
t.Setenv("OB1_CONFIG", "/tmp/from-env.yaml")
|
||||
t.Setenv("AMCS_CONFIG", "/tmp/from-env.yaml")
|
||||
|
||||
if got := ResolvePath("/tmp/explicit.yaml"); got != "/tmp/explicit.yaml" {
|
||||
t.Fatalf("ResolvePath explicit = %q, want %q", got, "/tmp/explicit.yaml")
|
||||
@@ -47,9 +47,9 @@ logging:
|
||||
t.Fatalf("write config: %v", err)
|
||||
}
|
||||
|
||||
t.Setenv("OB1_DATABASE_URL", "postgres://from-env")
|
||||
t.Setenv("OB1_LITELLM_API_KEY", "env-key")
|
||||
t.Setenv("OB1_SERVER_PORT", "9090")
|
||||
t.Setenv("AMCS_DATABASE_URL", "postgres://from-env")
|
||||
t.Setenv("AMCS_LITELLM_API_KEY", "env-key")
|
||||
t.Setenv("AMCS_SERVER_PORT", "9090")
|
||||
|
||||
cfg, loadedFrom, err := Load(configPath)
|
||||
if err != nil {
|
||||
@@ -102,8 +102,8 @@ logging:
|
||||
t.Fatalf("write config: %v", err)
|
||||
}
|
||||
|
||||
t.Setenv("OB1_OLLAMA_BASE_URL", "https://ollama.example.com/v1")
|
||||
t.Setenv("OB1_OLLAMA_API_KEY", "remote-key")
|
||||
t.Setenv("AMCS_OLLAMA_BASE_URL", "https://ollama.example.com/v1")
|
||||
t.Setenv("AMCS_OLLAMA_API_KEY", "remote-key")
|
||||
|
||||
cfg, _, err := Load(configPath)
|
||||
if err != nil {
|
||||
|
||||
10
llm/plan.md
10
llm/plan.md
@@ -515,16 +515,16 @@ type OpenRouterAIConfig struct {
|
||||
### Order
|
||||
|
||||
1. `--config /path/to/file.yaml`
|
||||
2. `OB1_CONFIG`
|
||||
2. `AMCS_CONFIG`
|
||||
3. default `./configs/dev.yaml`
|
||||
4. environment overrides for specific fields
|
||||
|
||||
### Suggested env overrides
|
||||
|
||||
* `OB1_DATABASE_URL`
|
||||
* `OB1_LITELLM_API_KEY`
|
||||
* `OB1_OPENROUTER_API_KEY`
|
||||
* `OB1_SERVER_PORT`
|
||||
* `AMCS_DATABASE_URL`
|
||||
* `AMCS_LITELLM_API_KEY`
|
||||
* `AMCS_OPENROUTER_API_KEY`
|
||||
* `AMCS_SERVER_PORT`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DATABASE_URL="${DATABASE_URL:-${OB1_DATABASE_URL:-}}"
|
||||
DATABASE_URL="${DATABASE_URL:-${AMCS_DATABASE_URL:-}}"
|
||||
|
||||
if [[ -z "${DATABASE_URL}" ]]; then
|
||||
echo "DATABASE_URL or OB1_DATABASE_URL must be set" >&2
|
||||
echo "DATABASE_URL or AMCS_DATABASE_URL must be set" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user