A secure, private web service for transferring large files using 5-digit codes and social login.
This project provides a lightweight, fully private web service for uploading and downloading files. It features an admin approval system, multi-file zipping, automatic file expiration via scheduling, and seamless authentication via Google and Discord.
Originally built to share files securely within restricted communities, this tool has evolved into a robust transfer platform. It uses SQLite for lightweight data management and handles up to 1GB (max 5 files) per upload, generating a simple 5-digit code for easy retrieval.
Requires Node.js (v18 or newer).
git clone https://github.com/minseo0388/transferdata.git
cd transferdata
npm installStart the server using npm:
npm startThe application will be accessible at http://localhost:3333 (or the port specified in .env).
- Download: Enter the 5-digit code on the main page. Multiple files will be automatically zipped.
- Upload: Authenticate via Google or Discord. New users must be approved by an Admin.
- Admin Dashboard: Admins can visit
/adminto approve or reject pending user registrations.
Copy the example environment file:
cp .env.example .envEdit the .env file to configure your server, OAuth providers, and Admin accounts:
PORT=3333
SESSION_SECRET=a_very_secure_session_secret_key
UPLOAD_DIR=uploads
# Discord OAuth Configuration
DISCORD_CLIENT_ID=your_discord_client_id
DISCORD_CLIENT_SECRET=your_discord_client_secret
DISCORD_CALLBACK_URL=http://your-domain.com/auth/discord/callback
# Google OAuth Configuration
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://your-domain.com/auth/google/callback
# Admin Setup (Required to access the /admin dashboard and approve users)
ADMIN_DISCORD_ID=your_discord_user_id
ADMIN_GOOGLE_EMAIL=your_google_email@gmail.comPRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
MIT © 2026