- Switch language tool server image and add restart policy
- Update user, network, and API key configurations
- Adjust port for language tool server
- Add note about SSL encryption requirement
- Update license section with link to LICENSE file
- Add a horizontal rule for improved visual separation
- Include project link at the end for easier navigation
- Switch language tool server image and add restart policy
- Update user, network, and API key configurations
- Adjust port for language tool server
- Add note about SSL encryption requirement
- Update license section with link to LICENSE file
- Introduce signal listeners for SIGINT and SIGTERM to handle shutdown
- Use AbortController to terminate the server gracefully
- Improve server reliability and resource cleanup during termination
- Add debug logs for invalid and valid API key masking
- Log unsupported content types in middleware
- Log forwarded request URLs and response statuses from LT server
- Introduces a function to mask API keys for improved security
- Masks null or short keys entirely with asterisks
- Partially masks longer keys, retaining the first five characters
All notable changes to this project will be documented in this file.
## [unreleased]
### 📚 Documentation
- *(readme)* Update service configuration and license link - ([427cee1](https://git.0xmax42.io/maxp/lt-auth-proxy/commit/427cee188404b00ec30c8f52f4a66c4609511a8f))
- *(readme)* Update service configuration and license link - ([92b075d](https://git.0xmax42.io/maxp/lt-auth-proxy/commit/92b075df558d2d52da9496f74f84c149d3b18df5))
- *(readme)* Add project time badge - ([5597c2a](https://git.0xmax42.io/maxp/lt-auth-proxy/commit/5597c2ae3fa3920340499e0b5924b75352591729))
A lightweight, production-ready reverse proxy for [LanguageTool](https://languagetool.org) with API key authentication.
This service acts as a transparent gateway that verifies an `apiKey` before forwarding requests to a running LanguageTool server instance. It is fully self-contained, built in Deno, and distributed as a minimal multi-architecture Docker image.
@@ -60,23 +62,30 @@ src/
```yaml
services:
lt-server:
image:languagetool/languagetool:latest
ports:
- "8010:8010"
image:meyay/languagetool:latest
restart:unless-stopped
user:"783:783"
networks:
- default
proxy:
image:git.0xmax42.io/maxp/lt-auth-proxy:latest
ports:
- "8011:8011"
environment:
- API_KEYS=demo-key
- API_KEYS=demo-key,another-key
- LT_SERVER_HOST=lt-server
- LT_SERVER_PORT=8010
- LT_SERVER_PORT=8081
```
Please note that this setup does not include SSL encryption. A reverse proxy such as Traefik should be used for this.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.