Using Traefik with RumiTalk on Docker
Traefik is a modern HTTP reverse proxy and load balancer that makes it easy to deploy and manage your services. If you’re running RumiTalk on Docker, you can use Traefik to expose your instance securely over HTTPS with automatic SSL certificate management.
Prerequisites
- Docker and Docker Compose installed on your system
- A domain name pointing to your server’s IP address
Configuration
Configure Traefik and RumiTalk
In your docker-compose.override.yml file, add the following configuration:
version: '3'
services:
api:
labels:
- "traefik.enable=true"
- "traefik.http.routers.librechat.rule=Host(`your.domain.name`)"
- "traefik.http.routers.librechat.entrypoints=websecure"
- "traefik.http.routers.librechat.tls.certresolver=leresolver"
- "traefik.http.services.librechat.loadbalancer.server.port=3080"
networks:
- librechat_default
volumes:
- ./rumitalk.yaml:/app/rumitalk.yaml
traefik:
image: traefik:v3.0
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
networks:
- librechat_default
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.leresolver.acme.tlschallenge=true"
- "[email protected]"
- "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"
# other configs here #
# NOTE: This needs to be at the bottom of your docker-compose.override.yml
networks:
librechat_default:
external: true
Replace
[email protected]
with your email address for Let’s Encrypt certificate
notifications.
see: Docker Override for more info.
Start the containers
docker-compose up -d
This will start Traefik and RumiTalk containers. Traefik will automatically obtain an SSL/TLS certificate from Let’s Encrypt and expose your RumiTalk instance securely over HTTPS.
You can now access your RumiTalk instance at
https://your.domain.name
. Traefik will handle SSL/TLS termination and reverse proxy
requests to your RumiTalk container.
Additional Notes
- The Traefik configuration listens on ports 80 and 443 for HTTP and HTTPS traffic, respectively. Ensure that these ports are open on your server’s firewall.
-
Traefik stores SSL/TLS certificates in the
./letsencrypt
directory on your host machine. You may want to back up this directory periodically. - For more advanced configuration options, refer to the official Traefik documentation: https://doc.traefik.io/
Static File Caching and Compression
RumiTalk now supports static file caching and compression
natively. If you’re using Traefik to handle compression, you
should disable compression in RumiTalk to avoid redundant
processing. You can do this by setting the
DISABLE_COMPRESSION
environment variable to
true
in your
RumiTalk configuration.
# .env file
DISABLE_COMPRESSION=true
This will prevent RumiTalk from compressing static files, allowing Traefik to handle compression more efficiently.
For more information on static file handling in RumiTalk, including caching options, refer to the Static File Handling documentation.