Development Setup
Looking to run Craftplan? See the Self-Hosting guide. This page is for developers who want to contribute.
Prerequisites
Before setting up Craftplan, make sure you have the following installed:
- mise to install the pinned Elixir, Erlang/OTP, and Node.js versions
- Docker and Docker Compose for PostgreSQL, MinIO, and Mailpit
Starting Dependencies
Start PostgreSQL, MinIO (S3-compatible object storage), and Mailpit with the project task:
mise run services:up
Run mise run services:down to stop them, or mise run services:logs to follow their logs.
Installation
-
Clone the repository:
git clone https://github.com/puemos/craftplan.git cd craftplan -
Install the pinned toolchain and run the full setup (installs deps, runs migrations, builds assets, seeds data):
mise install mise run setupThis single command handles
mix deps.get,mix ash.setup, asset installation, and database seeding. -
Start the Phoenix development server:
mise run dev -
Open localhost:4000 in your browser.
Common Commands
| Command | Purpose |
|---|---|
mise run setup | Full setup: deps, migrations, assets, seeds |
mise run dev | Start the dev server |
mise run test | Run the test suite |
mix test path/to/test.exs | Run a single test file |
mix test path/to/test.exs:42 | Run a specific test at a line |
mise run format | Format all code (Elixir, Tailwind, HEEx) |
mise run format:check | Check formatting without modifying files |
mise run dialyzer | Static type analysis |
mise run db:setup | Run migrations and Ash introspection |
mise run db:reset | Reset database extensions and migrations |
mise run ci | Run the full CI suite locally |
What’s Next
After signing in, you land on Manage → Overview. Read the Overview & Planner guide to learn how the main workspace is organized.