All notable changes to this project will be documented in this file.
- Refactor backend Dockerfiles to improve container size #404
- Refreshed the UI and removes unused Google Analytics var #414
- Add frontend Jest testing by @dsgnr #406
- Various package updates
- Various package updates.
- Upgrade Node to v25 #401.
- Various README improvements #402.
- GitHub Actions workflow fixes #401.
- Fix issue where localhost would resolve to ipv6 for healthcheck #362.
- Improve test coverage #354.
- Various package updates.
- Allow default host to be defined instead of using WAN address #338.
- Various package updates.
- Allows hyphenated subdomains in the UI.
- Add some more YouTube mentions in the README.
- Various package updates
- Adds
/metricsendpoint for Prometheus monitoring. - Adds example Grafana dashboard.
- Update image path for Ko-Fi
- Allow API service hostname to be defined
- Correct documentation for API_URL environment variable
- Updates API packages.
- Updates web packages.
- Updates
query_ipv4method name toquery_addressto be more representative of what it actually does. - Corrections to some docstrings and typehints.
- Refactored the UI to leverage JavaScript Proxy for more efficient state management, reducing direct DOM manipulation.
- Implemented a GitHub Actions workflow to automatically run ESLint and Prettier on UI files (CSS, HTML, and JS) for consistent code quality and formatting.
- Formatted and linted the UI files (CSS, HTML, and JS) using ESLint and Prettier to ensure adherence to coding standards.
- Resolved issue where the
ALLOW_PRIVATEenvironment variable was not being evaluated correctly. - Updates API packages.
- Adds pre-commit hooks.
- Fixes some warnings in Docker builds.
- Various other fixes and improvements.
- Fixes a regression caused by #258 where the web container would fail to start if the index was overwritten by a custom volume mount.
- Fixes incorrect environment variable defaults in README
- Adds threading to
query_ipv4method. Uses default worker value (CPU count). This will improve performance where there are more than one port that does not response, thus reaching the timeout limit. - Resolved an issue where the DEFAULT_PORT environment variable was not correctly updating the value of the UI input field in the application. The input field now reflects the specified default port value.
- Updates the UI to no longer use the deprecated query endpoint.
- Removes unused ADSENSE_VERIFICATION environment variable.
- Bump gunicorn from 22.0.0 to 23.0.0
- Adds more dependabot update rules
- Improve documentation
- Various exception handling improvements
- Add Pytests to API
- Enforce Pylint and Isort
- Add GitHub Actions workflow for Isort, Pylint and Pytest
- Deduplicate of application info
- Add favicon to web
- Rewrites the API to migrate from FastAPI to Litestar.
- This also migrates the documentation from Swagger to Scalar.
- A new
GETendpoint/<me:host>/<port>which returns a boolean value of whether the port is open. - A new
GETendpoint/<mewhich returns the requester address. - Optimises Dockerfiles to make them smaller.
- Improves development experience with docker-compose.
- General improvement to API documentation. Also includes some finer details about logging in regards to user privacy.
- Changes to the GitHub workflows to include image builds for both web and api images which
docker-compose.ymlnow uses. - Removes broken cosigner from GitHub workflow image building.
- Bumps node from version 20 to version 23.
- Bumps npm from version 6 to version 10.
- Bumps devDependencies to current latest.
Rewrites the front-end to a single page HTML instead of React. This is an incredibly small and simple application, so maintaining the various dependencies that come with a React site is a bit overkill.
The backend API is also refactored to move away from using AWS Lambda functions. The usage and popularity of this site is absolutely fantastic, but also quite unexpected. There have been numerous overage fees within the AWS free-tier limits, which is not sustainable without donations from users.
I see discussions related to portchecker.io, and some users have asked about self hosting. The changes made here also means that this project is more portable/not vendor locked in and only requires Docker to run.
As always, feedback and recommendations are more than welcomed!
Please consider the rewritten front-end and API as a beta release.
- Improve various UI elements for better experience
- Update production docker-compose file to use GitHub container registry instead of Docker Hub
- Add GitHub action to build images when new releases are tagged
- Add GitHub action to perform CodeQL Analysis and add badge to README
- Bump @emotion/babel-plugin from 11.3.0 to 11.7.1
- Bump @svgr/webpack from 6.1.1 to 6.1.2
- Bump postcss from 8.4.4 to 8.4.5
- Bump @emotion/react from 11.7.0 to 11.7.1
- Bump react-router-dom from 6.0.2 to 6.1.1
- Resolve console warning about undefined DEFAULT_PORT var in production
- Add dependabot monitoring to repository
- Allow default port to be defined as an environment variable
- Make Dockerfile serve from Nginx instead of webpack serve to improve performance
- Separate development and production environments and add docker-compose files
- Migrate from NPM to Yarn to resolve dependencies
- Upgrade react-router-dom to v6
- Update package.json dependencies
- Improve webui styling for when the users browser does not have JavaScript enabled
- Move users IP detector (for form auto population) to Cloudflare DNS to avoid some spam filters
- Improve styling for pending/in-progress tasks
- Update UI to use improved Lambda API task
- Improve results styling
- Migrate WebUI to AWS Beanstalk
- Add Kubernetes probes for RabbitMQ
- Rename Redis manifest file and add Kubernetes probes
- Ensure the form captures errors better
- Make the form submit on return key press
- Increase the check time on front-end and API Kubernetes deployments
- Add liveness and startup probe to api and front-end Kubernetes manifest
- Update webpack to version 5.55.0
- Add healthz for API
- Stop scaling on mobile
- Update page title
- Remove websocket for production
- Correct homepage and demo URLs in README
- Add better form validation
- Improve CSS styling for mobile
- Initial release