@weirdfingers/baseboards 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +806 -76
- package/dist/index.js +8551 -315
- package/dist/index.js.map +1 -1
- package/package.json +13 -5
- package/templates/api/src/boards/__init__.py +1 -1
- package/templates/compose.web.yaml +32 -0
- package/templates/compose.yaml +35 -36
- package/templates/web/package.json +1 -1
- package/templates/compose.dev.yaml +0 -38
package/README.md
CHANGED
|
@@ -2,145 +2,891 @@
|
|
|
2
2
|
|
|
3
3
|
One-command launcher for Boards, an AI-powered creative toolkit for generating, storing, and sharing images, video, audio, and text.
|
|
4
4
|
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Overview](#overview)
|
|
8
|
+
- [Key Features](#key-features)
|
|
9
|
+
- [Installation](#installation)
|
|
10
|
+
- [Quick Start](#quick-start)
|
|
11
|
+
- [Commands Reference](#commands-reference)
|
|
12
|
+
- [Template System](#template-system)
|
|
13
|
+
- [Development Modes](#development-modes)
|
|
14
|
+
- [Common Workflows](#common-workflows)
|
|
15
|
+
- [Configuration](#configuration)
|
|
16
|
+
- [Advanced Usage](#advanced-usage)
|
|
17
|
+
- [Troubleshooting](#troubleshooting)
|
|
18
|
+
- [Community & Social](#community--social)
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
Baseboards CLI provides a streamlined way to scaffold, deploy, and manage Boards applications. With a single command, you can have a full-stack AI creative platform running locally with Docker.
|
|
23
|
+
|
|
24
|
+
## Key Features
|
|
25
|
+
|
|
26
|
+
- **Multiple template options** - Choose from feature-rich or minimal starter templates
|
|
27
|
+
- **Docker-based backend** - Zero-configuration PostgreSQL, Redis, and API server
|
|
28
|
+
- **Local development mode** - Run frontend locally with `--app-dev` for fast iteration
|
|
29
|
+
- **Template caching** - Downloaded templates are cached for offline use
|
|
30
|
+
- **Interactive setup** - Guided prompts for API keys and template selection
|
|
31
|
+
- **Health monitoring** - Built-in diagnostics with the `doctor` command
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
No installation required! Use npx to run Baseboards directly:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx @weirdfingers/baseboards@latest up my-project
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Prerequisites
|
|
42
|
+
|
|
43
|
+
**Required:**
|
|
44
|
+
- Docker Desktop (macOS/Windows) or Docker Engine (Linux)
|
|
45
|
+
|
|
46
|
+
**Optional (for `--app-dev` mode only):**
|
|
47
|
+
- Node.js 20+
|
|
48
|
+
- Package manager (npm, pnpm, yarn, or bun)
|
|
49
|
+
|
|
5
50
|
## Quick Start
|
|
6
51
|
|
|
7
52
|
```bash
|
|
8
|
-
#
|
|
9
|
-
npx @weirdfingers/baseboards up my-
|
|
53
|
+
# Start with full-featured template (recommended)
|
|
54
|
+
npx @weirdfingers/baseboards up my-app --template baseboards
|
|
10
55
|
|
|
11
|
-
#
|
|
12
|
-
|
|
56
|
+
# Minimal starter for custom development
|
|
57
|
+
npx @weirdfingers/baseboards up my-app --template basic
|
|
13
58
|
|
|
14
|
-
#
|
|
15
|
-
|
|
59
|
+
# Local frontend development with native dev server
|
|
60
|
+
npx @weirdfingers/baseboards up my-app --template basic --app-dev
|
|
61
|
+
|
|
62
|
+
# Interactive template selection (no flag)
|
|
63
|
+
npx @weirdfingers/baseboards up my-app
|
|
16
64
|
```
|
|
17
65
|
|
|
18
|
-
|
|
66
|
+
After starting, access the app at [http://localhost:3300](http://localhost:3300)
|
|
67
|
+
|
|
68
|
+
## Commands Reference
|
|
19
69
|
|
|
20
70
|
### `up [directory]`
|
|
21
71
|
|
|
22
|
-
Scaffold and start Baseboards. If the directory doesn't exist, creates a new project from
|
|
72
|
+
Scaffold and start Baseboards. If the directory doesn't exist, creates a new project from the selected template. Runs in detached mode (background) by default.
|
|
23
73
|
|
|
24
74
|
```bash
|
|
25
|
-
baseboards up
|
|
26
|
-
baseboards up my-app # New directory (detached)
|
|
27
|
-
baseboards up --prod # Production mode
|
|
28
|
-
baseboards up --attach # Attach to logs (foreground)
|
|
29
|
-
baseboards up --ports web=3300 # Custom ports
|
|
30
|
-
baseboards up --fresh # Clean up existing volumes before starting
|
|
75
|
+
baseboards up [directory] [options]
|
|
31
76
|
```
|
|
32
77
|
|
|
33
|
-
**
|
|
78
|
+
**Options:**
|
|
79
|
+
|
|
80
|
+
| Flag | Description | Example |
|
|
81
|
+
|------|-------------|---------|
|
|
82
|
+
| `--template <name>` | Select template (baseboards, basic) | `--template basic` |
|
|
83
|
+
| `--app-dev` | Run frontend locally instead of in Docker | `--app-dev` |
|
|
84
|
+
| `--attach` | Attach to logs (runs in foreground) | `--attach` |
|
|
85
|
+
| `--ports <string>` | Custom port mappings | `--ports web=3300 api=8800` |
|
|
86
|
+
| `--fresh` | Delete existing volumes before starting | `--fresh` |
|
|
87
|
+
| `--dev-packages` | Use unpublished local packages (requires `--app-dev` and monorepo) | `--dev-packages` |
|
|
88
|
+
|
|
89
|
+
**Examples:**
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Create in current directory with default template
|
|
93
|
+
baseboards up
|
|
94
|
+
|
|
95
|
+
# Create in new directory with explicit template
|
|
96
|
+
baseboards up my-app --template baseboards
|
|
97
|
+
|
|
98
|
+
# Local frontend development
|
|
99
|
+
baseboards up my-app --app-dev
|
|
100
|
+
|
|
101
|
+
# Custom ports
|
|
102
|
+
baseboards up my-app --ports web=3000 api=8000
|
|
103
|
+
|
|
104
|
+
# Fresh start (clears database and volumes)
|
|
105
|
+
baseboards up my-app --fresh
|
|
106
|
+
|
|
107
|
+
# Attach to logs to see output in foreground
|
|
108
|
+
baseboards up my-app --attach
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Note:** The `--fresh` flag removes existing Docker volumes before starting, which is useful if you encounter database password mismatch errors or want a clean slate.
|
|
34
112
|
|
|
35
113
|
### `down [directory]`
|
|
36
114
|
|
|
37
|
-
Stop Baseboards.
|
|
115
|
+
Stop Baseboards services.
|
|
38
116
|
|
|
39
117
|
```bash
|
|
40
|
-
baseboards down
|
|
41
|
-
|
|
118
|
+
baseboards down [directory] [options]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Options:**
|
|
122
|
+
|
|
123
|
+
| Flag | Description |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| `--volumes` | Also remove volumes (deletes all data) |
|
|
126
|
+
|
|
127
|
+
**Examples:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Stop services (preserves data)
|
|
131
|
+
baseboards down
|
|
132
|
+
|
|
133
|
+
# Stop and remove all data
|
|
134
|
+
baseboards down --volumes
|
|
42
135
|
```
|
|
43
136
|
|
|
44
137
|
### `logs [directory] [services...]`
|
|
45
138
|
|
|
46
|
-
View service logs.
|
|
139
|
+
View service logs. Supports filtering by specific services and following live output.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
baseboards logs [directory] [services...] [options]
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Services:** `web`, `api`, `db`, `cache`
|
|
146
|
+
|
|
147
|
+
**Options:**
|
|
148
|
+
|
|
149
|
+
| Flag | Description | Example |
|
|
150
|
+
|------|-------------|---------|
|
|
151
|
+
| `-f, --follow` | Follow log output (live tail) | `-f` |
|
|
152
|
+
| `--since <time>` | Show logs since timestamp | `--since 1h`, `--since 30m` |
|
|
153
|
+
| `--tail <lines>` | Number of lines to show from end | `--tail 50` |
|
|
154
|
+
|
|
155
|
+
**Examples:**
|
|
47
156
|
|
|
48
157
|
```bash
|
|
49
|
-
|
|
50
|
-
baseboards logs
|
|
51
|
-
|
|
52
|
-
|
|
158
|
+
# View all service logs
|
|
159
|
+
baseboards logs
|
|
160
|
+
|
|
161
|
+
# Follow logs in real-time
|
|
162
|
+
baseboards logs -f
|
|
163
|
+
|
|
164
|
+
# View only API and database logs
|
|
165
|
+
baseboards logs api db
|
|
166
|
+
|
|
167
|
+
# Last hour of logs
|
|
168
|
+
baseboards logs --since 1h
|
|
169
|
+
|
|
170
|
+
# Last 50 lines, following live
|
|
171
|
+
baseboards logs -f --tail 50
|
|
53
172
|
```
|
|
54
173
|
|
|
55
174
|
### `status [directory]`
|
|
56
175
|
|
|
57
|
-
Show
|
|
176
|
+
Show the status of all services (running, stopped, health).
|
|
58
177
|
|
|
59
178
|
```bash
|
|
60
|
-
baseboards status
|
|
179
|
+
baseboards status [directory]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Example output:**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Service Status:
|
|
186
|
+
web running (healthy)
|
|
187
|
+
api running (healthy)
|
|
188
|
+
db running (healthy)
|
|
189
|
+
cache running (healthy)
|
|
61
190
|
```
|
|
62
191
|
|
|
63
192
|
### `clean [directory]`
|
|
64
193
|
|
|
65
|
-
Clean up Docker resources.
|
|
194
|
+
Clean up Docker resources associated with the project.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
baseboards clean [directory] [options]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Options:**
|
|
201
|
+
|
|
202
|
+
| Flag | Description |
|
|
203
|
+
|------|-------------|
|
|
204
|
+
| `--hard` | Also remove Docker images (WARNING: requires re-download) |
|
|
205
|
+
|
|
206
|
+
**Examples:**
|
|
66
207
|
|
|
67
208
|
```bash
|
|
68
|
-
|
|
69
|
-
baseboards clean
|
|
209
|
+
# Remove containers and volumes
|
|
210
|
+
baseboards clean
|
|
211
|
+
|
|
212
|
+
# Remove everything including images (requires re-download)
|
|
213
|
+
baseboards clean --hard
|
|
70
214
|
```
|
|
71
215
|
|
|
72
|
-
|
|
216
|
+
**Warning:** The `--hard` flag will delete Docker images, requiring them to be re-downloaded on next `up`. This can take significant time depending on your internet connection.
|
|
73
217
|
|
|
74
|
-
|
|
218
|
+
### `templates`
|
|
219
|
+
|
|
220
|
+
List available templates with details about size, features, and frameworks.
|
|
75
221
|
|
|
76
222
|
```bash
|
|
77
|
-
baseboards
|
|
223
|
+
baseboards templates [options]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Options:**
|
|
227
|
+
|
|
228
|
+
| Flag | Description |
|
|
229
|
+
|------|-------------|
|
|
230
|
+
| `--refresh` | Clear cache and re-fetch template list |
|
|
231
|
+
| `--version <version>` | Show templates for specific CLI version |
|
|
232
|
+
|
|
233
|
+
**Examples:**
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# List available templates
|
|
237
|
+
baseboards templates
|
|
238
|
+
|
|
239
|
+
# Refresh cache and fetch latest
|
|
240
|
+
baseboards templates --refresh
|
|
241
|
+
|
|
242
|
+
# Show templates for specific version
|
|
243
|
+
baseboards templates --version 0.8.0
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Example output:**
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
📦 Available templates for v0.8.0:
|
|
250
|
+
|
|
251
|
+
baseboards (recommended)
|
|
252
|
+
Full-featured Boards application with UI
|
|
253
|
+
Frameworks: Next.js, React, TailwindCSS
|
|
254
|
+
Features: Authentication, Boards UI, Image Generation
|
|
255
|
+
Size: 12.5 MB
|
|
256
|
+
|
|
257
|
+
basic
|
|
258
|
+
Minimal starter for custom apps
|
|
259
|
+
Frameworks: Next.js, React
|
|
260
|
+
Features: GraphQL Client, Hooks
|
|
261
|
+
Size: 45.2 KB
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### `upgrade [directory]`
|
|
265
|
+
|
|
266
|
+
Upgrade Baseboards installation to a newer version. This updates templates and Docker Compose configurations while preserving your data and settings.
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
baseboards upgrade [directory] [options]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Options:**
|
|
273
|
+
|
|
274
|
+
| Flag | Description |
|
|
275
|
+
|------|-------------|
|
|
276
|
+
| `--version <version>` | Upgrade to specific version (default: latest) |
|
|
277
|
+
| `--dry-run` | Preview upgrade without making changes |
|
|
278
|
+
| `--force` | Skip confirmation prompts and compatibility warnings |
|
|
279
|
+
|
|
280
|
+
**Examples:**
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# Upgrade to latest version
|
|
284
|
+
baseboards upgrade
|
|
285
|
+
|
|
286
|
+
# Upgrade to specific version
|
|
287
|
+
baseboards upgrade --version 0.8.0
|
|
288
|
+
|
|
289
|
+
# Preview what would change
|
|
290
|
+
baseboards upgrade --dry-run
|
|
291
|
+
|
|
292
|
+
# Preview upgrade to specific version
|
|
293
|
+
baseboards upgrade --dry-run --version 0.8.0
|
|
78
294
|
```
|
|
79
295
|
|
|
80
296
|
### `doctor [directory]`
|
|
81
297
|
|
|
82
|
-
Run diagnostics and show system information.
|
|
298
|
+
Run diagnostics and show system information. Useful for troubleshooting issues.
|
|
83
299
|
|
|
84
300
|
```bash
|
|
85
|
-
baseboards doctor
|
|
301
|
+
baseboards doctor [directory]
|
|
86
302
|
```
|
|
87
303
|
|
|
88
|
-
|
|
304
|
+
**Checks:**
|
|
89
305
|
|
|
90
|
-
- Docker
|
|
306
|
+
- Docker installation and version
|
|
307
|
+
- Docker Compose availability
|
|
308
|
+
- Node.js version (for `--app-dev` mode)
|
|
309
|
+
- Service health status
|
|
310
|
+
- Port availability
|
|
311
|
+
- Configuration validity
|
|
312
|
+
|
|
313
|
+
**Example output:**
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
🏥 Baseboards Doctor
|
|
317
|
+
|
|
318
|
+
System Information:
|
|
319
|
+
Platform: darwin (macOS)
|
|
320
|
+
Docker: 24.0.2 ✓
|
|
321
|
+
Docker Compose: 2.18.1 ✓
|
|
322
|
+
Node.js: 20.5.0 ✓
|
|
323
|
+
|
|
324
|
+
Project Status:
|
|
325
|
+
Directory: /Users/user/my-app
|
|
326
|
+
Scaffolded: Yes
|
|
327
|
+
Mode: Docker (default)
|
|
328
|
+
Services:
|
|
329
|
+
✓ web (healthy)
|
|
330
|
+
✓ api (healthy)
|
|
331
|
+
✓ db (healthy)
|
|
332
|
+
✓ cache (healthy)
|
|
333
|
+
|
|
334
|
+
Configuration:
|
|
335
|
+
Ports: web=3300 api=8800 db=5432 redis=6379
|
|
336
|
+
Template: baseboards
|
|
337
|
+
Version: 0.8.0
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
## Template System
|
|
341
|
+
|
|
342
|
+
Templates are pre-configured frontend applications that work with the Boards backend. They are downloaded on-demand from GitHub Releases and cached locally for offline use.
|
|
343
|
+
|
|
344
|
+
### Available Templates
|
|
345
|
+
|
|
346
|
+
| Template | Size | Description | Best For |
|
|
347
|
+
|----------|------|-------------|----------|
|
|
348
|
+
| **baseboards** | ~12 MB | Full-featured application with authentication, boards UI, and image generation | Quick start, demos, production use |
|
|
349
|
+
| **basic** | ~45 KB | Minimal Next.js starter with GraphQL client and hooks | Custom apps, learning, minimal footprint |
|
|
350
|
+
|
|
351
|
+
### Template Selection
|
|
352
|
+
|
|
353
|
+
**Interactive (recommended):**
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
baseboards up my-app
|
|
357
|
+
# You'll be prompted to select a template
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**Explicit flag:**
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
baseboards up my-app --template basic
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Template Caching
|
|
367
|
+
|
|
368
|
+
Templates are automatically cached in `~/.cache/baseboards/templates/` after first download. This enables:
|
|
369
|
+
|
|
370
|
+
- **Offline usage** - Work without internet after initial download
|
|
371
|
+
- **Faster setup** - Subsequent projects use cached templates
|
|
372
|
+
- **Version pinning** - Each CLI version caches its compatible templates
|
|
373
|
+
|
|
374
|
+
**Clear cache:**
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
baseboards templates --refresh
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### How to Choose
|
|
381
|
+
|
|
382
|
+
**Choose `baseboards` if you want:**
|
|
383
|
+
- A complete, production-ready application
|
|
384
|
+
- Built-in authentication and user management
|
|
385
|
+
- Full boards UI with image generation
|
|
386
|
+
- Minimal configuration
|
|
387
|
+
|
|
388
|
+
**Choose `basic` if you want:**
|
|
389
|
+
- A minimal starting point for custom apps
|
|
390
|
+
- Full control over UI/UX design
|
|
391
|
+
- Smaller download size
|
|
392
|
+
- To learn how Boards works
|
|
393
|
+
|
|
394
|
+
## Development Modes
|
|
395
|
+
|
|
396
|
+
Baseboards supports two development modes optimized for different workflows.
|
|
397
|
+
|
|
398
|
+
### Docker Mode (Default)
|
|
399
|
+
|
|
400
|
+
All services run in Docker containers, including the frontend.
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
baseboards up my-app
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
**Characteristics:**
|
|
407
|
+
- Frontend runs in Docker with hot reload
|
|
408
|
+
- All services orchestrated via Docker Compose
|
|
409
|
+
- No Node.js required on host machine
|
|
410
|
+
- Best for: Quick testing, demos, production-like environments
|
|
411
|
+
|
|
412
|
+
**How it works:**
|
|
413
|
+
- Frontend dev server runs inside Docker container
|
|
414
|
+
- Changes to `web/` directory trigger hot reload
|
|
415
|
+
- Access at http://localhost:3300
|
|
416
|
+
|
|
417
|
+
### App-Dev Mode
|
|
418
|
+
|
|
419
|
+
Backend runs in Docker, frontend runs locally on your machine.
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
baseboards up my-app --app-dev
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Characteristics:**
|
|
426
|
+
- Backend services (API, DB, Redis) run in Docker
|
|
427
|
+
- Frontend runs as native dev server on host
|
|
428
|
+
- Native package manager integration (npm, pnpm, yarn, bun)
|
|
429
|
+
- Best for: Active frontend development, faster iteration
|
|
430
|
+
|
|
431
|
+
**How it works:**
|
|
432
|
+
1. Backend services start in Docker
|
|
433
|
+
2. CLI installs frontend dependencies using your preferred package manager
|
|
434
|
+
3. Frontend dev server starts locally
|
|
435
|
+
4. Hot reload works natively with your editor/IDE
|
|
436
|
+
|
|
437
|
+
**Prerequisites:**
|
|
91
438
|
- Node.js 20+
|
|
439
|
+
- Package manager (you'll be prompted to select one)
|
|
440
|
+
|
|
441
|
+
**Switching between modes:**
|
|
92
442
|
|
|
93
|
-
|
|
443
|
+
You can switch between modes by running `down` then `up` with different flags:
|
|
94
444
|
|
|
445
|
+
```bash
|
|
446
|
+
# Switch to app-dev mode
|
|
447
|
+
baseboards down
|
|
448
|
+
baseboards up --app-dev
|
|
449
|
+
|
|
450
|
+
# Switch back to Docker mode
|
|
451
|
+
baseboards down
|
|
452
|
+
baseboards up
|
|
95
453
|
```
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
454
|
+
|
|
455
|
+
## Common Workflows
|
|
456
|
+
|
|
457
|
+
### Starting a New Project
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
# Create and start new project
|
|
461
|
+
npx @weirdfingers/baseboards up my-boards-app
|
|
462
|
+
|
|
463
|
+
# Follow prompts for:
|
|
464
|
+
# 1. Template selection (baseboards or basic)
|
|
465
|
+
# 2. API key entry (Replicate, OpenAI, etc.)
|
|
466
|
+
|
|
467
|
+
# Access the application
|
|
468
|
+
open http://localhost:3300
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### Stopping and Starting
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Stop services (preserves data)
|
|
475
|
+
baseboards down
|
|
476
|
+
|
|
477
|
+
# Start again (no re-scaffolding needed)
|
|
478
|
+
baseboards up
|
|
479
|
+
|
|
480
|
+
# Stop and remove all data
|
|
481
|
+
baseboards down --volumes
|
|
104
482
|
```
|
|
105
483
|
|
|
484
|
+
### Viewing Logs
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# View all logs
|
|
488
|
+
baseboards logs
|
|
489
|
+
|
|
490
|
+
# Follow logs in real-time
|
|
491
|
+
baseboards logs -f
|
|
492
|
+
|
|
493
|
+
# View specific service
|
|
494
|
+
baseboards logs api
|
|
495
|
+
|
|
496
|
+
# Last 2 hours of API logs
|
|
497
|
+
baseboards logs api --since 2h
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Cleaning Up
|
|
501
|
+
|
|
502
|
+
```bash
|
|
503
|
+
# Remove project completely
|
|
504
|
+
baseboards down --volumes
|
|
505
|
+
cd ..
|
|
506
|
+
rm -rf my-boards-app
|
|
507
|
+
|
|
508
|
+
# Clean Docker resources (in project directory)
|
|
509
|
+
baseboards clean
|
|
510
|
+
|
|
511
|
+
# Full cleanup including images
|
|
512
|
+
baseboards clean --hard
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Using Custom Ports
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
# Frontend on 3000, API on 8000
|
|
519
|
+
baseboards up --ports web=3000 api=8000
|
|
520
|
+
|
|
521
|
+
# Just change frontend port
|
|
522
|
+
baseboards up --ports web=4000
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### Local Development Workflow
|
|
526
|
+
|
|
527
|
+
For active frontend development:
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
# 1. Start in app-dev mode
|
|
531
|
+
baseboards up my-app --app-dev
|
|
532
|
+
|
|
533
|
+
# 2. Backend runs in Docker (API, DB, Redis)
|
|
534
|
+
# 3. Frontend runs locally (native dev server)
|
|
535
|
+
# 4. Make changes to web/ directory
|
|
536
|
+
# 5. Hot reload works natively
|
|
537
|
+
|
|
538
|
+
# When done, stop services
|
|
539
|
+
baseboards down
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
For backend development, edit files in `api/` - changes will trigger reload in Docker.
|
|
543
|
+
|
|
106
544
|
## Configuration
|
|
107
545
|
|
|
108
|
-
###
|
|
546
|
+
### Environment Variables
|
|
109
547
|
|
|
110
|
-
|
|
548
|
+
API keys and configuration are stored in `api/.env`:
|
|
111
549
|
|
|
112
550
|
```bash
|
|
113
|
-
#
|
|
551
|
+
# Provider API keys (JSON format)
|
|
114
552
|
BOARDS_GENERATOR_API_KEYS={"REPLICATE_API_KEY":"r8_...","OPENAI_API_KEY":"sk-..."}
|
|
553
|
+
|
|
554
|
+
# Database (auto-configured)
|
|
555
|
+
POSTGRES_USER=boards
|
|
556
|
+
POSTGRES_PASSWORD=<generated>
|
|
557
|
+
POSTGRES_DB=boards
|
|
558
|
+
|
|
559
|
+
# Redis (auto-configured)
|
|
560
|
+
REDIS_PASSWORD=<generated>
|
|
561
|
+
|
|
562
|
+
# API secrets (auto-configured)
|
|
563
|
+
BOARDS_SECRET_KEY=<generated>
|
|
115
564
|
```
|
|
116
565
|
|
|
117
|
-
Get keys
|
|
566
|
+
**Get API keys:**
|
|
118
567
|
|
|
119
568
|
- **Replicate**: https://replicate.com/account/api-tokens
|
|
120
569
|
- **OpenAI**: https://platform.openai.com/api-keys
|
|
121
570
|
- **FAL**: https://fal.ai/dashboard/keys
|
|
122
571
|
- **Google**: https://makersuite.google.com/app/apikey
|
|
123
572
|
|
|
124
|
-
###
|
|
573
|
+
### Configuration Files
|
|
574
|
+
|
|
575
|
+
```
|
|
576
|
+
my-app/
|
|
577
|
+
├─ api/.env # Environment variables
|
|
578
|
+
├─ api/config/generators.yaml # Generator providers and models
|
|
579
|
+
├─ api/config/storage_config.yaml # Storage configuration (local/S3/GCS)
|
|
580
|
+
├─ compose.yaml # Docker Compose orchestration
|
|
581
|
+
└─ docker/ # Service-specific Docker configs
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
### Port Configuration
|
|
585
|
+
|
|
586
|
+
**Default ports:**
|
|
587
|
+
|
|
588
|
+
| Service | Port | Description |
|
|
589
|
+
|---------|------|-------------|
|
|
590
|
+
| web | 3300 | Frontend application |
|
|
591
|
+
| api | 8800 | Backend GraphQL API |
|
|
592
|
+
| db | 5432 | PostgreSQL (internal only) |
|
|
593
|
+
| cache | 6379 | Redis (internal only) |
|
|
594
|
+
|
|
595
|
+
**Custom ports:**
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
baseboards up --ports web=3000 api=8000
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
**Port conflicts:**
|
|
602
|
+
|
|
603
|
+
If ports are already in use, you'll see an error. Use `--ports` to specify different ports:
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
# Error: port 3300 already in use
|
|
607
|
+
baseboards up --ports web=3301
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
### Backend Version Pinning
|
|
611
|
+
|
|
612
|
+
The backend Docker image version is automatically matched to your CLI version. To use a different backend version:
|
|
613
|
+
|
|
614
|
+
1. Edit `compose.yaml` in your project
|
|
615
|
+
2. Change the image tag for the `api` service:
|
|
616
|
+
|
|
617
|
+
```yaml
|
|
618
|
+
services:
|
|
619
|
+
api:
|
|
620
|
+
image: ghcr.io/weirdfingers/boards-backend:0.8.0 # Pin to specific version
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
## Advanced Usage
|
|
624
|
+
|
|
625
|
+
### Offline Usage with Cached Templates
|
|
626
|
+
|
|
627
|
+
After downloading a template once, you can work offline:
|
|
628
|
+
|
|
629
|
+
```bash
|
|
630
|
+
# First time (requires internet)
|
|
631
|
+
baseboards up project1 --template basic
|
|
632
|
+
|
|
633
|
+
# Later (works offline if cached)
|
|
634
|
+
baseboards up project2 --template basic
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
Cache location: `~/.cache/baseboards/templates/`
|
|
638
|
+
|
|
639
|
+
### CI/CD Usage (Non-Interactive)
|
|
640
|
+
|
|
641
|
+
For automated deployments, specify template explicitly to avoid prompts:
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
# Non-interactive mode (no prompts)
|
|
645
|
+
baseboards up deployment --template baseboards
|
|
646
|
+
|
|
647
|
+
# Set API keys via environment
|
|
648
|
+
export BOARDS_GENERATOR_API_KEYS='{"REPLICATE_API_KEY":"r8_..."}'
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
### Custom Backend Versions
|
|
652
|
+
|
|
653
|
+
For testing or pinning specific backend versions:
|
|
654
|
+
|
|
655
|
+
```bash
|
|
656
|
+
# Start project
|
|
657
|
+
baseboards up my-app
|
|
658
|
+
|
|
659
|
+
# Edit compose.yaml
|
|
660
|
+
cd my-app
|
|
661
|
+
# Change image: ghcr.io/weirdfingers/boards-backend:latest
|
|
662
|
+
# to image: ghcr.io/weirdfingers/boards-backend:0.7.5
|
|
663
|
+
|
|
664
|
+
# Restart with specific version
|
|
665
|
+
baseboards down
|
|
666
|
+
baseboards up
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### Developer Mode (Monorepo Contributors)
|
|
670
|
+
|
|
671
|
+
For Boards contributors testing unpublished package changes:
|
|
672
|
+
|
|
673
|
+
```bash
|
|
674
|
+
# From monorepo root
|
|
675
|
+
cd boards
|
|
676
|
+
|
|
677
|
+
# Build packages
|
|
678
|
+
pnpm build
|
|
679
|
+
|
|
680
|
+
# Create test project with local packages
|
|
681
|
+
pnpm cli up test-app --app-dev --dev-packages
|
|
682
|
+
|
|
683
|
+
# Changes to packages/frontend are reflected immediately
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
**Note:** `--dev-packages` requires:
|
|
687
|
+
- Running from Boards monorepo
|
|
688
|
+
- `--app-dev` mode enabled
|
|
689
|
+
- Monorepo packages built
|
|
690
|
+
|
|
691
|
+
### Template Caching Management
|
|
692
|
+
|
|
693
|
+
```bash
|
|
694
|
+
# View available templates and cache status
|
|
695
|
+
baseboards templates
|
|
696
|
+
|
|
697
|
+
# Refresh cache (re-download all templates)
|
|
698
|
+
baseboards templates --refresh
|
|
699
|
+
|
|
700
|
+
# View templates for different version
|
|
701
|
+
baseboards templates --version 0.7.0
|
|
702
|
+
|
|
703
|
+
# Manually clear cache
|
|
704
|
+
rm -rf ~/.cache/baseboards/templates
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
## Troubleshooting
|
|
708
|
+
|
|
709
|
+
### Common Issues
|
|
710
|
+
|
|
711
|
+
#### Port Conflicts
|
|
712
|
+
|
|
713
|
+
**Symptoms:** Error message "port 3300 already in use"
|
|
714
|
+
|
|
715
|
+
**Solutions:**
|
|
716
|
+
|
|
717
|
+
```bash
|
|
718
|
+
# Option 1: Stop conflicting service
|
|
719
|
+
# Find what's using the port
|
|
720
|
+
lsof -i :3300 # macOS/Linux
|
|
721
|
+
netstat -ano | findstr :3300 # Windows
|
|
722
|
+
|
|
723
|
+
# Option 2: Use different ports
|
|
724
|
+
baseboards up --ports web=3301 api=8801
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
#### Docker Not Running
|
|
728
|
+
|
|
729
|
+
**Symptoms:** "Cannot connect to the Docker daemon"
|
|
730
|
+
|
|
731
|
+
**Solutions:**
|
|
732
|
+
|
|
733
|
+
1. Start Docker Desktop (macOS/Windows)
|
|
734
|
+
2. Start Docker Engine (Linux): `sudo systemctl start docker`
|
|
735
|
+
3. Verify: `docker ps`
|
|
736
|
+
|
|
737
|
+
Run diagnostics:
|
|
738
|
+
|
|
739
|
+
```bash
|
|
740
|
+
baseboards doctor
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
#### Template Download Failures
|
|
744
|
+
|
|
745
|
+
**Symptoms:** "Failed to download template" or "Network error"
|
|
746
|
+
|
|
747
|
+
**Solutions:**
|
|
748
|
+
|
|
749
|
+
```bash
|
|
750
|
+
# Check internet connection
|
|
751
|
+
ping github.com
|
|
752
|
+
|
|
753
|
+
# Clear cache and retry
|
|
754
|
+
baseboards templates --refresh
|
|
755
|
+
|
|
756
|
+
# Try different template
|
|
757
|
+
baseboards up my-app --template basic
|
|
758
|
+
|
|
759
|
+
# Check GitHub status
|
|
760
|
+
# https://www.githubstatus.com/
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
#### Permission Errors
|
|
764
|
+
|
|
765
|
+
**Symptoms:** "Permission denied" when creating directories
|
|
766
|
+
|
|
767
|
+
**Solutions:**
|
|
125
768
|
|
|
126
|
-
|
|
769
|
+
```bash
|
|
770
|
+
# Ensure you have write permissions
|
|
771
|
+
mkdir test-dir && rmdir test-dir
|
|
772
|
+
|
|
773
|
+
# Try different directory
|
|
774
|
+
baseboards up ~/Documents/my-app
|
|
127
775
|
|
|
128
|
-
|
|
776
|
+
# Linux: Check Docker group membership
|
|
777
|
+
groups # Should include "docker"
|
|
778
|
+
sudo usermod -aG docker $USER # Add to docker group
|
|
779
|
+
# Log out and back in
|
|
780
|
+
```
|
|
129
781
|
|
|
130
|
-
|
|
782
|
+
#### Database Password Mismatch
|
|
783
|
+
|
|
784
|
+
**Symptoms:** "password authentication failed for user boards"
|
|
785
|
+
|
|
786
|
+
**Solution:**
|
|
787
|
+
|
|
788
|
+
```bash
|
|
789
|
+
# Clean start (removes volumes)
|
|
790
|
+
baseboards down --volumes
|
|
791
|
+
baseboards up --fresh
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
#### Node.js Version Issues (App-Dev Mode)
|
|
795
|
+
|
|
796
|
+
**Symptoms:** "Node.js 20+ required for --app-dev mode"
|
|
797
|
+
|
|
798
|
+
**Solutions:**
|
|
799
|
+
|
|
800
|
+
```bash
|
|
801
|
+
# Check version
|
|
802
|
+
node --version
|
|
803
|
+
|
|
804
|
+
# Upgrade Node.js
|
|
805
|
+
# Using nvm (recommended)
|
|
806
|
+
nvm install 20
|
|
807
|
+
nvm use 20
|
|
808
|
+
|
|
809
|
+
# Or download from https://nodejs.org/
|
|
810
|
+
```
|
|
811
|
+
|
|
812
|
+
#### Out of Disk Space
|
|
813
|
+
|
|
814
|
+
**Symptoms:** "no space left on device"
|
|
815
|
+
|
|
816
|
+
**Solutions:**
|
|
817
|
+
|
|
818
|
+
```bash
|
|
819
|
+
# Clean up Docker resources
|
|
820
|
+
docker system prune -a --volumes
|
|
821
|
+
|
|
822
|
+
# Remove old Baseboards projects
|
|
823
|
+
baseboards clean --hard
|
|
824
|
+
cd old-project && baseboards down --volumes
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
### Getting Help
|
|
828
|
+
|
|
829
|
+
**Run diagnostics:**
|
|
830
|
+
|
|
831
|
+
```bash
|
|
832
|
+
baseboards doctor
|
|
833
|
+
```
|
|
131
834
|
|
|
132
|
-
|
|
835
|
+
**View logs:**
|
|
836
|
+
|
|
837
|
+
```bash
|
|
838
|
+
baseboards logs -f
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
**Report issues:**
|
|
842
|
+
|
|
843
|
+
- GitHub Issues: https://github.com/weirdfingers/boards/issues
|
|
844
|
+
- Include output from `baseboards doctor`
|
|
845
|
+
- Include relevant logs from `baseboards logs`
|
|
846
|
+
|
|
847
|
+
**Documentation:**
|
|
848
|
+
|
|
849
|
+
- Full docs: https://baseboards.dev/docs
|
|
850
|
+
- API reference: https://baseboards.dev/docs/api
|
|
851
|
+
- Guides: https://baseboards.dev/docs/guides
|
|
852
|
+
|
|
853
|
+
**Community:**
|
|
854
|
+
|
|
855
|
+
- Discord: https://discord.gg/rvVuHyuPEx
|
|
856
|
+
- GitHub Discussions: https://github.com/weirdfingers/boards/discussions
|
|
857
|
+
|
|
858
|
+
## Community & Social
|
|
859
|
+
|
|
860
|
+
Join the Weirdfingers community:
|
|
861
|
+
|
|
862
|
+
- **Discord**: [https://discord.gg/rvVuHyuPEx](https://discord.gg/rvVuHyuPEx)
|
|
863
|
+
- **GitHub**: [https://github.com/weirdfingers/boards](https://github.com/weirdfingers/boards)
|
|
864
|
+
- **TikTok**: [https://www.tiktok.com/@weirdfingers](https://www.tiktok.com/@weirdfingers)
|
|
865
|
+
- **X (Twitter)**: [https://x.com/_Weirdfingers_](https://x.com/_Weirdfingers_)
|
|
866
|
+
- **YouTube**: [https://www.youtube.com/@Weirdfingers](https://www.youtube.com/@Weirdfingers)
|
|
867
|
+
- **Instagram**: [https://www.instagram.com/_weirdfingers_/](https://www.instagram.com/_weirdfingers_/)
|
|
868
|
+
|
|
869
|
+
## License
|
|
870
|
+
|
|
871
|
+
MIT
|
|
872
|
+
|
|
873
|
+
---
|
|
874
|
+
|
|
875
|
+
## For Contributors
|
|
133
876
|
|
|
134
877
|
This package is part of the Boards monorepo.
|
|
135
878
|
|
|
136
879
|
### Building
|
|
137
880
|
|
|
138
881
|
```bash
|
|
882
|
+
# Install dependencies
|
|
883
|
+
pnpm install
|
|
884
|
+
|
|
885
|
+
# Build package
|
|
139
886
|
pnpm build
|
|
140
887
|
```
|
|
141
888
|
|
|
142
889
|
This will:
|
|
143
|
-
|
|
144
890
|
1. Run `prepare-templates.js` to copy templates from monorepo
|
|
145
891
|
2. Build TypeScript with tsup
|
|
146
892
|
3. Create `dist/` and `templates/` directories
|
|
@@ -148,37 +894,35 @@ This will:
|
|
|
148
894
|
### Testing Locally
|
|
149
895
|
|
|
150
896
|
```bash
|
|
151
|
-
#
|
|
897
|
+
# Build the package
|
|
152
898
|
pnpm build
|
|
153
899
|
|
|
154
|
-
#
|
|
900
|
+
# Run CLI directly
|
|
155
901
|
node dist/index.js up test-project
|
|
156
902
|
|
|
157
|
-
#
|
|
903
|
+
# Clean up
|
|
158
904
|
cd test-project
|
|
159
905
|
docker compose down -v
|
|
160
906
|
cd ..
|
|
161
907
|
rm -rf test-project
|
|
162
908
|
```
|
|
163
909
|
|
|
164
|
-
**Note:** The `-v` flag removes volumes (including database data). Use `docker compose down` without `-v` if you want to preserve data between tests.
|
|
165
|
-
|
|
166
910
|
### Release
|
|
167
911
|
|
|
168
|
-
All packages use unified versioning
|
|
912
|
+
All packages use unified versioning:
|
|
169
913
|
|
|
170
914
|
```bash
|
|
171
915
|
# Bump version across all packages
|
|
172
916
|
pnpm version 1.2.0 -r
|
|
173
917
|
|
|
174
|
-
# Build
|
|
918
|
+
# Build
|
|
175
919
|
pnpm build
|
|
176
920
|
|
|
177
921
|
# Publish
|
|
178
922
|
pnpm publish
|
|
179
923
|
```
|
|
180
924
|
|
|
181
|
-
|
|
925
|
+
### Architecture
|
|
182
926
|
|
|
183
927
|
The CLI bundles templates from the monorepo:
|
|
184
928
|
|
|
@@ -188,17 +932,3 @@ The CLI bundles templates from the monorepo:
|
|
|
188
932
|
Templates are copied during build time via `scripts/prepare-templates.js`.
|
|
189
933
|
|
|
190
934
|
When users run `baseboards up`, templates are copied to their machine and Docker Compose orchestrates the services.
|
|
191
|
-
|
|
192
|
-
## Community & Social
|
|
193
|
-
|
|
194
|
-
Join the Weirdfingers community:
|
|
195
|
-
|
|
196
|
-
- **TikTok**: [https://www.tiktok.com/@weirdfingers](https://www.tiktok.com/@weirdfingers)
|
|
197
|
-
- **X (Twitter)**: [https://x.com/_Weirdfingers_](https://x.com/_Weirdfingers_)
|
|
198
|
-
- **YouTube**: [https://www.youtube.com/@Weirdfingers](https://www.youtube.com/@Weirdfingers)
|
|
199
|
-
- **Discord**: [https://discord.gg/rvVuHyuPEx](https://discord.gg/rvVuHyuPEx)
|
|
200
|
-
- **Instagram**: [https://www.instagram.com/_weirdfingers_/](https://www.instagram.com/_weirdfingers_/)
|
|
201
|
-
|
|
202
|
-
## License
|
|
203
|
-
|
|
204
|
-
MIT
|