Built for people who think better out loud.
1frontend_dir = 'frontend'
2backend_dir = 'backend'
3backend_url = os.getenv('SLIPNOTE_BACKEND_URL', 'http://localhost:3001')
4database_url = os.getenv('DATABASE_URL', 'postgres://slipnote:slipnote@localhost:5432/slipnote')
5
6frontend_env = {
7 'PUBLIC_BACKEND_URL': os.getenv('PUBLIC_BACKEND_URL', backend_url),
8 'VITE_BACKEND_URL': os.getenv('VITE_BACKEND_URL', backend_url),
9}
10
11local_resource(
12 'frontend',
13 serve_cmd='pnpm dev --host 0.0.0.0 --port 4321',
14 serve_dir=frontend_dir,
15 env=frontend_env,
16 deps=[
17 'frontend/astro.config.mjs',
18 'frontend/package.json',
19 'frontend/pnpm-lock.yaml',
20 ],
21 links=[ 'http://localhost:4321' ],
22 resource_deps=[],
23)
24
25local_resource(
26 'storybook',
27 serve_cmd='pnpm exec storybook dev --ci -p 6007',
28 serve_dir=frontend_dir,
29 env=frontend_env,
30 deps=[
31 'frontend/.storybook',
32 'frontend/package.json',
33 'frontend/pnpm-lock.yaml',
34 ],
35 links=[ 'http://localhost:6007' ],
36 resource_deps=[],
37)
38
39local_resource(
40 'postgres',
41 cmd='docker rm -f slipnote-postgres || true',
42 serve_cmd='docker run --rm --name slipnote-postgres '
43 + '-p 5432:5432 '
44 + '-e POSTGRES_USER=slipnote '
45 + '-e POSTGRES_PASSWORD=slipnote '
46 + '-e POSTGRES_DB=slipnote '
47 + 'postgres:16',
48 links=[ database_url ],
49 resource_deps=[],
50)
51
52local_resource(
53 'backend',
54 serve_cmd='nix develop -c env '
55 + 'SLIPNOTE_BIND_ADDR=0.0.0.0:3001 '
56 + 'DATABASE_URL=' + database_url + ' '
57 + 'cargo run',
58 serve_dir=backend_dir,
59 deps=[
60 'backend/Cargo.toml',
61 'backend/Cargo.lock',
62 'backend/src',
63 'backend/.env',
64 ],
65 links=[ backend_url ],
66 resource_deps=[ 'postgres' ],
67)