Since Docker base image is now nginx-unpriviledged
, docker image now listen to 8080 and no more 80. So you need to update your port mapping, ie from 8080:80
to 8080:8080
.
Check out these change here: https://sharevb-it-tools.vercel.app/ or https://sharevb.github.io/it-tools/
You can use my image in your docker-compose file if you want an update to date version of it-tools (with my PR and some of others) until the main branch has been updated.
- github action triggers on every push to this branch - view package here
(Thanks to gitmotion for this model of README fork)
Big thanks to all the people who have already contributed!
Almost all tools PR of it-tools.
GitHub Container Registry: ghcr.io/sharevb/it-tools:latest
Docker Hub: sharevb/it-tools:latest
Some tools like PGP encryption rely on WebCrypto API that is only available in HTTPS/SSL.
So even on internal installations, you can enable HTTPS using Let's Encrypt using DNS Challenge
Some docs about DNS Challenge:
- https://medium.com/@life-is-short-so-enjoy-it/homelab-nginx-proxy-manager-setup-ssl-certificate-with-domain-name-in-cloudflare-dns-732af64ddc0b
- https://doc.traefik.io/traefik/user-guides/docker-compose/acme-dns/
- https://medium.com/@svenvanginkel/traefik-letsencrypt-dns01-challenge-with-ovhcloud-52f2a2c6d08a
services:
it-tools:
container_name: it-tools
image: sharevb/it-tools:latest
pull_policy: always
restart: unless-stopped
ports:
- 8080:8080
You can add custom content in Home page by mounting a home.custom.md
in /usr/share/nginx/html
.
You can filter available tools by mounting tools-filter.json
in /usr/share/nginx/html
. It can contains the following filtering regex:
{
"excludeCategoryFilterRegex": "",
"includeCategoryFilterRegex": "",
"excludeToolsFilterRegex": "",
"includeToolsFilterRegex": ""
}
Category matches on category (English) names ; Tools matches on tools path/url.
See (docker-tools-filter-and-home-content)[https://github.com/sharevb/it-tools]
docker build -t it-tools-fr --build-arg VITE_LANGUAGE=fr .
docker run -d --name it-tools-fr --restart unless-stopped -p 8080:8080 it-tools-fr
According to https://github.com/sharevb/it-tools/pull/461#issuecomment-1602506049 and CorentinTh#461:
docker build -t it-tools --build-arg BASE_URL="/my-folder/" .
docker run -d --name it-tools --restart unless-stopped -p 8080:8080 it-tools
Then if you go to http://localhost:8080
you'll get a blank page, but opening the DevTools (& refreshing) you'll notice in the Network tab that the app is trying to fetch assets from /my-folder/...
So you would need to put another server in front of it, like Nginx Proxy Manager, Traefik, caddy etc. Then setup a reverse proxy pass using /my-folder
For /it-tools/
subfolder, you can use baseurl-it-tools
tag.
See sample of docker-compose.yml and nginx.conf, this docker image needs to have another reverse proxy in front of it, like Nginx Proxy Manager, Traefik, caddy etc.
Setup a reverse proxy pass using /it-tools/
. And you should be able to access it-tools in /it-tools/
of your server.
To run the sample:
git clone https://github.com/sharevb/it-tools
cd it-tools/docker-subfolder-sample/
docker compose up
Then navigate to http://localhost:8080/it-tools/
BASE_URL="/it-tools/" pnpm build
- Rename the generated
dist
folder toit-tools
and serve onhttps://your-domain.com/it-tools
- Enable GitHub Pages build and deployment option in your fork, under Settings > Pages and select GitHub Actions as the source
- Add the following GitHub action to your repo: https://github.com/sharevb/it-tools/.github/workflows/sharevb-github-pages-publish.yml
Local installation required installing first: python3 make g++
Docker Image | Local Installation |
---|---|
GitHub Container Registry: ghcr.io/sharevb/it-tools:latest Docker Hub: sharevb/it-tools:latest |
sudo apt-get install python3 make g++ && git clone -b chore/all-my-stuffs https://github.com/sharevb/it-tools.git && cd it-tools/ && pnpm i && pnpm dev |
replace your current image with this image | copy & paste oneliner (from github repo) |
You may need to clear cache and hard reload to get new features loading | Installing packages for the first time may take some time; please wait until it finishes |

Useful tools for developer and people working in IT. Have a look !.
Please check the issues to see if some feature listed to be implemented.
You have an idea of a tool? Submit a feature request!
Self host solutions for your homelab
From docker hub:
docker run -d --name it-tools --restart unless-stopped -p 8080:8080 corentinth/it-tools:latest
From github packages:
docker run -d --name it-tools --restart unless-stopped -p 8080:8080 ghcr.io/corentinth/it-tools:latest
Other solutions:
VSCode with the following extensions:
- Volar (and disable Vetur)
- TypeScript Vue Plugin (Volar).
- ESLint
- i18n Ally
with the following settings:
{
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"i18n-ally.localesPaths": ["locales", "src/tools/*/locales"],
"i18n-ally.keystyle": "nested"
}
TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI with vue-tsc
for type checking. In editors, we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue
types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:
- Disable the built-in TypeScript Extension
- Run
Extensions: Show Built-in Extensions
from VSCode's command palette - Find
TypeScript and JavaScript Language Features
, right click and selectDisable (Workspace)
- Run
- Reload the VSCode window by running
Developer: Reload Window
from the command palette.
pnpm install
pnpm dev
pnpm build
Run Unit Tests with Vitest
pnpm test
Lint with ESLint
pnpm lint
To create a new tool, there is a script that generate the boilerplate of the new tool, simply run:
pnpm run script:create:tool my-tool-name
It will create a directory in src/tools
with the correct files, and a the import in src/tools/index.ts
. You will just need to add the imported tool in the proper category and develop the tool.
Big thanks to all the people who have already contributed!
Coded with ❤️ by Corentin Thomasset.
This project is continuously deployed using vercel.com.
Contributor graph is generated using contrib.rocks.
This project is under the GNU GPLv3.