Includes: API (Express/TypeScript), Astro site, Python workers, document generators, FCC compliance tools, Canada CRTC formation, Ansible infrastructure, and deployment scripts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# Performance West — Development Guidelines
|
|
|
|
## Deployment Rules
|
|
|
|
- **NEVER** edit files in `/tmp/` — always edit in this project directory
|
|
- **NEVER** scp individual files to dev/prod — always commit and deploy via git
|
|
- After editing any file, commit it: `git add <file> && git commit -m "description"`
|
|
- All source code lives in this repo and is deployed via `git pull` on the server
|
|
|
|
### Deploy to dev
|
|
```bash
|
|
./scripts/deploy.sh dev
|
|
```
|
|
|
|
### Deploy to prod
|
|
```bash
|
|
./scripts/deploy.sh prod
|
|
```
|
|
|
|
## Git Server
|
|
|
|
- **URL**: https://git.performancewest.net
|
|
- **Repo**: performancewest/new-site
|
|
- **SSH clone**: `git clone ssh://git@git.performancewest.net:2222/performancewest/new-site.git`
|
|
|
|
## Infrastructure
|
|
|
|
- **Prod server**: `deploy@207.174.124.71:22022` → `/opt/performancewest/`
|
|
- **Dev server**: same host → `/opt/performancewest-dev/`
|
|
- **HestiaCP**: `root@cp.carrierone.com:22022` (DNS, email provisioning)
|
|
- **Docker Compose**: all services run in containers (API, site, workers, postgres, etc.)
|
|
|
|
## Project Structure
|
|
|
|
- `api/` — Express.js API (TypeScript)
|
|
- `site/` — Astro static site (pages, components, layouts)
|
|
- `scripts/` — Python workers, document generators, scrapers
|
|
- `infra/` — Ansible playbooks, nginx configs
|
|
- `docs/` — Product documentation
|
|
|
|
## Site Pages
|
|
|
|
Site source files live in `site/src/pages/`. The site uses:
|
|
- Layout: `site/src/layouts/Base.astro`
|
|
- Components: `site/src/components/`
|
|
- Tailwind CSS with `pw-` custom color palette
|
|
- Inline `<script>` for interactivity (no React/Vue)
|
|
- API base URL: `(window as any).__PW_API`
|