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