Skip to content

feat: add local self-host installer#1663

Merged
Uarmagan merged 20 commits into
mainfrom
feature/add-self-host-installer
Apr 22, 2026
Merged

feat: add local self-host installer#1663
Uarmagan merged 20 commits into
mainfrom
feature/add-self-host-installer

Conversation

@Uarmagan
Copy link
Copy Markdown
Contributor

Summary

  • Add a local Docker Compose self-host installer for Compass.
  • Run the full local stack: web, backend, MongoDB, SuperTokens Core, and internal Postgres for SuperTokens auth storage.
  • Add local helper commands for start, stop, restart, rebuild, logs, status, update, and open.
  • Update README and self-hosting docs to lead with the installer and clarify local-only Google behavior.

Validation

Passed:

  • Full installer smoke test with isolated Compose project compasssmoke
    • Docker images built
    • backend /api/health returned ok
    • web root and /day fallback returned the app shell
    • helper status listed web, backend, mongo, supertokens, and supertokens-db
    • only 127.0.0.1:9080 and 127.0.0.1:3000 were exposed
    • smoke stack was stopped afterward
  • sh -n self-host/install.sh
  • sh -n self-host/compass
  • docker compose --env-file self-host/.env.example -f self-host/docker-compose.yml config
  • bun run test:core
  • bun run test:backend (rerun by itself after the parallel Mongo config race)
  • bun run test:scripts
  • git diff --check origin/main...HEAD

Known existing failures:

  • bun run test:web fails in the current web test harness with missing browser/test globals such as document, MouseEvent, jest, and expect.
  • bun run lint fails on existing repo-wide Biome findings outside this installer work.
  • Running backend and scripts tests in parallel can race on the shared Jest Mongo globalConfig.json; both pass when run separately.

Notes

  • The installer does not delete Docker volumes.
  • Google Calendar sync is not configured by the local installer. Custom Google OAuth values require ./compass rebuild, and ongoing Google Calendar watch notifications require HTTPS/public backend setup outside this local-only path.
  • If an install folder is lost but Docker volumes remain, the installer now stops before generating incompatible new secrets and tells the user to restore .env, choose another COMPOSE_PROJECT_NAME, or intentionally remove old volumes themselves.

@Uarmagan Uarmagan merged commit e52afdc into main Apr 22, 2026
7 of 8 checks passed
@Uarmagan Uarmagan deleted the feature/add-self-host-installer branch April 22, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant