Set up DeployStack for local development with npm scripts and hot reloading.
This guide is for contributors and developers who want to run DeployStack locally for development purposes. If you want to deploy DeployStack for production use, see our Self-Hosted Documentation.
# Before you can install and use DeployStack locally, make sure you have:# - Git: Version control system# - Node.js v18+: JavaScript runtime (v18 or higher required)# - npm v8+: Package manager (comes with Node.js)# - Docker: For running databases (optional but recommended)# Verify Installationgit --versionnode --version # Should be v18 or highernpm --version # Should be v8 or higherdocker --version
Windows (WSL) Users: After installing Docker, you may need to restart your WSL session or run newgrp docker to use Docker without sudo.
# If you haven't set up SSH keys, learn how at:# https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-sshgit clone git@github.com:deploystackio/deploystack.gitcd deploystack
Install all project dependencies using npm workspaces:
Copy
# Install dependencies for all servicesnpm install
DeployStack uses npm workspaces to manage dependencies across frontend and backend services. The root npm install will install dependencies for all services.
Edit services/backend/.env with your configuration:
Copy
# Required: Generate a secure encryption secretDEPLOYSTACK_ENCRYPTION_SECRET=your-32-character-secret-here# Frontend URL (for CORS and redirects)DEPLOYSTACK_FRONTEND_URL=http://localhost:5173# Development settingsNODE_ENV=developmentPORT=3000LOG_LEVEL=debug
DeployStack uses SQLite by default for development, but you can optionally set up PostgreSQL:
Copy
No additional setup required. DeployStack will create a SQLite database automatically in services/backend/persistent_data/.The database file will be created on first run:services/backend/persistent_data/database/deploystack.db
# Start backend in backgroundnpm run dev:backend &# Start frontendnpm run dev:frontend# To stop background processes later:# pkill -f "npm run dev:backend"
# Developmentnpm run dev:frontend # Start frontend dev servernpm run dev:backend # Start backend dev server# Buildingnpm run build:frontend # Build frontend for productionnpm run build:backend # Build backend TypeScript# Lintingnpm run lint:frontend # Lint frontend codenpm run lint:backend # Lint backend codenpm run lint:md # Lint markdown files# Testingnpm run test:backend:unit # Run backend unit testsnpm run test:backend:e2e # Run backend e2e testsnpm run test:backend:unit:coverage # Run tests with coverage# Releasesnpm run release:frontend # Create frontend releasenpm run release:backend # Create backend release