87 lines
2.2 KiB
Markdown
87 lines
2.2 KiB
Markdown
# Single-user deployment
|
|
|
|
One person, one machine, all your data stays with you. This is the default and simplest mode.
|
|
|
|
## GitHub Pages (free, automated)
|
|
|
|
```bash
|
|
uv run bincio render --deploy github
|
|
```
|
|
|
|
This builds `site/dist/` and pushes it to the `gh-pages` branch. Requires `npx gh-pages` (`npm install -g gh-pages`).
|
|
|
|
Set the repository to serve from the `gh-pages` branch in GitHub → Settings → Pages.
|
|
|
|
## Static hosting (Netlify, Vercel, Cloudflare Pages, etc.)
|
|
|
|
Build locally and deploy the `site/dist/` directory. Or set up CI:
|
|
|
|
```yaml
|
|
# .github/workflows/deploy.yml (example)
|
|
- run: uv run bincio render
|
|
- uses: actions/upload-pages-artifact@v3
|
|
with:
|
|
path: site/dist
|
|
```
|
|
|
|
## VPS with nginx
|
|
|
|
Serve `site/dist/` as a static directory. No server process needed for read-only access.
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name example.com;
|
|
root /var/www/bincio/dist;
|
|
index index.html;
|
|
location / { try_files $uri $uri/ $uri.html =404; }
|
|
}
|
|
```
|
|
|
|
### Enable the edit UI on a VPS
|
|
|
|
If you want to edit activities from the browser while on your VPS:
|
|
|
|
```nginx
|
|
server {
|
|
listen 443 ssl;
|
|
server_name example.com;
|
|
|
|
root /var/www/bincio/dist;
|
|
|
|
location / {
|
|
try_files $uri $uri/ $uri.html =404;
|
|
}
|
|
|
|
# Proxy /api/* to bincio edit (local-only, never exposed directly)
|
|
location /api/ {
|
|
proxy_pass http://127.0.0.1:4041;
|
|
proxy_set_header Host $host;
|
|
}
|
|
}
|
|
```
|
|
|
|
Then run `bincio edit` as a background service:
|
|
|
|
```bash
|
|
uv run bincio edit --data-dir ~/bincio_data
|
|
```
|
|
|
|
And set `PUBLIC_EDIT_URL=` (empty — the proxy makes /api/ same-origin) in your environment before building.
|
|
|
|
## Keeping the site up to date
|
|
|
|
After extracting new activities or editing sidecars:
|
|
|
|
```bash
|
|
uv run bincio extract # process new files
|
|
uv run bincio render # rebuild site/dist/
|
|
rsync -av site/dist/ user@server:/var/www/bincio/dist/
|
|
```
|
|
|
|
Or automate with a cron job or GitHub Action.
|
|
|
|
## Privacy note
|
|
|
|
Single-user mode has no authentication. The site is public to anyone with the URL. Use `privacy: private` in sidecar files to hide specific activities, or restrict access at the nginx level (HTTP basic auth, IP allowlist, etc.).
|