9 Commits

7 changed files with 29 additions and 43 deletions
+13 -11
View File
@@ -20,17 +20,19 @@ This simple project uses Traefik as a reverse proxy to a Streamlit application a
- Build for ARM64 platform - Build for ARM64 platform
## Production Deployment ## Production Deployment
1. `git clone 1. `git clone https://github.com/furyhawk/cloudy.git`
1. `git submodule update --init --recursive` 2. `cd cloudy`
1. In `compose/traefik/traefik.yml`, change `example@test.com` to your email. 3. `git submodule update --init --recursive`
2. In `compose/traefik/traefik.yml`, change `example.com` to your domain. 4. In `compose/traefik/traefik.yml`, change `example@test.com` to your email.
3. `sudo apt-get install build-essential` (if not already installed) to use makefile. 5. In `compose/traefik/traefik.yml`, change `example.com` to your domain.
4. `mdkir ~/st-sync` syncthing folder. 6. `sudo apt-get install build-essential` (if not already installed) to use makefile.
5. `cd ~/site` public site folder. 7. `mkdir ~/st-sync` syncthing folder.
5. `mkdir ./compose/config` to store config. 8. `mkdir ~/site` public site folder.
8. `cp .env.example ./compose/.env` 9. `mkdir ./compose/config` to store config.
9. `cp usersfile.example ./compose/usersfile` 10. `cp .env.example ./compose/.env && cp .env ~/config/.env`
10. `make serve` 11. `cp ./compose/config/conf.php ~/config/conf.php`
12. `cp usersfile.example ./compose/usersfile`
13. `make serve`
### Notes: ### Notes:
```yaml ```yaml
BIN
View File
Binary file not shown.
-2
View File
@@ -9,7 +9,6 @@ volumes:
services: services:
emqx1: emqx1:
image: emqx:latest image: emqx:latest
container_name: emqx1
# environment: # environment:
# - "EMQX_NODE_NAME=emqx@node1.emqx.io" # - "EMQX_NODE_NAME=emqx@node1.emqx.io"
# - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" # - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
@@ -62,7 +61,6 @@ services:
mqttx-web: mqttx-web:
image: emqx/mqttx-web:latest image: emqx/mqttx-web:latest
container_name: mqttx_web
restart: unless-stopped restart: unless-stopped
networks: networks:
- net - net
+12 -8
View File
@@ -9,8 +9,7 @@ volumes:
meili_data: meili_data:
services: services:
api: librechat_api:
container_name: LibreChat
ports: ports:
- "${PORT}:${PORT}" - "${PORT}:${PORT}"
depends_on: depends_on:
@@ -27,17 +26,25 @@ services:
- MEILI_HOST=http://meilisearch:7700 - MEILI_HOST=http://meilisearch:7700
- RAG_PORT=${RAG_PORT:-8000} - RAG_PORT=${RAG_PORT:-8000}
- RAG_API_URL=http://rag_api:${RAG_PORT:-8000} - RAG_API_URL=http://rag_api:${RAG_PORT:-8000}
- DOMAINNAME=${DOMAINNAME}
volumes: volumes:
- type: bind - type: bind
source: ./.env source: ~/config/.env
target: /app/.env target: /app/.env
- libre-images:/app/client/public/images - libre-images:/app/client/public/images
- libre-logs:/app/api/logs - libre-logs:/app/api/logs
- type: bind - type: bind
source: ./config/librechat.yaml source: ./config/librechat.yaml
target: /app/librechat.yaml target: /app/librechat.yaml
labels:
- "traefik.enable=true"
- "traefik.http.routers.librechat.entrypoints=web-secure"
- "traefik.http.routers.librechat.rule=Host(`chat.${DOMAINNAME}`) || Host(`bot.${DOMAINNAME}`)"
- "traefik.http.routers.librechat.middlewares=csrf@file"
- "traefik.http.routers.librechat.tls.certresolver=letsencrypt"
- "traefik.http.routers.librechat.service=librechat_app"
- "traefik.http.services.librechat_app.loadbalancer.server.port=${PORT}"
mongodb: mongodb:
container_name: chat-mongodb
image: mongo image: mongo
restart: always restart: always
user: "${UID}:${GID}" user: "${UID}:${GID}"
@@ -45,7 +52,6 @@ services:
- data-node:/data/db - data-node:/data/db
command: mongod --noauth command: mongod --noauth
meilisearch: meilisearch:
container_name: chat-meilisearch
image: getmeili/meilisearch:v1.7.3 image: getmeili/meilisearch:v1.7.3
restart: always restart: always
user: "${UID}:${GID}" user: "${UID}:${GID}"
@@ -55,7 +61,6 @@ services:
volumes: volumes:
- meili_data:/meili_data - meili_data:/meili_data
vectordb: vectordb:
container_name: vectordb
image: ankane/pgvector:latest image: ankane/pgvector:latest
environment: environment:
POSTGRES_DB: mydatabase POSTGRES_DB: mydatabase
@@ -65,7 +70,6 @@ services:
volumes: volumes:
- pgdata2:/var/lib/postgresql/data - pgdata2:/var/lib/postgresql/data
rag_api: rag_api:
container_name: rag_api
image: ghcr.io/danny-avila/librechat-rag-api-dev:latest image: ghcr.io/danny-avila/librechat-rag-api-dev:latest
environment: environment:
POSTGRES_DB: mydatabase POSTGRES_DB: mydatabase
@@ -77,5 +81,5 @@ services:
depends_on: depends_on:
- vectordb - vectordb
env_file: env_file:
- .env - ~/config/.env
+3 -3
View File
@@ -60,15 +60,15 @@ services:
- net - net
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
# - "traefik.tcp.middlewares.test-inflightconn.inflightconn.amount=10"
- "traefik.tcp.routers.postgres.entrypoints=postgres-socket" - "traefik.tcp.routers.postgres.entrypoints=postgres-socket"
- "traefik.tcp.routers.postgres.rule=HostSNI(`*`)" - "traefik.tcp.routers.postgres.rule=HostSNI(`*`)"
- "traefik.tcp.routers.postgres.service=postgres_service"
- "traefik.tcp.services.postgres_service.loadbalancer.server.port=5432"
# - "traefik.tcp.middlewares.test-inflightconn.inflightconn.amount=10"
# - "traefik.tcp.routers.postgres.rule=HostSNIRegexp(`^.+\\.furyhawk\\.lol$`)" # - "traefik.tcp.routers.postgres.rule=HostSNIRegexp(`^.+\\.furyhawk\\.lol$`)"
# - "traefik.tcp.routers.postgres.tls=true" # - "traefik.tcp.routers.postgres.tls=true"
# - "traefik.tcp.routers.postgres.tls.certresolver=letsencrypt" # - "traefik.tcp.routers.postgres.tls.certresolver=letsencrypt"
# - "traefik.tcp.routers.postgres.middlewares=test-inflightconn" # - "traefik.tcp.routers.postgres.middlewares=test-inflightconn"
- "traefik.tcp.routers.postgres.service=postgres_service"
- "traefik.tcp.services.postgres_service.loadbalancer.server.port=5432"
# - "traefik.http.routers.postgres.entrypoints=web-secure" # - "traefik.http.routers.postgres.entrypoints=web-secure"
# - "traefik.http.routers.postgres.rule=Host(`db.${DOMAINNAME}`)" # - "traefik.http.routers.postgres.rule=Host(`db.${DOMAINNAME}`)"
# - "traefik.http.routers.postgres.middlewares=rate-limit@file, csrf@file" # - "traefik.http.routers.postgres.middlewares=rate-limit@file, csrf@file"
-18
View File
@@ -95,16 +95,6 @@ http:
routers: routers:
chat-router:
entryPoints:
- web-secure
rule: "Host(`bot.furyhawk.lol`) || Host(`chat.furyhawk.lol`)"
middlewares:
- csrf
tls:
certResolver: letsencrypt
service: librechat_app
# forum-router: # forum-router:
# entryPoints: # entryPoints:
# - web-secure # - web-secure
@@ -258,10 +248,6 @@ http:
# loadBalancer: # loadBalancer:
# servers: # servers:
# - url: http://kestra:8080 # - url: http://kestra:8080
librechat_app:
loadBalancer:
servers:
- url: http://LibreChat:3080
# neo4j-bolt: # neo4j-bolt:
# loadBalancer: # loadBalancer:
# servers: # servers:
@@ -284,10 +270,6 @@ http:
servers: servers:
- url: http://emqx1:8084 - url: http://emqx1:8084
# - url: http://emqx2:8084 # - url: http://emqx2:8084
# emqx-dashboard:
# loadBalancer:
# servers:
# - url: http://emqx1:18083
providers: providers:
# https://docs.traefik.io/master/providers/file/ # https://docs.traefik.io/master/providers/file/