fix: update release workflow and README badges; reorganize table of contents

This commit is contained in:
HueByte
2026-02-24 22:50:29 +01:00
parent 023e62dea6
commit ae342381e0
4 changed files with 52 additions and 26 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false'
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@v4
with: with:
dotnet-version: '10.0.x' dotnet-version: "10.0.x"
- name: Publish Server win-x64 - name: Publish Server win-x64
if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false'
+37 -12
View File
@@ -27,12 +27,14 @@
</p> </p>
<p align="center"> <p align="center">
<a href="https://github.com/HueByte/EchoHub/actions/workflows/ci.yml"><img alt="Build" src="https://img.shields.io/github/actions/workflow/status/HueByte/EchoHub/ci.yml?branch=master&style=flat-square&logo=github&label=Build" /></a>
<a href="https://github.com/HueByte/EchoHub/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/HueByte/EchoHub?style=flat-square&logo=github&label=Release" /></a>
<a href="https://community.chocolatey.org/packages/echohub"><img alt="Chocolatey" src="https://img.shields.io/chocolatey/v/echohub?style=flat-square&logo=chocolatey&label=Chocolatey" /></a>
<a href="https://github.com/HueByte/EchoHub/pkgs/container/echohub-server"><img alt="Docker" src="https://img.shields.io/badge/Docker-GHCR-2496ED?style=flat-square&logo=docker&logoColor=white" /></a>
<img alt=".NET 10" src="https://img.shields.io/badge/.NET-10-512BD4?style=flat-square&logo=dotnet&logoColor=white" /> <img alt=".NET 10" src="https://img.shields.io/badge/.NET-10-512BD4?style=flat-square&logo=dotnet&logoColor=white" />
<img alt="SignalR" src="https://img.shields.io/badge/SignalR-Real--time-0078D4?style=flat-square" />
<img alt="SQLite" src="https://img.shields.io/badge/SQLite-EF%20Core-003B57?style=flat-square&logo=sqlite&logoColor=white" />
<img alt="License" src="https://img.shields.io/badge/License-MIT-green?style=flat-square" />
<img alt="Terminal.Gui" src="https://img.shields.io/badge/TUI-Terminal.Gui%20v2-yellow?style=flat-square" /> <img alt="Terminal.Gui" src="https://img.shields.io/badge/TUI-Terminal.Gui%20v2-yellow?style=flat-square" />
<img alt="Electron" src="https://img.shields.io/badge/Electron-None-red?style=flat-square" /> <a href="LICENSE"><img alt="License" src="https://img.shields.io/github/license/HueByte/EchoHub?style=flat-square" /></a>
<img alt="Repo size" src="https://img.shields.io/github/repo-size/HueByte/EchoHub?style=flat-square&label=Size" />
</p> </p>
--- ---
@@ -76,10 +78,12 @@ graph TD
### Server ### Server
- **Self-hostable** — your server, your rules, your data - **Self-hostable** — your server, your rules, your data
- **Docker ready** — `docker compose up -d` and you're done
- **Real-time messaging** via SignalR WebSockets - **Real-time messaging** via SignalR WebSockets
- **IRC gateway** — native IRC clients connect alongside TUI users, full cross-protocol messaging - **IRC gateway** — native IRC clients connect alongside TUI users, full cross-protocol messaging
- **JWT auth** with short-lived access tokens and 30-day refresh tokens - **JWT auth** with short-lived access tokens and 30-day refresh tokens
- **Channels** — create, set topics, delete (no 47-step permission wizard required) - **Channels** — create, set topics, delete (no 47-step permission wizard required)
- **Moderation** — ban, mute (timed or permanent), kick, role assignment
- **File & image uploads** with actual validation (magic bytes, not just trusting the extension) - **File & image uploads** with actual validation (magic bytes, not just trusting the extension)
- **Image-to-ASCII** — because images in a terminal is objectively cool - **Image-to-ASCII** — because images in a terminal is objectively cool
- **Presence tracking** — online/away/DND/invisible with custom status messages - **Presence tracking** — online/away/DND/invisible with custom status messages
@@ -94,34 +98,55 @@ graph TD
- **13 built-in themes** — including `hacker` for when you want to feel like you're in a movie - **13 built-in themes** — including `hacker` for when you want to feel like you're in a movie
- **Slash commands** — `/join`, `/send`, `/status`, `/theme`, etc. - **Slash commands** — `/join`, `/send`, `/status`, `/theme`, etc.
- **Colored nicknames** — pick your hex color, express yourself - **Colored nicknames** — pick your hex color, express yourself
- **Clickable everything** — usernames, @mentions, #channels — just press Enter
- **File/image sharing** — local files or URLs - **File/image sharing** — local files or URLs
- **Multi-server** — save and switch between servers - **Multi-server** — save and switch between servers
- **Auto-reconnect** — drops happen, it rejoins your channels automatically - **Auto-reconnect** — drops happen, it rejoins your channels automatically
- **Auto-updater** — updates in-place with automatic rollback if something goes wrong
- **Message history** on join — you won't miss context - **Message history** on join — you won't miss context
## Getting Started ## Getting Started
### Download ### Install the Client
Grab a self-contained binary from [Releases](../../releases) — no runtime needed, just run it. **Windows (Chocolatey):**
### Prerequisites (for development) ```bash
choco install echohub
```
- [.NET 10 SDK](https://dotnet.microsoft.com/download) **Linux / macOS:**
### Run the Server ```bash
curl -sSfL https://raw.githubusercontent.com/HueByte/EchoHub/master/scripts/install.sh | sh
```
**Manual download:** grab a self-contained binary from [Releases](../../releases) — no runtime needed, just run it.
### Host a Server
**Docker (recommended):**
```bash
cp .env.example .env
docker compose up -d
```
Pre-built images on [GHCR](https://github.com/HueByte/EchoHub/pkgs/container/echohub-server) — `linux/amd64` and `linux/arm64`.
**From source:**
```bash ```bash
dotnet run --project src/EchoHub.Server dotnet run --project src/EchoHub.Server
``` ```
First run does everything for you: Requires [.NET 10 SDK](https://dotnet.microsoft.com/download). First run does everything for you:
1. Creates `appsettings.json` from the example config 1. Creates `appsettings.json` from the example config
2. Generates a secure JWT secret 2. Generates a secure JWT secret
3. Creates the database with a `#general` channel 3. Creates the database with a `#general` channel
### Run the Client ### Run the Client (from source)
```bash ```bash
dotnet run --project src/EchoHub.Client dotnet run --project src/EchoHub.Client
@@ -165,7 +190,7 @@ irssi -c your-server.com -p 6667 -w <password> -n <username>
/connect echohub /connect echohub
``` ```
IRC users must have an existing EchoHub account (no registration via IRC). Auth works via `PASS`/`NICK`/`USER` or SASL PLAIN. Auth works via `PASS`/`NICK`/`USER` or SASL PLAIN. New usernames are auto-registered on first connect — no separate signup needed.
### What Works ### What Works
+9 -5
View File
@@ -1,10 +1,14 @@
- name: Getting Started - name: Guides
items:
- name: Getting Started
href: getting-started.md href: getting-started.md
- name: Docker - name: Docker
href: docker.md href: docker.md
- name: Architecture - name: Architecture
href: architecture.md href: architecture.md
- name: Encryption - name: Encryption
href: encryption.md href: encryption.md
- name: Notification Sounds - name: Notification Sounds
href: notification-sounds.md href: notification-sounds.md
- name: Flows
href: ../flows/toc.yml
-3
View File
@@ -1,9 +1,6 @@
- name: Articles - name: Articles
href: articles/ href: articles/
homepage: articles/getting-started.md homepage: articles/getting-started.md
- name: Flows
href: flows/
homepage: flows/flows.md
- name: Changelog - name: Changelog
href: changelog/ href: changelog/
homepage: changelog/index.md homepage: changelog/index.md