Compare commits

...

2 Commits

Author SHA1 Message Date
Kevin B
531f7924b0 Working config 2026-02-15 15:59:21 +00:00
Kevin Bataille
f41d423936 Try production configuration 2026-02-15 18:21:04 +04:00
3 changed files with 48 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
{$HOSTNAME} { :80 {
route /api* { route /api* {
uri strip_prefix /api uri strip_prefix /api
reverse_proxy http://api:14702 { reverse_proxy http://api:14702 {

View File

@@ -1,14 +1,19 @@
name: stoat name: stoat
networks:
web:
external: true
name: web
services: services:
# MongoDB: Database # MongoDB: Database
database: database:
image: docker.io/mongo image: docker.io/mongo:4.4
restart: always restart: unless-stopped
volumes: volumes:
- ./data/db:/data/db - ./data/db:/data/db
healthcheck: healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
interval: 10s interval: 10s
timeout: 10s timeout: 10s
retries: 5 retries: 5
@@ -16,13 +21,13 @@ services:
# Redis: Event message broker & KV store # Redis: Event message broker & KV store
redis: redis:
image: docker.io/eqalpha/keydb image: docker.io/redis:6-alpine
restart: always restart: unless-stopped
# RabbitMQ: Internal message broker # RabbitMQ: Internal message broker
rabbit: rabbit:
image: docker.io/rabbitmq:4 image: docker.io/rabbitmq:4
restart: always restart: unless-stopped
environment: environment:
RABBITMQ_DEFAULT_USER: rabbituser RABBITMQ_DEFAULT_USER: rabbituser
RABBITMQ_DEFAULT_PASS: rabbitpass RABBITMQ_DEFAULT_PASS: rabbitpass
@@ -37,7 +42,7 @@ services:
# MinIO: S3-compatible storage server # MinIO: S3-compatible storage server
minio: minio:
image: docker.io/minio/minio image: minio/minio:RELEASE.2022-10-24T18-35-07Z
command: server /data command: server /data
volumes: volumes:
- ./data/minio:/data - ./data/minio:/data
@@ -56,20 +61,42 @@ services:
- icons.minio - icons.minio
- banners.minio - banners.minio
- emojis.minio - emojis.minio
restart: always restart: unless-stopped
# Caddy: Web server # Caddy: Web server
caddy: caddy:
image: docker.io/caddy image: docker.io/caddy
restart: always restart: unless-stopped
env_file: .env.web env_file: .env.web
ports:
- "80:80"
- "443:443"
volumes: volumes:
- ./Caddyfile:/etc/caddy/Caddyfile - ./Caddyfile:/etc/caddy/Caddyfile
- ./data/caddy-data:/data - ./data/caddy-data:/data
- ./data/caddy-config:/config - ./data/caddy-config:/config
labels:
# Explicitly tell Traefik to expose this container
- traefik.enable=true
- traefik.docker.network=web
# HTTPS
- traefik.http.services.stoat-service-secure.loadbalancer.server.port=80
- traefik.http.routers.stoat-secure.service=stoat-service-secure
- traefik.http.routers.stoat-secure.entrypoints=websecure
- traefik.http.routers.stoat-secure.tls.certresolver=le
- traefik.http.routers.stoat-secure.rule=Host(`stoat.mistergeek.fr`)
- traefik.http.middlewares.stoat-secure-cache.compress=true
# HTTP
- traefik.http.services.stoat-service-insecure.loadbalancer.server.port=80
- traefik.http.routers.stoat-insecure.service=stoat-service-insecure
- traefik.http.routers.stoat-insecure.entrypoints=web
- traefik.http.routers.stoat-insecure.rule=Host(`stoat.mistergeek.fr`)
- traefik.http.middlewares.stoat-insecure-cache.compress=true
- traefik.http.routers.traefik.tls=true
- traefik.http.routers.traefik.tls.certresolver=le
# GZIP
- traefik.http.routers.traefik.middlewares=traefik-compress
- traefik.http.middlewares.traefik-compress.compress=true
networks:
- default
- web
# API server # API server
api: api:
@@ -85,7 +112,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Events service # Events service
events: events:
@@ -99,12 +126,12 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Web App # Web App
web: web:
image: ghcr.io/revoltchat/client:master image: ghcr.io/revoltchat/client:master
restart: always restart: unless-stopped
env_file: .env.web env_file: .env.web
# File server # File server
@@ -119,7 +146,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Metadata and image proxy # Metadata and image proxy
january: january:
@@ -128,7 +155,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Tenor proxy # Tenor proxy
gifbox: gifbox:
@@ -137,7 +164,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Regular task daemon # Regular task daemon
crond: crond:
@@ -151,7 +178,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Push notification daemon # Push notification daemon
pushd: pushd:
@@ -167,7 +194,7 @@ services:
- type: bind - type: bind
source: ./Revolt.toml source: ./Revolt.toml
target: /Revolt.toml target: /Revolt.toml
restart: always restart: unless-stopped
# Create buckets for minio. # Create buckets for minio.
createbuckets: createbuckets:

0
generate_config.sh Normal file → Executable file
View File