diff --git a/README.md b/README.md index 5cb6578..6d621de 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,27 @@ Zep is a self-hosted, real-time communication platform built with Svelte 5 and S --- -## Local Development +## Getting Started ### Prerequisites * Node.js (v18+) * pnpm * SpacetimeDB CLI (`spacetime`) +* **For Docker:** Docker and Docker Compose + +--- + +### One-Step Deployment (Recommended) + +The easiest way to get Zep running locally is using Docker. This command builds and starts both the frontend and the SpacetimeDB module in a single step. + +```bash +pnpm run deploy:local +``` + +--- + +## Local Development (Manual Setup) ### 1. Backend Setup 1. Navigate to the backend directory: `cd spacetimedb` @@ -48,13 +63,14 @@ Zep is a self-hosted, real-time communication platform built with Svelte 5 and S VITE_SPACETIMEDB_DB_NAME= ``` 3. Start the development server: `pnpm run dev` + * *For local network testing with SSL, use `pnpm run dev:ssl`.* --- ## Production Deployment -### Option 1: Docker (Recommended for Self-Hosting) -Zep can be deployed as a set of containers using Docker Compose. +### Option 1: Docker +Zep can be deployed using Docker Compose for a production-like local environment or self-hosting. ```bash pnpm run deploy:local ``` @@ -64,15 +80,11 @@ pnpm run deploy:local #### Backend (SpacetimeDB Maincloud) 1. Publish the module to Maincloud: ```bash - spacetime publish --server maincloud + pnpm run spacetime:publish ``` #### Frontend (Cloudflare Pages) -1. Build the project: - ```bash - pnpm run build - ``` -2. Deploy using Wrangler: +1. Build and deploy using Wrangler: ```bash pnpm run deploy:cloudflare ``` diff --git a/package.json b/package.json index 803ad8f..b028803 100644 --- a/package.json +++ b/package.json @@ -5,20 +5,16 @@ "type": "module", "scripts": { "dev": "vite --host=0.0.0.0", - "ssldev": "VITE_USE_SSL=true vite --host=0.0.0.0", - "docker:local": "docker compose -f docker-compose.local.yml up --build", - "build": "tsc -b && vite build", - "format": "prettier . --write --ignore-path ../../.prettierignore", + "dev:ssl": "VITE_USE_SSL=true vite --host=0.0.0.0", + "build": "pnpm run spacetime:generate && tsc -b && vite build", "lint": "eslint .", - "preview": "pnpm run build && wrangler dev", + "format": "prettier . --write", "test": "vitest run", "spacetime:generate": "spacetime generate --lang typescript --out-dir src/module_bindings --module-path spacetimedb", - "spacetime:publish:local": "spacetime publish --module-path spacetimedb --server local", "spacetime:publish": "spacetime publish --module-path spacetimedb --server maincloud", + "spacetime:publish:local": "spacetime publish --module-path spacetimedb --server local", "deploy:local": "docker compose -f docker-compose.local.yml up --build", - "deploy:maincloud": "docker compose -f docker-compose.maincloud.yml up --build", - "deploy:cloudflare": "wrangler deploy", - "deploy": "pnpm run build && wrangler deploy" + "deploy:cloudflare": "pnpm run build && wrangler deploy" }, "dependencies": { "@fortawesome/fontawesome-free": "^7.2.0",