Files
home_server/rocket.chat/docker-compose.yml
T
2025-02-14 11:58:25 +01:00

146 lines
4.7 KiB
YAML

# version: '3'
# services:
# portainer:
# image: portainer/portainer-ce:latest
# container_name: portainer
# networks:
# - traefik
# restart: unless-stopped
# security_opt:
# - no-new-privileges:true
# volumes:
# - /etc/localtime:/etc/localtime:ro
# - /var/run/docker.sock:/var/run/docker.sock:ro
# - /srv/portainer/portainer-data:/data
# ports:
# - 9000:9000
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.portainer.entrypoints=websecure"
# - "traefik.http.routers.portainer.rule=Host(`portainer.$DOMAIN_NAME`)"
# - "traefik.http.routers.portainer.tls.certresolver=letsencr"
# - "traefik.http.services.portainer.loadbalancer.server.port=9000"
# - "traefik.http.routers.portainer.middlewares=portainer_auth"
# - "traefik.http.middlewares.portainer_auth.basicauth.users=admin:$$2a$$12$$MkhjqyuriyoE5.Mhz14ZXOkfjE7wUEDb46e9argix38VHZ5aAuGQC"
version: "3.7"
services:
# rocketchat:
# image: registry.rocket.chat/rocketchat/rocket.chat:latest
# restart: unless-stopped
# volumes:
# - /srv/rocket/uploads:/app/uploads
# environment:
# MONGO_URL: "mongodb://mongodb:27017/rocketchat?replicaSet=rs0"
# MONGO_OPLOG_URL: "mongodb://mongodb:27017/local?replicaSet=rs0"
# ROOT_URL: "https://rocket.knast.cc"
# # PORT: 3000
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.rocket.entrypoints=websecure"
# - "traefik.http.routers.rocket.rule=Host(`rocket.$DOMAIN_NAME`)"
# - "traefik.http.routers.rocket.tls.certresolver=letsencr"
# - "traefik.http.services.rocket.loadbalancer.server.port=3000"
# depends_on:
# - mongodb
rocketchat:
image: ${ROCKETCHAT_IMAGE_TAG}
volumes:
- rocketchat-uploads:/app/uploads
environment:
PORT: 3000
ROOT_URL: ${ROCKETCHAT_URL}
MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0
MONGO_OPLOG_URL: mongodb://mongodb:27017/local?replicaSet=rs0
DEPLOY_METHOD: docker
Accounts_UseDNSDomainCheck: 'false'
networks:
- traefik
healthcheck:
test: >
/usr/local/bin/node -e '
const http = require("http");
const options = {
host: "localhost",
port: 3000,
path: "/api/info",
timeout: 2000
};
const healthCheck = http.request(options, (res) => {
console.log(`HEALTHCHECK STATUS: $${res.statusCode}`);
if (res.statusCode == 200) {
process.exit(0);
} else {
process.exit(1);
}
});
healthCheck.on("error", function (err) {
console.error("ERROR");
process.exit(1);
});
healthCheck.end();'
interval: 10s
timeout: 5s
retries: 3
start_period: 120s
labels:
- "traefik.enable=true"
- "traefik.http.routers.rocket.entrypoints=websecure"
- "traefik.http.routers.rocket.rule=Host(`rocket.$DOMAIN_NAME`)"
- "traefik.http.routers.rocket.tls.certresolver=letsencr"
- "traefik.http.services.rocket.loadbalancer.server.port=3000"
# - "traefik.enable=true"
# - "traefik.http.routers.rocketchat.rule=Host(`${ROCKETCHAT_HOSTNAME}`)"
# - "traefik.http.routers.rocketchat.service=rocketchat"
# - "traefik.http.routers.rocketchat.entrypoints=websecure"
# - "traefik.http.services.rocketchat.loadbalancer.server.port=3000"
# - "traefik.http.routers.rocketchat.tls=true"
# - "traefik.http.routers.rocketchat.tls.certresolver=letsencrypt"
# - "traefik.http.services.rocketchat.loadbalancer.passhostheader=true"
# - "traefik.http.routers.rocketchat.middlewares=compresstraefik"
# - "traefik.http.middlewares.compresstraefik.compress=true"
# - "traefik.docker.network=traefik-network"
restart: unless-stopped
depends_on:
mongodb:
condition: service_healthy
mongodb:
image: docker.io/bitnami/mongodb:latest
restart: unless-stopped
volumes:
- rocket-data:/bitnami/mongodb
networks:
- traefik
# volumes:
# - type: bind
# source: /srv/rocket/db
# target: /bitnami/mongodb
environment:
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: rs0
MONGODB_PORT_NUMBER: 27017
MONGODB_INITIAL_PRIMARY_HOST: mongodb
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 7017
MONGODB_ADVERTISED_HOSTNAME: mongodb
MONGODB_ENABLE_JOURNAL: true
ALLOW_EMPTY_PASSWORD: yes
volumes:
rocket-data:
driver: local
driver_opts:
o: bind
type: none
device: /srv/rocket/db
networks:
traefik:
external: true