Documentation for xddcwebloader
Overview
xddcwebloader is a web-based download manager designed to facilitate XDCC file transfers. It features a ReactJS frontend coupled with a Spring Data REST backend.
Technologies Used
- ReactJS: Powers the dynamic, client-side interface and interactive frontend components.
- Spring Data REST: Provides a RESTful backend, likely exposing data models via REST endpoints with minimal boilerplate.
- Docker / Docker-Compose: Offers containerized deployment for ease of setup and environment consistency.
- Java + Spring Boot: The backend is a Java application utilizing Spring Boot—evidenced by references to Spring Boot 3 in recent releases.
- Node.js (17+): Required for building the frontend (ReactJS ecosystem).
- JDK (17+): Necessary for compiling and running the Java backend.
- Build Tools: Uses Gradle (via
build.gradle, settings.gradle, gradle/wrapper) for backend building and npm/package-lock along with webpack.config.js for frontend tooling.
- Lombok: Indicated by
lombok.config, streamlining Java code with annotations.
What It Does
- Manage XDCC File Transfers: It streamlines XDCC downloads (peer-to-peer transfers often used in IRC bots) via a browser interface.
- Bot & Server Configuration: Provides UI to define bots, servers, and download channels.
- Download Monitoring: Offers a "Main Download View" (as seen in the first screenshot), likely listing active or queued transfer jobs.
- Settings Panel: Accessible via the UI to adjust application-wide configurations.
Deployment & Usage
1. Docker Deployment
- Supports both
latest (CI builds) and version-tagged images for stable releases.
- Use of
Dockerfile and docker-compose.yml simplifies launch and scaling.
2. Local (Standalone JAR)
- Users can download the
.jar from GitHub releases and run it directly (Java runtime required).
3. IDE (Development)
- Open in a Java IDE like IntelliJ.
- Launch via
XdccloaderApplication class for hot-reloads and local debugging.
After startup, access the UI via localhost:8080 or remote hostname/IP.
Potential Use Cases
- IRC Enthusiasts: Simplifies downloading files from IRC XDCC bots without manual commands.
- Network Administrators: Deploy centralized download GUI for users restricted from CLI.
- Developers/Contributors: Acts as a practical stack combining ReactJS + Spring Data REST via Gradle/npm—as a reference for full-stack projects.
- Portable Setup: Docker images make it suitable for ephemeral environments like CI runners, home servers, or VPS.
Repository Structure (Highlights)
.github/workflows/: CI pipelines (likely for building/testing/deployment).
Docker/, docker-compose.yml: Containerization configuration.
src/main: Java backend sources (Spring Boot).
package.json, webpack.config.js: React frontend setup.
CONTRIBUTING.md, LICENSE, README.md: Project metadata and guidelines.
Quick Reference Table
| Feature |
Description |
| Frontend |
ReactJS application for user interaction |
| Backend |
Spring Boot API with Spring Data REST for data handling |
| Build Tools |
Gradle for backend, npm/webpack for frontend |
| Environment |
Java 17+, Node.js 17+ |
| Deployment |
Via Docker or standalone JAR; IDE friendly |
| Use Case |
XDCC download management with UI; suited for IRC file transfers |