Snaps

Installation

Installing a snap on Ubuntu is as easy as
1
sudo snap install rocketchat-server
Copied!
Then browse to http://localhost:3000 and setup Rocket.Chat.
Snaps are secure. Rocket.Chat and all of its dependencies are isolated from the rest of your system. Snaps also auto update when we release a new version. So no need more hassle updating.
On Ubuntu 16.04LTS, install snapd first:
1
sudo apt-get install snapd
Copied!
To move between different major releases, from 2.x to 3.x or from 3.x to 4.x, take a look at snap tracks.

FAQ

If you have questions about snaps best place to ask them is at the #ubuntu-snap channel.

When will my snap installation get the latest release?

Snaps are one of our biggest install base. They are also auto updating. As a result we like to spend more time testing before releasing. Updated Snaps are usually released around the 15th of the month - around 2 weeks after a new release. This gives us time to look for issues so you don't have to.
If you have special requirements and really need to use the latest release immediately then please consider another installation method e.g docker

How do I access my site at a different port? How do I enable TLS/SSL with my snap?

You can change the default port (port 3000) to something else by changing the port configuration option. For example if you wanted to change the HTTP port to 8080 instead of 3000:
1
sudo snap set rocketchat-server port=8080
Copied!
Make sure you restart the rocketchat-service service afterwards for the change to take effect. Read here for more information on that. Your only need to restart the RocketChat application itself, not the database or Caddy.
For enabling TLS/SSL, check out our guide for enabling caddy here.

Ubuntu 16.04 LTS gives message "snap not found", what's wrong?

Make sure you're using x64 or amd64 (or armhf) images, especially on VPS or VMs. x86 (32-bit) is not supported.

How do I manually update to a new release?

While updates happen automatically usually within 6 hours from time of release, you can update manually by issuing this command:
1
sudo snap refresh rocketchat-server
Copied!

How do I revert to the previous version of Rocket.Chat?

1
sudo snap revert rocketchat-server
Copied!

How do I list the services shipped with Rocket.Chat snap?

The Rocket.Chat snap provides three services. Outside of the snap context, globally, each service is named like snap.<SnapName>.<SnapServiceName>. Look at the table down below to have a better understanding.
Service
Snap Service Name
Systemd Service Name
MongoDB
rocketchat-mongo
snap.rocketchat-server.rocketchat-mongo
Caddy
rocketchat-caddy
snap.rocketchat-server.rocketchat-caddy
RocketChat
rocketchat-server
snap.rocketchat-server.rocketchat-server
You can check the list of services yourself with:
1
snap info rocketchat-server
Copied!
Look for the services section.

How do I tell if Rocket.Chat is actually running?

You can check whether either or all of them are running or not with the following command:
1
snap services rocketchat-server
Copied!
Look into the third column (Current) that logs the current state of the services.
Another option is to use the systemctl command. To quickly check if a service is active or not, use the is-active subcommand or the more well-known status subcommand. See the above table to know the name of the service you want to inspect.
1
systemctl is-active snap.rocketchat-server.rocketchat-mongo
2
systemctl is-active snap.rocketchat-server.rocketchat-caddy
3
systemctl is-active snap.rocketchat-server.rocketchat-server
Copied!
Or use the status subcommand:
1
systemctl status snap.rocketchat-server.rocketchat-mongo
2
systemctl status snap.rocketchat-server.rocketchat-caddy
3
systemctl status snap.rocketchat-server.rocketchat-server
Copied!

How can I view the logs?

You can either use the snap logs command, or the systemd alternative, journalctl. Always refer to this table to know which service name to use where.
Using snap logs:
1
sudo snap logs -f rocketchat-server.rocketchat-server
2
sudo snap logs -f rocketchat-server.rocketchat-mongo
3
sudo snap logs -f rocketchat-server.rocketchat-caddy
Copied!
To see the logs from Rocket.Chat using journalctl:
1
sudo journalctl -fu snap.rocketchat-server.rocketchat-server
Copied!
To see the logs from Mongo or Caddy:
1
sudo journalctl -fu snap.rocketchat-server.rocketchat-mongo
2
sudo journalctl -fu snap.rocketchat-server.rocketchat-caddy
Copied!

How do I schedule updates?

If you don't want snaps just updating when available you can set when your snaps will update.
The following example asks the system to only update snaps between 4.00am and 7.00am, and 7.00pm and 10:10pm:
1
sudo snap set system refresh.timer=4:00-7:00,19:00-22:10
Copied!
You can find more about your options in the snapcraft documentation.

I need to restart Rocket.Chat, how do I do this?

This follows the similar structure as many of the previous questions. You can use both the snap command or systemctl to restart RocketChat.
With snap you get the additional benefit of restarting all of the services with a single command:
1
sudo snap restart rocketchat-server
Copied!
You can also restart each service individually:
1
sudo snap restart rocketchat-server.rocketchat-server
2
sudo snap restart rocketchat-server.rocketchat-mongo
3
sudo snap restart rocketchat-server.rocketchat-caddy
Copied!
To restart Rocket.Chat using systemctl:
1
sudo systemctl restart snap.rocketchat-server.rocketchat-server
Copied!
Mongo and Caddy can similarly be restarted:
1
sudo systemctl restart snap.rocketchat-server.rocketchat-mongo
2
sudo systemctl restart snap.rocketchat-server.rocketchat-caddy
Copied!

What is the restart policy?

The snap's policy is to restart on failure.

How do I backup my snap data?

1. Stop your rocketchat-server:

1
sudo snap stop rocketchat-server.rocketchat-server
Copied!
Please note: while the rocketchat-server service should be stopped, the rocketchat-mongo service should be kept running!
1
systemctl is-active snap.rocketchat-server.rocketchat-mongo
Copied!
You should get active as a response.

2. Issue this backup command:

1
sudo snap run rocketchat-server.backupdb
Copied!
If all goes well, you will see some output similar to:
1
[+] A backup of your data can be found at /var/snap/rocketchat-server/common/backup/rocketchat_backup_<timestamp>.tar.gz
Copied!

3. Start your rocketchat-server:

1
sudo snap start rocketchat-server.rocketchat-server
Copied!

4. Copy your backup file to a different location or system for safekeeping!

How do I restore backup data to my snap?

1. Stop your rocketchat-server:

1
sudo snap stop rocketchat-server.rocketchat-server
Copied!
Please note: while the rocketchat-server service should be stopped, the rocketchat-mongo service should be kept running!
1
systemctl is-active snap.rocketchat-server.rocketchat-mongo
Copied!
You should get active as a response.

2. Copy your backup file to the snap's common folder:

1
sudo cp rocketchat_backup.tar.gz /var/snap/rocketchat-server/common/
Copied!

3. Issue this restore command:

1
sudo snap run rocketchat-server.restoredb /var/snap/rocketchat-server/common/rocketchat_backup.tgz
Copied!

4. If you are replacing an existing database, you will be warned:

1
*** ATTENTION ***
2
* Your current database WILL BE DROPPED prior to the restore!
3
* Do you want to continue?
4
1) Yes
5
2) No
6
#?
Copied!
Select 1 or 2 according to your need.

5. If you choose to proceed and all goes well, you will see some output similar to:

1
[*] Extracting backup file...
2
[*] Restoring data...
3
[*] Preparing database...
4
[+] Restore completed! Please restart the snap.rocketchat services to verify.
Copied!
If something goes wrong, you will instead be presented with a path to the relevant log file to help remedy errors. In this case, the database may not be usable until a restore is successfully performed.

6. Start your rocketchat-server:

1
sudo snap start rocketchat-server.rocketchat-server
Copied!

How do I access the MongoDB shell?

You might want to access the mongo shell shipped with our RocketChat snap. To do so, run:
1
rocketchat-server.mongo
Copied!

How do I add option to mount media?

Note that the interface providing the ability to access removable media is not automatically connected upon install, so if you'd like to use external storage (or otherwise use a device in /media for data), you need to give the snap permission to access removable media by connecting that interface:
1
sudo snap connect rocketchat-server:removable-media
Copied!

What folders do snaps use?

    Your actual snap files for each version of Rocket.Chat are copied to: /var/lib/snapd/snaps and they are mounted in read-only mode.
    Your snap common directory is: /var/snap/rocketchat-server/common/; file uploads to disk and the database are stored here.
    Your snap data directory is /var/snap/rocketchat-server/<version>; this is a versioned folder.
    You can access the current snap data directory at /var/snap/rocketchat-server/current.

How do I remove a specific previous version of Rocket.Chat?

You can do this by issuing the following command, where N is the desired version:
1
snap remove --revision=N rocketchat-server
Copied!

How do I add a tool like strace to debug what's happening in my snap?

1
snapcraft prime
2
snap try prime --devmode
3
cp /usr/bin/strace prime
4
snap run <snap.app> --shell
5
sudo ./strace
Copied!

How do I change rocket.chat PORT, MONGO_URL and MONGO_OPLOG_URL in my snap?

Starting from release 0.73, it is possible to configure these environmental variables through snap hooks like this:
1
sudo snap set rocketchat-server port=<another-port>
2
sudo snap set rocketchat-server mongo-url=mongodb://<your-url>:<your-port>/<your-db-name>
3
sudo snap set rocketchat-server mongo-oplog-url=mongodb://<your-url>:<your-port>/local
Copied!
Remember to restart rocket.chat service after setting new values:
1
sudo systemctl restart snap.rocketchat-server.rocketchat-server.service
Copied!
This is an example to run rocket.chat on port 4000 instead of 3000 and set database name to rocketchat instead of parties:
1
sudo snap set rocketchat-server port=4000
2
sudo snap set rocketchat-server mongo-url=mongodb://localhost:27017/rocketchat
3
sudo systemctl restart snap.rocketchat-server.rocketchat-server.service
Copied!

How do I change other environmental variables in my snap?

Starting from release 0.73, it is possible to overwrite any rocket.chat environmental variables dropping files ending in .env in $SNAP_COMMON directory (/var/snap/rocketchat-server/common/), for example, you can create a file to change SMTP settings:
1
cat /var/snap/rocketchat-server/common/overwrite-smtp.env
2
OVERWRITE_SETTING_SMTP_Host=my.smtp.server.com
Copied!
Remember to restart rocket.chat service after creating .env files:
1
sudo systemctl restart snap.rocketchat-server.rocketchat-server.service
Copied!
More than one .env file is allowed, and more than one environmental variable defined per file is allowed.
Last modified 1mo ago