diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..563ecab
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,5 @@
+node_modules
+playwright-report
+coverage
+dist
+test-results
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 8dc4f22..cc7f5ee 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,10 +4,12 @@
-
+
+
+
+
-
-
+
@@ -29,6 +31,9 @@
+
@@ -44,44 +49,46 @@
- {
- "keyToString": {
- "ASKED_ADD_EXTERNAL_FILES": "true",
- "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
- "Playwright.JoinText Component.executor": "Run",
- "Playwright.JoinText Component.should merge text pieces with specified join character.executor": "Run",
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "Vitest.compute function (1).executor": "Run",
- "Vitest.compute function.executor": "Run",
- "Vitest.mergeText.executor": "Run",
- "Vitest.mergeText.should merge lines and preserve blank lines when deleteBlankLines is false.executor": "Run",
- "Vitest.mergeText.should merge lines, preserve blank lines and trailing spaces when both deleteBlankLines and deleteTrailingSpaces are false.executor": "Run",
- "git-widget-placeholder": "main",
- "ignore.virus.scanning.warn.message": "true",
- "kotlin-language-version-configured": "true",
- "last_opened_file_path": "C:/Users/HP/IdeaProjects/omni-tools/src/components/options",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "npm.dev.executor": "Run",
- "npm.lint.executor": "Run",
- "npm.prebuild.executor": "Run",
- "npm.script:create:tool.executor": "Run",
- "npm.test.executor": "Run",
- "npm.test:e2e.executor": "Run",
- "npm.test:e2e:run.executor": "Run",
- "prettierjs.PrettierConfiguration.Package": "C:\\Users\\HP\\IdeaProjects\\omni-tools\\node_modules\\prettier",
- "project.structure.last.edited": "Problems",
- "project.structure.proportion": "0.0",
- "project.structure.side.proportion": "0.2",
- "settings.editor.selected.configurable": "settings.typescriptcompiler",
- "ts.external.directory.path": "C:\\Users\\HP\\IdeaProjects\\omni-tools\\node_modules\\typescript\\lib",
- "vue.rearranger.settings.migration": "true"
+
+}]]>
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -140,16 +161,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -160,13 +171,20 @@
+
+
+
+
+
+
+
+
+
-
-
@@ -206,15 +224,8 @@
-
-
-
-
- 1719188162583
-
-
-
- 1719188162583
+
+
@@ -600,7 +611,15 @@
1720656867853
-
+
+
+ 1720658257129
+
+
+
+ 1720658257129
+
+
@@ -644,7 +663,6 @@
-
@@ -669,7 +687,8 @@
-
+
+
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..41e429b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,18 @@
+FROM node:20 as build
+
+WORKDIR /app
+
+COPY package.json package-lock.json ./
+RUN npm install
+
+COPY . .
+RUN npm run build
+
+FROM nginx:alpine
+
+COPY --from=build /app/dist /usr/share/nginx/html
+
+# Expose port 80
+EXPOSE 80
+
+CMD ["nginx", "-g", "daemon off;"]
diff --git a/README.md b/README.md
index ee58f81..eb70e6a 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,14 @@
Welcome to **OmniTools**, an open-source alternative to OnlineTools.com.
This project offers a variety of online tools to help with everyday tasks,
all available for free and open for community contributions. Please don't forget to star the repo to support us.
+Here is the [live](https://omnitools.netlify.app/) website.
+
+
## Table of Contents
- [Features](#features)
+- [Self-host](#self-host)
- [Contribute](#contribute)
- [License](#license)
- [Contact](#contact)
@@ -23,9 +27,9 @@ OmniTools includes a variety of tools, such as:
- Generate prime numbers, generate perfect numbers etc.
-3. **Text Tools**
+3. **String/List Tools**
-- Case converters, text cleaners, text formatters, etc.
+- Case converters, shuffle list, text formatters, etc.
4. **Date and Time Tools**
@@ -33,7 +37,13 @@ OmniTools includes a variety of tools, such as:
5. **Miscellaneous Tools**
-- JSON, XML tools, etc.
+- JSON, XML tools, CSV tools etc.
+
+## Self-host
+
+```bash
+docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest
+```
## Contribute
diff --git a/img.png b/img.png
new file mode 100644
index 0000000..e29bb36
Binary files /dev/null and b/img.png differ