Skip to content

Commit 0529cfd

Browse files
committed
added setup docs, updated contributing.md
1 parent 21a5f08 commit 0529cfd

2 files changed

Lines changed: 103 additions & 18 deletions

File tree

CONTRIBUTING.md

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,12 @@ If you have a great idea for FireForm, we'd love to hear it! Please open an issu
3939
4. Make sure your code lints.
4040
5. Issue that pull request!
4141

42-
## 🛠️ Local Development Setup
43-
44-
FireForm uses Docker and Docker Compose for the backend to ensure a consistent environment.
45-
46-
### Prerequisites
42+
**Issues are not formally assigned.** You are free to pick any open issue, work on it, and raise a PR directly. If multiple PRs address the same issue, the first one that actually fixes it generally gets preference. To avoid duplicating someone else's work, coordinate with other contributors on our [Discord](https://discord.gg/nBv5b6kF68) before starting.
4743

48-
- [Docker](https://docs.docker.com/get-docker/)
49-
- [Docker Compose](https://docs.docker.com/compose/install/)
50-
- `make` (optional, but recommended)
51-
- [Node.js](https://nodejs.org/) 20+ (only needed for the desktop app)
44+
## 💬 Community
5245

53-
### Desktop App Development
46+
Join our Discord server to ask questions, discuss issues, and coordinate work with other contributors: https://discord.gg/nBv5b6kF68
5447

55-
The frontend is a vanilla HTML/CSS/JS app wrapped in Electron. To run it locally:
56-
57-
```bash
58-
cd frontend
59-
npm install # one-time setup
60-
npm start # launches the Electron desktop window
61-
```
48+
## 🛠️ Local Development Setup
6249

63-
The backend (API + Ollama) must be running separately via Docker — see `make fireform`.
50+
See the [Setup Guide](docs/SETUP.md) for the full walkthrough: prerequisites, running the backend with Docker, testing endpoints via Swagger UI, day-to-day commands, and troubleshooting.

docs/SETUP.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Setup Guide
2+
3+
This guide gets the FireForm backend running locally with Docker. It assumes you are comfortable with git and a terminal, but new to this project.
4+
5+
## Prerequisites
6+
7+
- [Docker](https://docs.docker.com/get-docker/) **24 or newer**, with the Docker daemon running
8+
- Docker Compose v2 (bundled with Docker Desktop; verify with `docker compose version`)
9+
- `make`
10+
- ~3 GB of free disk space (Docker images + LLM model weights)
11+
12+
## Setup
13+
14+
### 1. Clone the repository
15+
16+
```bash
17+
git clone https://github.com/fireform-core/FireForm.git
18+
cd FireForm
19+
```
20+
21+
### 2. Run first-time setup
22+
23+
```bash
24+
make init
25+
```
26+
27+
This will:
28+
29+
1. Check that Docker meets the requirements above
30+
2. Create `docker/.env.dev` from `docker/.env.example` (gitignored; defaults work out of the box)
31+
3. Prompt you to pick an Ollama model (the default, `qwen2.5:1.5b`, is the smallest and fine for development)
32+
4. Offer to build and start everything answer `y`, or run `make fireform` later
33+
34+
### 3. Build and start (if you skipped it in step 2)
35+
36+
```bash
37+
make fireform
38+
```
39+
40+
This builds the Docker images, starts the containers, waits for Ollama, and pulls the LLM model. The first run takes several minutes (image build + model download); later runs are fast.
41+
42+
When it finishes you'll see:
43+
44+
```
45+
FireForm is ready!
46+
API: http://localhost:8000
47+
API Docs: http://localhost:8000/docs
48+
```
49+
50+
### 4. Verify it works
51+
52+
Open **http://localhost:8000/docs** in your browser. This is the interactive Swagger UI you can explore and test every API endpoint directly from there (expand an endpoint, click _Try it out_, then _Execute_).
53+
54+
## Day-to-day commands
55+
56+
| Command | What it does |
57+
| ------------ | ------------------------------------------------------------------------ |
58+
| `make up` | Start containers |
59+
| `make down` | Stop containers (data is preserved) |
60+
| `make logs` | Stream all container logs (`make logs-app` / `make logs-ollama` for one) |
61+
| `make shell` | Open a shell inside the app container |
62+
| `make test` | Run the test suite |
63+
| `make help` | List all commands |
64+
65+
The dev container mounts the source code, so code changes reload automatically — no rebuild needed. Rebuild (`make build`) only when dependencies in `requirements.txt` or the Dockerfile change.
66+
67+
## Frontend (optional)
68+
69+
The desktop/web frontend lives in a separate repository:
70+
71+
```bash
72+
git clone https://github.com/fireform-core/fireform-frontend.git
73+
```
74+
75+
Follow the README in that repository to run it. The backend from this guide must be running for the frontend to work.
76+
77+
## Troubleshooting
78+
79+
**`make init` fails dependency checks**
80+
Docker isn't running or is too old. Start Docker Desktop (or the Docker daemon) and confirm `docker version` reports 24+.
81+
82+
**Port 8000 already in use**
83+
Another process is bound to the port. Either stop it, or change `APP_PORT` in `docker/.env.dev` and run `make down && make up`.
84+
85+
**Model pull is slow or times out**
86+
The first `make fireform` downloads the LLM weights (~1 GB for the default model). On a slow connection just wait, or re-run `make pull-model` it resumes safely.
87+
88+
**Containers start but the API doesn't respond**
89+
Check `make logs-app` for the actual error. The entrypoint runs database migrations on startup, so the API takes a few seconds after the container starts.
90+
91+
**Want a clean slate**
92+
`make super-clean` stops everything and **deletes all volumes** database, uploads, and downloaded model weights. Only use it when you intend to wipe all local data.
93+
94+
## Where to go next
95+
96+
- **Join our [Discord](https://discord.gg/nBv5b6kF68)** — ask questions and coordinate with other contributors
97+
- [CONTRIBUTING.md](../CONTRIBUTING.md) - how to contribute
98+
- [docker/README.md](../docker/README.md) - Docker layout, env vars, and volumes in detail

0 commit comments

Comments
 (0)