Overview
This guide covers detailed installation steps for 8Space, including system requirements, dependency setup, database configuration, and deployment options.For a faster getting started experience, see the Quickstart guide.
System requirements
Required software
| Software | Minimum version | Recommended | Purpose |
|---|---|---|---|
| Node.js | 18.x | 20.x LTS | JavaScript runtime |
| npm | 8.x | 10.x | Package manager |
| Supabase CLI | 1.50+ | Latest | Local database management |
| Docker | 20.x | Latest | Required for Supabase local dev |
| Git | 2.x | Latest | Version control |
Optional software
- Python 3 (for Swagger UI dev server)
- PostgreSQL client (for direct database access)
Operating system support
8Space is tested on:- macOS 12+ (Apple Silicon and Intel)
- Ubuntu 20.04+ and Debian-based Linux
- Windows 10+ with WSL2
Installation methods
Choose the installation method that fits your needs:- Local development
- Production (self-hosted)
- Docker
Complete setup for local development with hot reload and debugging.
Local development setup
Follow these steps for a complete local development environment.Step 1: Install Node.js and npm
Step 2: Install Supabase CLI
Step 3: Install Docker
Supabase local development requires Docker to run PostgreSQL and other services.On Linux, you may need to log out and back in after adding your user to the docker group.
Step 4: Clone the repository
Clone 8Space from GitHub:Step 5: Install dependencies
Install all workspace dependencies from the root:- Root workspace
packages/landing(Next.js landing page)packages/app(React + Vite main application)
Understanding npm workspaces
Understanding npm workspaces
The root This allows npm to:
package.json defines a workspace:- Hoist common dependencies to the root
node_modules - Link workspace packages together
- Run workspace-specific commands with
-wflag
Step 6: Configure Supabase
Initialize and start the local Supabase instance:What happens during supabase start?
What happens during supabase start?
The CLI:
-
Pulls Docker images for:
- PostgreSQL 15 (database)
- PostgREST (auto-generated REST API)
- GoTrue (authentication)
- Realtime (WebSocket subscriptions)
- Storage (file uploads)
- Kong (API gateway)
- Supabase Studio (admin UI)
-
Starts containers with ports:
54321- API Gateway54322- PostgreSQL direct connection54323- Supabase Studio55324- Inbucket (email testing)
-
Outputs connection details:
-
Applies migrations from
supabase/migrations/
supabase start, especially:
anon key(for client-side auth)service_role key(for admin operations)
Step 7: Apply migrations and seed data
Reset the database to apply all migrations and seed test data:- Drops and recreates the database
- Applies migrations in order:
20260212220000_init_gantt_mvp.sql- Core schema20260213220000_auto_join_new_users.sql- User onboarding20260213220100_handle_new_user_google_compat.sql- Google OAuth20260216220000_fix_create_project_trigger_conflict.sql- Bug fix20260217143000_multi_tenant_onboarding.sql- Multi-tenancy
- Runs
seed.sqlto create:- 3 test users (owner, editor, viewer)
- 1 demo tenant (“8Space Demo”)
- 1 demo project (“Product Launch Q2”)
- 5 sample tasks with dependencies
The seed data is defined in
packages/app/supabase/seed.sql. You can modify it to create custom test data.Step 8: Configure environment variables
Create environment files for both packages. App environment (packages/app/.env):
packages/landing/.env.local):
Google OAuth configuration
Google OAuth configuration
To enable Google sign-in:
- Create OAuth credentials in Google Cloud Console
- Add authorized redirect URI:
http://127.0.0.1:54321/auth/v1/callback - Copy Client ID and Secret
- Edit
packages/app/supabase/config.toml: - Restart Supabase:
Step 9: Start the development environment
Run all services with the unified dev script:-
Landing page (
packages/landing)- Next.js dev server on
http://localhost:3000 - Hot reload enabled
- API routes at
/api/*
- Next.js dev server on
-
Main app (
packages/app)- Vite dev server on
http://localhost:5173/app/ - Fast HMR (Hot Module Replacement)
- React DevTools compatible
- Vite dev server on
-
Swagger UI (from
docs/api/)- Auto-assigned port (default: 55027)
- Serves OpenAPI spec at
/openapi.yaml - Interactive API testing
Step 10: Verify the installation
Test your setup:-
Open the app:
http://localhost:5173/app/ -
Log in with test account:
- Email:
[email protected] - Password:
password123
- Email:
-
Explore features:
- Switch between Backlog, Kanban, Timeline, and Dashboard views
- Create a new task
- Drag tasks between columns
- View task dependencies in Timeline
-
Check Supabase Studio:
http://localhost:54323- Browse tables in Table Editor
- View auth users
- Run SQL queries
-
Test API docs:
http://127.0.0.1:55027- Browse endpoints in Swagger UI
- Test API calls directly
Production deployment
For production deployment, you’ll need:- Production Supabase project (Supabase Cloud or self-hosted)
- Frontend hosting (Vercel, Netlify, or custom server)
- Custom domain (optional but recommended)
Create a Supabase project
Sign up for Supabase
Create a free account at supabase.com or set up a self-hosted instance.
Create a new project
In the Supabase dashboard:
- Click New project
- Choose a name and region
- Set a strong database password
- Wait for provisioning (2-3 minutes)
Run migrations
Link your local project and push migrations:This applies all migrations from
supabase/migrations/ to production.Deploy to Vercel
8Space is optimized for deployment on Vercel.Import project to Vercel
- Sign up at vercel.com
- Click Add New Project
- Import your GitHub repository
- Vercel auto-detects the Next.js app in
packages/landing
Configure build settings
Set the root directory:
- Root Directory:
packages/landing - Build Command:
npm run build - Output Directory:
.next
For the React app (
packages/app), you’ll need to build and serve it separately or include it in the same deployment with appropriate routing.Deploy the React app
Build the Vite app for production:dist/. Serve it with:
- Static hosting: Upload
dist/to Netlify, Vercel, or S3 + CloudFront - Custom server: Use Nginx, Apache, or Node.js serve
Database management
Creating migrations
When you modify the database schema:supabase/migrations/ with a timestamp prefix.
Edit the file to add your SQL changes:
Rolling back migrations
To undo the last migration:Viewing migration status
Check which migrations are applied:Troubleshooting
Docker daemon not running
Docker daemon not running
Error:
Cannot connect to the Docker daemonSolution:Port conflicts
Port conflicts
Error: Then update your
Port 54321 is already in useSolution: Stop conflicting services or change ports in packages/app/supabase/config.toml:.env file accordingly.Migration failures
Migration failures
Error:
Migration failed: relation already existsSolution: Reset the database completely:Authentication errors
Authentication errors
Error:
Invalid JWT or User not foundSolution:- Verify
VITE_SUPABASE_ANON_KEYmatchessupabase statusoutput - Check
packages/app/supabase/config.tomlhas: - Clear browser localStorage and cookies
- Restart Supabase:
npm install fails
npm install fails
Error:
ERESOLVE unable to resolve dependency treeSolution:Vite build errors
Vite build errors
Error:
Transform failed with 1 error or Cannot find moduleSolution:- Clear Vite cache:
- Restart dev server
- Check TypeScript errors:
Advanced configuration
Custom Supabase configuration
Editpackages/app/supabase/config.toml to customize:
Environment-specific configurations
Use different.env files for each environment:
NODE_ENV:
Next steps
Configuration
Learn about all available environment variables and configuration options.
Database schema
Deep dive into the PostgreSQL schema and data relationships.
Authentication
Set up email, Google OAuth, and other authentication providers.
API reference
Explore the REST API and integrate with external services.