A demo application to illustrate how Inertia.js works with Combo and React.
It's a slightly-enhanced port of the pingcrm-react, and it uses:
- Elixir, Combo, Ecto, PostgreSQL.
- TypeScript, Node.js, pnpm, Vite, Inertia, React, TailwindCSS.
The protocol between backend and frontend is defined by:
- backend - the serializer module at
lib/ping_crm/web/serializer.exand all the implementations atlib/ping_crm/web/serializers. - frontend - the TypeScript types at
assets/src/types/index.d.ts
It's enabled only for prod env.
$ git clone https://github.com/combo-lab/ping_crm.git
$ cd ping_crm
$ mix setup
$ iex -S mix combo.serve
Now you can visit http://localhost:4000 from web browser.
$ mix deps.get --only prod
$ mix assets.deploy
$ MIX_ENV=prod mix release
Here are some useful release commands you can run:
# To start your system with the Combo server running
$ _build/prod/rel/ping_crm/bin/serve
# To run migrations
$ _build/prod/rel/ping_crm/bin/migrate
# Connect to the release remotely, once it is running:
$ _build/prod/rel/ping_crm/bin/ping_crm remote
# To list all available commands
$ _build/prod/rel/ping_crm/bin/demo
See Mix.Tasks.Release for more information about Elixir releases.
No deployment tools are used here. Only essential setup and steps are covered.
$ export SECRET_KEY_BASE=<a very long secret>
$ export DB_URL=ecto://postgres:postgres@127.0.0.1/ping_crm
$ export NODE_ENV=production
$ _build/prod/rel/ping_crm/bin/migrate
$ _build/prod/rel/ping_crm/bin/serve
- Original work by Jonathan Reinink (@reinink) and contributors
- Port to Ruby on Rails by Georg Ledermann (@ledermann)
- Port to React by Lio (@liorocks)
- Port to Combo by Zeke Dou (@zekedou)
MIT