- Default to Docker service networking (http://frontend:3000) in both
compose files — works when all services run in Docker
- Add extra_hosts (host.docker.internal:host-gateway) for cross-platform
host access when running frontend outside Docker
- Document override examples in .env.example for local dev and
custom domain setups
- Create app/api/zero/query/route.ts — resolves named queries to ZQL
using handleQueryRequest and mustGetQuery from @rocicorp/zero
- Add ZERO_QUERY_URL to both docker-compose files:
- dev: http://host.docker.internal:3000 (reaches local Next.js from Docker)
- prod: http://frontend:3000 (Docker service networking)
Without this endpoint, zero-cache cannot resolve named queries and
no data syncs to the client.
- Replace Electric SQL references in postgresql.conf with Zero-cache
- Clean Electric SQL comments in chat-comments.types.ts and chat-messages.types.ts
- Add zero-cache service to docker-compose.yml and docker-compose.dev.yml
- Add ZERO_* env vars to docker/.env.example
- Add NEXT_PUBLIC_ZERO_CACHE_URL to surfsense_web/.env.example
- Add NEXT_PUBLIC_ZERO_CACHE_URL placeholder ARG/ENV to Dockerfile
- Add NEXT_PUBLIC_ZERO_CACHE_URL runtime substitution to docker-entrypoint.js
- Add NEXT_PUBLIC_ZERO_CACHE_URL build arg to docker-build.yml and desktop-release.yml
- Add rocicorp/zero:0.26.2 service with Postgres connection,
SQLite replica volume, healthcheck, and admin password
- Add NEXT_PUBLIC_ZERO_CACHE_URL to frontend env vars
- Frontend now depends on zero-cache health
Remove all Electric SQL client code, Docker service, env vars, CI build
args, install scripts, and documentation. Feature hooks that depend on
Electric are intentionally left in place to be rewritten with Rocicorp
Zero in subsequent commits.
Deleted:
- lib/electric/ (client.ts, context.ts, auth.ts, baseline.ts)
- ElectricProvider.tsx
- docker/scripts/init-electric-user.sh
- content/docs/how-to/electric-sql.mdx
Cleaned:
- package.json (4 @electric-sql/* deps)
- app/layout.tsx, UserDropdown.tsx, LayoutDataProvider.tsx
- docker-compose.yml, docker-compose.dev.yml
- Dockerfile, docker-entrypoint.js
- .env.example (frontend, docker, backend)
- CI workflows, install scripts, docs
- Added new search engines (qwant news, qwant images, qwant videos, mojeek images, mojeek news) to the default settings for better search results.
- Updated outgoing request settings by removing the decimal from `extra_proxy_timeout` for consistency.
- Integrated a `Spinner` component in `LayoutDataProvider` to improve loading feedback during chat deletion processes.
- Removed specific engines (ahmia, torch, qwant, mojeek) from default settings.
- Added new configuration options for search engine failure handling, including ban times and retries.
- Introduced additional search engines (bing, yahoo, stackoverflow) with retry logic for HTTP errors.
- Updated request timeout settings for outgoing requests to improve performance.
- Updated the Docker Compose file to use the latest SearXNG image version 2026.3.13-3c1f68c59.
- Added creation of the 'searxng' directory in installation scripts for better organization.
- Included new configuration files (settings.yml and limiter.toml) in the installation process.
- Updated SearXNG image version to 2026.3.13-3c1f68c59 in the Docker Compose file.
- Added port mapping for SearXNG service to allow access on a configurable port.
- Enhanced the .env.example file with comments for SearXNG configuration and usage instructions.
- Consolidated volume mappings for SearXNG to use a single directory.
- Removed unnecessary port mappings and legacy data volume definitions.
- Updated web search service documentation to clarify Redis usage and circuit breaker implementation, eliminating Redis dependency for circuit breaker logic.
- Added SearXNG service configuration to Docker setup, including environment variables and health checks.
- Introduced new settings management for web search in the frontend, allowing users to enable/disable and configure search engines and language preferences.
- Updated backend to support web search functionality, including database schema changes and service integration.
- Implemented health check endpoint for the web search service and integrated it into the application.
- Removed legacy SearXNG API connector references in favor of the new platform service approach.