865b20f0b4
- Add chirp-design-spec.md (857-line full technical specification) - Create Go server directory structure (cmd/, internal/*, deploy/, tests/) - Create PWA frontend directories (web/templates, web/static, web/sw) - Write README with architecture overview and stack table Infrastructure status as of 2026-05-31: - GoToSocial v0.21.2 running on :8085 - PostgreSQL 16, Redis, Meilisearch all configured - Nginx SSL termination for chirp.myfacefeed.com
71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
# Chirp — Fediverse Microblogging PWA
|
|
|
|
A custom Progressive Web App frontend for the Fediverse, powered by GoToSocial.
|
|
|
|
**Instance:** chirp.myfacefeed.com
|
|
|
|
## Architecture
|
|
|
|
```
|
|
Browser / Mobile
|
|
↓ HTTPS
|
|
Chirp Go Web Server (this repo)
|
|
↓ Mastodon-compatible API
|
|
GoToSocial (ActivityPub backend)
|
|
↓ PostgreSQL + MinIO
|
|
```
|
|
|
|
## Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|-----------|
|
|
| Backend | Go 1.22, GoToSocial v0.21.2 |
|
|
| Auth | Zitadel (OIDC) |
|
|
| Storage | PostgreSQL 16, Redis, MinIO |
|
|
| Search | Meilisearch |
|
|
| Frontend | Vanilla JS PWA (no framework) |
|
|
| Deploy | Nginx + systemd on 38.242.152.38 |
|
|
|
|
## Project Layout
|
|
|
|
```
|
|
cmd/server/ — main entry point
|
|
internal/
|
|
config/ — env-based config struct
|
|
gts/ — GoToSocial API client
|
|
proxy/ — API proxy (/api/v1/* passthrough)
|
|
oauth/ — Zitadel OIDC integration
|
|
db/ — chirp schema CRUD (bookmarks, lists, etc.)
|
|
ws/ — WebSocket hub (GTS stream bridge)
|
|
scheduler/ — post scheduler (Redis sorted set)
|
|
search/ — Meilisearch client
|
|
web/
|
|
templates/ — Go HTML templates
|
|
static/ — CSS, JS, icons
|
|
sw/ — service worker
|
|
deploy/
|
|
k8s/ — Kubernetes manifests (future)
|
|
nginx/ — nginx config
|
|
tests/
|
|
integration/ — integration tests
|
|
e2e/ — end-to-end tests
|
|
```
|
|
|
|
## Design Spec
|
|
|
|
Full technical specification: [chirp-design-spec.md](chirp-design-spec.md)
|
|
|
|
## Infrastructure Notes
|
|
|
|
- GoToSocial DB: PostgreSQL `gotosocial` (127.0.0.1:5432)
|
|
- Chirp schema: PostgreSQL `chirp` (8 custom tables)
|
|
- Redis: 127.0.0.1:6379 (sessions, queues, pub/sub)
|
|
- Meilisearch: 127.0.0.1:7700 (search indexes)
|
|
- MinIO: s3.myfacefeed.com / chirp-media bucket
|
|
|
|
## Status
|
|
|
|
Phase 1 (Infrastructure) — complete as of 2026-05-31
|
|
Phase 2 (Go Server Core) — in progress
|
|
Phase 3+ (PWA) — assigned to Claude3
|