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
- ShareX Support
- Config generation
- File name preservation
- Video, image and text previews
- Syntax highlighting for supported files
- Deletion URLs
- Invite links
- URL Shortening
- Mobile support
- EXIF metadata removal
- Purging of old, large files (
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.
- Download the files in this repository,
git clone https://github.com/sylv/micro.git
- Copy the example configs to the current directory,
cp ./micro/example/* ./
- Fill out
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.
docker-compose up -d postgresto start the database.
docker-compose run -e DATABASE_URL=postgresql://micro:youshallnotpass@postgres/micro micro prisma db push --preview-featureto create database tables.
docker-compose up -d microto start micro.
- Get the startup invite by doing
docker-compose logs microand copying the invite URL that should be somewhere towards the end of the log. Go to that URL to create the first account.
There currently isn't an admin interface, only endpoints that let you do some basic tasks.
- To create an invite, go to
/api/inviteand copy the link. Invites are valid for an hour and cannot be revoked once generated.
- To add a tag to a user, go to
:idis the id of the user you want to add the tag to, and
:tagis 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.
- 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
- Random hosts is broken. Should probably set
file.hostto null for misc hosts
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