Repolode
AndySkaura

AndySkaura/mifun-storage

A Telegram Channel-backed small-file storage system, mainly used as a self-hosted image bed for blogs and Markdown notes.

Open-source alternative to:Google Drive

Stars
249
Forks
28
Open issues
0
Last commit
last month

What is it?

Mifun Storage (米饭云盘) stores small files in a Telegram Channel while keeping only directories, file metadata and Telegram mappings in SQLite or MySQL. Uploads and downloads are streamed through Node.js without writing temporary files to local disk, so the application server needs no local storage for file contents.

Its main use is as a personal image host for blogs, static sites and Markdown notes. Uploaded images get a stable random contentToken that serves as a public URL for preview, download and thumbnail requests. The project also includes a Finder-style web file manager with drag-and-drop upload, tags, storage locations with optional passwords, and a global search.

Because files go through the official Telegram Bot API, single uploads are capped at 50 MiB and downloads at 20 MiB. It is aimed at low-concurrency, single-instance use rather than high-traffic public hosting or CDN-grade delivery.

Key features

  • 01Stores file contents in a Telegram Channel with metadata in SQLite or MySQL 8.x.
  • 02Streams uploads and downloads without writing temporary files to disk.
  • 03Provides stable public content links with preview, download and thumbnail endpoints.
  • 04Offers a web file manager with drag-and-drop upload, multi-select and tags.
  • 05Supports storage locations with anonymous read/write permissions and optional passwords.
  • 06Includes Docker and Docker Compose deployment options.

Use cases

  • Hosting images for blogs, static sites and Markdown notes in Obsidian or Typora.
  • Archiving logs, reports and screenshots generated by scheduled jobs.
  • Keeping a personal cloud of documents and small files for a single user or small team.

Quick start

  1. 1

    Copy the env template

    cp .env.example .env
  2. 2

    Install dependencies

    npm install
  3. 3

    Fill in TELEGRAM_BOT_TOKEN and TELEGRAM_STORAGE_CHAT_ID in .env, then start the dev server

    npm run dev

Things to know

  • Requires a Telegram Bot and a Telegram Channel to store files.
  • Uploads are capped at 50 MiB and downloads at 20 MiB by the Telegram Bot API.
  • SQLite supports only one app instance; MySQL 8.x is needed for shared databases.
  • Not designed for high-traffic public image hosting or multi-user collaboration; no CDN or high availability.

Topics

FAQ

What is mifun-storage?
A Telegram Channel-backed small-file storage system, mainly used as a self-hosted image bed for blogs and Markdown notes. Mifun Storage (米饭云盘) stores small files in a Telegram Channel while keeping only directories, file metadata and Telegram mappings in SQLite or MySQL. Uploads and downloads are streamed through Node.js without writing temporary files to local disk, so the application server needs no local storage for file contents.
Is mifun-storage free to use? What license does it have?
mifun-storage is open source under the MIT license. Check the license terms before using it in commercial products.
Is mifun-storage still maintained?
Updated within 6 months. The last commit to mifun-storage was on Sep 10, 2026.
What can I use mifun-storage for?
Hosting images for blogs, static sites and Markdown notes in Obsidian or Typora. Archiving logs, reports and screenshots generated by scheduled jobs. Keeping a personal cloud of documents and small files for a single user or small team.
How do I install mifun-storage?
Copy the env template: cp .env.example .env Install dependencies: npm install Fill in TELEGRAM_BOT_TOKEN and TELEGRAM_STORAGE_CHAT_ID in .env, then start the dev server: npm run dev
Where can I get mifun-storage?
The source code and installation instructions are on GitHub: https://github.com/AndySkaura/mifun-storage

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects