- pnpm workspaces monorepo with apps/ and packages/ - Next.js 16 landing page (apps/web) with dark theme, feature overview - Package stubs: @webproxy/core, @webproxy/indexer, @webproxy/shared - Proxy server placeholder (apps/proxy) - Project spec, architecture docs, and deployment guide - Gitea remote configured at 185.191.239.154:3000 Co-Authored-By: UnicornDev <noreply@unicorndev.wtf>
110 lines
2.7 KiB
Markdown
110 lines
2.7 KiB
Markdown
# WebProxy Deployment Guide
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js >= 20
|
|
- pnpm >= 9
|
|
- Git
|
|
|
|
## Local Development
|
|
|
|
```bash
|
|
# Clone the repo
|
|
git clone git@185.191.239.154:jeremy/webproxy.git
|
|
cd webproxy
|
|
|
|
# Install dependencies
|
|
pnpm install
|
|
|
|
# Start development server (landing page)
|
|
pnpm dev
|
|
|
|
# Build for production
|
|
pnpm build
|
|
|
|
# Start production server
|
|
pnpm start
|
|
```
|
|
|
|
## Git Remote (Gitea)
|
|
|
|
The project is hosted on a self-hosted Gitea instance:
|
|
|
|
- **Web UI**: http://185.191.239.154:3000/jeremy/webproxy
|
|
- **SSH Clone**: `git@185.191.239.154:jeremy/webproxy.git`
|
|
- **HTTP Clone**: `http://185.191.239.154:3000/jeremy/webproxy.git`
|
|
|
|
### Setup SSH Access
|
|
|
|
1. Generate an SSH key if you don't have one:
|
|
```bash
|
|
ssh-keygen -t ed25519 -C "your@email.com"
|
|
```
|
|
|
|
2. Add your public key to Gitea:
|
|
- Go to http://185.191.239.154:3000/user/settings/keys
|
|
- Click "Add Key" and paste your `~/.ssh/id_ed25519.pub`
|
|
|
|
3. Add the remote:
|
|
```bash
|
|
git remote add origin git@185.191.239.154:jeremy/webproxy.git
|
|
```
|
|
|
|
### Pushing Changes
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: your changes"
|
|
git push origin main
|
|
```
|
|
|
|
## Monorepo Structure
|
|
|
|
```
|
|
webproxy/
|
|
├── apps/
|
|
│ ├── web/ # Next.js landing page & dashboard
|
|
│ └── proxy/ # Core proxy server (future)
|
|
├── packages/
|
|
│ ├── core/ # Proxy engine & HTTP handling
|
|
│ ├── indexer/ # Web crawling & indexing
|
|
│ └── shared/ # Shared types & utilities
|
|
├── docs/ # Documentation
|
|
├── deploy/ # Deployment configs
|
|
└── specs/ # Feature specifications
|
|
```
|
|
|
|
## Building Individual Packages
|
|
|
|
```bash
|
|
# Build just the web app
|
|
pnpm --filter @webproxy/web build
|
|
|
|
# Run type checking across all packages
|
|
pnpm typecheck
|
|
|
|
# Clean all build artifacts
|
|
pnpm clean
|
|
```
|
|
|
|
## Server Deployment (Future)
|
|
|
|
Deployment to the Gitea server will use:
|
|
|
|
1. **Git hooks** - Post-receive hooks for auto-deployment
|
|
2. **Docker** - Container-based deployment for the proxy service
|
|
3. **systemd** - Service management for the proxy daemon
|
|
|
|
### Planned Architecture
|
|
|
|
```
|
|
┌──────────────────────────────────────────┐
|
|
│ Server (185.191.239.154) │
|
|
├──────────────────────────────────────────┤
|
|
│ Gitea → Git hosting (port 3000) │
|
|
│ WebProxy Web → Landing page (port 3001) │
|
|
│ WebProxy → Proxy server (port 8080) │
|
|
│ MeiliSearch → Search engine (port 7700) │
|
|
└──────────────────────────────────────────┘
|
|
```
|