Networking Requirements
Network requirements and firewall rules for pyck.cloud SaaS service
Audience: System Administrator
Overview
This document outlines the network requirements and firewall configurations needed to integrate with pyck's SaaS service at pyck.cloud. pyck uses multiple protocols over standard HTTPS ports and requires support for long-lived connections.
Protocols and Ports
pyck consolidates all communication through standard web ports:
Port 80 (HTTP): Used exclusively for redirecting browsers to HTTPS
Port 443 (HTTPS): All application traffic runs on this port using multiple protocols:
HTTPS (standard HTTP/2 and HTTP/1.1)
gRPC (over HTTP/2)
WebSockets (for real-time bidirectional communication)
Long-Lived Connections
Important: Your network infrastructure must support long-lived connections:
WebSocket connections may remain open for extended periods
gRPC streaming connections can be persistent
Proxy servers and firewalls must be configured to:
Not terminate idle connections prematurely
Support WebSocket protocol upgrades
Handle HTTP/2 traffic properly for gRPC
Maintain connection state for streaming protocols
pyck.cloud SaaS Service
When using pyck's SaaS offering, additional network considerations apply due to the dynamic, auto-scaling infrastructure. Traffic flows in two directions, and each direction is whitelisted differently:
Client → server (your network to pyck): whitelist by domain (
*.pyck.cloud), because backend IPs change constantly.Server → client (pyck into your network): whitelist by IP, using the fixed set published at
ips.pyck.cloud.
Outbound Traffic to pyck (Client → Server)
For all traffic originating from your network to pyck:
Whitelist all outgoing traffic to
*.pyck.cloud: Every pyck endpoint lives underpyck.cloudor a subdomain. Because the SaaS platform is auto-scaling and its backend IPs change frequently, you must allow egress by domain (*.pyck.cloud) rather than by fixed IP.Port 443 (HTTPS): Required for all API and application access.
Port 80 (HTTP): Optional, only used for browser redirects to HTTPS.
Some endpoints are client → server only — your systems connect out to them, but they never call back into your network. For example, debug.pyck.cloud is used purely for outbound diagnostic sessions. These endpoints:
Are already covered by whitelisting egress to
*.pyck.cloud.Are not published in the
ips.pyck.cloudA record, because pyck never initiates connections into your network from them.
Inbound Traffic from pyck (Server → Client)
When pyck needs to reach systems in your network (callbacks, webhooks, and other server-initiated traffic):
Source IPs: All such traffic originates from the fixed set of IPs published at
ips.pyck.cloud. This set includes pyck's egress proxy, through which pyck routes its outbound calls to customer networks.Protocols: HTTPS, gRPC, WebSockets (all over port 443).
Firewall Rules: Whitelist all IPs from
ips.pyck.cloud(including the proxy) for inbound connections on port 443.
IP Address Discovery:
Domain:
ips.pyck.cloudPublished as both A records (individual IPs) and TXT records (comma-separated list)
Query both record types to get the complete list of IPs
Example DNS queries:
Only endpoints that can initiate connections into your network appear in ips.pyck.cloud. Client → server-only endpoints such as debug.pyck.cloud are intentionally excluded.
Dynamic Infrastructure and Auto-Scaling
pyck SaaS runs on Kubernetes with auto-scaling enabled:
Host Changes: Backend hosts may change frequently
Typical Frequency: Hosts can change every few minutes during normal operation
High Load: Under high load conditions, changes can occur as frequently as every 5 minutes
DNS TTL: Always respect the TTL values returned by pyck DNS servers
Recommendation: Do not cache DNS responses longer than the specified TTL
Troubleshooting
Connection Timeouts
If experiencing connection timeouts:
Verify load balancer timeout settings (should be 10+ minutes)
Check that WebSocket upgrades are not being blocked
Ensure HTTP/2 is enabled for gRPC traffic
IP Address Changes
If callbacks from pyck.cloud are being blocked:
Re-query
ips.pyck.cloudto get the latest IP listVerify your DNS cache respects TTL values
Check firewall logs for blocked connection attempts
Update whitelist rules with the current IP addresses
Protocol Issues
If specific features are not working:
Verify HTTP/2 support is enabled (required for gRPC)
Check that WebSocket protocol upgrades are allowed
Ensure TLS 1.2 or higher is supported
Confirm no middleboxes are blocking or modifying traffic
Last updated
Was this helpful?
