Files
nmemmertandClaude Sonnet 4.6 8add7ddc10 Update README for v0.4.0 and Gitea migration
Rewrite to accurately reflect current stack (Next.js + Express/JSON server),
Docker deployment, ntfy push notifications, and Gitea CI setup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-26 14:37:56 -04:00

80 lines
2.4 KiB
Markdown

# Prayer Journal
A minimalist web app for journaling daily prayers, tracking answered prayers, and receiving push reminders. Self-hostable via Docker.
**Current version: 0.4.0**
## Features
- Daily prayer composition with optional "Pray For" person
- Mark prayers as answered with notes
- Calendar view of past entries
- Reflections list with search and filters
- Answered prayers gallery
- Push notifications via [ntfy](https://ntfy.sh) (no account required) — daily digest and per-prayer reminders
- Export prayer log as PDF or DOCX
- PWA installable, dark theme by default
## Stack
- **Frontend**: Next.js + React, Tailwind CSS, Firebase (auth + Firestore)
- **Backend**: Express server (`server.js`) — local JSON storage, cron-based ntfy notifications, DOCX/PDF export
- **Container**: Docker, published to `git.necloud.us`
## Docker (recommended)
```bash
docker compose up -d
```
The app listens on port `3050` by default. Adjust environment variables in `docker-compose.yml` as needed.
### Environment variables
| Variable | Description |
|---|---|
| `FIREBASE_PROJECT_ID` | Firebase project ID |
| `FIREBASE_CLIENT_EMAIL` | Firebase Admin SDK service account email |
| `FIREBASE_PRIVATE_KEY` | Firebase Admin SDK private key |
| `NODE_ENV` | Set to `production` for Docker deploys |
> Store secrets in a `.env` file and reference them in `docker-compose.yml` — do not hardcode private keys in compose files.
## Push notifications (ntfy)
ntfy requires no account. Set your topic in the app's Settings, then notifications arrive via the [ntfy app](https://ntfy.sh) or any ntfy-compatible client.
- **Daily digest** — morning summary of unprayed prayers
- **Per-prayer reminders** — cron-scheduled nudges for individual prayers
- **Test notification** — trigger one from the Settings page to verify
## Development
```bash
npm install
npm run dev
```
App runs at `http://localhost:3000`.
```bash
npm run build # production build
npm run lint # lint
npm test # run tests
```
## CI / Deployment
Pushes to `master` trigger a Gitea Actions workflow (`.gitea/workflows/docker.yml`) that builds and pushes the Docker image to `git.necloud.us`.
Secrets required in Gitea repo settings:
| Secret | Value |
|---|---|
| `REGISTRY_USER` | Gitea username |
| `REGISTRY_TOKEN` | Gitea access token with package write scope |
## Versioning
Semantic versioning — `npm run version:minor` or `npm run version:major` bumps the version and syncs it across the project.