- Architecture for stack details and conceptual decisions
- Roadmap to read where we are and what is planned
- Installation for local development is explained below
- Deployment explains how you can easily deploy your cella project
git clone [email protected]:cellajs/cella.git && cd cellaIn the env folder, you add a .env file using the .env.example. The minimum is the DATABASE_URL variable.
There are three ways to run Cella:
A: Directly on local machine (Recommended for active devs)
- Node: Check your Node version with
node -v. Install Node 20.x using Volta. - pnpm: Check your pnpm version with
pnpm -v. Install pnpm 8.x using Volta. - Postgres: Install PostgreSQL 16.x on your machine, for example using Postgres.app if you are on a Mac.
pnpm installIf starting from scratch, you will need to run a database generate + migrate.
pnpm run generate
pnpm run migrateCheck it out at http://localhost:3000:
pnpm run devB: From inside a VS devcontainer (Not yet stable)
- VSCode and Dev containers
- Orbstack or Docker
- Open VSCode and click one of these buttons to run the container:
- Alternatively, open the project in VSCode and use
⌘+⇧+pto run theRemote-Containers: Reopen in Containercommand.
Start command in container terminal:
pnpm run dev- Rebuilding the docker container: Just open Orbstack and delete the container and volume that has
cellain the name. - CORS issues: Make sure to open
http://localhost:3000/and nothttp://127.0.0.1:3000/
C: As basic docker container (Recommended for quick start)
pnpm run dockerYou need the users seed script to add an ADMIN user. Look into the seed for details. There is also an optional organizations seed to add organizations and users with faker.js. If you run in a container, access the (backend) container to run these scripts.
pnpm run seed:users
pnpm run seed:organizationsUse Drizzle Studio to manage your local db on https://local.drizzle.studio.
pnpm run studioCella has autogenerated API docs. These can be viewed on locally at https://localhost:4000/docs.
- EADDRINUSE errors? Try
sudo lsof -i :1080 -i :3000 -i :4000and thenkill -9 *PID*with a space-separated list ofPID. - Got pnpm cache issues? Try
pnpm store prune. - Got turbo cache issues? Try adding
--forceto the command. - Got docker cache issues? Try
docker builder prune --force.
💙💛 made possible using many amazing open source projects. Special thanks to Drizzle, HonoJS, Tanstack Router & Shadcn.