# 试用/单机形态:桥接网络 + 端口映射,适合本机看效果。 # 统一入口形态(对外 3080/8443 + 3081 跳转、统一认证)请用 deploy/install-host.sh, # 它是 host 网络单容器,不能与下面的端口映射共存。 version: "3.8" services: navi: build: . container_name: jianf-navi image: jianf-navi:latest restart: unless-stopped ports: # 宿主机端口:容器内 nginx 端口(Dashy/搜索/管理 统一入口) - "${NAVI_PORT:-3003}:18080" volumes: # 持久化:导航配置 conf.yml + 历史 history.json + 图标 item-icons/ - ./data:/app/data environment: # ---- 鉴权令牌(强烈建议设置)---- # 浏览器扩展同步历史用 - NAVI_SYNC_TOKEN=${NAVI_SYNC_TOKEN:-} # 管理后台/API 写操作用 - NAVI_ADMIN_TOKEN=${NAVI_ADMIN_TOKEN:-} # ---- 对外访问地址(公网域名,影响搜索结果页链接)---- # 例如 https://nav.example.com (不含 /search 子路径) - SEARXNG_BASE_URL=${SEARXNG_BASE_URL:-http://localhost:3003} # ---- 历史条目图标抓取(可选)---- # 留空则自动复用 searxng-settings.yml 里 outgoing.proxies 的代理 - NAVI_FAVICON_PROXY=${NAVI_FAVICON_PROXY:-} # ---- 一体化统一登录(gateway 模式)---- - PORTAL_USERNAME=${PORTAL_USERNAME:-admin} - PORTAL_PASSWORD=${PORTAL_PASSWORD:-changeme} - PORTAL_SESSION_SECRET=${PORTAL_SESSION_SECRET:-} - PORTAL_COOKIE_DOMAIN=${PORTAL_COOKIE_DOMAIN:-.example.com} healthcheck: test: ["CMD", "curl", "-fs", "http://localhost:18080/healthz"] interval: 30s timeout: 5s start_period: 30s retries: 3 deploy: resources: limits: memory: 512M # ── 使用方式 ── # 1. cp .env.example .env,编辑令牌与域名 # 2. docker compose up -d --build # 3. 访问 http://: # # ── 国内网络注意 ── # SearXNG 需访问 Google/Bing 等引擎。若服务器出不了外网, # 编辑 searxng-settings.yml 的 outgoing.proxies 填你的代理: # proxies: # all://: http://: # 再 docker compose up -d --build 重新构建。