frontend_dir = 'frontend' backend_dir = 'backend' backend_url = os.getenv('SLIPNOTE_BACKEND_URL', 'http://localhost:3001') database_url = os.getenv('DATABASE_URL', 'postgres://slipnote:slipnote@localhost:5432/slipnote') frontend_env = { 'PUBLIC_BACKEND_URL': os.getenv('PUBLIC_BACKEND_URL', backend_url), 'VITE_BACKEND_URL': os.getenv('VITE_BACKEND_URL', backend_url), } local_resource( 'frontend', serve_cmd='pnpm dev --host 0.0.0.0 --port 4321', serve_dir=frontend_dir, env=frontend_env, deps=[ 'frontend/astro.config.mjs', 'frontend/package.json', 'frontend/pnpm-lock.yaml', ], links=[ 'http://localhost:4321' ], resource_deps=[], ) local_resource( 'storybook', serve_cmd='pnpm exec storybook dev --ci -p 6007', serve_dir=frontend_dir, env=frontend_env, deps=[ 'frontend/.storybook', 'frontend/package.json', 'frontend/pnpm-lock.yaml', ], links=[ 'http://localhost:6007' ], resource_deps=[], ) local_resource( 'postgres', cmd='docker rm -f slipnote-postgres || true', serve_cmd='docker run --rm --name slipnote-postgres ' + '-p 5432:5432 ' + '-e POSTGRES_USER=slipnote ' + '-e POSTGRES_PASSWORD=slipnote ' + '-e POSTGRES_DB=slipnote ' + 'postgres:16', links=[ database_url ], resource_deps=[], ) local_resource( 'backend', serve_cmd='nix develop -c env ' + 'SLIPNOTE_BIND_ADDR=0.0.0.0:3001 ' + 'DATABASE_URL=' + database_url + ' ' + 'cargo run', serve_dir=backend_dir, deps=[ 'backend/Cargo.toml', 'backend/Cargo.lock', 'backend/src', 'backend/.env', ], links=[ backend_url ], resource_deps=[ 'postgres' ], )