mirror of
				https://github.com/iib0011/omni-tools.git
				synced 2025-10-31 01:24:00 +01:00 
			
		
		
		
	feat: self host
This commit is contained in:
		
							
								
								
									
										5
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| node_modules | ||||
| playwright-report | ||||
| coverage | ||||
| dist | ||||
| test-results | ||||
							
								
								
									
										173
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										173
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							| @@ -4,10 +4,12 @@ | ||||
|     <option name="autoReloadType" value="SELECTIVE" /> | ||||
|   </component> | ||||
|   <component name="ChangeListManager"> | ||||
|     <list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="feat: group list ui"> | ||||
|     <list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="feat: reverse list ui"> | ||||
|       <change afterPath="$PROJECT_DIR$/.dockerignore" afterDir="false" /> | ||||
|       <change afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" /> | ||||
|       <change afterPath="$PROJECT_DIR$/img.png" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/src/pages/list/reverse/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/list/reverse/index.tsx" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/src/pages/list/reverse/service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/list/reverse/service.ts" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" /> | ||||
|     </list> | ||||
|     <option name="SHOW_DIALOG" value="false" /> | ||||
|     <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||||
| @@ -29,6 +31,9 @@ | ||||
|     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||||
|     <option name="RESET_MODE" value="HARD" /> | ||||
|   </component> | ||||
|   <component name="KubernetesApiProvider"><![CDATA[{ | ||||
|   "isMigrated": true | ||||
| }]]></component> | ||||
|   <component name="MarkdownSettingsMigration"> | ||||
|     <option name="stateVersion" value="1" /> | ||||
|   </component> | ||||
| @@ -44,44 +49,46 @@ | ||||
|     <option name="hideEmptyMiddlePackages" value="true" /> | ||||
|     <option name="showLibraryContents" value="true" /> | ||||
|   </component> | ||||
|   <component name="PropertiesComponent">{ | ||||
|   "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" | ||||
|   <component name="PropertiesComponent"><![CDATA[{ | ||||
|   "keyToString": { | ||||
|     "ASKED_ADD_EXTERNAL_FILES": "true", | ||||
|     "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true", | ||||
|     "Docker.Dockerfile build.executor": "Run", | ||||
|     "Docker.Dockerfile.executor": "Run", | ||||
|     "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" | ||||
|   } | ||||
| }</component> | ||||
| }]]></component> | ||||
|   <component name="ReactDesignerToolWindowState"> | ||||
|     <option name="myId2Visible"> | ||||
|       <map> | ||||
| @@ -106,18 +113,32 @@ | ||||
|       <recent name="C:\Users\HP\IdeaProjects\omni-tools\src\tools" /> | ||||
|     </key> | ||||
|   </component> | ||||
|   <component name="RunManager" selected="npm.dev"> | ||||
|     <configuration name="JoinText Component.should merge text pieces with specified join character" type="JavaScriptTestRunnerPlaywright" temporary="true" nameIsGenerated="true"> | ||||
|       <node-interpreter value="project" /> | ||||
|       <playwright-package value="$PROJECT_DIR$/node_modules/@playwright/test" /> | ||||
|       <working-dir value="$PROJECT_DIR$" /> | ||||
|       <envs /> | ||||
|       <scope-kind value="TEST" /> | ||||
|       <test-file value="$PROJECT_DIR$/src/pages/string/join/string-join.e2e.spec.ts" /> | ||||
|       <test-names> | ||||
|         <test-name value="JoinText Component" /> | ||||
|         <test-name value="should merge text pieces with specified join character" /> | ||||
|       </test-names> | ||||
|   <component name="RunManager" selected="Docker.Dockerfile"> | ||||
|     <configuration name="Dockerfile build" type="docker-deploy" factoryName="dockerfile" temporary="true" server-name="Docker"> | ||||
|       <deployment type="dockerfile"> | ||||
|         <settings> | ||||
|           <option name="imageTag" value="omnitools" /> | ||||
|           <option name="buildCliOptions" value="--target build" /> | ||||
|           <option name="buildKitEnabled" value="true" /> | ||||
|           <option name="containerName" value="omni-tools" /> | ||||
|           <option name="publishAllPorts" value="true" /> | ||||
|           <option name="sourceFilePath" value="Dockerfile" /> | ||||
|         </settings> | ||||
|       </deployment> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <configuration name="Dockerfile" type="docker-deploy" factoryName="dockerfile" temporary="true" server-name="Docker"> | ||||
|       <deployment type="dockerfile"> | ||||
|         <settings> | ||||
|           <option name="sourceFilePath" value="Dockerfile" /> | ||||
|         </settings> | ||||
|       </deployment> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true"> | ||||
|       <deployment type="dockerfile"> | ||||
|         <settings /> | ||||
|       </deployment> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <configuration name="dev" type="js.build_tools.npm" temporary="true" nameIsGenerated="true"> | ||||
| @@ -140,16 +161,6 @@ | ||||
|       <envs /> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <configuration name="test" type="js.build_tools.npm" temporary="true" nameIsGenerated="true"> | ||||
|       <package-json value="$PROJECT_DIR$/package.json" /> | ||||
|       <command value="run" /> | ||||
|       <scripts> | ||||
|         <script value="test" /> | ||||
|       </scripts> | ||||
|       <node-interpreter value="project" /> | ||||
|       <envs /> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <configuration name="test:e2e" type="js.build_tools.npm" temporary="true" nameIsGenerated="true"> | ||||
|       <package-json value="$PROJECT_DIR$/package.json" /> | ||||
|       <command value="run" /> | ||||
| @@ -160,13 +171,20 @@ | ||||
|       <envs /> | ||||
|       <method v="2" /> | ||||
|     </configuration> | ||||
|     <recent_temporary> | ||||
|     <list> | ||||
|       <item itemvalue="Docker.Dockerfile" /> | ||||
|       <item itemvalue="Docker.Dockerfile build" /> | ||||
|       <item itemvalue="npm.dev" /> | ||||
|       <item itemvalue="npm.lint" /> | ||||
|       <item itemvalue="npm.test:e2e" /> | ||||
|     </list> | ||||
|     <recent_temporary> | ||||
|       <list> | ||||
|         <item itemvalue="Docker.Dockerfile build" /> | ||||
|         <item itemvalue="Docker.Dockerfile" /> | ||||
|         <item itemvalue="npm.dev" /> | ||||
|         <item itemvalue="npm.lint" /> | ||||
|         <item itemvalue="npm.test:e2e" /> | ||||
|         <item itemvalue="Playwright.JoinText Component.should merge text pieces with specified join character" /> | ||||
|         <item itemvalue="npm.test" /> | ||||
|       </list> | ||||
|     </recent_temporary> | ||||
|   </component> | ||||
| @@ -206,15 +224,8 @@ | ||||
|       <workItem from="1720557527691" duration="3245000" /> | ||||
|       <workItem from="1720564427492" duration="1523000" /> | ||||
|       <workItem from="1720613598176" duration="8000" /> | ||||
|       <workItem from="1720655252208" duration="2568000" /> | ||||
|     </task> | ||||
|     <task id="LOCAL-00045" summary="fix: create-tool.mjs"> | ||||
|       <option name="closed" value="true" /> | ||||
|       <created>1719188162583</created> | ||||
|       <option name="number" value="00045" /> | ||||
|       <option name="presentableId" value="LOCAL-00045" /> | ||||
|       <option name="project" value="LOCAL" /> | ||||
|       <updated>1719188162583</updated> | ||||
|       <workItem from="1720655252208" duration="3975000" /> | ||||
|       <workItem from="1720661825389" duration="3107000" /> | ||||
|     </task> | ||||
|     <task id="LOCAL-00046" summary="feat: change colors in png init"> | ||||
|       <option name="closed" value="true" /> | ||||
| @@ -600,7 +611,15 @@ | ||||
|       <option name="project" value="LOCAL" /> | ||||
|       <updated>1720656867853</updated> | ||||
|     </task> | ||||
|     <option name="localTasksCounter" value="94" /> | ||||
|     <task id="LOCAL-00094" summary="feat: reverse list ui"> | ||||
|       <option name="closed" value="true" /> | ||||
|       <created>1720658257129</created> | ||||
|       <option name="number" value="00094" /> | ||||
|       <option name="presentableId" value="LOCAL-00094" /> | ||||
|       <option name="project" value="LOCAL" /> | ||||
|       <updated>1720658257129</updated> | ||||
|     </task> | ||||
|     <option name="localTasksCounter" value="95" /> | ||||
|     <servers /> | ||||
|   </component> | ||||
|   <component name="TypeScriptGeneratedFilesManager"> | ||||
| @@ -644,7 +663,6 @@ | ||||
|     <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> | ||||
|     <option name="CHECK_NEW_TODO" value="false" /> | ||||
|     <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> | ||||
|     <MESSAGE value="feat: make responsive" /> | ||||
|     <MESSAGE value="feat: make tool responsive" /> | ||||
|     <MESSAGE value="chore: make tool examples responsive" /> | ||||
|     <MESSAGE value="chore: loading screen" /> | ||||
| @@ -669,7 +687,8 @@ | ||||
|     <MESSAGE value="fix: style" /> | ||||
|     <MESSAGE value="feat: find unique ui" /> | ||||
|     <MESSAGE value="feat: group list ui" /> | ||||
|     <option name="LAST_COMMIT_MESSAGE" value="feat: group list ui" /> | ||||
|     <MESSAGE value="feat: reverse list ui" /> | ||||
|     <option name="LAST_COMMIT_MESSAGE" value="feat: reverse list ui" /> | ||||
|   </component> | ||||
|   <component name="XSLT-Support.FileAssociations.UIState"> | ||||
|     <expand /> | ||||
|   | ||||
							
								
								
									
										18
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -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;"] | ||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ibrahima G. Coulibaly
					Ibrahima G. Coulibaly