Перейти к содержимому
Mineforgian

VelocityWebConsole

Run and view your Velocity proxy console from anywhere via web browser. No external web server needed.

Загрузки
66
Подписчики
1
Обновлён
12 марта 2026 г.
Лицензия
MIT

Опубликован 10 марта 2026 г.

VelocityWebConsole

Control your Velocity proxy from anywhere via a web browser. No SSH, no external web server — just drop the plugin and open a URL. Perfect for VPS setups where you don't have direct terminal access.

NOTE THIS PLUGIN IS NEW AND UNDER ACTIVE DEVELOPMENT, EXPECT BUGS. PLEASE REPORT THEM TO THE PROVIDED DISCORD CHANNEL UNDER #plugin-help


🟢 SUPER Easy setup & use

  • No external server — The plugin runs its own web server. No Apache, nginx, or database to install or configure.
  • Three steps — Drop the jar in plugins/, restart Velocity, then open http://YOUR_SERVER_IP:25580/ in a browser. That’s it.
  • Sensible defaults — Port 25580, log file auto-detected. You only need to edit config.properties if you want a different port or to bind to localhost.
  • First login — Log in with admin / admin, set a new password when prompted, and you’re in. Add more users (admin/viewer) from the Users page if you like.

VelocityWebConsole


✨ Features

  • Live console view — See your proxy's console output in real time, streamed straight to the browser.
  • Run commands — Execute any Velocity console command from the web UI.
  • User management — Create multiple users with Admin (full control) or Viewer (read-only console, no command execution) roles.
  • Secure by default — Passwords are stored hashed (PBKDF2) in users.json.
  • HTTPS support — Serve the console over TLS. Set use_https=true in config and provide a keystore (PKCS12 or JKS). Use a certificate from Let's Encrypt (or another CA) for your domain to avoid browser "Not secure" warnings; self-signed certs work but require clicking "Advanced → Proceed" once per browser. When using HTTPS, the session cookie is Secure and responses send HSTS so browsers stick to HTTPS. Optional HTTP redirect: set redirect_http_port so users can type http://yourserver:25580 and get redirected to https://yourserver:25581 (see config comments).

⚙️ Configuration

Edit plugins/velocitywebconsole/config.properties and restart the proxy for changes to take effect.

Option Default Description
port 25580 Port the web console listens on (HTTPS if use_https=true, else HTTP).
bind_address 0.0.0.0 0.0.0.0 = all interfaces, 127.0.0.1 = localhost only.
log_file (auto) Path to Velocity's log file if auto-detect fails (e.g. logs/latest.log).
use_https false Serve over HTTPS (requires keystore_path and keystore_password).
keystore_path (empty) Path to keystore file (.p12/.pfx or .jks). Relative = under plugin data dir.
keystore_password (empty) Keystore password.
keystore_type PKCS12 PKCS12 or JKS.
redirect_http_port 0 When using HTTPS: HTTP port that redirects to HTTPS so users can type the URL without https://. Set port to the HTTPS port (e.g. 25581) and redirect_http_port to the port users type (e.g. 25580). 0 = disabled.

🔒 Security tips

  • Change the default password on first use.
  • Prefer bind_address=127.0.0.1 and use SSH port forwarding if you only need access from your own machine.
  • Don't expose the web console port to the internet without a firewall or strong passwords.

📋 Requirements

  • Velocity 3.4.x - 3.5.x proxy, built on 3.4.x API (tested on 3.5.x)
  • Java 17+

Ченджлог

1.0.1Бета1.21.9, 1.21.10, 1.21.11 · 12 марта 2026 г.

[1.0.1]

Fixed

  • Console loading stuck — After the server had been running for hours (e.g. overnight) or when the log poll failed, the UI could stay on "Live console connected. Loading…" forever. The loading state is now cleared after the first poll (success or failure). On failure/timeout the UI shows "Connection problem. Retrying…" and keeps polling.
  • Web console unreachable after some time — The embedded HTTP server used a single thread for all requests. One long-lived or hung connection (e.g. an old tab, or a stalled client) blocked the only thread so no other requests (page loads, login, polling) were handled. The server now uses a pool of 8 threads so one bad connection cannot block the rest.
  • Connection problem / log not loading after a while — Poll requests now send cookies explicitly (credentials: 'same-origin'). The log buffer no longer holds a lock while notifying listeners, so a stuck stream or slow client cannot block /api/console/recent from returning. The console stream endpoint runs on a dedicated thread so it never ties up the main request pool.

Changed

  • Poll timeout — Console poll requests use a 15-second timeout so the page does not hang indefinitely.
  • Log resync — If the server returns fewer lines than the client has (e.g. after a buffer reset), the log view is cleared and resynced.

Added

  • Modrinth update checker — On startup (when update_check=true in config), the plugin checks Modrinth for a newer version and logs to the Velocity console if one is available. Disable with update_check=false in config.properties.
  • Mobile-friendly UI — On viewports ≤768px: collapsible sidebar with hamburger menu and overlay; full-width main content; touch-friendly tap targets (min 44px); safe-area insets for notched devices; smoother scrolling in the log area. Slightly smaller default log font on mobile; A− / A+ zoom buttons to make the log text smaller or larger (pinch-style zoom). Desktop layout unchanged.
  • Login / change-password on mobile — Safe-area padding and 44px touch targets; 16px input font to avoid zoom-on-focus on iOS.
  • Users page on mobile — Responsive table (horizontal scroll when needed) and modal; larger buttons for touch.

Комментарии

Загружаем…