autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
75
skills/lobehub-pool/references/deployment.md
Normal file
75
skills/lobehub-pool/references/deployment.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# LobeHub Self-Hosted Deployment
|
||||
|
||||
## Droplet: gothbreach-abuse-1 ([REDACTED-IP], sgp1, 8GB RAM)
|
||||
|
||||
## Docker Compose Stack
|
||||
|
||||
```yaml
|
||||
# Services: lobehub, postgresql (paradedb/pg17), redis, rustfs, searxng
|
||||
# Ports: 3210 (web), 9000 (S3), 9001 (S3 console), 5432 (PG), 6379 (Redis)
|
||||
```
|
||||
|
||||
## Deployment Commands
|
||||
|
||||
```bash
|
||||
# Initial setup
|
||||
ssh -i ~/.ssh/do_access root@[REDACTED-IP]
|
||||
mkdir /opt/lobehub && cd /opt/lobehub
|
||||
bash <(curl -fsSL https://lobe.li/setup.sh) -l en
|
||||
# Select: option 2 (port mode), enter IP [REDACTED-IP]
|
||||
|
||||
# Fix bucket.config.json (ID → Id)
|
||||
python3 << 'EOF'
|
||||
import json
|
||||
with open("bucket.config.json") as f: data = json.load(f)
|
||||
if "ID" in data: data["Id"] = data.pop("ID")
|
||||
with open("bucket.config.json", "w") as f: json.dump(data, f, indent=2)
|
||||
EOF
|
||||
|
||||
# Add Better Auth config
|
||||
cat >> .env << 'EOF'
|
||||
NEXT_PUBLIC_APP_URL=http://[REDACTED-IP]:3210
|
||||
APP_URL=http://[REDACTED-IP]:3210
|
||||
NEXT_PUBLIC_ENABLE_AUTH=true
|
||||
AUTH_ENABLED=true
|
||||
BETTER_AUTH_ENABLED=true
|
||||
AUTH_DISABLE_EMAIL_PASSWORD=false
|
||||
EOF
|
||||
|
||||
# Start
|
||||
docker compose up -d
|
||||
|
||||
# Check
|
||||
docker compose ps
|
||||
curl http://[REDACTED-IP]:3210/signin -o /dev/null -w "%{http_code}"
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Endpoint | Method | Description |
|
||||
|----------|--------|-------------|
|
||||
| `/api/auth/sign-up/email` | POST | Register (email, password, name) |
|
||||
| `/api/auth/sign-in/email` | POST | Login → returns token + user |
|
||||
| `/api/auth/session` | GET | Get current session |
|
||||
|
||||
## Registration Request
|
||||
|
||||
```python
|
||||
import httpx
|
||||
r = httpx.post(
|
||||
"http://[REDACTED-IP]:3210/api/auth/sign-up/email",
|
||||
json={"email": "...", "password": "...", "name": "..."},
|
||||
headers={
|
||||
"Origin": "http://[REDACTED-IP]:3210",
|
||||
"Referer": "http://[REDACTED-IP]:3210/signin",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
)
|
||||
# Response: {"token": "...", "user": {"id": "user_...", "email": "...", ...}}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **rustfs-init fails**: fix bucket.config.json (ID→Id), then `docker compose down && docker compose up -d`
|
||||
- **Port conflict**: `netstat -ano | findstr :3210` → `taskkill //F //PID <pid>`
|
||||
- **Docker not installed**: `curl -fsSL https://get.docker.com | sh`
|
||||
Reference in New Issue
Block a user