|
| 1 | +# One-Click Deploy Checklist |
| 2 | + |
| 3 | +You clicked a deploy button and now have the OpenSync frontend running on Vercel or Netlify. The frontend is deployed, but the app won't work until you complete the backend setup. |
| 4 | + |
| 5 | +## What one-click deploy does |
| 6 | + |
| 7 | +- Forks the OpenSync repository to your GitHub account |
| 8 | +- Deploys the React frontend to Vercel or Netlify |
| 9 | +- Prompts you for environment variables (which you may not have yet) |
| 10 | + |
| 11 | +## What one-click deploy does NOT do |
| 12 | + |
| 13 | +- Set up the Convex backend (database and functions) |
| 14 | +- Create your WorkOS authentication account |
| 15 | +- Configure OAuth redirect URIs |
| 16 | +- Set up OpenAI for embeddings |
| 17 | + |
| 18 | +## Post-deploy checklist |
| 19 | + |
| 20 | +Complete these steps to get OpenSync fully working: |
| 21 | + |
| 22 | +### 1. Set up Convex backend |
| 23 | + |
| 24 | +```bash |
| 25 | +# Clone your forked repo locally |
| 26 | +git clone https://github.com/YOUR_USERNAME/opensync.git |
| 27 | +cd opensync |
| 28 | +npm install |
| 29 | + |
| 30 | +# Initialize Convex (creates a new project) |
| 31 | +npx convex dev |
| 32 | +``` |
| 33 | + |
| 34 | +This will: |
| 35 | +- Prompt you to log in to Convex (create account if needed) |
| 36 | +- Create a new Convex project |
| 37 | +- Deploy the schema and functions |
| 38 | +- Give you a deployment URL like `https://happy-animal-123.convex.cloud` |
| 39 | + |
| 40 | +Keep this terminal running during development. |
| 41 | + |
| 42 | +- [ ] Convex project created |
| 43 | +- [ ] Note your Convex URL: `https://____________.convex.cloud` |
| 44 | + |
| 45 | +### 2. Set up WorkOS authentication |
| 46 | + |
| 47 | +1. Go to [dashboard.workos.com](https://dashboard.workos.com) and create a project |
| 48 | +2. Enable **Email + Password** authentication in Authentication section |
| 49 | +3. Add redirect URIs in the Redirects section: |
| 50 | + |
| 51 | +``` |
| 52 | +https://your-deployed-url.vercel.app/callback |
| 53 | +https://your-deployed-url.netlify.app/callback |
| 54 | +``` |
| 55 | + |
| 56 | +Replace with your actual deployed URL from Vercel or Netlify. |
| 57 | + |
| 58 | +4. Copy your **Client ID** (`client_xxxxx`) from API Keys |
| 59 | + |
| 60 | +- [ ] WorkOS project created |
| 61 | +- [ ] Email + Password auth enabled |
| 62 | +- [ ] Redirect URI added for your deployed URL |
| 63 | +- [ ] Note your Client ID: `client_____________` |
| 64 | + |
| 65 | +### 3. Set up OpenAI (for semantic search) |
| 66 | + |
| 67 | +1. Go to [platform.openai.com/api-keys](https://platform.openai.com/api-keys) |
| 68 | +2. Create a new API key |
| 69 | +3. Copy it (you won't see it again) |
| 70 | + |
| 71 | +- [ ] OpenAI API key created |
| 72 | +- [ ] Note your API key: `sk-____________` |
| 73 | + |
| 74 | +### 4. Set Convex environment variables |
| 75 | + |
| 76 | +In the [Convex dashboard](https://dashboard.convex.dev): |
| 77 | + |
| 78 | +1. Select your project |
| 79 | +2. Go to **Settings** > **Environment Variables** |
| 80 | +3. Add these variables: |
| 81 | + |
| 82 | +| Name | Value | |
| 83 | +|------|-------| |
| 84 | +| `WORKOS_CLIENT_ID` | `client_xxxxx` (from step 2) | |
| 85 | +| `OPENAI_API_KEY` | `sk-xxxxx` (from step 3) | |
| 86 | + |
| 87 | +- [ ] WORKOS_CLIENT_ID set in Convex |
| 88 | +- [ ] OPENAI_API_KEY set in Convex |
| 89 | + |
| 90 | +### 5. Deploy Convex backend |
| 91 | + |
| 92 | +```bash |
| 93 | +npx convex deploy |
| 94 | +``` |
| 95 | + |
| 96 | +This deploys your backend to production. |
| 97 | + |
| 98 | +- [ ] Convex backend deployed |
| 99 | + |
| 100 | +### 6. Update frontend environment variables |
| 101 | + |
| 102 | +In your Vercel or Netlify dashboard, update environment variables: |
| 103 | + |
| 104 | +**Vercel:** Project Settings > Environment Variables |
| 105 | + |
| 106 | +**Netlify:** Site settings > Environment variables |
| 107 | + |
| 108 | +| Variable | Value | |
| 109 | +|----------|-------| |
| 110 | +| `VITE_CONVEX_URL` | `https://your-project.convex.cloud` (from step 1) | |
| 111 | +| `VITE_WORKOS_CLIENT_ID` | `client_xxxxx` (from step 2) | |
| 112 | + |
| 113 | +- [ ] VITE_CONVEX_URL set |
| 114 | +- [ ] VITE_WORKOS_CLIENT_ID set |
| 115 | + |
| 116 | +### 7. Redeploy frontend |
| 117 | + |
| 118 | +Trigger a new deployment in Vercel or Netlify to pick up the new environment variables. |
| 119 | + |
| 120 | +**Vercel:** Deployments > Redeploy |
| 121 | + |
| 122 | +**Netlify:** Deploys > Trigger deploy |
| 123 | + |
| 124 | +- [ ] Frontend redeployed with correct environment variables |
| 125 | + |
| 126 | +### 8. Test the app |
| 127 | + |
| 128 | +1. Visit your deployed URL |
| 129 | +2. Click "Get Started" to sign in |
| 130 | +3. Create an account or sign in |
| 131 | +4. You should see the empty dashboard |
| 132 | +5. Go to Settings and generate an API key |
| 133 | + |
| 134 | +- [ ] Can sign in with WorkOS |
| 135 | +- [ ] Dashboard loads correctly |
| 136 | +- [ ] Can generate API key in Settings |
| 137 | + |
| 138 | +## Install a sync plugin (optional) |
| 139 | + |
| 140 | +Once your instance is working, install a plugin to sync coding sessions: |
| 141 | + |
| 142 | +**For Claude Code:** |
| 143 | +```bash |
| 144 | +npm install -g claude-code-sync |
| 145 | +claude-code-sync login |
| 146 | +``` |
| 147 | + |
| 148 | +**For OpenCode:** |
| 149 | +```bash |
| 150 | +npm install -g opencode-sync-plugin |
| 151 | +opencode-sync login |
| 152 | +``` |
| 153 | + |
| 154 | +**For Codex CLI:** |
| 155 | +```bash |
| 156 | +npm install -g codex-sync |
| 157 | +codex-sync login |
| 158 | +``` |
| 159 | + |
| 160 | +Enter your Convex URL and API key when prompted. |
| 161 | + |
| 162 | +## Troubleshooting |
| 163 | + |
| 164 | +### "Setup incomplete" banner showing |
| 165 | + |
| 166 | +The app detected missing environment variables. Check that: |
| 167 | +- `VITE_CONVEX_URL` is set in Vercel/Netlify |
| 168 | +- `VITE_WORKOS_CLIENT_ID` is set in Vercel/Netlify |
| 169 | +- You redeployed after setting the variables |
| 170 | + |
| 171 | +### Login redirects but user stays on login page |
| 172 | + |
| 173 | +1. Check WorkOS redirect URI matches your deployed URL exactly |
| 174 | +2. Check `WORKOS_CLIENT_ID` is set in Convex environment variables |
| 175 | +3. Run `npx convex deploy` to sync changes |
| 176 | + |
| 177 | +### "Invalid token" errors |
| 178 | + |
| 179 | +1. Verify `WORKOS_CLIENT_ID` matches between Convex and frontend |
| 180 | +2. Run `npx convex deploy` after changing Convex env vars |
| 181 | + |
| 182 | +### Sessions not appearing after plugin setup |
| 183 | + |
| 184 | +1. Check plugin is authenticated: `claude-code-sync status` or `opencode-sync status` |
| 185 | +2. Check Convex dashboard logs for errors |
| 186 | +3. Verify API key is valid in OpenSync Settings |
| 187 | + |
| 188 | +### Semantic search not working |
| 189 | + |
| 190 | +1. Verify `OPENAI_API_KEY` is set in Convex environment variables |
| 191 | +2. Run `npx convex deploy` |
| 192 | +3. Wait a minute (embeddings generate asynchronously) |
| 193 | + |
| 194 | +## Next steps |
| 195 | + |
| 196 | +- [Full setup guide](https://www.opensync.dev/docs#hosting) for detailed configuration |
| 197 | +- [Plugin development guide](https://www.opensync.dev/docs#plugins) to build your own sync plugin |
| 198 | +- [API reference](https://www.opensync.dev/docs#api) for programmatic access |
| 199 | +- [install.md](install.md) for local development setup |
| 200 | + |
| 201 | +## Need help? |
| 202 | + |
| 203 | +Open an issue on [GitHub](https://github.com/waynesutton/opensync/issues) with: |
| 204 | +- Your deployment platform (Vercel or Netlify) |
| 205 | +- Which step you're stuck on |
| 206 | +- Any error messages from browser console or Convex logs |
0 commit comments