Skip to content

keven1024/015

Repository files navigation

015

015 (/ˈzΙͺΙ™rΙ™ΚŠ wʌn faΙͺv/, "zero-one-five") is a self-hosted temporary file sharing platform. Focused on providing one-time, temporary file and text upload, processing, and sharing services. The project name originates from Ichigo from DARLING in the FRANXX.

A modern file sharing website built with Vue 3 + Nuxt 3 + Go, supporting file upload, text sharing, image compression, concurrent processing, instant transfer functionality, and more, featuring a complete sharing management and access control system.

015 Platform Overview

English | δΈ­ζ–‡

🌟 Features

Core Functionality

πŸ–ΌοΈ High-Performance File Upload - Supports large file chunked uploads with frontend file hash calculation for instant transfer
πŸ“± Responsive Design - Modern UI based on Tailwind V4 + Reka UI, adapts to various devices
⚑ Concurrent Processing - Uses Web Worker for frontend hash calculation, backend queue system for task processing
🌐 Multi-language Support - Complete Chinese and English internationalization support
πŸ”— Share Management - Flexible sharing link generation and management system

File Processing

πŸ”„ Smart Instant Transfer - Frontend instant transfer detection based on file hash + file size, avoiding duplicate uploads
πŸ“· Image Compression - Automatic image compression functionality supporting multiple formats
πŸ–ΌοΈ File Preview - Supports preview of images, videos, audio, documents, and various file types
πŸ“Š Upload Statistics - Real-time display of upload progress and file information
🌈 Resume Upload - Supports resuming uploads after interruption

Advanced Features

πŸŽ›οΈ Share Control - Supports password protection, download count limits, and expiration time settings
πŸ” Pickup Code System - Supports pickup code sharing, simplifying sharing difficulty
⚑ Queue Processing - Asynchronous task processing system based on Redis + Asynq
πŸ—‚οΈ File Management - Complete file lifecycle management
πŸ“· Image Processing - Image compression, format conversion, and other processing features
🏷️ Download Control - Download token management system based on JWT

πŸ“Έ Screenshots

File Selection Upload Page Text Input Upload Page
Multiple File Upload Upload Progress Heatmap
Upload Progress Bar Upload Success Page

πŸ—οΈ Technical Architecture

Frontend Tech Stack

  • Vue 3 - Progressive JavaScript framework
  • Nuxt 3 - Vue.js full-stack framework
  • TypeScript - Complete type safety
  • Tailwind CSS - Atomic CSS framework
  • Reka UI - Modern component library
  • Pinia - State management
  • TanStack Query - Data fetching and caching
  • Vue Router - Routing management
  • i18next - Internationalization support

Backend Tech Stack

  • Go 1.23 - High-performance server-side language
  • Echo - High-performance HTTP framework
  • Redis - Caching and session storage
  • Asynq - Asynchronous task queue
  • JWT - Authentication
  • Zap - Structured logging

Build System

  • Node.js - Server-side runtime
  • pnpm - Fast package manager
  • Husky - Git hooks management
  • Prettier - Code formatting
  • Lint-staged - Staged file checking

Storage Architecture

  • File Storage - Local file system storage
  • Redis Cache - Share information and file metadata caching
  • Queue System - Asynchronous task processing queue

πŸš€ Quick Start

Docker

  1. Download files

    • config.example.yaml
    • docker-compose.yml
  2. Rename config.example.yaml to config.yaml after configuration

  3. Start

docker compose up -d

πŸ“ Project Structure

015/
β”œβ”€β”€ front/                 # Frontend application (Vue 3 + Nuxt 3)
β”‚   β”œβ”€β”€ components/       # Vue components
β”‚   β”‚   β”œβ”€β”€ pages/           # Page routes
β”‚   β”‚   β”œβ”€β”€ composables/     # Composable functions
β”‚   β”‚   β”œβ”€β”€ i18n/           # Internationalization files
β”‚   β”‚   └── assets/         # Static assets
β”‚   └── middleware/     # Middleware
β”œβ”€β”€ backend/             # Backend service (Go + Echo)
β”‚   β”œβ”€β”€ internal/       # Internal packages
β”‚   β”‚   β”œβ”€β”€ controllers/ # Controllers
β”‚   β”‚   β”œβ”€β”€ models/     # Data models
β”‚   β”‚   β”œβ”€β”€ services/   # Business logic
β”‚   β”‚   └── utils/      # Utility functions
β”‚   └── middleware/     # Middleware
β”œβ”€β”€ worker/             # Asynchronous task processing (Go + Asynq)
β”‚   β”œβ”€β”€ internal/       # Internal packages
β”‚   β”‚   β”œβ”€β”€ tasks/      # Task processors
β”‚   β”‚   └── utils/      # Utility functions
β”‚   └── middleware/     # Middleware
└── tmp/               # Temporary files

πŸ”§ Development Guide

Code Standards

  • Use Prettier for code formatting
  • Use Husky + lint-staged for pre-commit checking
  • Follow TypeScript type safety standards

Commit Standards

# Code formatting will run automatically before commit
git add .
git commit -m "feat: add new feature"

Build and Deploy

# Build frontend
cd front && pnpm run build

# Build backend (requires Go environment)
cd backend && go build -o main .

# Build Worker
cd worker && go build -o worker .

πŸ“ Development Roadmap

Completed Features βœ…

  • Frontend hash calculation and instant transfer
  • Concurrent chunked upload (using Web Worker)
  • File upload/text upload and sharing
  • Upload statistics page
  • Multi-language support
  • Maximum upload limits
  • Backend queue system and Worker file processing

Planned Features 🚧

  • Resume upload (backend calculates uploaded parts and returns)
  • Image format conversion and compression
  • Image OCR copy
  • Document to Markdown conversion
  • Text translation/summarization
  • Support for multiple file uploads

🀝 Contributing

Welcome to submit Issues and Pull Requests to improve this project.

πŸ“„ License

This project is licensed under AGPLV3.

πŸ”— Related Links

About

015 is a self-hosted temporary file sharing platform. Focused on providing one-time, temporary file and text upload, processing, and sharing services.

Topics

Resources

License

Stars

Watchers

Forks

Packages