#
Proxy inverso
Nota
Esta sección no se refiere a proxies inversos de OpenAI/Claude. Esto se refiere exclusivamente a Proxies Inversos HTTP/HTTPS.
¿Es confuso configurar Termux? ¿Estás cansado de actualizar e instalar ST en cada dispositivo que tienes? ¿Quieres organizar tus chats y personajes? Estás de suerte. Esta guía con suerte cubrirá cómo alojar SillyTavern en tu PC donde puedes conectarte desde cualquier lugar y chatear con tus bots en la misma PC que usas para ejecutar modelos de IA!
Advertencia
Esta guía no está destinada a principiantes. Será muy técnica.
#
Advertencia Importante
Para Usuarios de Windows
Esta guía no es para usuarios de Windows. Recomendamos usar una VM de Linux o WSL2 para seguir esta guía.
Para Usuarios de Linux
Debes tener conocimiento previo de
- Comandos de consola de Linux
- DNS Records
- Direcciones IP públicas
- Docker
Tendrás que comprar un dominio para ti y configurar un CNAME para tu página de SillyTavern. Sugerimos agregar o comprar el dominio en Cloudflare ya que esta guía cubrirá cómo hacer esto con Cloudflare.
#
Instalación
#
Linux (SillyTavern Bare-Metal)
Para Linux, haremos proxy inverso de SillyTavern a través de Traefik. Hay otras opciones como NGINX o Caddy, pero para esta guía, usaremos Traefik ya que es lo que usamos nosotros mismos.
Obtén la IP privada de tu computadora usando
ifconfigo desde tu router.Consejo
Se recomienda configurar tu IP privada como IP estática. Consulta el manual de tu router o Google para configurar IPs estáticas.
Obtén tu IP pública de tu módem buscando en Google
what's my ip.Acerca de las IPs Públicas
La mayoría de las redes residenciales/domésticas usan IPs Dinámicas que se renuevan después de meses de uso. Si tienes una IP dinámica, usa DDClient o recuerda verificar y cambiar tu IP pública de vez en cuando en el Panel de Cloudflare.
Instala Docker siguiendo la guía de instalación de Docker aquí.
Nota
No instales Docker Desktop.
- Sigue los pasos en Manage Docker as a non-root user en la guía de post-instalación de Docker aquí.
Ve a tu carpeta raíz en Linux y crea una nueva carpeta llamada
docker.cd / sudo mkdir docker && cd dockerEjecuta
chown, reemplazandocon tu nombre de usuario de Linux para establecer los permisos en la carpeta docker. sudo chown -R <USER>:<USER> .Crea una carpeta dentro de la carpeta docker, llamada
secretsy dentro de secrets una llamadacloudflare.mkdir secrets && mkdir secrets/cloudflareCrea una carpeta dentro de la carpeta docker, llamada
appdatay dentro de appdata una llamadatraefik. Entra en la carpetaappdata/traefikdespués.mkdir appdata && mkdir appdata/traefik cd appdata/traefikCrea un archivo acme.json usando
touchy establece sus permisos a 600.touch acme.json chmod 600 acme.jsonUsando
nanoo un editor similar, crea un archivo llamado traefik.yml y pega lo siguiente. Reemplaza el correo electrónico de plantilla con el tuyo, luego guarda el archivo.api: dashboard: true debug: true insecure: true entryPoints: http: address: ":80" http: redirections: entryPoint: to: https scheme: https https: address: ":443" serversTransport: insecureSkipVerify: true providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false file: filename: /config.yml watch: true certificatesResolvers: cloudflare: acme: email: YOUR_CLOUDFLARE_EMAL@DOMAIN.com storage: acme.json dnsChallenge: provider: cloudflare #disablePropagationCheck: true # uncomment this if you have issues pulling certificates through cloudflare, By setting this flag to true disables the need to wait for the propagation of the TXT record to all authoritative name servers. resolvers: - "1.1.1.1:53" - "1.0.0.1:53"Regresa a la carpeta
docker.cd /dockerUsando
nanoo un editor similar, crea un archivo llamado docker-compose.yaml y pega lo siguiente. Guarda el archivo después.secrets: CF_DNS_API_KEY: file: ./secrets/cloudflare/CF_DNS_API_KEY services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped secrets: - CF_DNS_API_KEY ports: - 80:80 - 443:443 - 8080:8080 environment: CLOUDFLARE_DNS_API_TOKEN_FILE: /run/secrets/CF_DNS_API_KEY CLOUDFLARE_ZONE_API_TOKEN_FILE: /run/secrets/CF_DNS_API_KEY volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./appdata/traefik/traefik.yml:/traefik.yml:ro - ./appdata/traefik/config.yml:/config.yml:ro - ./appdata/traefik/acme.json:/acme.json - /etc/localtime:/etc/localtime:ro networks: internal: driver: bridge- Inicia sesión en Cloudflare y haz clic en tu Dominio, seguido de Get your API token.
Haz clic en Create Token luego en Create Custom Token y asegúrate de darle a tu token los siguientes permisos.
Permisos del Token
Zone -> DNS -> Edit
Zone -> Zone -> Read
Haz clic en Continue to summary seguido de Create Token.
- Copia la clave del Token que se te proporcionó y guárdala en un lugar seguro.
- Usa
cdpara ir asecrets/cloudflarey usandonanoo un editor similar, crea un archivo llamado CF_DNS_API_KEY y pega tu clave dentro. Regresa a la página de tu dominio y ve a DNS. Crea un nuevo registro usando Add record y crea dos claves tipo A como las de abajo. Reemplaza
PUBLIC_IPcon tu propia IP pública, luego haz clic en Save.Crea otro registro del tipo
CNAME, luego haz clic en Save. Aquí hay un ejemplo de cómo debería aparecer en el panel de Cloudflare.Usa
cdpara ir a appdata/traefik y usandonanoo un editor similar, crea un archivo llamado config.yml y pega lo siguiente. ReemplazaPRIVATE_IPcon la IP privada que obtuviste, ysilly.DOMAIN.comcon el nombre de tu subdominio y página de dominio, luego guarda el archivo.http: routers: sillytavern: entryPoints: - "https" rule: "Host(`silly.DOMAIN.com`)" middlewares: - https-redirectscheme tls: {} service: sillytavern services: sillytavern: loadBalancer: servers: - url: "http://PRIVATE_IP:8000" passHostHeader: true middlewares: https-redirectscheme: redirectScheme: scheme: https permanent: trueEjecuta Docker Compose usando los siguientes comandos:
cd /docker docker compose up -dVe a tu carpeta de SillyTavern y edita
config.yamlpara habilitar el modo escucha y autenticación básica, mientras deshabilitaswhitelistMode.listen: yes whitelistMode: false basicAuthMode: trueConsejo
Asegúrate de cambiar el nombre de usuario y contraseña predeterminados a algo fuerte que puedas recordar.
O para usar las cuentas de SillyTavern como nombres de usuario y contraseñas:
basicAuthMode: true enableUserAccounts: true perUserBasicAuth: trueConsejo
Antes de habilitar perUserBasicAuth asegúrate de tener una configuración válida de múltiples usuarios con contraseñas funcionando.
Espera unos minutos, luego abre la página de dominio que creaste para ST. Al final, deberías poder abrir SillyTavern desde donde sea que vayas solo con una URL y una cuenta.
Consejo
Si no sucede nada después de varios minutos, revisa los registros del contenedor de Traefik para detectar posibles errores.
- ¡Disfruta! :D
#
Linux (Docker SillyTavern)
Nota
Ten en cuenta que ejecutamos SillyTavern en bare-metal sobre Docker. Esta es una idea aproximada de lo que haríamos en Docker con otros contenedores Docker que tendemos a usar con ST.
- Sigue los Pasos 1-11 de Linux (SillyTavern Bare-Metal).
- Inicia sesión en Cloudflare y haz clic en tu Dominio, seguido de Get your API token.
Haz clic en Create Token luego en Create Custom Token y asegúrate de darle a tu token los siguientes permisos.
Permisos del Token
Zone -> DNS -> Edit
Zone -> Zone -> Read
Haz clic en Continue to summary seguido de Create Token.
- Copia la clave del Token que se te proporcionó y guárdala en un lugar seguro.
- Usa
cdpara ir asecrets/cloudflarey usandonanoo un editor similar, crea un archivo llamado CF_DNS_API_KEY y pega tu clave dentro. Regresa a la página de tu dominio y ve a DNS. Crea un nuevo registro usando Add record y crea dos claves tipo A como las de abajo. Reemplaza
PUBLIC_IPcon tu propia IP pública y el dominio de ejemplo con tu dominio, luego haz clic en Save.Crea otro registro del tipo
CNAME, luego haz clic en Save. Aquí hay un ejemplo de cómo debería aparecer en el panel de Cloudflare.Clona con Git SillyTavern en la carpeta
docker.cd /docker && git clone https://github.com/SillyTavern/SillyTavernUsando
nanoo un editor similar, crea un archivo llamado docker-compose.yaml y pega lo siguiente. Reemplazasilly.DOMAIN.comcon el subdominio que agregaste arriba, luego guarda el archivo después.secrets: CF_DNS_API_KEY: file: ./secrets/cloudflare/CF_DNS_API_KEY services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped secrets: - CF_DNS_API_KEY ports: - "80:80" - 443:443 - 8080:8080 environment: CLOUDFLARE_DNS_API_TOKEN_FILE: /run/secrets/CF_DNS_API_KEY CLOUDFLARE_ZONE_API_TOKEN_FILE: /run/secrets/CF_DNS_API_KEY volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./appdata/traefik/traefik.yml:/traefik.yml:ro - ./appdata/traefik/config.yml:/config.yml:ro - ./appdata/traefik/acme.json:/acme.json - /etc/localtime:/etc/localtime:ro sillytavern: build: ./SillyTavern container_name: sillytavern hostname: sillytavern image: ghcr.io/sillytavern/sillytavern:latest volumes: - "./appdata/sillytavern/config:/home/node/app/config" - "./appdata/sillytavern/data:/home/node/app/data" restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.sillytavern.entrypoints=http" - "traefik.http.routers.sillytavern.rule=Host(`silly.DOMAIN.com`)" - "traefik.http.middlewares.sillytavern-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.sillytavern.middlewares=sillytavern-https-redirect" - "traefik.http.routers.sillytavern-secure.entrypoints=https" - "traefik.http.routers.sillytavern-secure.rule=Host(`silly.DOMAIN.com`)" - "traefik.http.routers.sillytavern-secure.tls=true" - "traefik.http.routers.sillytavern-secure.service=sillytavern" - "traefik.http.services.sillytavern.loadbalancer.server.port=8000" networks: internal: driver: bridgeEjecuta Docker Compose usando los siguientes comandos:
docker compose up -dDetén el contenedor Docker de SillyTavern.
docker compose stop sillytavernVe a tu carpeta de SillyTavern (
appdata/sillytavern/config) y editaconfig.yamlpara habilitar el modo escucha y autenticación básica, mientras deshabilitaswhitelistMode.listen: yes whitelistMode: false basicAuthMode: trueConsejo
Asegúrate de cambiar el nombre de usuario y contraseña predeterminados a algo fuerte que puedas recordar.
Inicia el contenedor Docker de SillyTavern nuevamente.
docker compose up -d sillytavernEspera unos minutos, luego abre la página de dominio que creaste para ST. Al final, deberías poder abrir SillyTavern desde donde sea que vayas solo con una URL y una cuenta.
Consejo
Si no sucede nada después de varios minutos, revisa los registros del contenedor de Traefik para detectar posibles errores.
- ¡Disfruta! :D
#
Actualizando tu DNS de Cloudflare
DDClient te permite sincronizar tu IP pública con Cloudflare en la situación de que tu ISP la cambie, permitiéndote continuar accediendo a tu instancia de ST como si nada hubiera pasado.