Original Data of APdoFile Updated by Pome
APDO-FILE is an innovative file storage solution that leverages Discord as a backend storage service while maintaining file integrity and accessibility through a modern web interface.
Your files are securely distributed with hash verification to ensure complete data integrity. We store minimal metadata while the actual file content is fragmented across Discord's infrastructure.
The entire system is deployed on AWS EC2, ensuring reliability and accessibility.
Clone the repository
git clone https://github.com/yourusername/APDO-FILE.git
cd APDO-FILE
Install dependencies
npm install
# or
yarn install
Configure environment variables
cp .env.example .env
Edit the .env file with your Firebase and Discord credentials.
Start the development server
npm run dev
# or
yarn dev
Build for production
npm run build
# or
yarn build
firebaseConfig.ts
:export const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
Discord Bot Setup
DISCORD_BOT_TOKEN=your_bot_token_here
DISCORD_CHANNEL_ID=your_channel_id_here
The system processes files in the following way:
Files are chunked into smaller pieces (default 8MB per chunk) Each chunk is assigned a unique hash using SHA-256 Chunks are uploaded to Discord with metadata Upon retrieval, chunks are downloaded and reassembled based on the stored hashes
APDO-FILE/
βββ server/ # Backend server code
β βββ app.js # Main server file
β βββ chunk.js # File chunking logic
β βββ retrieve.js # File retrieval logic
βββ src/ # Frontend source code
β βββ components/ # UI components
β βββ context/ # React context providers
β βββ lib/ # Utility functions
βββ .env # Environment variables
βββ README.md # Project documentation
POST /api/upload
- Upload a file
GET /api/files
- List all user files
GET /api/download/:fileId
- Download a specific file
DELETE /api/files/:fileId
- Delete a file
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository Create your feature branch (git checkout -b feature/amazing-feature) Commit your changes (git commit -m 'Add some amazing feature') Push to the branch (git push origin feature/amazing-feature) Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Discord for providing the infrastructure that makes this possible Firebase for authentication and database services The shadcn/ui team for their beautiful UI components
sudo apt update
sudo apt install nodejs npm
Clone the repository and install dependencies
Clone the repository and install dependencies
Set up environment variables and start the application
bashCopycp .env.example .env
nano .env # Edit environment variables
npm run build
npm start
(Optional) Set up PM2 for process management
bashCopysudo npm install -g pm2
pm2 start npm --name "apdo-file" -- start
pm2 startup
pm2 save
The application is fully responsive and works on:
Desktop browsers (Chrome, Firefox, Safari, Edge) Mobile browsers (iOS Safari, Android Chrome) Tablets and other devices
Desktop application using Electron Mobile app using React Native End-to-end encryption Multiple storage backend options (beyond Discord) File sharing capabilities Team/organization accounts
For advanced users, additional configuration options are available in config.ts:
export const config = {
chunkSize: 8 * 1024 * 1024, // 8MB chunks by default
maxConcurrentUploads: 3,
retryAttempts: 5,
retryDelay: 2000, // ms
hashAlgorithm: 'SHA-256',
compressionEnabled: true,
// Add your custom configuration here
};
Optional anonymous usage statistics can be enabled to help improve the application. No file data is ever collected, only performance metrics and feature usage patterns.
APDO-FILE: The distributed storage solution for the modern web