[t-021] Create systemd service file + polish README.md #21

Open
opened 2026-07-05 08:31:02 +00:00 by david · 0 comments
Owner

Goal

Deploy-ready systemd unit and polished project README.

References

Reference

  • DESIGN.md §8 Deployment (systemd service, installation steps)

Implementation Steps

Implementation Steps

1. Create keryx-bff.service in the repo root

# keryx-bff.service
[Unit]
Description=Keryx BFF — Hermes iOS/iPad Backend For Frontend
After=hermes-gateway.service
BindsTo=hermes-gateway.service

[Service]
Type=simple
ExecStart=%h/apps/keryx-bff/.venv/bin/uvicorn src.server:app --host 0.0.0.0 --port 8643
WorkingDirectory=%h/apps/keryx-bff
Restart=on-failure
RestartSec=5
Environment=KERYX_CONFIG=%h/.keryx/config.yaml

[Install]
WantedBy=default.target

2. Update README.md with full project documentation

Replace the current minimal README:

# keryx-bff

Keryx BFF service — Python FastAPI + Strawberry GraphQL backend for Keryx iOS/iPad app.

## Quick Start

```bash
mkdir -p ~/apps/keryx-bff && cd ~/apps/keryx-bff
uv sync
cd ~/.keryx  # create config.yaml (see DESIGN.md §4)
mkdir -p /tmp/keryx  # staging directory
python scripts/generate-setup-qr.py  # optional QR for iOS setup
systemctl --user daemon-reload && systemctl --user enable --now keryx-bff.service

Docs

  • DESIGN.md — Full architecture, API contract, build phases
  • DOMAIN.md — Domain language, naming conventions, component taxonomy
  • AGENT.md — Agent operational guide

## Verification Gate
## Verification Gate
Run:
```bash
cd /home/david/Projects/keryx-bff && cat README.md | grep -c 'DESIGN.md'  # must be > 0
cat keryx-bff.service | grep -c 'uvicorn src.server:app'  # must be > 0
# Expected: both counts > 0

STOP Conditions

STOP Conditions

  • If README.md doesn't reference DESIGN.md or DOMAIN.md, stop and add references.

Depends on: t-019

## Goal Deploy-ready systemd unit and polished project README. ## References ## Reference - DESIGN.md §8 Deployment (systemd service, installation steps) ## Implementation Steps ## Implementation Steps ### 1. Create `keryx-bff.service` in the repo root ```ini # keryx-bff.service [Unit] Description=Keryx BFF — Hermes iOS/iPad Backend For Frontend After=hermes-gateway.service BindsTo=hermes-gateway.service [Service] Type=simple ExecStart=%h/apps/keryx-bff/.venv/bin/uvicorn src.server:app --host 0.0.0.0 --port 8643 WorkingDirectory=%h/apps/keryx-bff Restart=on-failure RestartSec=5 Environment=KERYX_CONFIG=%h/.keryx/config.yaml [Install] WantedBy=default.target ``` ### 2. Update `README.md` with full project documentation Replace the current minimal README: ```markdown # keryx-bff Keryx BFF service — Python FastAPI + Strawberry GraphQL backend for Keryx iOS/iPad app. ## Quick Start ```bash mkdir -p ~/apps/keryx-bff && cd ~/apps/keryx-bff uv sync cd ~/.keryx # create config.yaml (see DESIGN.md §4) mkdir -p /tmp/keryx # staging directory python scripts/generate-setup-qr.py # optional QR for iOS setup systemctl --user daemon-reload && systemctl --user enable --now keryx-bff.service ``` ## Docs - [DESIGN.md](DESIGN.md) — Full architecture, API contract, build phases - [DOMAIN.md](DOMAIN.md) — Domain language, naming conventions, component taxonomy - [AGENT.md](AGENT.md) — Agent operational guide ``` ## Verification Gate ## Verification Gate Run: ```bash cd /home/david/Projects/keryx-bff && cat README.md | grep -c 'DESIGN.md' # must be > 0 cat keryx-bff.service | grep -c 'uvicorn src.server:app' # must be > 0 # Expected: both counts > 0 ``` ## STOP Conditions ## STOP Conditions - If README.md doesn't reference DESIGN.md or DOMAIN.md, stop and add references. Depends on: t-019
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: david/keryx-bff#21
No description provided.