Snaps
Installation
Installing a snap on Ubuntu is as easy as
sudo snap install pimentachat-server
Then browse to http://localhost:3000
and setup pimentaCHAT.
Snaps are secure. pimentaCHAT 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 14.04LTS, install snapd
first:
sudo apt-get install snapd
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?
Check out our guide for enabling caddy here.
Ubuntu 16.04 LTS gives message “snap not found”, whats 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 new release?
While updates happen automatically usually within 6 hours from time of release, you can update manually by issuing this command:
sudo snap refresh pimentachat-server
How do I revert to the previous version of pimentaCHAT?
sudo snap revert pimentachat-server
How do I tell if pimentaCHAT is actually running?
You can check on the status of pimentaCHAT with:
sudo service snap.pimentachat-server.pimentachat-server status
You can also check on the status of Mongo and Caddy:
sudo service snap.pimentachat-server.pimentachat-mongo status
sudo service snap.pimentachat-server.pimentachat-caddy status
How can I view the logs?
To see the logs from pimentaCHAT:
sudo journalctl -f -u snap.pimentachat-server.pimentachat-server
To see the logs from Mongo or Caddy:
sudo journalctl -f -u snap.pimentachat-server.pimentachat-mongo
sudo journalctl -f -u snap.pimentachat-server.pimentachat-caddy
I need to restart pimentaCHAT, how do I do this?
To restart pimentaCHAT:
sudo service snap.pimentachat-server.pimentachat-server restart
Mongo and Caddy can similarly be restarted:
sudo service snap.pimentachat-server.pimentachat-mongo restart
sudo service snap.pimentachat-server.pimentachat-caddy restart
What is the restart policy?
The snap’s policy is to restart on failure.
How do I backup my snap data?
1. Stop your pimentachat-server:
sudo service snap.pimentachat-server.pimentachat-server stop
Please note: while the pimentachat-server service should be stopped, the pimentachat-mongo service should be kept running!
sudo service snap.pimentachat-server.pimentachat-mongo status | grep Active
Active: active (running) (...)
2. Issue this backup command:
sudo snap run pimentachat-server.backupdb
3. If all goes well, you will see some output similar to:
[+] A backup of your data can be found at /var/snap/pimentachat-server/common/backup/pimentachat_backup_<timestamp>.tar.gz
4. Start your pimentachat-server:
sudo service snap.pimentachat-server.pimentachat-server start
4. Copy your backup file to a different system for safekeeping!
How do I restore backup data to my snap?
1. Stop your pimentachat-server:
sudo service snap.pimentachat-server.pimentachat-server stop
Please note: while the pimentachat-server service should be stopped, the pimentachat-mongo service should be kept running!
sudo service snap.pimentachat-server.pimentachat-mongo status | grep Active
Active: active (running) (...)
2. Copy your backup file to the snap’s common folder:
sudo cp pimentachat_backup.tgz /var/snap/pimentachat-server/common/
3. Issue this restore command:
sudo snap run pimentachat-server.restoredb /var/snap/pimentachat-server/common/pimentachat_backup.tgz
4. If you are replacing an existing database, you will be warned:
*** ATTENTION ***
* Your current database WILL BE DROPPED prior to the restore!
* Would you like to make a backup of the current database before proceeding?
* (y/n/Q)>
- Press
y
andEnter
to make a backup of the database in its current state. - Press
n
andEnter
to continue without a backup of the database in its current state. - Press any key and/or
Enter
to quit the restore process without making any changes.
5. If you choose to proceed and all goes well, you will see some output similar to:
[*] Extracting backup file...
[*] Restoring data...
[*] Preparing database...
[+] Restore completed! Please restart the snap.pimentachat services to verify.
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 pimentachat-server:
sudo service snap.pimentachat-server.pimentachat-server start
What folders do snaps use?
- Your actual snap files for each version of pimentaCHAT are copied to:
/var/lib/snapd/snaps
and they are mounted in read-only mode. - Your snap common directory is:
/var/snap/pimentachat-server/common/
; file uploads to disk and the database are stored here. - Your snap data directory is
/var/snap/pimentachat-server/<version>
; this is a versioned folder. - You can access the current snap data directory at
/var/snap/pimentachat-server/current
.
How do I remove a specific previous version of pimentaCHAT?
You can do this by issuing the following command, where N
is the desired version:
snap remove --revision=N pimentachat-server
How do I add a tool like strace to debug what’s happening in my snap?
snapcraft prime
snap try prime --devmode
cp /usr/bin/strace prime
snap run <snap.app> --shell
sudo ./strace
How do I change pimenta.chat PORT, MONGO_URL and MONGO_OPLOG_URL in my snap?
Starting from relase 0.73 is possible to configure these environmental variables through snap hooks like this:
sudo snap set pimentachat-server port=<another-port>
sudo snap set pimentachat-server mongo-url=mongodb://<your-url>:<your-port>/<your-db-name>
sudo snap set pimentachat-server mongo-oplog-url=mongodb://<your-url>:<your-port>/local
Remember to restart pimenta.chat service after setting new values:
sudo systemctl restart snap.pimentachat-server.pimentachat-server.service
This is an example to run pimenta.chat on port 4000 instead of 3000 and set database name to pimentachat instead of parties:
sudo snap set pimentachat-server port=4000
sudo snap set pimentachat-server mongo-url=mongodb://localhost:27017/pimentachat
sudo systemctl restart snap.pimentachat-server.pimentachat-server.service
How do I change other environmental variables in my snap?
Starting from relase 0.73 is possible to overwrite any pimenta.chat environmental variables dropping files ending in .env
in $SNAP_COMMON directroy (/var/snap/pimentachat-server/common/
), for example you can create a file to change SMTP settings:
cat /var/snap/pimentachat-server/common/overwrite-smtp.env
OVERWRITE_SETTING_SMTP_Host=my.smtp.server.com
Remember to restart pimenta.chat service after creating .env files:
sudo systemctl restart snap.pimentachat-server.pimentachat-server.service
More than one .env file is allowed, and more than one environmental variable defined per file is allowed.