mirror of
https://github.com/furyhawk/cloudy.git
synced 2026-05-20 15:11:10 +00:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0bb60245dc | |||
| b70e7111ae | |||
| 788ec952fd | |||
| 038bf3e8d9 | |||
| 1cc77c6609 | |||
| dfd071150f | |||
| b55afab109 | |||
| cbbbe695ec | |||
| 6f3d3bbe49 | |||
| 3baf43ad74 | |||
| e2784f41fe | |||
| 1ac98da285 | |||
| 03463c6b88 | |||
| a1112357b8 | |||
| 10676c0754 | |||
| 1e581d71fb | |||
| a345319737 |
@@ -1,6 +0,0 @@
|
|||||||
[submodule "LibreChat"]
|
|
||||||
path = LibreChat
|
|
||||||
url = https://github.com/furyhawk/LibreChat.git
|
|
||||||
[submodule "emqx-docker"]
|
|
||||||
path = emqx-docker
|
|
||||||
url = https://github.com/furyhawk/emqx-docker.git
|
|
||||||
|
|||||||
-1
Submodule LibreChat deleted from 026961f719
+2
-2
@@ -14,5 +14,5 @@ include:
|
|||||||
- compose/base.yml
|
- compose/base.yml
|
||||||
- compose/services.yml
|
- compose/services.yml
|
||||||
- compose/apps.yml
|
- compose/apps.yml
|
||||||
- emqx-docker/docker-compose.yml
|
- compose/deploy-emqx.yml
|
||||||
- LibreChat/docker-compose.yml
|
- compose/deploy-librechat.yml
|
||||||
|
|||||||
+28
-6
@@ -12,6 +12,7 @@ volumes:
|
|||||||
jellyfin_config: {}
|
jellyfin_config: {}
|
||||||
jellyfin_cache: {}
|
jellyfin_cache: {}
|
||||||
pgadmin: {}
|
pgadmin: {}
|
||||||
|
pgadmin_data: {}
|
||||||
privatebin_data: {}
|
privatebin_data: {}
|
||||||
thelounge_data: {}
|
thelounge_data: {}
|
||||||
|
|
||||||
@@ -22,20 +23,17 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
|
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
|
||||||
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
|
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
|
||||||
PGID: 1000
|
|
||||||
PUID: 1000
|
|
||||||
PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||||
PYTHONPATH: "/pgadmin4"
|
PYTHONPATH: "/pgadmin4"
|
||||||
TZ: Asia/Singapore
|
TZ: Asia/Singapore
|
||||||
DOMAINNAME: ${DOMAINNAME}
|
DOMAINNAME: ${DOMAINNAME}
|
||||||
user: "1000:1000"
|
|
||||||
volumes:
|
volumes:
|
||||||
- pgadmin:/var/lib/pgadmin
|
- pgadmin:/var/lib/pgadmin
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
expose:
|
expose:
|
||||||
- 80
|
- 8080
|
||||||
networks:
|
networks:
|
||||||
- net
|
- net
|
||||||
labels:
|
labels:
|
||||||
@@ -65,7 +63,6 @@ services:
|
|||||||
|
|
||||||
ghost-db:
|
ghost-db:
|
||||||
image: mysql:8
|
image: mysql:8
|
||||||
container_name: ghost-db
|
|
||||||
security_opt:
|
security_opt:
|
||||||
- seccomp:unconfined
|
- seccomp:unconfined
|
||||||
restart: always
|
restart: always
|
||||||
@@ -81,7 +78,6 @@ services:
|
|||||||
|
|
||||||
ghost-server:
|
ghost-server:
|
||||||
image: ghost
|
image: ghost
|
||||||
container_name: ghost_server
|
|
||||||
cap_add:
|
cap_add:
|
||||||
- CAP_SYS_NICE
|
- CAP_SYS_NICE
|
||||||
security_opt:
|
security_opt:
|
||||||
@@ -176,6 +172,29 @@ services:
|
|||||||
- "traefik.http.routers.meshtastic.service=meshtastic_app"
|
- "traefik.http.routers.meshtastic.service=meshtastic_app"
|
||||||
- "traefik.http.services.meshtastic_app.loadbalancer.server.port=8080"
|
- "traefik.http.services.meshtastic_app.loadbalancer.server.port=8080"
|
||||||
|
|
||||||
|
pgadmin:
|
||||||
|
image: dpage/pgadmin4
|
||||||
|
environment:
|
||||||
|
PGADMIN_DEFAULT_EMAIL: "${PGADMIN_DEFAULT_EMAIL}"
|
||||||
|
PGADMIN_DEFAULT_PASSWORD: "${PGADMIN_DEFAULT_PASSWORD}"
|
||||||
|
volumes:
|
||||||
|
- pgadmin_data:/var/lib/pgadmin
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
expose:
|
||||||
|
- 80
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.pgadmin.entrypoints=web-secure"
|
||||||
|
- "traefik.http.routers.pgadmin.rule=Host(`pgadmin.${DOMAINNAME}`)"
|
||||||
|
- "traefik.http.routers.pgadmin.middlewares=csrf@file"
|
||||||
|
- "traefik.http.routers.pgadmin.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.routers.pgadmin.service=pgadmin_app"
|
||||||
|
- "traefik.http.services.pgadmin_app.loadbalancer.server.port=80"
|
||||||
|
|
||||||
privatebin:
|
privatebin:
|
||||||
image: privatebin/nginx-fpm-alpine:latest
|
image: privatebin/nginx-fpm-alpine:latest
|
||||||
read_only: true
|
read_only: true
|
||||||
@@ -199,6 +218,9 @@ services:
|
|||||||
- "traefik.http.services.privatebin_app.loadbalancer.server.port=8080"
|
- "traefik.http.services.privatebin_app.loadbalancer.server.port=8080"
|
||||||
|
|
||||||
redlib:
|
redlib:
|
||||||
|
# disable container temporarily
|
||||||
|
profiles:
|
||||||
|
- donotstart
|
||||||
image: quay.io/redlib/redlib:latest-arm
|
image: quay.io/redlib/redlib:latest-arm
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
user: nobody
|
user: nobody
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ services:
|
|||||||
security_opt:
|
security_opt:
|
||||||
- no-new-privileges:true
|
- no-new-privileges:true
|
||||||
restart: always
|
restart: always
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
volumes:
|
volumes:
|
||||||
- logs:/logs
|
- logs:/logs
|
||||||
- production_traefik:/etc/traefik/acme:z
|
- production_traefik:/etc/traefik/acme:z
|
||||||
|
|||||||
@@ -0,0 +1,144 @@
|
|||||||
|
# For more information, see the Configuration Guide:
|
||||||
|
# https://docs.librechat.ai/install/configuration/custom_config.html
|
||||||
|
|
||||||
|
# Configuration version (required)
|
||||||
|
version: 1.0.6
|
||||||
|
|
||||||
|
# Cache settings: Set to true to enable caching
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
# Custom nterface configuration
|
||||||
|
interface:
|
||||||
|
# Privacy policy settings
|
||||||
|
privacyPolicy:
|
||||||
|
externalUrl: 'https://librechat.ai/privacy-policy'
|
||||||
|
openNewTab: true
|
||||||
|
|
||||||
|
# Terms of service
|
||||||
|
termsOfService:
|
||||||
|
externalUrl: 'https://librechat.ai/tos'
|
||||||
|
openNewTab: true
|
||||||
|
|
||||||
|
# Example Registration Object Structure (optional)
|
||||||
|
registration:
|
||||||
|
socialLogins: ['github', 'google', 'discord', 'openid', 'facebook']
|
||||||
|
# allowedDomains:
|
||||||
|
# - "gmail.com"
|
||||||
|
# rateLimits:
|
||||||
|
# fileUploads:
|
||||||
|
# ipMax: 100
|
||||||
|
# ipWindowInMinutes: 60 # Rate limit window for file uploads per IP
|
||||||
|
# userMax: 50
|
||||||
|
# userWindowInMinutes: 60 # Rate limit window for file uploads per user
|
||||||
|
|
||||||
|
# Definition of custom endpoints
|
||||||
|
endpoints:
|
||||||
|
# assistants:
|
||||||
|
# disableBuilder: false # Disable Assistants Builder Interface by setting to `true`
|
||||||
|
# pollIntervalMs: 750 # Polling interval for checking assistant updates
|
||||||
|
# timeoutMs: 180000 # Timeout for assistant operations
|
||||||
|
# # Should only be one or the other, either `supportedIds` or `excludedIds`
|
||||||
|
# supportedIds: ["asst_supportedAssistantId1", "asst_supportedAssistantId2"]
|
||||||
|
# # excludedIds: ["asst_excludedAssistantId"]
|
||||||
|
# # (optional) Models that support retrieval, will default to latest known OpenAI models that support the feature
|
||||||
|
# retrievalModels: ["gpt-4-turbo-preview"]
|
||||||
|
# # (optional) Assistant Capabilities available to all users. Omit the ones you wish to exclude. Defaults to list below.
|
||||||
|
# capabilities: ["code_interpreter", "retrieval", "actions", "tools", "image_vision"]
|
||||||
|
custom:
|
||||||
|
# Groq Example
|
||||||
|
- name: 'groq'
|
||||||
|
apiKey: '${GROQ_API_KEY}'
|
||||||
|
baseURL: 'https://api.groq.com/openai/v1/'
|
||||||
|
models:
|
||||||
|
default: [
|
||||||
|
"llama3-70b-8192",
|
||||||
|
"llama3-8b-8192",
|
||||||
|
"llama2-70b-4096",
|
||||||
|
"mixtral-8x7b-32768",
|
||||||
|
"gemma-7b-it",
|
||||||
|
]
|
||||||
|
fetch: false
|
||||||
|
titleConvo: true
|
||||||
|
titleModel: 'llama3-70b-8192'
|
||||||
|
modelDisplayLabel: 'groq'
|
||||||
|
|
||||||
|
# # Mistral AI Example
|
||||||
|
# - name: 'Mistral' # Unique name for the endpoint
|
||||||
|
# # For `apiKey` and `baseURL`, you can use environment variables that you define.
|
||||||
|
# # recommended environment variables:
|
||||||
|
# apiKey: '${MISTRAL_API_KEY}'
|
||||||
|
# baseURL: 'https://api.mistral.ai/v1'
|
||||||
|
|
||||||
|
# # Models configuration
|
||||||
|
# models:
|
||||||
|
# # List of default models to use. At least one value is required.
|
||||||
|
# default: ['mistral-tiny', 'mistral-small', 'mistral-medium']
|
||||||
|
# # Fetch option: Set to true to fetch models from API.
|
||||||
|
# fetch: true # Defaults to false.
|
||||||
|
|
||||||
|
# # Optional configurations
|
||||||
|
|
||||||
|
# # Title Conversation setting
|
||||||
|
# titleConvo: true # Set to true to enable title conversation
|
||||||
|
|
||||||
|
# # Title Method: Choose between "completion" or "functions".
|
||||||
|
# # titleMethod: "completion" # Defaults to "completion" if omitted.
|
||||||
|
|
||||||
|
# # Title Model: Specify the model to use for titles.
|
||||||
|
# titleModel: 'mistral-tiny' # Defaults to "gpt-3.5-turbo" if omitted.
|
||||||
|
|
||||||
|
# # Summarize setting: Set to true to enable summarization.
|
||||||
|
# # summarize: false
|
||||||
|
|
||||||
|
# # Summary Model: Specify the model to use if summarization is enabled.
|
||||||
|
# # summaryModel: "mistral-tiny" # Defaults to "gpt-3.5-turbo" if omitted.
|
||||||
|
|
||||||
|
# # Force Prompt setting: If true, sends a `prompt` parameter instead of `messages`.
|
||||||
|
# # forcePrompt: false
|
||||||
|
|
||||||
|
# # The label displayed for the AI model in messages.
|
||||||
|
# modelDisplayLabel: 'Mistral' # Default is "AI" when not set.
|
||||||
|
|
||||||
|
# # Add additional parameters to the request. Default params will be overwritten.
|
||||||
|
# # addParams:
|
||||||
|
# # safe_prompt: true # This field is specific to Mistral AI: https://docs.mistral.ai/api/
|
||||||
|
|
||||||
|
# # Drop Default params parameters from the request. See default params in guide linked below.
|
||||||
|
# # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error:
|
||||||
|
# dropParams: ['stop', 'user', 'frequency_penalty', 'presence_penalty']
|
||||||
|
|
||||||
|
# # OpenRouter Example
|
||||||
|
# - name: 'OpenRouter'
|
||||||
|
# # For `apiKey` and `baseURL`, you can use environment variables that you define.
|
||||||
|
# # recommended environment variables:
|
||||||
|
# # Known issue: you should not use `OPENROUTER_API_KEY` as it will then override the `openAI` endpoint to use OpenRouter as well.
|
||||||
|
# apiKey: '${OPENROUTER_KEY}'
|
||||||
|
# baseURL: 'https://openrouter.ai/api/v1'
|
||||||
|
# models:
|
||||||
|
# default: ['gpt-3.5-turbo']
|
||||||
|
# fetch: true
|
||||||
|
# titleConvo: true
|
||||||
|
# titleModel: 'gpt-3.5-turbo'
|
||||||
|
# # Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens.
|
||||||
|
# dropParams: ['stop']
|
||||||
|
# modelDisplayLabel: 'OpenRouter'
|
||||||
|
# fileConfig:
|
||||||
|
# endpoints:
|
||||||
|
# assistants:
|
||||||
|
# fileLimit: 5
|
||||||
|
# fileSizeLimit: 10 # Maximum size for an individual file in MB
|
||||||
|
# totalSizeLimit: 50 # Maximum total size for all files in a single request in MB
|
||||||
|
# supportedMimeTypes:
|
||||||
|
# - "image/.*"
|
||||||
|
# - "application/pdf"
|
||||||
|
# openAI:
|
||||||
|
# disabled: true # Disables file uploading to the OpenAI endpoint
|
||||||
|
# default:
|
||||||
|
# totalSizeLimit: 20
|
||||||
|
# YourCustomEndpointName:
|
||||||
|
# fileLimit: 2
|
||||||
|
# fileSizeLimit: 5
|
||||||
|
# serverFileSizeLimit: 100 # Global server file size limit in MB
|
||||||
|
# avatarSizeLimit: 2 # Limit for user avatar image size in MB
|
||||||
|
# See the Custom Configuration Guide for more information:
|
||||||
|
# https://docs.librechat.ai/install/configuration/custom_config.html
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
volumes:
|
||||||
|
vol-emqx-data1:
|
||||||
|
name: foo-emqx-data1
|
||||||
|
external: true
|
||||||
|
# vol-emqx-data2:
|
||||||
|
# name: foo-emqx-data2
|
||||||
|
# external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
emqx1:
|
||||||
|
image: emqx:latest
|
||||||
|
container_name: emqx1
|
||||||
|
# environment:
|
||||||
|
# - "EMQX_NODE_NAME=emqx@node1.emqx.io"
|
||||||
|
# - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
|
||||||
|
# - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
|
||||||
|
interval: 60s
|
||||||
|
timeout: 25s
|
||||||
|
retries: 5
|
||||||
|
networks:
|
||||||
|
net:
|
||||||
|
# emqx-bridge:
|
||||||
|
# aliases:
|
||||||
|
# - node1.emqx.io
|
||||||
|
ports:
|
||||||
|
- "1883:1883"
|
||||||
|
# - 8083:8083
|
||||||
|
# - 8084:8084
|
||||||
|
# - 8883:8883
|
||||||
|
# - 18083:18083
|
||||||
|
volumes:
|
||||||
|
- vol-emqx-data1:/opt/emqx/data
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.emqx1.entrypoints=web-secure"
|
||||||
|
- "traefik.http.routers.emqx1.rule=Host(`mqtt.${DOMAINNAME}`)"
|
||||||
|
- "traefik.http.routers.emqx1.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.routers.emqx1.service=emqx-dashboard"
|
||||||
|
- "traefik.http.services.emqx-dashboard.loadbalancer.server.port=18083"
|
||||||
|
|
||||||
|
# emqx2:
|
||||||
|
# image: emqx:latest
|
||||||
|
# container_name: emqx2
|
||||||
|
# environment:
|
||||||
|
# - "EMQX_NODE_NAME=emqx@node2.emqx.io"
|
||||||
|
# - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
|
||||||
|
# - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]"
|
||||||
|
# healthcheck:
|
||||||
|
# test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
|
||||||
|
# interval: 60s
|
||||||
|
# timeout: 25s
|
||||||
|
# retries: 5
|
||||||
|
# networks:
|
||||||
|
# net:
|
||||||
|
# emqx-bridge:
|
||||||
|
# aliases:
|
||||||
|
# - node2.emqx.io
|
||||||
|
# volumes:
|
||||||
|
# - vol-emqx-data2:/opt/emqx/data
|
||||||
|
|
||||||
|
mqttx-web:
|
||||||
|
image: emqx/mqttx-web:latest
|
||||||
|
container_name: mqttx_web
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.mqttx-web.entrypoints=web-secure"
|
||||||
|
- "traefik.http.routers.mqttx-web.rule=Host(`mqttx.${DOMAINNAME}`)"
|
||||||
|
- "traefik.http.routers.mqttx-web.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.routers.mqttx-web.service=mqttx-web-service"
|
||||||
|
- "traefik.http.services.mqttx-web-service.loadbalancer.server.port=80"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
# emqx-bridge:
|
||||||
|
# driver: bridge
|
||||||
|
net:
|
||||||
|
external: true
|
||||||
|
name: ${NETWORK:-web}
|
||||||
|
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
# Do not edit this file directly. Use a ‘docker-compose.override.yaml’ file if you can.
|
||||||
|
# Refer to `docker-compose.override.yaml.example’ for some sample configurations.
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
data-node:
|
||||||
|
pgdata2:
|
||||||
|
libre-images:
|
||||||
|
libre-logs:
|
||||||
|
meili_data:
|
||||||
|
|
||||||
|
services:
|
||||||
|
api:
|
||||||
|
container_name: LibreChat
|
||||||
|
ports:
|
||||||
|
- "${PORT}:${PORT}"
|
||||||
|
depends_on:
|
||||||
|
- mongodb
|
||||||
|
- rag_api
|
||||||
|
image: ghcr.io/danny-avila/librechat-dev:latest
|
||||||
|
restart: always
|
||||||
|
user: "${UID}:${GID}"
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
environment:
|
||||||
|
- HOST=0.0.0.0
|
||||||
|
- MONGO_URI=mongodb://mongodb:27017/LibreChat
|
||||||
|
- MEILI_HOST=http://meilisearch:7700
|
||||||
|
- RAG_PORT=${RAG_PORT:-8000}
|
||||||
|
- RAG_API_URL=http://rag_api:${RAG_PORT:-8000}
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./.env
|
||||||
|
target: /app/.env
|
||||||
|
- libre-images:/app/client/public/images
|
||||||
|
- libre-logs:/app/api/logs
|
||||||
|
- type: bind
|
||||||
|
source: ./config/librechat.yaml
|
||||||
|
target: /app/librechat.yaml
|
||||||
|
mongodb:
|
||||||
|
container_name: chat-mongodb
|
||||||
|
image: mongo
|
||||||
|
restart: always
|
||||||
|
user: "${UID}:${GID}"
|
||||||
|
volumes:
|
||||||
|
- data-node:/data/db
|
||||||
|
command: mongod --noauth
|
||||||
|
meilisearch:
|
||||||
|
container_name: chat-meilisearch
|
||||||
|
image: getmeili/meilisearch:v1.7.3
|
||||||
|
restart: always
|
||||||
|
user: "${UID}:${GID}"
|
||||||
|
environment:
|
||||||
|
- MEILI_HOST=http://meilisearch:7700
|
||||||
|
- MEILI_NO_ANALYTICS=true
|
||||||
|
volumes:
|
||||||
|
- meili_data:/meili_data
|
||||||
|
vectordb:
|
||||||
|
container_name: vectordb
|
||||||
|
image: ankane/pgvector:latest
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: mydatabase
|
||||||
|
POSTGRES_USER: myuser
|
||||||
|
POSTGRES_PASSWORD: mypassword
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- pgdata2:/var/lib/postgresql/data
|
||||||
|
rag_api:
|
||||||
|
container_name: rag_api
|
||||||
|
image: ghcr.io/danny-avila/librechat-rag-api-dev:latest
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: mydatabase
|
||||||
|
POSTGRES_USER: myuser
|
||||||
|
POSTGRES_PASSWORD: mypassword
|
||||||
|
DB_HOST: vectordb
|
||||||
|
RAG_PORT: ${RAG_PORT:-8000}
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- vectordb
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
@@ -35,7 +35,6 @@ services:
|
|||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres
|
image: postgres
|
||||||
# container_name: postgres
|
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
POSTGRES_USER: ${POSTGRES_USER}
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
@@ -63,10 +62,10 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
# - "traefik.tcp.middlewares.test-inflightconn.inflightconn.amount=10"
|
# - "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.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.routers.postgres.service=postgres_service"
|
||||||
- "traefik.tcp.services.postgres_service.loadbalancer.server.port=5432"
|
- "traefik.tcp.services.postgres_service.loadbalancer.server.port=5432"
|
||||||
|
|||||||
+34
-44
@@ -126,15 +126,15 @@ http:
|
|||||||
# certResolver: letsencrypt
|
# certResolver: letsencrypt
|
||||||
# service: kestra_app
|
# service: kestra_app
|
||||||
|
|
||||||
plane-router:
|
# plane-router:
|
||||||
entryPoints:
|
# entryPoints:
|
||||||
- web-secure
|
# - web-secure
|
||||||
rule: "Host(`plan.furyhawk.lol`) || Host(`plane.furyhawk.lol`)"
|
# rule: "Host(`plan.furyhawk.lol`) || Host(`plane.furyhawk.lol`)"
|
||||||
middlewares:
|
# middlewares:
|
||||||
- csrf
|
# - csrf
|
||||||
tls:
|
# tls:
|
||||||
certResolver: letsencrypt
|
# certResolver: letsencrypt
|
||||||
service: plane_app
|
# service: plane_app
|
||||||
|
|
||||||
# graph-router:
|
# graph-router:
|
||||||
# entryPoints:
|
# entryPoints:
|
||||||
@@ -146,15 +146,15 @@ http:
|
|||||||
# certResolver: letsencrypt
|
# certResolver: letsencrypt
|
||||||
# service: neo4j-bolt
|
# service: neo4j-bolt
|
||||||
|
|
||||||
mqtt-http-router:
|
# mqtt-http-router:
|
||||||
entryPoints:
|
# entryPoints:
|
||||||
- web-secure
|
# - web-secure
|
||||||
rule: "Host(`mqtt.furyhawk.lol`)"
|
# rule: "Host(`mqtt.furyhawk.lol`)"
|
||||||
middlewares:
|
# middlewares:
|
||||||
- csrf
|
# - csrf
|
||||||
tls:
|
# tls:
|
||||||
certResolver: letsencrypt
|
# certResolver: letsencrypt
|
||||||
service: emqx-dashboard
|
# service: emqx-dashboard
|
||||||
|
|
||||||
# mqtt-socket-router:
|
# mqtt-socket-router:
|
||||||
# rule: "Host(`mqtt.furyhawk.lol`)"
|
# rule: "Host(`mqtt.furyhawk.lol`)"
|
||||||
@@ -180,16 +180,6 @@ http:
|
|||||||
- csrf
|
- csrf
|
||||||
service: emqx-web-socket-secure
|
service: emqx-web-socket-secure
|
||||||
|
|
||||||
mqttx-router:
|
|
||||||
entryPoints:
|
|
||||||
- web-secure
|
|
||||||
rule: "Host(`mqttx.furyhawk.lol`)"
|
|
||||||
middlewares:
|
|
||||||
- csrf
|
|
||||||
tls:
|
|
||||||
certResolver: letsencrypt
|
|
||||||
service: mqttx-web
|
|
||||||
|
|
||||||
middlewares:
|
middlewares:
|
||||||
auth:
|
auth:
|
||||||
basicAuth:
|
basicAuth:
|
||||||
@@ -276,14 +266,14 @@ http:
|
|||||||
# loadBalancer:
|
# loadBalancer:
|
||||||
# servers:
|
# servers:
|
||||||
# - url: http://neo4j_server:7687
|
# - url: http://neo4j_server:7687
|
||||||
plane_app:
|
# plane_app:
|
||||||
loadBalancer:
|
# loadBalancer:
|
||||||
servers:
|
# servers:
|
||||||
- url: http://node01:80
|
# - url: http://node01:80
|
||||||
emqx-mqtt-socket:
|
# emqx-mqtt-socket:
|
||||||
loadBalancer:
|
# loadBalancer:
|
||||||
servers:
|
# servers:
|
||||||
- url: http://emqx1:1883
|
# - url: http://emqx1:1883
|
||||||
emqx-web-socket:
|
emqx-web-socket:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
@@ -294,14 +284,10 @@ http:
|
|||||||
servers:
|
servers:
|
||||||
- url: http://emqx1:8084
|
- url: http://emqx1:8084
|
||||||
# - url: http://emqx2:8084
|
# - url: http://emqx2:8084
|
||||||
emqx-dashboard:
|
# emqx-dashboard:
|
||||||
loadBalancer:
|
# loadBalancer:
|
||||||
servers:
|
# servers:
|
||||||
- url: http://emqx1:18083
|
# - url: http://emqx1:18083
|
||||||
mqttx-web:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: http://mqttx_web:80
|
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
# https://docs.traefik.io/master/providers/file/
|
# https://docs.traefik.io/master/providers/file/
|
||||||
@@ -312,3 +298,7 @@ providers:
|
|||||||
network: web
|
network: web
|
||||||
exposedByDefault: false
|
exposedByDefault: false
|
||||||
endpoint: "unix:///var/run/docker.sock"
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
swarm:
|
||||||
|
# network: overwatch
|
||||||
|
exposedByDefault: false
|
||||||
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
|||||||
-1
Submodule emqx-docker deleted from 554e4b1872
Reference in New Issue
Block a user