The store_app_id field was incorrectly placed in the global x-casaos section, causing "app not found" errors during installation. This field is not needed based on working app examples (tududi) and was preventing the app from being installed. Fixes installation error: "app not found" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
156 lines
5.3 KiB
YAML
156 lines
5.3 KiB
YAML
name: alxndrhi-geoguesser-ai
|
|
services:
|
|
postgres:
|
|
container_name: alxndrhi-geoguesser-ai-postgres
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_USER: ${DB_USER:-geolocator}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:-geolocator_password}
|
|
POSTGRES_DB: ${DB_NAME:-geolocator_db}
|
|
volumes:
|
|
- type: bind
|
|
source: /DATA/AppData/$AppID/postgres_data
|
|
target: /var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-geolocator} -d ${DB_NAME:-geolocator_db}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
network_mode: bridge
|
|
restart: unless-stopped
|
|
|
|
backend:
|
|
container_name: alxndrhi-geoguesser-ai-backend
|
|
image: git.hinrichs.dev/alexander/geoguesser-ai/backend:latest
|
|
environment:
|
|
ENV: ${ENV:-production}
|
|
PORT: ${PORT:-3000}
|
|
DATABASE_URL: postgresql://${DB_USER:-geolocator}:${DB_PASSWORD:-geolocator_password}@alxndrhi-geoguesser-ai-postgres:5432/${DB_NAME:-geolocator_db}?sslmode=${DB_SSLMODE:-disable}
|
|
CLAUDE_API_KEY: ${CLAUDE_API_KEY}
|
|
CLAUDE_API_URL: ${CLAUDE_API_URL:-https://api.anthropic.com/v1/messages}
|
|
CLAUDE_MODEL: ${CLAUDE_MODEL:-claude-sonnet-4-5}
|
|
USE_MOCK_AI: ${USE_MOCK_AI:-false}
|
|
MAX_IMAGE_SIZE_MB: ${MAX_IMAGE_SIZE_MB:-10}
|
|
ALLOWED_IMAGE_TYPES: ${ALLOWED_IMAGE_TYPES:-image/jpeg,image/png,image/webp}
|
|
OVERPASS_API_URL: ${OVERPASS_API_URL:-https://overpass-api.de/api/interpreter}
|
|
ELEVATION_API_URL: ${ELEVATION_API_URL:-https://api.open-elevation.com/api/v1/lookup}
|
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:8080}
|
|
LOG_LEVEL: ${LOG_LEVEL:-info}
|
|
LOG_FORMAT: ${LOG_FORMAT:-json}
|
|
volumes:
|
|
- type: bind
|
|
source: /DATA/AppData/$AppID/uploads
|
|
target: /app/uploads
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
external_links:
|
|
- alxndrhi-geoguesser-ai-postgres:postgres
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/v1/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
network_mode: bridge
|
|
restart: unless-stopped
|
|
|
|
frontend:
|
|
container_name: alxndrhi-geoguesser-ai-frontend
|
|
image: git.hinrichs.dev/alexander/geoguesser-ai/frontend:latest
|
|
ports:
|
|
- target: 8080
|
|
published: "8080"
|
|
protocol: tcp
|
|
depends_on:
|
|
- backend
|
|
external_links:
|
|
- alxndrhi-geoguesser-ai-backend:backend
|
|
network_mode: bridge
|
|
restart: unless-stopped
|
|
x-casaos:
|
|
envs:
|
|
- container: ENV
|
|
description:
|
|
en_us: Application environment (development/production)
|
|
- container: PORT
|
|
description:
|
|
en_us: Backend API port
|
|
- container: DB_USER
|
|
description:
|
|
en_us: PostgreSQL database username
|
|
- container: DB_PASSWORD
|
|
description:
|
|
en_us: PostgreSQL database password
|
|
- container: DB_NAME
|
|
description:
|
|
en_us: PostgreSQL database name
|
|
- container: DB_SSLMODE
|
|
description:
|
|
en_us: PostgreSQL SSL mode (disable/require)
|
|
- container: CLAUDE_API_KEY
|
|
description:
|
|
en_us: Anthropic Claude API key for AI analysis
|
|
- container: CLAUDE_API_URL
|
|
description:
|
|
en_us: Claude API endpoint URL
|
|
- container: CLAUDE_MODEL
|
|
description:
|
|
en_us: Claude model identifier to use
|
|
- container: USE_MOCK_AI
|
|
description:
|
|
en_us: Use mock AI responses (true/false)
|
|
- container: MAX_IMAGE_SIZE_MB
|
|
description:
|
|
en_us: Maximum upload image size in MB
|
|
- container: ALLOWED_IMAGE_TYPES
|
|
description:
|
|
en_us: Comma-separated list of allowed image MIME types
|
|
- container: OVERPASS_API_URL
|
|
description:
|
|
en_us: OpenStreetMap Overpass API endpoint
|
|
- container: ELEVATION_API_URL
|
|
description:
|
|
en_us: Elevation data API endpoint
|
|
- container: ALLOWED_ORIGINS
|
|
description:
|
|
en_us: CORS allowed origins (comma-separated)
|
|
- container: LOG_LEVEL
|
|
description:
|
|
en_us: Application log level (debug/info/warn/error)
|
|
- container: LOG_FORMAT
|
|
description:
|
|
en_us: Log output format (json/text)
|
|
ports:
|
|
- container: "8080"
|
|
description:
|
|
en_us: Web UI HTTP Port
|
|
volumes:
|
|
- container: /var/lib/postgresql/data
|
|
description:
|
|
en_us: PostgreSQL database storage
|
|
- container: /app/uploads
|
|
description:
|
|
en_us: Uploaded images storage
|
|
|
|
x-casaos:
|
|
architectures:
|
|
- amd64
|
|
- arm64
|
|
main: frontend
|
|
author: Alexander Hinrichs
|
|
category: Utilities
|
|
developer: Alexander Hinrichs
|
|
description:
|
|
en_us: An AI-powered geographic image analyzer that uses Claude AI to
|
|
identify locations from photos. Upload images and get detailed
|
|
geolocation analysis including coordinates, landmarks, and contextual
|
|
information. Requires Anthropic API key for Claude AI access.
|
|
tagline:
|
|
en_us: AI-powered geographic image location analyzer
|
|
icon: https://git.ct.hinrichs.dev/alexander/CasaOS-alexanders-AppStore/raw/branch/main/Apps/geoguesser-ai/icon.png
|
|
index: /
|
|
port_map: "8080"
|
|
scheme: http
|
|
title:
|
|
en_us: GeoGuesser AI
|