{"id":21663467,"url":"https://github.com/j4asper/sharex-uploader","last_synced_at":"2025-05-08T01:16:12.383Z","repository":{"id":186592507,"uuid":"675390702","full_name":"j4asper/ShareX-Uploader","owner":"j4asper","description":"ShareX Image Uploader made to be hosted in a Docker container","archived":false,"fork":false,"pushed_at":"2023-08-13T15:56:10.000Z","size":65,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-08T01:16:08.203Z","etag":null,"topics":["docker","python","sharex","sharex-server","sharex-upload","sharex-uploader"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/j4asper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-06T18:52:38.000Z","updated_at":"2024-04-18T07:32:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"1250cfb1-f885-4e5e-909d-9b41c641241b","html_url":"https://github.com/j4asper/ShareX-Uploader","commit_stats":null,"previous_names":["j4asper/sharex-uploader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j4asper%2FShareX-Uploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j4asper%2FShareX-Uploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j4asper%2FShareX-Uploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j4asper%2FShareX-Uploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j4asper","download_url":"https://codeload.github.com/j4asper/ShareX-Uploader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252978810,"owners_count":21834920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","python","sharex","sharex-server","sharex-upload","sharex-uploader"],"created_at":"2024-11-25T10:22:26.846Z","updated_at":"2025-05-08T01:16:12.365Z","avatar_url":"https://github.com/j4asper.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://github.com/j4asper/ShareX-Uploader/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/j4asper/sharex-uploader?style=for-the-badge\"\u003e\u003c/a\u003e \u003ca href=\"https://hub.docker.com/r/jazper/sharex-uploader\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/jazper/sharex-uploader?style=for-the-badge\u0026logo=Docker\"\u003e\u003c/a\u003e \u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3.11-blue?style=for-the-badge\u0026label=Python\u0026logo=Python\"\u003e\u003c/a\u003e\n\n# ShareX Uploader\n\n[ShareX](https://getsharex.com/) is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.\n\nIf you choose to use this ShareX Uploader, you will be able to upload images to your own server, and have cool links to them such as this one `https://i.jazper.dk/EsCJgx.png`.\n\n![Demo Image](https://i.jazper.dk/EsCJgx.png)\n\n## Table of contents\n\n- [Setting up the docker container](#setting-up-the-docker-container)\n  - [Environment Variables](#environment-variables)\n- [Building docker image](#building-docker-image)\n- [Configuring ShareX](#configuring-sharex)\n  - [Image and File Uploader](#image-and-file-uploader)\n  - [URL Shortener](#url-shortener)\n- [To-Do](#to-do)\n\n## Setting up the docker container\n\nSimplest way to run the ShareX Uploader. Replace `password` with the auth password you want to use, to prevent people from uploading stuff to your sharex uploader instance. You can also remove `-e TOKEN=password` to disable upload authentication, this will allow everyone to upload to you instance.  \nIf you want the instance to run on port 80, then change `8000:8000` to `80:8000`.\n\n```console\ndocker run -d -e TOKEN=password -p 8000:8000 jazper/sharex-uploader:latest\n```\n\nYou may want to create a shared volume for your docker container to be able to access the images on the docker instance easier, by binding the `images` folder to a folder on your host machine. Make sure to edit `/path/to/your/folder`. This will be the folder that contains all the images uploaded to the sharex uploader instance. **This is highly recommended! If you were to update your docker container, without having a volume, it would just delete all your images.**\n\n```console\ndocker run -d -p 8000:8000 -v /ShareX-Uploader/images:/path/to/your/folder jazper/sharex-uploader:latest\n```\n\n### Environment Variables\n\nEnvironment Variables you may want to change. It is highly recommended to change the TOKEN, to prevent spam uploads to your instance.\n\n| Name                | Requirement | Value  | Default Value | Description                                                                              |\n|---------------------|-------------|--------|--------|-------------------------------------------------------------------------------------------------|\n| TOKEN               | Optional    | string | `None` | Token needed to be able to upload images, if not set, everyone can upload to the server.        |\n| MAX_FILENAME_LENGTH | Optional    | int    | 6      | Length of image names 4 or above is recommended.                                                |\n| MAX_UPLOAD_SIZE     | Optional    | int    | 10     | Max size of uploaded files in MB, you should you increase this if you plan to upload videoes    |\n| SHORT_URL_LENGTH    | Optional    | int    | 4      | Length of shortened url \"codes\"                                                                 |\n\nThe docker run command would be the following, if you were to set all the environment vars to the default value.\n\n```console\ndocker run -d -e TOKEN=your-password-here -e MAX_FILENAME_LENGTH=6 -e MAX_UPLOAD_SIZE=10 -p 8000:8000 jazper/sharex-uploader:latest\n```\n\nYou can change the values as you wish, or remove them if you just want to use the default value.\n\n## Building docker image\n\nYou can build the docker image from source by cloning this repo, and then run the command below.\n\n```console\ndocker build --no-cache -t sharex-uploader .\n```\n\nThen you can set up the container in the same way as te previous section. Replace `jazper/sharex-uploader:latest` with `sharex-uploader` and the you should be good to go.\n\n## Configuring ShareX\n\n### Image and File Uploader\n\nIn the ShareX main menu, click the \"Destinations\" tab in the left hand side panel. Then choose the option at the buttom \"Custom uploader settings\". Choose the option to import a config from a URL, and paste this URL into the text field: `https://raw.githubusercontent.com/j4asper/ShareX-Uploader/main/sharex-configs/image%20and%20file%20uploader.json`.  \nThen the base config should be loaded now, and you can now replace all instances of `example.com` to your domain. Remember to include the port of your docker container if it's different from `80` or `443`.\nNow to use the custom uploader, click the \"Destinations\" tab again, then when hovering over \"Image uploader\" you can select \"Custom Image Uploader\". You can also use the custom image uplaoder to upload files, when in the \"Destinations\", select \"File uploader\" and then select \"Custom File Uploader\", this will use the image uploader as if it were a file uploader.\n\n### URL Shortener\n\nGo to the Custom Uploader Settings, the same way as in the above section. Then import a config from URL and paste this link into the text field: `https://raw.githubusercontent.com/j4asper/ShareX-Uploader/main/sharex-configs/url%20shortener.json`. Remember to change `example.com` to fit your own domain.\nThen in the Destinations tab, hover over the URL Shortener, and select Custom URL Shortener.\n\n## To-Do\n\n- [ ] Add Delete endpoint with token authentication (Probably with web UI)\n- [x] Add URL-Shortener functionality\n- [ ] Add pastebin-like functionality\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj4asper%2Fsharex-uploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj4asper%2Fsharex-uploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj4asper%2Fsharex-uploader/lists"}