An image host with thumbnails, a dashboard, thumbnails, 2fa, url shortening and more.
Go to file
Ryan a58fd3ad77 feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
.github/workflows build: automated docker images 2021-07-15 11:54:20 +00:00
.husky chore: add commitlint 2021-07-15 11:07:48 +00:00
.vscode feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
example feat: redirect on upload to host that isnt current 2021-07-13 11:50:31 +00:00
packages feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
.dockerignore build: automated docker images 2021-07-15 11:54:20 +00:00
.eslintrc.json chore: use eslint config 2021-08-26 08:30:53 +00:00
.gitignore feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
.pnpmfile.cjs feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
.prettierrc another redesign 2021-04-24 00:27:57 +08:00
Dockerfile chore: use eslint config 2021-08-26 08:30:53 +00:00
LICENSE Initial commit 2020-08-27 15:36:16 +08:00
README.md feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
commitlint.config.js chore: add commitlint 2021-07-15 11:07:48 +00:00
docker-compose.yml feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
package.json feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
pnpm-lock.yaml feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
pnpm-workspace.yaml feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00
tsconfig.json feat: mikroorm, convert to monorepo 2021-10-02 22:17:05 +00:00

README.md

micro

An invite-only file sharing service with support for ShareX. At the moment, consider the current state of micro to be an alpha - there are no guarantees. You can see a preview at https://micro.sylo.digital

features

  • ShareX Support
  • Thumbnails
  • Config generation
  • File name preservation
  • Video, image and text previews
  • Syntax highlighting for supported files
  • Deletion URLs
  • Dashboard
  • Permissions
  • Invite links
  • URL Shortening
  • Mobile support
  • EXIF metadata removal
  • Purging of old, large files (config.purge).

screenshots

Sign In Page Dashboard
Upload Page Text Preview

installation

Before you get started, please keep in mind micro isn't really intended to be self-hosted; setting it up can be tricky and managing it isn't particularly fun. This is a very rough guide to help people that already know what they're doing. If you can't follow along, you should hold off on hosting your own instance until there are better instructions. I'd also recommend you read through the files in /example first to see if you can follow along, because if you can't you're just gonna waste time trying to follow the instructions below.

  1. Install git, docker and docker-compose
  2. Download the files in this repository, git clone https://github.com/sylv/micro.git
  3. Copy the example configs to the current directory, cp ./micro/example/* ./
  4. Fill out .microrc, Caddyfile and docker-compose.yml. You need to read through each file carefully or you'll risk fucking up your entire micro instance. The comments are important and include information on initial startup and security. Caddy is optional but it will handle encrypting traffic and redirecting insecure requests, so for anything but a test environment you should use it or something similar.
  5. Run docker-compose up -d postgres to start the database.
  6. Run docker-compose run -e DATABASE_URL=postgresql://micro:youshallnotpass@postgres/micro micro prisma db push to create database tables.
  7. Run docker-compose up -d micro to start micro.
  8. Get the startup invite by doing docker-compose logs micro and copying the invite URL that should be somewhere towards the end of the log. Go to that URL to create the first account.

administration

There currently isn't an admin interface, only endpoints that let you do some basic tasks.

  • To create an invite, go to /api/invite and copy the link. Invites are valid for an hour and cannot be revoked once generated.
  • To add a tag to a user, go to /api/user/:id/tags/add/:tag, where :id is the id of the user you want to add the tag to, and :tag is the name of the tag to add.
  • To remove a tag, go to /api/user/:id/tags/remove/:tag. See above for parameters.
  • To delete a user, go to /api/user/:id/delete. This will only delete the user, files they have uploaded will not be removed from disk.

todo

  • Ratelimiting
  • Image width+height should be stored so the image preview doesn't flash while loading.
  • Video thumbnails
  • Markdown previews
  • Paste support
  • Syntax highlighting for Atlas actions
  • Redirects may be broken. Also hosts with no redirect should probably just have it set to the root host, that should allow us to strip some unnecessary code.
  • GIFs should probably be converted to mp4 videos to save space
    • Discord is currently blocking this as they handle embedding videos (and gifs) extremely poorly. Unless the url has "mp4" in it it outright won't embed most of the time.

discord

it's pretty cool and my mum made cookies if you wanna come. might even give you an account on the official instance or help you setup your own 😳 that would be crazy haha 👉👈

sylo.digital