Everything you need to deploy.
A compact operator guide. Deeper reference docs ship with the source in /docs.
Sections
7sections01
System requirements
Momentfy runs as a Node.js + PostgreSQL app. Any modest VPS or managed Node host will do.
- Runtime
- Node.js 20 LTS or newer
- Database
- PostgreSQL 14 or newer
- RAM
- 2 GB min · 4 GB recommended
- CPU
- 2 vCPU recommended
- Disk
- 20 GB + your upload volume
- Storage
- Local disk or any S3-compatible bucket
- SSL
- Required for ZATCA, PWA and push notifications
02
Typical hosting cost
Self-hosted means you own the server bill. Real-world monthly costs land in these brackets:
- Solo operator
- ≈ $5–10 / month (1× small VPS + SQLite-ish workload)
- 3–5 locations
- ≈ $15–30 / month (2 GB VPS + managed PG)
- SaaS reseller
- ≈ $40–120 / month (dedicated PG + S3 + CDN)
03
Deployment
The repo ships with a Dockerfile, docker-compose.yml and a browser-based install wizard. You can also deploy without Docker if you prefer.
- Docker Compose — one command, includes Postgres
- Bare Node.js — clone, `npm ci`, `npm run build`, serve with PM2 or systemd
- Hetzner / DigitalOcean / Railway — tested Docker images, step-by-step guide included in /docs
- macOS / Windows for local development — supported out of the box
- Managed Postgres (Supabase / Neon / RDS) — pointed via DATABASE_URL
04
Repo & updates
When you purchase, we add you to a private GitHub organisation with your own license seat. Every release ships as a tagged commit — pull, migrate, restart.
- Private GitHub repo invite to your email within minutes
- Releases follow semver · migrations are included in each tag
- Release notes + upgrade guide on every major
- If you prefer ZIPs over git, signed release archives are also available
05
Single- vs multi-tenant
Set APP_MODE=single-tenant for your own shop. Set multi-tenant to resell or serve clients under branded portals.
- Single-tenant → no plans/subscription checks, one tenant per install
- Multi-tenant → slug-based routing, admin panel, per-tenant branding & add-on toggles
- Switch modes at any time — no schema changes required
06
Backups & disaster recovery
Self-hosted means backups are on you. The repo ships with a daily backup hook but you decide where it lands.
- Nightly `pg_dump` via scheduled task (included)
- Uploads stored on S3 → use S3 versioning or lifecycle rules
- Recommended: offsite copy (S3, Backblaze, or your own NAS)
- Restore tested under docs/restore.md
07
License at a glance
One-line version of the full terms. See /portal/legal for the authoritative license text.
- You can deploy it for your own business or for your own paying clients
- You can modify any line and keep those changes private
- You cannot resell the source code itself to other developers
- You cannot remove or obscure the licence header in the repo
- Your license is per-deployment-operator — each legal entity needs its own license
Ready?
Buy the source, clone the repo.
Ship your business platform this weekend.
Buy the source once. Deploy on your own server. Charge your clients whatever you want. Keep 100% of the revenue.