diff --git a/README.md b/README.md index b1a1bcc..f2145c6 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,23 @@ -# EchoHub +
-
-
- No tracking. No subscriptions. No "enhanced AI features". Just chat. -
+**No tracking. No subscriptions. No "enhanced AI features". Just chat.** -- What • - Setup • - IRC • - Deploy • - Commands • - Config • - License -
+Self-hosted, IRC-inspired chat with an open API. Use the terminal, a desktop app, IRC, or a client you build yourself. -- Website • - Public Servers • - Documentation -
+[Website](https://echohub.voidcube.cloud/) · [Public servers](https://echohub.voidcube.cloud/servers) · [Documentation](https://huebyte.github.io/EchoHub/) · [Changelog](docs/changelog/index.md) - +` |
-| `/export` | Download everything the server stores about you as JSON |
-| `/deleteaccount` | Permanently delete your account (password re-confirmed) |
-| `/help` | Show help |
-| `/quit` | Exit |
-
-**Message actions:** **right-click a message** for a context menu — reply (quotes the message; Esc cancels a pending reply), delete, save/download/play its attachment, mention the sender, view their profile, or copy the text. (Keyboard alternative: press F6 to focus the message list, select with the arrow keys, and press Delete; F6 again returns to the input.) You can always delete your own messages; moderators and above can delete others' messages, but only from users below their own role.
-
-## Themes
-
-`/theme ` to switch:
-
-| Theme | Vibe |
-| ----- | ---- |
-| `default` | Gray on black — clean and quiet |
-| `transparent` | White on black — for fancy transparent terminals |
-| `transparentlight` | Black on transparent — dark characters for light transparent terminals |
-| `classic` | White on blue — IRC nostalgia |
-| `light` | Black on white — for the brave |
-| `hacker` | Green on black — *I'm in* |
-| `solarized` | Cyan/yellow on dark gray — for the refined |
-| `dracula` | Purple accents on black — the classic dark theme |
-| `monokai` | Yellow highlights on black — warm and familiar |
-| `nord` | Cool blues — arctic vibes |
-| `gruvbox` | Earthy yellows on black — retro warmth |
-| `ocean` | Cyan on deep blue — underwater aesthetics |
-| `highcontrast` | Bright yellow on black — maximum readability |
-| `rosepine` | Muted pinks on black — cozy and soft |
-
-## Configuration
-
-`appsettings.json` is auto-generated on first run. Tweak what you need:
-
-| Key | Default | Description |
-| --- | ------- | ----------- |
-| `Urls` | `http://0.0.0.0:5000` | Listen address and port |
-| `ConnectionStrings:DefaultConnection` | *(empty — app directory)* | SQLite connection string |
-| `Jwt:Secret` | *(auto-generated)* | JWT signing key |
-| `Server:Name` | `My EchoHub Server` | Server display name |
-| `Server:Description` | `A self-hosted EchoHub chat server` | Server description |
-| `Server:Registration` | `open` | `open`, `invite` (codes via `/invite`, Admin+), or `closed` |
-| `Server:PublicServer` | `false` | List on the [public directory](https://echohub.voidcube.cloud/servers) |
-| `Server:PublicHost` | *(empty)* | Public hostname for directory listing |
-| `Irc:Enabled` | `false` | Enable the IRC gateway |
-| `Irc:Port` | `6667` | IRC listen port |
-| `Irc:TlsEnabled` | `false` | Enable TLS for IRC |
-| `Irc:TlsPort` | `6697` | IRC TLS port |
-| `Irc:ServerName` | `echohub` | IRC server name in protocol messages |
-| `Irc:Motd` | `Welcome to EchoHub IRC Gateway!` | Message of the day |
-| `Cors:AllowedOrigins` | *(all origins)* | CORS whitelist |
-
-Logging uses Serilog — console + daily rolling files with 14-day retention. Configure in the `Serilog` section.
-
-## Deployment with nginx
-
-Most production deployments run behind nginx. Here's a config that handles both the HTTP/WebSocket server and the IRC gateway:
-
-```nginx
-# HTTP + WebSocket (EchoHub Server API + SignalR)
-server {
- listen 443 ssl;
- server_name echohub.example.com;
-
- ssl_certificate /etc/letsencrypt/live/echohub.example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/echohub.example.com/privkey.pem;
-
- location / {
- proxy_pass http://127.0.0.1:5000;
- proxy_http_version 1.1;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
-
- # Required for SignalR WebSocket
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
-
- proxy_read_timeout 86400s;
- proxy_send_timeout 86400s;
- }
-
- # Increase max upload size for file sharing
- client_max_body_size 10m;
-}
-
-# HTTP → HTTPS redirect
-server {
- listen 80;
- server_name echohub.example.com;
- return 301 https://$host$request_uri;
-}
-
-# IRC TLS (port 6697 → plain IRC on 6667)
-stream {
- upstream irc_backend {
- server 127.0.0.1:6667;
- }
-
- server {
- listen 6697 ssl;
- proxy_pass irc_backend;
-
- ssl_certificate /etc/letsencrypt/live/echohub.example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/echohub.example.com/privkey.pem;
- }
-}
-```
-
-With this setup, keep the EchoHub IRC gateway's `TlsEnabled` set to `false` — nginx terminates TLS. See the full example at [`examples/nginx.conf`](examples/nginx.conf).
-
-## Project Structure
-
-```text
-src/
-├── EchoHub.Core/ # Shared models, DTOs, contracts, validation
-│ ├── Constants/ # ValidationConstants, HubConstants
-│ ├── Contracts/ # IChatService, IChatBroadcaster, IEchoHubClient
-│ ├── DTOs/ # Record DTOs
-│ └── Models/ # Entity models
-│
-├── EchoHub.Server/ # ASP.NET Core server
-│ ├── Auth/ # JWT token service
-│ ├── Controllers/ # REST API endpoints
-│ ├── Data/ # EF Core DbContext + migrations
-│ ├── Hubs/ # SignalR ChatHub
-│ ├── Services/ # ChatService, presence, file storage, image processing
-│ └── Setup/ # First-run setup, DB initialization
-│
-├── EchoHub.Server.Irc/ # IRC protocol gateway
-│ ├── IrcGatewayService # TCP listener (BackgroundService)
-│ ├── IrcCommandHandler # IRC command dispatch (JOIN, PRIVMSG, etc.)
-│ ├── IrcBroadcaster # Fans chat events to IRC connections
-│ └── IrcMessageFormatter # MessageDto → IRC PRIVMSG lines
-│
-├── EchoHub.Client/ # Terminal.Gui TUI client
-│ ├── Config/ # Client configuration
-│ ├── Services/ # API client, SignalR connection
-│ ├── Themes/ # 13 built-in themes
-│ └── UI/ # MainWindow, dialogs, chat renderer
-│
-└── EchoHub.slnx # Solution file
-```
-
-## License
-
-[MIT](LICENSE) — do whatever you want with it.
+
+
+
+
+
+ 
+ HueByte
+
+ Creator & maintainer
+
+
+
+ 
+ Stone_Red
+
+ Creator & maintainer
+
+
+
+