You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
4.5 KiB
Markdown

3 years ago
### Minimum File Structure
```
/home/
└── ~/
└── docker/
└── rocketchat/
├── .env
├── docker-compose.yml
```
3 years ago
### Add to Caddyfile (from ~/docker/caddy)
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile.
```
subdomain.example.com {
reverse_proxy rocketchat:3000
}
```
3 years ago
### .env
3 years ago
Set your environment variables. SMTP service is needed if you want rocketchat to be able to send emails.
```
# General
MY_DOMAIN=example.com
DOCKER_MY_NETWORK=caddy_net
# Rocket Chat Specific
ROOT_URL=https://subdomain.example.com
SMTP_MAIL_URL=smtp.mailgun.org
ROCKETCHAT_BOT_PASSWORD=samplebotpassword
```
3 years ago
### docker-compose.yml
```
version: '2'
services:
rocketchat:
image: rocketchat/rocket.chat:latest
container_name: rocketchat
# ports:
# - 3000:3000
command: >
bash -c
"for i in `seq 1 30`; do
node main.js &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=${ROOT_URL}
- MONGO_URL=mongodb://rocketchat-db:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://rocketchat-db:27017/local
- MAIL_URL=${SMTP_MAIL_URL}
# - HTTP_PROXY=http://proxy.domain.com
# - HTTPS_PROXY=http://proxy.domain.com
depends_on:
- rocketchat-db
labels:
- "traefik.backend=rocketchat"
- "traefik.frontend.rule=Host: your.domain.tld"
rocketchat-db:
2 years ago
image: mongo:5.0.5
container_name: rocketchat-db
restart: unless-stopped
volumes:
- ./data/db:/data/db
#- ./data/dump:/dump
2 years ago
command: mongod --oplogSize 128 --replSet rs0
labels:
- "traefik.enable=false"
# this container's job is just run the command to initialize the replica set.
# it will run the command and remove himself (it will not stay running)
rocketchat-db-init-replica:
2 years ago
image: mongo:5.0.5
command: >
bash -c
"for i in `seq 1 30`; do
mongo rocketchat-db/rocketchat --eval \"
rs.initiate({
_id: 'rs0',
members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
depends_on:
- rocketchat-db
# hubot, the popular chatbot (add the bot user first and change the password before starting this image)
rocketchat-hubot:
image: rocketchat/hubot-rocketchat:latest
2 years ago
container_name: rocketchat-hubot
restart: unless-stopped
environment:
- ROCKETCHAT_URL=rocketchat:3000
- ROCKETCHAT_ROOM=GENERAL
- ROCKETCHAT_USER=bot
- ROCKETCHAT_PASSWORD=${ROCKETCHAT_BOT_PASSWORD}
- BOT_NAME=bot
# you can add more scripts as you'd like here, they need to be installable by npm
- EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics
depends_on:
- rocketchat
labels:
- "traefik.enable=false"
volumes:
- ./scripts:/home/hubot/scripts
# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier
networks:
default:
external:
name: ${DOCKER_MY_NETWORK}
```
3 years ago
### docker-compose up -d
After you have the .env and docker-compose files set up in this directory. Do a ```docker-compose up -d``` to start the containers. It should take about 30-60 seconds to launch.
### Finalization - Hubot
3 years ago
After you can access your rocketchat server, you can stop the hubot errors for happening by creating a new bot user in Administration > Users > + New. Then create a bot with username bot, and email bot@yourdomain.com and password to match the password you used in the .env file. Lastly, for role choose bot and hit save. Now if you do a `docker logs rocketchat-hubot` you won't see any more errors and the container will stop restarting over and over again.
2 years ago
While you're at it you can set up your SMTP server if you choose to under Administration > Email > SMTP
2 years ago
### Upgrading from Mongo 4.0 to newer version
Disregard this if this is your first time running rocket.chat.
If you had a working rocket.chat instance running on mongo 4.0 and wanted to upgrade to a newer mongo
You will need to export your old database and import it into a new one.
Details can be found here: https://github.com/RocketChat/Rocket.Chat/issues/24160#issuecomment-1048290278