commit ece85efbff2963832a68a5997bd0b6566c569280 Author: mattmtg Date: Wed Oct 30 18:27:20 2024 -0400 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d657dc6 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# RocketChat + +## Overview +RocketChat is an open-source team chat solution. + +## Features +- Real-time message sending and receiving +- Channel management +- User authentication +- Webhook support +- Custom notifications diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..2effe81 --- /dev/null +++ b/compose.yml @@ -0,0 +1,47 @@ +# rocketchat.yml +volumes: + mongodb_data: { driver: local } + +services: + rocketchat: + image: registry.rocket.chat/rocketchat/rocket.chat:${RELEASE:-latest} + restart: always + labels: + traefik.enable: "true" + traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`) + traefik.http.routers.rocketchat.tls: "true" + traefik.http.routers.rocketchat.entrypoints: https + traefik.http.routers.rocketchat.tls.certresolver: le + environment: + MONGO_URL: "${MONGO_URL:-\ + mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ + ${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" + MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\ + -mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ + local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" + ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}} + PORT: ${PORT:-3000} + DEPLOY_METHOD: docker + DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-} + REG_TOKEN: ${REG_TOKEN:-} + depends_on: + - mongodb + expose: + - ${PORT:-3000} + ports: + - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}" + + mongodb: + image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-5.0} + restart: always + volumes: + - mongodb_data:/bitnami/mongodb + environment: + MONGODB_REPLICA_SET_MODE: primary + MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0} + MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017} + MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb} + MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017} + MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb} + MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true} + ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes} \ No newline at end of file diff --git a/traefik.yml b/traefik.yml new file mode 100644 index 0000000..61d50b6 --- /dev/null +++ b/traefik.yml @@ -0,0 +1,25 @@ +# traefik.yml +volumes: + traefik: { driver: local } + +services: + traefik: + image: docker.io/traefik:${TRAEFIK_RELEASE:-v2.9.8} + restart: always + command: + - --api.insecure=false + - --providers.docker=true + - --providers.docker.exposedbydefault=false + - --entrypoints.web.address=:80 + - --entrypoints.web.http.redirections.entryPoint.to=https + - --entrypoints.web.http.redirections.entryPoint.scheme=https + - --entrypoints.https.address=:443 + - --certificatesresolvers.le.acme.tlschallenge=true + - --certificatesresolvers.le.acme.email=${LETSENCRYPT_EMAIL?need email for cert expiry notifications} + - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json + ports: + - 80:80 + - 443:443 + volumes: + - traefik:/letsencrypt:rw + - /run/docker.sock:/var/run/docker.sock:ro \ No newline at end of file