TASK-012: Initialize Chirp project — design spec, directory structure, README
- 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
This commit is contained in:
@@ -1,3 +1,70 @@
|
||||
# chirp-pwa
|
||||
# Chirp — Fediverse Microblogging PWA
|
||||
|
||||
Chirp — Fediverse microblogging PWA (chirp.myfacefeed.com)
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user