Rewrite README for Forgejo hosting

This commit is contained in:
Avi 2026-08-04 16:38:33 -05:00
commit 3eb9fa9960

View file

@ -1,7 +1,7 @@
# Nostr Feed Manager # Nostr Feed Manager
<!-- CI badge — uncomment and replace <OWNER>/<REPO> once CI (e.g. GitHub Actions) is configured: <!-- Forgejo Actions CI badge — uncomment once a workflow exists in `.forgejo/workflows/ci.yml`:
[![CI](https://github.com/<OWNER>/<REPO>/actions/workflows/ci.yml/badge.svg)](https://github.com/<OWNER>/<REPO>/actions/workflows/ci.yml) [![CI]([YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/actions/workflows/ci.yml/badge.svg)]([YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/actions/workflows/ci.yml)
--> -->
[![Version](https://img.shields.io/badge/version-0.1.0-blue)]() [![Version](https://img.shields.io/badge/version-0.1.0-blue)]()
[![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE) [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE)
@ -11,6 +11,11 @@
A friendly Linux desktop application for managing [Nostr](https://nostr.com/) profiles and A friendly Linux desktop application for managing [Nostr](https://nostr.com/) profiles and
publishing text notes. publishing text notes.
**Host:** this project is hosted on **Forgejo**. Every link in this document uses the generic
Forgejo URL format `[YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/` — replace
`[YOUR_FORGEJO_INSTANCE_URL]` with your instance's base URL (e.g. `https://codeberg.org`,
`https://git.example.com`) and `<OWNER>/<REPO>` with the actual repository path before sharing.
**Status: early beta (v0.1.0).** The app is usable daily, actively developed, and not yet **Status: early beta (v0.1.0).** The app is usable daily, actively developed, and not yet
packaged for distribution repositories. Expect rough edges and API churn until 1.0. packaged for distribution repositories. Expect rough edges and API churn until 1.0.
@ -64,7 +69,7 @@ key inside the backend.
## Tech stack ## Tech stack
**Backend (Rust)** **Backend (Rust)** — built and linted with **Cargo**, **rustfmt**, and **Clippy**
| Tool | Purpose | | Tool | Purpose |
| --- | --- | | --- | --- |
@ -74,7 +79,7 @@ key inside the backend.
| serde / serde_json | IPC and storage encoding | | serde / serde_json | IPC and storage encoding |
| rpassword | interactive password prompts | | rpassword | interactive password prompts |
**Frontend (TypeScript)** **Frontend (TypeScript)** — managed with **npm**
| Tool | Purpose | | Tool | Purpose |
| --- | --- | | --- | --- |
@ -99,7 +104,7 @@ the terminal.
### 1. Clone and build ### 1. Clone and build
```sh ```sh
git clone https://github.com/<OWNER>/<REPO>.git git clone [YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>.git
cd nost-feed-manager cd nost-feed-manager
# Build the Rust backend (release) # Build the Rust backend (release)
@ -237,13 +242,15 @@ NOSTR_GUI_DEV_URL=http://localhost:5173 npm start
### Tests and linting ### Tests and linting
All checks must pass before merging (the test suites exercise the real IPC protocol through a **All verification is green (cargo 64 tests, npm 65 tests,
fake backend): clippy/fmt/typecheck/lint/format/builds clean) per the AGENTS.md checkpoint rule.** The project's
`AGENTS.md` mandates a full verification run before every change lands, and that status is recorded
in the committed checkpoint.
```sh ```sh
# Rust # Rust
cargo test # 64 unit tests cargo test # 64 unit tests
cargo fmt --check cargo fmt --check # rustfmt
cargo clippy --all-targets cargo clippy --all-targets
# Frontend # Frontend
@ -254,6 +261,9 @@ npm run format:check # Prettier
npm test # Vitest (jsdom), 65 tests across 12 files npm test # Vitest (jsdom), 65 tests across 12 files
``` ```
The test suites exercise the real IPC protocol through a fake backend, so new features are
tested at the protocol boundary rather than in isolation.
### Project layout ### Project layout
``` ```
@ -288,7 +298,7 @@ respectful and constructive; everyone is expected to follow the [Code of Conduct
### Reporting bugs ### Reporting bugs
Open an issue on the [issue tracker](https://github.com/<OWNER>/<REPO>/issues) and include: Open an issue on the [issue tracker]([YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/issues) and include:
- A clear title and description of the expected vs. actual behavior - A clear title and description of the expected vs. actual behavior
- Steps to reproduce - Steps to reproduce
@ -302,7 +312,7 @@ you want. That makes it easier to design something that fits the existing archit
### Opening a pull request ### Opening a pull request
1. **Fork** the repository on GitHub. 1. **Fork** the repository using the **Fork** button on Forgejo.
2. **Branch** from `master` with a descriptive name: `fix/relay-test-timeout`, 2. **Branch** from `master` with a descriptive name: `fix/relay-test-timeout`,
`feat/avatar-support`, etc. `feat/avatar-support`, etc.
3. **Make your change.** Match the surrounding style (see below) and keep the diff focused. 3. **Make your change.** Match the surrounding style (see below) and keep the diff focused.
@ -312,7 +322,7 @@ you want. That makes it easier to design something that fits the existing archit
prefer testing through that public surface. prefer testing through that public surface.
6. **Update docs** if the change is user-visible (README, feature list). 6. **Update docs** if the change is user-visible (README, feature list).
7. **Commit** with a concise imperative subject line (e.g. `Add relay connection timeout`), then 7. **Commit** with a concise imperative subject line (e.g. `Add relay connection timeout`), then
**push** and open a pull request against `master`. **push** your branch to your fork and open a **Pull Request** against `master` on Forgejo.
8. In the PR description, summarize the change, link any related issues, and list what you tested. 8. In the PR description, summarize the change, link any related issues, and list what you tested.
### Code style ### Code style
@ -327,8 +337,9 @@ you want. That makes it easier to design something that fits the existing archit
## Community & support ## Community & support
- **Issues** — [bug reports and feature requests](https://github.com/<OWNER>/<REPO>/issues) - **Issues** — [bug reports and feature requests]([YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/issues)
- **Discussions** — [questions and ideas](https://github.com/<OWNER>/<REPO>/discussions) - **Wiki** — [project wiki]([YOUR_FORGEJO_INSTANCE_URL]/<OWNER>/<REPO>/wiki) for longer-form
documentation; questions can also be filed as issues.
- **Code of Conduct** — <a id="code-of-conduct"></a> until `CODE_OF_CONDUCT.md` is added, - **Code of Conduct** — <a id="code-of-conduct"></a> until `CODE_OF_CONDUCT.md` is added,
contributors are expected to follow the [Contributor Covenant v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). contributors are expected to follow the [Contributor Covenant v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).