Issue tracking that stays yours.
Source-available ticket and project tracker — none of the Jira bloat, all of the workflow you actually need. Self-host on a $5 VPS, or let us run it for you. Same code either way.
# 60-second install git clone https://github.com/joshhearne/resolvd.git cd resolvd cp .env.example .env # edit secrets docker compose up -d --build
Everything you'd expect. Nothing you wouldn't.
Built for engineering, support, and ops teams who've outgrown a spreadsheet but don't want to onboard a sales rep.
Projects & Tickets
Scoped projects with custom prefixes (WEB-0042). P1–P5 priorities, semantic status chain with one-click Advance, auto-close grace, move between projects, inline title edit.
Inventory + Action1
Top-level Inventory across every managed machine. Action1 connector pulls endpoints, installed software, security posture (patches, vulns, reboot required). Twelve seeded asset types + admin-defined customs + per-source custom-field mapping.
Learn moreKnowledge Base
Per-project articles in a BlockNote rich editor. Version history with one-click restore. pg_trgm suggestion ranker auto-surfaces matching articles on tickets; Promote-to-KB drafts a new article from any ticket's resolution.
Learn moreAlerts + Rules
Deduped state-machined view of every problem from Zabbix, Action1, or a generic webhook. Per-source rules pick which severities auto-promote to tickets (promote / notify-only / ignore). Dashboard widget lists top open.
Learn moreSLA Tracker
Response + resolve clocks per priority. Pre-breach warnings at 80%, business-hours clocks, escalation chains, auto-assignment (round-robin / case-load / specific). Vendor-vs-internal wait split on the dashboard.
Learn moreBYO-AI Rewrites
Bring your own OpenAI / Anthropic / Ollama key. ✨ AI button on every composer — tone, verbosity, ELI5. Per-project glossary primes the model with your lingo. Org-managed key + lock + usage badge for cost transparency.
Learn moreEmail-to-Ticket
Email #PREFIX to create tickets, or scope a mailbox to one project so inbound mail without a prefix auto-creates there. Dedup against recent open tickets, signature + reply-marker stripping, per-account banner-strip presets. M365 Graph, Gmail API, or SMTP.
Learn moreMentions + Notifications
@ autocomplete subscribes mentioned users. 6×3 channel matrix (in-app / email / push) per event with email digest cadence — instant, hourly, 12h, or daily. Browser push via VAPID + service worker.
Vendor CRM
Companies + contacts scoped per project. Admin-gated Notify Vendor button. Per-vendor pill colors hashed from company id. Auto-mute noisy vendor replies into a daily digest at the configured local time.
Learn moreBulk Edit & Merge
Admin Bulk Edit toggle adds checkboxes — change status / assignee / project across up to 500 tickets in one shot. Bulk reply posts the same comment to many tickets at once. Search-driven Merge picker collapses dupes by ref, title, or description.
Flexible Auth + Hardening
Microsoft Entra, Google OAuth, or local with Argon2id. TOTP MFA per role. Login hardened with per-IP rate limit, persistent block on credential stuffing, honeypot + sub-800ms dwell rejection, session regeneration, CSP + HSTS.
Encryption at Rest
AES-256-GCM envelope encryption with per-row data keys. HMAC blind index keeps title search working under encryption. Off / Standard / Vault modes.
Boring stack. On purpose.
No bespoke runtimes, no exotic databases, no proprietary protocols. Components you already know how to operate, monitor, and back up.
- →Postgres 16 for everything: tickets, sessions, branding config.
pg_dumpis your full backup. - →Node + Express backend. Argon2 hashing, express-session, Multer uploads.
- →React + Vite + Tailwind frontend, served by nginx in a 30 MB Alpine image.
- →Bring your own TLS — Caddy, nginx, Cloudflare Tunnel, whatever you already run.
postgres: postgres:16-alpine
backend: node 22 + express
frontend: nginx alpine
nginx: internal router
▸ volumes: pg-data, uploads
▸ total RAM: ~400 MB idle
Run it your way.
Same source-available code in both directions. Pick the ops tradeoff you want.
Run it on your own hardware.
Your data, your VPS, your homelab. Docker compose up and you're running. Source-available under FSL-1.1 — free to self-host, fork, and audit.
- ✓ Full source on GitHub
- ✓ Install wizard or manual setup
- ✓ Community support
We run it. You file tickets.
Don't want to run a server? We'll host it for you. Flat per-instance pricing, automated backups, custom domain. Same code as the self-hosted build.
- ✓ Daily backups, managed updates
- ✓ Flat pricing — no per-seat tax
- ✓ Export your data anytime