Installation Modes and Provider Matrix
March 15, 2026 ยท View on GitHub
Use the interactive installer:
./scripts/install.sh
It generates:
backend/.env.generatedfrontend/.env.generateddeployment.mode.generated
Installer prompts include:
- Deployment mode preset (1-4)
- Object storage provider
- Document metadata provider (sqlite/Turso)
- ResearchOps metadata provider (Mongo local/Atlas)
- Network topology (direct/FRP/FRP+Tailscale)
- Twitter/X Playwright refresh execution target (backend vs client)
- Frontend compile target + deploy target
- Backend compile target + deploy target
- Optional ARIS workflow integration flag
Supported deployment modes
- Frontend local, backend remote, cloud databases
- All local (frontend + backend + local databases)
- All remote with cloud databases
- All remote with self-hosted databases on same server
Paper storage providers
aws-s3minio(local host server, local client machine, or LAN device)aliyun-oss(S3 compatible endpoint mode)
Configured by:
OBJECT_STORAGE_PROVIDEROBJECT_STORAGE_BUCKETOBJECT_STORAGE_REGIONOBJECT_STORAGE_ACCESS_KEY_IDOBJECT_STORAGE_SECRET_ACCESS_KEYOBJECT_STORAGE_ENDPOINTOBJECT_STORAGE_FORCE_PATH_STYLEOBJECT_STORAGE_PUBLIC_BASE_URL
Common MinIO endpoint examples:
- MinIO on backend host:
OBJECT_STORAGE_ENDPOINT=http://127.0.0.1:9000 - MinIO on another LAN device/client:
OBJECT_STORAGE_ENDPOINT=http://192.168.x.x:9000
Metadata providers
Documents/tags/auth (libSQL layer):
- local sqlite:
TURSO_DATABASE_URL=file:./local.db - Turso cloud:
TURSO_DATABASE_URL=libsql://...
ResearchOps metadata (Mongo layer):
- local MongoDB:
MONGODB_URI=mongodb://127.0.0.1:27017/... - MongoDB Atlas:
MONGODB_URI=mongodb+srv://...
Remote offload options
- direct (no FRP)
- FRP offload
- FRP + Tailscale
Related env keys:
PROCESSING_ENABLEDPROCESSING_DESKTOP_URLTRACKER_PROXY_HEAVY_OPSTRACKER_PROXY_STRICTTRACKER_EXECUTION_TARGETTRACKER_STALE_AUTO_RUNTRACKER_STALE_PROXY_AUTO_RUNTRACKER_STALE_RUN_TRIGGER_MSTAILSCALE_ENABLEDTAILSCALE_DESKTOP_URL
Tracker execution target
Installer now asks where Twitter/X Playwright refresh should run:
-
backendtarget:TRACKER_ENABLED=trueTRACKER_PROXY_HEAVY_OPS=false- scheduler/refresh runs on backend node.
-
clienttarget (proxied):TRACKER_ENABLED=falseTRACKER_PROXY_HEAVY_OPS=trueTRACKER_PROXY_STRICT=true(no fallback to backend-local heavy run)- refresh only runs when the client executor is reachable/online.
24h stale refresh behavior:
- Installer sets
TRACKER_STALE_RUN_TRIGGER_MS=86400000(24h). - On client checks (
/api/tracker/status), if last refresh is older than threshold and client executor is online, backend triggers a proxied refresh. - If client executor is offline, no refresh is started.
Helper scripts:
./scripts/set-do-tracker-proxy.sh
./scripts/verify-frp-offload.sh
ARIS workflow integration
The installer can also enable ARIS integration metadata in deployment.mode.generated.
ARIS is intended to run on the always-on WSL/local executor host, not on the browser machine. The frontend ARIS workspace launches runs against that persistent runner so autonomous loops can continue if the laptop sleeps or the browser tab closes.
The actual project-side install is handled by:
./scripts/setup-aris-integration.sh /path/to/project
That flow:
- materializes the full AIRS skill tree into the target project's
.claude/skills/* - applies the Auto Researcher overlay for
research-lit - writes a managed
CLAUDE.mdblock into the target project - prints the MCP registration commands for the Auto Researcher library backend
- assumes a persistent remote workspace model where code sync is incremental and datasets remain on remote paths instead of being uploaded from the client
- pairs naturally with managed SSH server records, where the WSL runner is the ARIS control plane and other servers are downstream experiment targets
- expects the chosen WSL runner to have
claudeinstalled and reachable through the configured SSH server record; setARIS_REMOTE_AGENT_BINif the binary name differs
Configurable environment variables:
ARIS_SKILLS_REPOARIS_SKILLS_REFARIS_INTEGRATION_ENABLED
VS Code companion surface
The VS Code companion is not a separate deployment mode. It is a client surface that talks to the existing backend.
Use it when:
- ARIS is already running through the normal backend/local-executor topology
- you want a compact in-editor control surface for tracked papers, library actions, and ARIS runs
- you do not need Chrome-extension save flows or browser capture inside VS Code
The extension currently depends on the backend exposing:
GET /api/tracker/feedPOST /api/upload/arxivGET /api/documentsGET /api/documents/:id/notesPATCH /api/documents/:id/readPOST /api/reader/queue/:documentIdGET /api/aris/contextGET /api/aris/runsGET /api/aris/runs/:runIdPOST /api/aris/runsPOST /api/aris/runs/:runId/retryPOST /api/aris/runs/:runId/actions
The ARIS web workspace also assumes:
- projects are created inside the ARIS workspace, not invented as a default placeholder
- the local project folder is linked from the browser with the File System Access API
- each project stores one or more saved deployment targets
- each target points to an existing SSH server record plus a remote project path
- remote dataset/checkpoint/output roots live on the saved target, not in the main launcher
- launches select
project + target + workflow + prompt - sync should be incremental and may become a no-op when files are already current or when shared filesystem metadata applies
The extension package lives in vscode-extension/. Development details are in vscode-extension/README.md.