A private, open-source period & fertility-awareness app.
canihavesex.today · Live demo · Self-host
Not medical advice, and not a contraceptive. See the Disclaimer.
canihavesex.today is a self-hosted, open-source period tracker — a private, privacy-first alternative to mainstream cycle apps. No ads, no tracking, no data-harvesting.
From the signals you log (bleeding, basal body temperature, cervical fluid, LH tests), one open-source engine estimates today's fertility status alongside your cycle context — cycle day, fertile window, next-period estimate. When the signal is unclear, it assumes you're fertile; it never implies contraceptive safety. It's grounded in the symptothermal method.
- Fertility-led and honest — today's status is the headline, never a false sense of safety.
- Calm and minimal — no ads, no upsells, no gamification.
- Yours — your data stays on your own instance. Self-host it in minutes.
- Daily logging — flow, BBT, cervical fluid, LH tests, plus mood, energy, sleep, libido, notes
- Today's fertility status with a confidence signal, and cycle context (calendar, trends)
- Email + password out of the box; Google / OIDC optional
- CSV export of your own data
- Mobile-first PWA, light and dark themes
Drops you straight into a sample account, no signup needed.
The easiest path is Docker. One app container + Postgres, configured by a single .env.
docker pull ghcr.io/neizsche/canihavesex:latestcurl -O https://raw.githubusercontent.com/neizsche/canihavesex.today/main/docker-compose.ymlprintf 'COOKIE_SECRET=%s\nPOSTGRES_PASSWORD=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 16)" > .envdocker compose up -dNext steps: Open http://localhost:3112. Email/password works out of the box. Database migrations run automatically. (Optional: Set Google/OIDC variables in .env to enable SSO).
Maintenance Commands
| Action | Command |
|---|---|
| Update | docker compose pull && docker compose up -d |
| Backup | docker compose exec db pg_dump -U canihavesex canihavesex > backup.sql |
| Restore | cat backup.sql | docker compose exec -T db psql -U canihavesex canihavesex |
| Reset Password | docker compose exec app node apps/backend/dist/scripts/resetPassword.js user@email.com new_password |
- Methodology — the science behind today's status
- Privacy — what we store, and what we never do
- Why open source — transparency and self-hosting
This is fertility-awareness software. It is not medical advice and not a contraceptive, and it does not guarantee pregnancy prevention. When in doubt, assume you are fertile, and consult a healthcare professional for medical decisions.
Contributions welcome — see CONTRIBUTING.md. Licensed under GNU AGPL-3.0: run a modified version as a network service and you must share your source under the same license. Running it privately for a single household does not trigger that requirement.
