Releases: keven1024/015
Releases · keven1024/015
0.0.8.1
🚀 Improvements & Fixes
- Removed default Docker environment variables; now the
site.urlconfigured in YAML takes effect correctly. - Fixed the About page MarkdownRender's
class="max-w-full"display issue, ensuring correct rendering.
Full Changelog: 0.0.8...0.0.8.1
0.0.8
Release v0.0.8 - The Insight & Configuration Update
This release marks a significant step forward for 015, introducing a powerful new configuration system, a brand new "About" page with detailed analytics, and comprehensive internationalization. You now have more control than ever to customize your instance and gain deeper insights into its usage.
💥 Breaking Changes
- Configuration System Overhaul: We have migrated from
.envfiles to a single, powerfulconfig.yaml. This allows for richer, nested configurations and easier management. You must migrate your existing.envvariables to a newconfig.yamlfile. Please refer to the newconfig.example.yamlto set up your instance.
✨ New Features
- YAML Configuration (
config.yaml): The new configuration system allows you to customize almost every aspect of your 015 instance, including site branding, "about" page content, share behavior, and storage limits. - New "About" Page: A dedicated page (
/about) has been added to showcase your instance. It's fully customizable and includes:- Admin/owner information (avatar, name, email, URL).
- Instance storage usage (current vs. maximum).
- Custom, multi-language markdown content.
- Enhanced Statistics & Analytics Engine:
- The statistics system has been rebuilt from the ground up for efficiency and detail.
- We now track daily metrics for file uploads, share creations, and downloads.
- The "About" page features interactive charts displaying the last 30 days of activity for files, shares, downloads, and background tasks.
- Dynamic Site Branding & SEO: You can now set your site's title, description, icon, and default background image directly from the config file. This information is used to automatically generate SEO meta tags for better discoverability.
🚀 Improvements & Fixes
- Comprehensive Internationalization (i18n): Nearly all user-facing text is now translatable. We've added extensive new translation keys for a complete multilingual experience.
- Smarter File Deletion: The background job for deleting expired files now waits for an additional "download window" period (configurable, defaults to 12 hours) before removal. This prevents files from being deleted while a user is actively downloading them near the expiration time.
- UI Polish:
- Added new foundational UI components like
Accordion,Avatar, andDropdownMenu. - Improved styling for rendered markdown content.
- Increased the width of drawers for a better user experience on larger screens.
- Added new foundational UI components like
- Configurable Download Token Lifetime: The validity period for single-use download tokens is now configurable via
share.download_window.
⚙️ Backend Changes
- Added new API endpoints:
/api/configfor public site settings and/api/aboutfor the about page data. - Refactored all environment variable access to use the new Viper-based configuration system.
- Introduced a new Redis hash (
015:stat) to efficiently store and retrieve daily aggregated statistics. - The API server port is now configurable via
api.port.
0.0.7.1
Added
- New Environment Variable: Introduced
PASSWORD_SALTin.env.exampleto enhance password hashing security. - Documentation Screenshots: Added several new image assets (
0.png,3.png,4.png,5.png,6.png) to.github/image/for updated UI demonstrations in the READMEs. - Docker Compose Configuration: Included a new
docker-compose.ymlfile to streamline development and deployment setup for the application, worker, and Redis. - Backend Test Files: Added
backend/internal/utils/http_result_test.goandbackend/internal/utils/password_test.goto improve test coverage for HTTP response handling and password utilities. - Frontend Visualization Components:
FileUploadBlockProgressView.vue: A new component for displaying upload progress as a series of blocks.FileUploadHeatMapView.vue: A new component for a file upload heatmap visualization.FileUploadSpeedInfoView.vue: A new component providing explanation on upload speed calculation.Pixi.vue: A wrapper component for integrating PixiJS, likely for custom graphical visualizations.
- Frontend Utility Functions: Included new helper functions in
front/lib/:asyncRetry.ts: For implementing retry logic in asynchronous operations.asyncTimeout.ts: For setting timeouts on asynchronous operations.getFileChunk.ts: To efficiently read file chunks.getFileSize.ts: A utility to format file sizes into human-readable strings.
- Frontend Type Definitions: A new file
front/components/Preprocessing/types.tsto centralize type definitions for preprocessing components. - Development Page: Added
front/pages/dev.vuefor internal testing and showcasing frontend components.
Changed
- Redis URL for Docker: Updated
REDIS_URLin.env.examplefromredis://127.0.0.1:6379/0toredis://redis:6379/0, aligning with Docker Compose service naming. - Documentation Structure and Content:
- Renamed
docs/README-zh.mdtoREADME-zh.md(moved to root). - Updated image paths in both
README.mdandREADME-zh.mdto point to the new.github/image/directory. - Added new descriptive text and a language toggle to the READMEs.
- Updated Go version in the "Backend Tech Stack" section of the READMEs.
- Renamed
- Dynamic File Chunking Logic: Modified
backend/internal/controllers/file.goto implement a more adaptive chunk size calculation during file upload, starting at0.25MBand doubling until the total number of chunks is below 1000. - Frontend Multi-file Handling:
front/components/Drawer/FileShareDrawer.vueandfront/components/Field/FileUploadField.vue: Modified to accept and manage an array ofFileobjects, enabling multiple file uploads simultaneously.FileUploadFieldnow displays multiple file previews with individual removal options.front/components/Result/FileShareResult.vue: Adjusted to display results for multiple shared files with a selection mechanism to view details for each.front/composables/useMyAppShare.ts: ThecreateFileSharefunction now processes and returns data for multiple files.
- Frontend Global State Management: Refactored
front/composables/useStore.tsto streamline how global state, particularly for drawers, is accessed and updated, moving from_get/_setmethods to direct property access.GlobalDrawer.vuelogic was adjusted accordingly. - UI Enhancements and Styling:
front/components/AboutChartTooltip.vueandfront/components/FilePreviewView.vue: Now use the newgetFileSizeutility for consistent file size display.front/components/FileIcon.vue: Added aclassprop for custom styling and fine-tuned icon sizing.front/components/MarkdownRender.vueandfront/components/Tiptap.vue: Applied additional Tailwind CSS classes for improved typography and layout consistency (e.g., paragraph spacing, heading margins).front/layouts/default.vue: Added a background gradient for better visual appeal.
- PWA (
serwist) Integration: TheserwistPWA module registration infront/app.vuehas been commented out. - Nuxt and Vite Configuration:
front/nuxt.config.tshadvue3-pixi-nuxtadded to modules andvite.optimizeDeps.includeadjusted.
Removed
- Old Documentation Images: Original image files in
docs/image/(0.png,1.webp,2.webp,3.png,4.png) were removed, some being replaced by new versions in the.github/image/directory.
Technical Improvements
- Dependency Upgrades (Go): Updated Go runtime from
1.23.1to1.24.3acrossDockerfile,backend/Dockerfile, andworker/Dockerfile. Numerous Go module dependencies inbackend/go.modandworker/go.modwere also upgraded (e.g.,dario.cat/mergo,github.com/golang-jwt/jwt/v5,github.com/labstack/echo/v4,github.com/redis/go-redis/v9,github.com/samber/lo,github.com/spf13/viper,go.uber.org/zap,golang.org/x/crypto,golang.org/x/sys,google.golang.org/protobuf), indicating better performance, stability, and security. - Dependency Upgrades (Node.js/Frontend): Extensive updates to
pnpm-lock.yamlreflect broad dependency upgrades across the frontend stack (e.g.,@pinia/nuxt,@tailwindcss/postcss,@tanstack/vue-query,@tiptap/vue-3,motion-v,nuxt,pixi.js,reka-ui,tailwindcss,vite), bringing in the latest features, bug fixes, and security patches. - Improved Build Process: The
Dockerfileupdates to Go versions, along with newvue3-pixi-nuxtmodule andvite.optimizeDeps.includeenhancements infront/nuxt.config.ts, all contribute to a more modern and potentially more efficient build ecosystem. - Enhanced Frontend Upload Flow: The major refactor of
front/components/Home/File/FileUploadProgressView.vuewith an internal task queue, granular chunk status, and different visualization modes (block progress, heatmap) represents a significant technical leap in managing concurrent, large-file uploads client-side. - Code Quality and Testability: The addition of backend test files and stricter type definitions in the frontend (via
Preprocessing/types.ts) indicates a commitment to improving code reliability and maintainability.
Full Changelog: 0.0.7...0.0.7.1
0.0.6
Added
- Security Enhancement: Added password hashing utility using argon2 for secure password storage
- New Feature: Added PasswallShareDrawer component for password-protected file sharing
- Backend Enhancement: Enhanced password handling in share and download controllers
Changed
- Frontend: Updated GlobalDrawer component to use direct drawer reference for better performance
- Frontend: Updated useStore to set key value to null instead of undefined for better state management
- Frontend: Refactored file sharing logic to use downloadFileByShare for improved consistency
- Frontend: Enhanced type safety in GlobalDrawer and PasswallShareDrawer components
Fixed
- Frontend: Improved drawer management by adding onClose handler and refactoring drawer logic
- Frontend: Refactored InputField component to improve attribute binding and reduce redundancy
- Frontend: Enhanced error handling in file download components by refactoring error management
- Frontend: Fixed various type safety issues and improved component reliability
Technical Improvements
- Frontend: Better state management with null values instead of undefined
- Frontend: Improved component architecture and type safety
- Backend: Enhanced security with proper password hashing
- Frontend: Better error handling and user experience improvements
Full Changelog: 0.0.5...0.0.6