Debian 10/Ubuntu 20.04

If you notice any mistakes that need to be corrected, please reach out on Discord!

MongoDB

Petio supports two ways of connecting to a Mongo Database instance, locally or remote. We recommend the locally hosted MongoDB option.

MongoDB Locally

  • Import the public key used by the package management system:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
  • Create the /etc/apt/sources.list.d/mongodb-org-4.4.list file:

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
  • Reload local package database:

sudo apt-get update
  • Install the MongoDB packages:

sudo apt-get install -y mongodb-org
  • Start MongoDB:

sudo systemctl start mongod
  • Verify that MongoDB has started successfully:

sudo systemctl status mongod
  • To make sure MongoDB starts after restart use:

sudo systemctl enable mongod

MongoDB Locally - On A Different Host

By default, MongoDB doesn’t allow remote connections.

  • Locate your mongod.conf and edit it with your favorite editor. Include any local IP addresses you want to allow to connect to your MongoDB instance.

vim /etc/mongod.conf
# /etc/mongod.conf
# Listen to local and LAN interfaces.
bind_ip = 127.0.0.1,192.168.161.100
  • Restart the mongod service after making these changes

sudo systemctl restart mongod

If there is a firewall, you might need to use iptables to allow access to MongoDB. Example below:

  • Any connections can connect to MongoDB on port 27017

iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
  • Only certain IPs can connect to MongoDB on port 27017

iptables -A INPUT -s <ip-address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d <ip-address> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

MongoDB Remotely

  • Register for Atlas here.

  • Create a free cluster.

  • Change the provider or region if you need to. It may take some time to create the cluster.

  • After the cluster is made, click on connect and select MongoDB Compass and follow the instructions on screen.

Installing Petio

  • Create a user for Petio:

sudo useradd -M --shell=/bin/false petio
  • Make a directory for Petio:

sudo mkdir /opt/Petio
  • Download the latest version of Petio:

sudo wget https://petio.tv/releases/latest -O petio-latest.zip
  • Extract Petio to the directory we just made:

sudo unzip petio-latest.zip -d /opt/Petio
  • Change ownership of the directory for Petio:

sudo chown -R petio:petio /opt/Petio
  • Create the petio service with systemd:

/etc/systemd/system/petio.service
[Unit]
Description=Petio a content request system
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=on-failure
RestartSec=1
ExecStart=/opt/Petio/bin/petio-linux
User=petio

[Install]
WantedBy=multi-user.target
  • Reload systemd:

sudo systemctl daemon-reload
  • Start Petio:

sudo systemctl start petio

Once you've completed theses steps, you can navigate to http://<hostname>:7777 to start configuring Petio.

Last updated