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 |