My wife needed a cycle tracker. Everything out there was either Flo (which got sued twice for sharing health data) or an abandoned GitHub project. So I built Ovumcy. Single Go binary, SQLite, Docker-ready. No analytics, no third-party APIs, no cloud. Your data stays on your server. Features: period tracking, symptom logging, predictions (ovulation, fertile window), statistics, CSV/JSON export, dark mode, Russian and English. Just pushed v0.2.5. Looking for feedback from real users.

  • Rimu@piefed.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    3 hours ago

    I recommend you set the Content-Security-Policy http header so that inline javascript (commonly used for XSS attacks) cannot be executed.

    https://web.dev/articles/strict-csp

    CSP being off is not exactly a security hole but it makes security holes much more likely. By using a strict CSP configuration you close off the possibility of a whole class of holes.

    Also think about setting the Access-Control-Allow-Origin header and enable CORS on your REST endpoints.

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin

    Again, kind of a pain in the ass but gets rid of a bunch of potential problems before they start.

    • terraincognita@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 hours ago

      Thanks for the suggestions, those are good points.

      CSP is something I plan to tighten over time, but enabling a strict policy right now would require refactoring some inline JS patterns used in the templates. It’s definitely on the roadmap as part of security hardening.

      Regarding CORS, the application currently runs as a same-origin server-rendered app rather than a cross-origin API, so CORS headers aren’t enabled by default. If external clients or integrations are added in the future, I’d likely introduce a restricted allowlist for specific API routes.