YuukanOO / seelf

Lightweight self-hosted deployment platform written in Go
https://yuukanoo.github.io/seelf/
GNU General Public License v3.0
214 stars 7 forks source link

Handle TCP and UDP entrypoints #65

Closed YuukanOO closed 6 months ago

YuukanOO commented 6 months ago

This PR add initial support to expose raw TCP and UDP services along with HTTP services.

Given the following compose file:

services:
  app:
    image: an/image
    ports:
      - "80:80" # No protocol defined, assumes it's an HTTP service
      - "81:81" # Additional HTTP services are now supported but will be exposed on non secure allocated ports
      - "82:82/tcp" # Specifying the protocol will force seelf to expose it on a custom port over TCP
      - "83:83/udp" # Same as for TCP

When custom ports should be allocated to make your services accessibles, the target on which they have been deployed will try to find available ports, configure needed entrypoints and restart the proxy to apply those changes. If ports did not change between deployments, this step will be skipped.

For now, those custom ports are handled by the same proxy container meaning a small unavailability will be observed when restarting the proxy. In the future, an option will be made available on a target to allow those ports to be handled by a sidecar traefik, see #62.