{"id":20435367,"url":"https://github.com/checksumdev/lumen","last_synced_at":"2025-07-09T03:11:40.091Z","repository":{"id":200630718,"uuid":"705958304","full_name":"ChecksumDev/lumen","owner":"ChecksumDev","description":"Lumen is an astronomically fast ShareX uploader written in Rust using the Actix Web framework","archived":false,"fork":false,"pushed_at":"2025-04-08T02:13:08.000Z","size":231,"stargazers_count":23,"open_issues_count":4,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-27T00:55:25.774Z","etag":null,"topics":["actix-web","sharex","sharex-uploader"],"latest_commit_sha":null,"homepage":"https://lumen.checksum.space","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChecksumDev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"checksumdev"}},"created_at":"2023-10-17T03:14:05.000Z","updated_at":"2025-05-04T03:01:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"57fd6389-8c90-43ac-ad91-4de9b3edffd9","html_url":"https://github.com/ChecksumDev/lumen","commit_stats":null,"previous_names":["checksumdev/lumen"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ChecksumDev/lumen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChecksumDev%2Flumen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChecksumDev%2Flumen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChecksumDev%2Flumen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChecksumDev%2Flumen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChecksumDev","download_url":"https://codeload.github.com/ChecksumDev/lumen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChecksumDev%2Flumen/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264384389,"owners_count":23599612,"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":["actix-web","sharex","sharex-uploader"],"created_at":"2024-11-15T08:33:40.041Z","updated_at":"2025-07-09T03:11:40.070Z","avatar_url":"https://github.com/ChecksumDev.png","language":"Rust","funding_links":["https://github.com/sponsors/checksumdev"],"categories":[],"sub_categories":[],"readme":"# Lumen 🌄\n\n![GitHub](https://img.shields.io/github/license/checksumdev/lumen) ![GitHub top language](https://img.shields.io/github/languages/top/checksumdev/lumen) ![Static Badge](https://img.shields.io/badge/forbid-unsafe_code-green) ![Discord](https://img.shields.io/discord/984852897051312159?label=Support%20Server)\n\nLumen is an **astronomically fast** ShareX uploader written in Rust using the [Actix Web](https://github.com/actix/actix-web) framework. It is designed to be **lightweight** and **secure**, providing a self-hosted solution for file uploads.\n\nAll uploads are encrypted with **AES-256-GCM-SIV** and only the uploader can decrypt the files.\n\n## Installation 🚀\n\n\u003e **Note:** Lumen is currently in development and may not be stable. Use at your own risk.\n\n### Building from source\n\n```bash\n# Clone the repository\ngit clone https://github.com/checksumdev/lumen.git\ncd lumen\n\n# Build the project\ncargo build --release\n\n# Configure .env\nRename .env.example to .env and change PUBLIC_URL if needed\n\n# Run Lumen 🌄 (after you configured the .env file)\n./target/release/lumen # or ./target/release/lumen.exe on Windows\n\n# Lumen is now running on http://localhost:8080\n```\n\n## Usage 📝\n\nTo use Lumen you first need to create an user with POST request to `/register`. Format for the post request is `{\"username\": \"USERNAME\", \"password\": \"PASSWORD\"}`. The server should return you the whole user object in the database including the API key which you need to save for later use.\n\nTo configure ShareX you need to get the configuration file and change its values to match your installation and user API key. An example ShareX configuration file is provided in the /examples folder: [Lumen.sxcu](examples/Lumen.sxcu). Download the file and open it with your favourite editor. Make sure to change values for `requestUrl` to match your domain and `x-api-key` with your user API key that you saved before, alongside that make sure to edit the end of `deletionUrl` field and replace `API_KEY_HERE` with your user API key\n\n## Nginx config ⚙️\n\nTo use Lumen with nginx you can use configuration file provided in the /examples folder: [nginx.conf](examples/nginx.conf).\n\nMake sure to update the values in the configuration file to match your domain and Lumen installation.\n\n```nginx\n# Nginx config for lumen\nserver {\n    listen 80;\n    server_name lumen.example.com; # Change lumen.example.com to your domain, should also change it in your sharex config\n\n    # redirect http to https\n    return 301 https://$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    server_name lumen.example.com; # Change lumen.example.com to your domain\n\n    # ssl\n    ssl_certificate /etc/letsencrypt/live/lumen.example.com/fullchain.pem; # Change lumen.example.com to your domain\n    ssl_certificate_key /etc/letsencrypt/live/lumen.example.com/privkey.pem; # Change lumen.example.com to your domain\n\n    # proxy\n    location / {\n        proxy_pass http://127.0.0.1:8080;\n        include /etc/nginx/proxy_params;\n    }\n}\n```\n\n## Benchmarks 📊\n\nThese benchmarks were performed on a Ryzen 9 3900X with 32GB of RAM. Feel free to run the benchmarks yourself by running `cargo bench` in the project directory with a release server running.\n\n\u003e **WARNING:** The benchmark will create many 1MB files, and will **DELETE ALL** uploads by the test user when it is finished.\n\n![Benchmark](assets/benchmarks.svg)\n\n## Contributing 🤝\n\nIf you love what we're doing, **star the repository**! It helps us out a lot. If you want to contribute and have any major changes in mind, please open an issue first to discuss them. When making commits, please follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.\n\n\u003ca href=\"https://star-history.com/#checksumdev/lumen\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=checksumdev/lumen\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=checksumdev/lumen\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=checksumdev/lumen\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n## Support 💬\n\nIf you need help with Lumen, feel free to join our [Discord server](https://discord.gg/JcF9sTZPc4) or open an issue.\n\n## License 📜\n\nLumen is licensed under the [Affero General Public License v3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchecksumdev%2Flumen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchecksumdev%2Flumen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchecksumdev%2Flumen/lists"}