Rocket.Chat: Difference between revisions
(→docker) |
|||
Line 128: | Line 128: | ||
==== Docker container ==== | ==== Docker container ==== | ||
* Find the latest release [https://github.com/RocketChat/Rocket.Chat/releases here]. | |||
* Punch it into the /home/m/apps/RocketChat/.env file, eg: | |||
# MDM | |||
RELEASE=5.4.1 | |||
* Restart | |||
🪆 m@matryoshka [~/apps/RocketChat] docker compose up -d | |||
Refer to details [https://docs.rocket.chat/quick-start/deploying-rocket.chat/rapid-deployment-methods/docker-and-docker-compose here] if needed. | |||
* | * First time, make sure you have [[Docker#Install_docker_compose]] installed, and set up an ~/apps/RocketChat folder with docker.compose and .env | ||
==== From source ==== | ==== From source ==== |
Revision as of 02:44, 8 January 2023
Status
No one wants to chat with me. :-( I have it fully updated to release-4.5.6 and Mongo 5.0, but shut down.
To start it, start the jaws VM, which should start the rocketchat service. Browse to jaws, ask Mikey to get you registered at the "secret" registration url.
Clients
The Linux and android clients are tested and working out of the box. How nice.
Docs
Configuration
Once you log in as admin, you get a SHITTON of settings to manage. Important ones:
- Admin > Settings > search > site > CHANGE THE SITE from http://localhost to your FQDN!
- I updated my admin layout Content. It includes Home page text, TOS etc.
- Admin > Accounts > Registration > Manually Approve New Users
- Admin > Accounts > Registration > Registration Form > Secret URL (URL will be /register/(secret)/ )
- Admin > Layout > User Interface > Allow Special Characters in Room Names > Toggle ON
- Admin > Search > Default Provider > Global Search ON (to add a toggleable global search option)
- Admin > Video Conference > Jitsu > Enable (NOTE desktop app doesn't find my camera, but chrome does)
- Should I? Admin > Accounts > Registration > Use DNS Domain Check
Enable mobile push
This is not as simple as it should be...
- Admin > Setup Wizard > Cloud Info > Cloud Service Agree Privacy > Toggle ON
YOU MUST restart server for setting to be applied! This apparently sets:
Admin > Settings > Push > Production read-only toggle ON
This is necessary for mobile chat notifications to work!
- Register for cloud services
- When creating an account, I did NOT get email confirmation. I had to use "Forgot password" to reset and get access.
- Click Register Self-managed, and get the token.
- Admin > Connectivity Services > Register > paste the token
- Admin > Connectivity Services > Login to Rocket.Chat Cloud
- Admin > Settings > Push > Send a test push
Holy hell, it worked!
SMTP
- Create a google APP password
google > account > create App password > Mail/custom > jaws.bitpost.com > put pw in private
- Set up Admin > Email > SMTP settings to allow outbound email
protocol: smtps host: smtp.gmail.com port: [] (default) [ ] Ignore TLS [X] Pool username: thedigitalmachine password: (see private) from email: m@bitpost.com
2fa hell
If 2fa is on and SMTP doesn't work for any reason, it can really fuck you trying to get any settings changed to fix the problem. Catch-22 loop of hell.
I tried adding some bullshit hack ENV vars to the rocketchat service with no luck:
sudo service rocketchat stop emacs ~/config/etc/systemd/system/rocketchat.service Environment=SHA_256_HASH_OF_API_USER_PASSWORD=047c5647b586286f839377306252cf99e7f1bbddb93c2f84a6a7377ef2dd6122 Environment=Accounts_TwoFactorAuthentication_Enforce_Password_Fallback=false sudo systemctl daemon-reload sudo service rocketchat start
Didn't seem to do shit.
Try turning 2fa settings off via shell... THIS DID IT.
ssh jaws mongo use rocketchat db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_Enabled"},{$set:{"packageValue":false}}); db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_Enabled"},{$set:{"value":false}}); db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_By_Email_Enabled"},{$set:{"packageValue":false}}); db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_By_Email_Enabled"},{$set:{"value":false}}); db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_Enforce_Password_Fallback"},{$set:{"packageValue":false}}); db.rocketchat_settings.update({"_id":"Accounts_TwoFactorAuthentication_Enforce_Password_Fallback"},{$set:{"value":false}});
Then I could go in and manage my SMPT settings and get them working. Whew. I'm not turning 2fa back on for now, fuck that hardship.
Server maintenance
Log:
sudo journalctl -xefu rocketchat
Update
docker
SO much easier...
docker pull registry.rocket.chat/rocketchat/rocket.chat:latest docker compose stop rocketchat docker compose rm rocketchat # IMPORTANT: this only removes rc, NOT rc's mongo container docker compose up -d rocketchat
from-source
Figure out what release you are moving to, here. Don't jump too many at once or you'll surely be fucked. Might not be able to jump over any at all, stupid thing...
ssh jaws cd ~/apps/Rocket.Chat.github-source sudo service rocketchat stop git pull # ---------------------- # best to pick an official release! git branch -a git checkout release-4.5.6 # ---------------------- meteor --version # to install teh CORRECT VERSION FOR THIS REPO # ---------------------- # YOU MUST USE THE METEOR VERSIONS OF NPM + NODE, bc meteor is a piece of shit built on an old house of cards meteor node -v nvm install 14.18.3 meteor npm -v npm install -g npm@6.14.15 # ---------------------- meteor npm install sudo service rocketchat start
Back up database
from-source
🦈 m@jaws [~/apps/rocketchat-mongo-backup] mongodump -d rocketchat
Docker
# from docker host docker exec -u root -it rocketchat-mongodb-1 bash mkdir -p dumps && cd dumps mongodump --archive="rocketchat-backup-2022-10-13" --db=rocketchat
Server installation
Don't leave your install un-updated for very long, this thing keeps roooollllling....
Docker container
- Find the latest release here.
- Punch it into the /home/m/apps/RocketChat/.env file, eg:
# MDM RELEASE=5.4.1
- Restart
🪆 m@matryoshka [~/apps/RocketChat] docker compose up -d
Refer to details here if needed.
- First time, make sure you have Docker#Install_docker_compose installed, and set up an ~/apps/RocketChat folder with docker.compose and .env
From source
sudo apt-get install -y git build-essential mongodb nodejs graphicsmagick cd ~/apps git clone https://github.com/RocketChat/Rocket.Chat.git cd Rocket.Chat # ---------------------- # best to pick an official release! git checkout release-4.5.6 # ---------------------- # install meteor if needed curl https://install.meteor.com/ | sh meteor --version # to install teh CORRECT VERSION FOR THIS REPO # ---------------------- # YOU MUST USE THE METEOR VERSIONS OF NPM + NODE, bc meteor is a piece of shit built on an old house of cards meteor node -v nvm install 14.18.3 meteor npm -v npm install -g npm@6.14.15 # ---------------------- # the new lovely useless churn continues # at some point they swithced to building and running with yarn - yawn... # check your release to see if you need npm or yarn # i have moved up to 4.5.6, which does NOT yet require yarn, thank goodness # ---------------------- # YARN WAY # install yarn if needed npm i -g corepack # ---------------------- yarn # installs the dependencies for all projects yarn build yarn dev # it will build the sub projects and then run meteor project # END YARN WAY # ---------------------- # NPM WAY meteor npm install meteor npm start # END NPM WAY # ----------------------
Make sure that gets going. Once it does, there are two more optional steps.
Install system mongo
If you want to use a full system mongo installation instead of the dummy one that comes embedded in meteor, you'll need to tell meteor how to find it. It should be configured as a replicaset (even though it's one node):
# install system mongo # use a startup script like this: cd ~/apps/Rocket.Chat.github-source MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000 meteor npm start
Set up a systemd service
# Uninstall snap if needed sudo snap remove rocketchat-server
- Create a service file in your config folder, and stow it into /etc/systemd/system. jaws example:
💉 m@jaws [~] cat config/etc/systemd/system/rocketchat.service [Unit] Description=Jaws rocketchat server After=network.target [Service] WorkingDirectory=/home/m/apps/Rocket.Chat.github-source Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 Environment=ROOT_URL=http://localhost:3000/ Environment=PORT=3000 User=m Type=simple ExecStart=meteor npm start [Install] WantedBy=multi-user.target
- Install it
sudo systemctl daemon-reload sudo systemctl start rocketchat # Give it a GOOD 5 MINUTES to start up, sigh... once it does: sudo systemctl enable rocketchat
From snap
Snap install is a clusterfuck of imperfection... DO NOT SEEK THE TREASURE!
Now FINISH UP
- Browse to admin panel at http://yourserver:3000
- Register with rocket.chat (I think you have to to get mobile updates???)
- Set up an admin account
- Update haproxy and certbot to support a subdomain that is publicly available