This directory contains the configuration files and Docker services needed to run Keep with a proxy setup, primarily used for testing and development scenarios requiring proxy configurations (e.g., corporate environments, Azure AD authentication).
proxy/
├── docker-compose-proxy.yml # Docker Compose configuration for proxy setup
├── squid.conf # Squid proxy configuration
├── nginx.conf # Nginx reverse proxy configuration
└── README.md # This file
The setup consists of several services:
- Squid Proxy: Acts as a forward proxy for HTTP/HTTPS traffic
- Nginx: Serves as a reverse proxy/tunnel
- Keep Frontend: The Keep UI service configured to use the proxy
- Keep Backend: The Keep API service
- Keep WebSocket: The WebSocket server for real-time updates
The setup uses two Docker networks:
proxy-net
: External network for proxy communicationinternal
: Internal network with no external access (secure network for inter-service communication)
The Keep Frontend service is preconfigured with proxy-related environment variables:
http_proxy=http://proxy:3128
https_proxy=http://proxy:3128
HTTP_PROXY=http://proxy:3128
HTTPS_PROXY=http://proxy:3128
npm_config_proxy=http://proxy:3128
npm_config_https_proxy=http://proxy:3128
- Start the proxy environment:
docker compose -f docker-compose-proxy.yml up
- To run in detached mode:
docker compose -f docker-compose-proxy.yml up -d
- To stop all services:
docker compose -f docker-compose-proxy.yml down
- Keep Frontend: http://localhost:3000
- Keep Backend: http://localhost:8080
- Squid Proxy: localhost:3128
To modify the Squid proxy configuration:
- Edit
squid.conf
- Restart the proxy service:
docker compose -f docker-compose-proxy.yml restart proxy
To modify the Nginx reverse proxy configuration:
- Edit
nginx.conf
- Restart the nginx service:
docker compose -f docker-compose-proxy.yml restart tunnel
If you encounter connection issues:
- Verify proxy is running:
docker compose -f docker-compose-proxy.yml ps
- Check proxy logs:
docker compose -f docker-compose-proxy.yml logs proxy
- Test proxy connection:
curl -x http://localhost:3128 https://www.google.com
- The proxy setup is primarily intended for development and testing
- When using Azure AD authentication, ensure the proxy configuration matches your environment's requirements
- SSL certificate validation is disabled by default for development purposes (
npm_config_strict_ssl=false
)
- This setup is intended for development environments only
- The internal network is isolated from external access for security
- Modify security settings in
squid.conf
andnginx.conf
according to your requirements
When modifying the proxy setup:
- Document any changes to configuration files
- Test the setup with both proxy and non-proxy environments
- Update this README if adding new features or configurations