WIP! A BB-style forum, on the ATmosphere!
We're still working... we'll be back soon when we have something to show off!
node
typescript
hono
htmx
atproto
1# PID file location (writable by non-root user)
2pid /tmp/nginx.pid;
3
4events {
5 worker_connections 1024;
6}
7
8http {
9 include /etc/nginx/mime.types;
10 default_type application/octet-stream;
11
12 # Logging
13 access_log /dev/stdout;
14 error_log /dev/stderr;
15
16 # Client limits
17 client_max_body_size 10M;
18
19 # Proxy timeouts
20 proxy_connect_timeout 60s;
21 proxy_send_timeout 60s;
22 proxy_read_timeout 60s;
23
24 # Main server block
25 server {
26 listen 80;
27
28 # OAuth client metadata → appview
29 # AT Protocol fetches {client_id}/.well-known/oauth-client-metadata to
30 # validate the OAuth client. AppView serves this document, so all
31 # /.well-known/* requests must reach AppView, not the web UI.
32 location /.well-known/ {
33 proxy_pass http://localhost:3000;
34 proxy_set_header Host $host;
35 proxy_set_header X-Real-IP $remote_addr;
36 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
37 proxy_set_header X-Forwarded-Proto $scheme;
38 }
39
40 # API routes → appview
41 location /api/ {
42 proxy_pass http://localhost:3000;
43 proxy_set_header Host $host;
44 proxy_set_header X-Real-IP $remote_addr;
45 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
46 proxy_set_header X-Forwarded-Proto $scheme;
47 }
48
49 # Web UI → web
50 location / {
51 proxy_pass http://localhost:3001;
52 proxy_set_header Host $host;
53 proxy_set_header X-Real-IP $remote_addr;
54 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
55 proxy_set_header X-Forwarded-Proto $scheme;
56 }
57 }
58}