Welcome to OmniTools, a self-hosted web app offering a variety of online tools to simplify everyday tasks. Whether you are coding, manipulating images/videos, PDFs or crunching numbers, OmniTools has you covered. Please don't forget to star the repo to support us. Here is the demo website.
All files are processed entirely on the client side: nothing ever leaves your device. Plus, the Docker image is super lightweight at just 28MB, making it fast to deploy and easy to self-host.
Table of Contents
Features
We strive to offer a variety of tools, including:
Image/Video/Audio Tools
- Image Resizer
- Image Converter
- Image Editor
- Video Trimmer
- Video Reverser
- And more...
PDF Tools
- PDF Splitter
- PDF Merger
- PDF Editor
- And more...
Text/List Tools
- Case Converters
- List Shuffler
- Text Formatters
- And more...
Date and Time Tools
- Date Calculators
- Time Zone Converters
- And more...
Math Tools
- Generate Prime Numbers
- Calculate voltage, current, or resistance
- And more...
Data Tools
- JSON Tools
- CSV Tools
- XML Tools
- And more...
Stay tuned as we continue to expand and improve our collection!
Self-host/Run
Docker
docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest
Docker Compose
services:
omni-tools:
image: iib0011/omni-tools:latest
container_name: omni-tools
restart: unless-stopped
ports:
- "8080:80"
Contribute
This is a React Project with Typescript Material UI. We use icons from Iconify
Project setup
git clone https://github.com/iib0011/omni-tools.git
cd omni-tools
npm i
npm run dev
Create a new tool
npm run script:create:tool my-tool-name folder1 # npm run script:create:tool split pdf
For tools located under multiple nested directories, use:
npm run script:create:tool my-tool-name folder1/folder2 # npm run script:create:tool compress image/png
Use folder1\folder2
on Windows.
Run tests
npm run test
- For e2e tests
npm run test:e2e
i18n (Translations)
The translation files are here. Only edit these if you are a developer. For non developers, use Locize.
🤝 Looking to contribute?
We welcome contributions! You can help by:
- Reporting bugs
- Suggesting new features in GitHub issues or here
- Translating in Locize project.
- Improving documentation
- Submitting pull requests
You can also join our Discord server
🧡 Sponsors
Thanks to Locize for sponsoring OmniTools and supporting localization efforts. They make translation management simple and developer-friendly.
Contributors
Contact
For any questions or suggestions, feel free to open an issue or contact me at: ibracool99@gmail.com
License
This project is licensed under the MIT License. See the LICENSE file for details.