+1
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# OG Share Service
|
||||
|
||||
This service powers dynamic Open Graph share pages and images for Portfolio Journal.
|
||||
|
||||
## Endpoints
|
||||
|
||||
- `/share?data=BASE64URL` renders the HTML page with OG tags.
|
||||
- `/og?data=BASE64URL` renders the 1200x630 PNG image.
|
||||
|
||||
Payload (JSON, base64url-encoded):
|
||||
|
||||
```json
|
||||
{
|
||||
"n": "Goal name",
|
||||
"r": 12500.5,
|
||||
"g": 20000,
|
||||
"c": "USD",
|
||||
"td": "2026-12-31",
|
||||
"ec": "2026-10-15",
|
||||
"p": false
|
||||
}
|
||||
```
|
||||
|
||||
Fields:
|
||||
- `n` goal name
|
||||
- `r` current amount
|
||||
- `g` goal amount
|
||||
- `c` currency code (ISO 4217)
|
||||
- `td` target date (YYYY-MM-DD, optional)
|
||||
- `ec` estimated completion date (YYYY-MM-DD, optional)
|
||||
- `p` privacy mode; when true, hides the current amount
|
||||
|
||||
## Run locally
|
||||
|
||||
```bash
|
||||
cd og-service
|
||||
GO111MODULE=on go run .
|
||||
```
|
||||
|
||||
## OpenRC (Alpine) service
|
||||
|
||||
Example steps (requires root):
|
||||
|
||||
```bash
|
||||
# Build and install the binary
|
||||
make build
|
||||
cp og-service/bin/portfoliojournal-og /usr/local/bin/portfoliojournal-og
|
||||
chmod +x /usr/local/bin/portfoliojournal-og
|
||||
|
||||
# Install the OpenRC script
|
||||
cp og-service/portfoliojournal-og.openrc /etc/init.d/portfoliojournal-og
|
||||
chmod +x /etc/init.d/portfoliojournal-og
|
||||
|
||||
# Enable and start
|
||||
rc-update add portfoliojournal-og default
|
||||
rc-service portfoliojournal-og start
|
||||
```
|
||||
|
||||
Or run the helper script (requires root):
|
||||
|
||||
```bash
|
||||
sudo sh og-service/install-openrc.sh
|
||||
```
|
||||
|
||||
## NGINX example
|
||||
|
||||
```nginx
|
||||
location /share {
|
||||
proxy_pass http://127.0.0.1:8090;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
}
|
||||
|
||||
location /og {
|
||||
proxy_pass http://127.0.0.1:8090;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user