{"id":30011,"date":"2019-09-04T11:03:10","date_gmt":"2019-09-04T16:03:10","guid":{"rendered":"https:\/\/www.rosehosting.com\/blog\/?p=30011"},"modified":"2022-06-03T03:33:30","modified_gmt":"2022-06-03T08:33:30","slug":"how-to-install-mastodon-on-ubuntu-18-04","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/","title":{"rendered":"How to Install Mastodon on Ubuntu 18.04"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><img decoding=\"async\" class=\"alignnone size-full wp-image-31934\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg\" alt=\"\" width=\"742\" height=\"372\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg 742w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04-150x75.jpg 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04-300x150.jpg 300w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>In this article, we will install Mastodon on an <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\">Ubuntu 18.04 VPS<\/a>.<\/p>\n<p><img decoding=\"async\" class=\"alignright size-full wp-image-31935\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/configure-compile-mastodon-for-ubuntu18.04.jpg\" alt=\"\" width=\"150\" height=\"161\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/configure-compile-mastodon-for-ubuntu18.04.jpg 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/configure-compile-mastodon-for-ubuntu18.04-140x150.jpg 140w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>Mastodon is a free and open-source network platform that is very similar to the famous social media platform known as Twitter. However, unlike Twitter, there is no single central authority and there is no advertising. Mastodon is written in Ruby and JavaScript and its open-source nature makes sure that it remains open for anyone to use privately and securely. Anyone can create a Mastodon server and build their own communities with friends. Additionally, Mastodon is supported by and available through multiple apps for iOS, Android, and other platforms, which will allow you to keep in touch with your friends anywhere you go. Let&#8217;s start with installing Mastodon.<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69ea18f437bcb\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69ea18f437bcb\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Prerequisites\" >Prerequisites:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-1-Adding-Required-Repositories\" >Step 1: Adding Required Repositories<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-2-Installing-Packages\" >Step 2: Installing Packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-3-Installing-Ruby\" >Step 3: Installing Ruby<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-4-Setting-up-PostgreSQL\" >Step 4: Setting up PostgreSQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-5-Setting-up-Mastodon\" >Step 5: Setting up Mastodon<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-6-Installing-the-Ruby-and-JavaScript-Dependencies\" >Step 6: Installing the Ruby and JavaScript Dependencies<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-7-Generating-a-Configuration-File\" >Step 7: Generating a Configuration File<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-8-Setting-up-Nginx\" >Step 8: Setting up Nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-9-Acquiring-an-SSL-Certificate\" >Step 9: Acquiring an SSL Certificate<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#Step-10-Setting-up-systemd-Services\" >Step 10: Setting up systemd Services<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites:<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before we start the installation, we need to fulfill the prerequisites:<\/p>\n<ul>\n<li>A server that&#8217;s running <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu 18.04<\/a><\/li>\n<li>root access or user with sudo privileges<\/li>\n<li>A domain name (or a subdomain) for the Mastodon server, e.g. your_domain_name.com<\/li>\n<\/ul>\n<p>Start by <a href=\"https:\/\/www.rosehosting.com\/blog\/connect-to-your-linux-vps-via-ssh\/\">logging into your VPS<\/a> using the SSH protocol.<\/p>\n<p>We will run all the commands as root in this tutorial, so if you aren\u2019t using the root account, switch to root or use the sudo command in front of the commands. Alternatively, make sure you run each command with &#8216;sudo&#8217; prefixed to them.<\/p>\n<pre>sudo -i<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-1-Adding-Required-Repositories\"><\/span>Step 1: Adding Required Repositories<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In this step, we will add the required repositories to our system.<\/p>\n<p>To make sure that curl is installed on your system, run the command:<\/p>\n<pre>apt install -y curl<\/pre>\n<p>Enable the NodeSource repository with the following curl command:<\/p>\n<pre>curl -sL https:\/\/deb.nodesource.com\/setup_8.x | bash -<\/pre>\n<p>By using the following commands we will import the repository\u2019s GPG key. After this, we will enable the Yarn APT repository:<\/p>\n<pre>curl -sS https:\/\/dl.yarnpkg.com\/debian\/pubkey.gpg | apt-key add -\r\necho \"deb https:\/\/dl.yarnpkg.com\/debian\/ stable main\" | tee \/etc\/apt\/sources.list.d\/yarn.list<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-2-Installing-Packages\"><\/span>Step 2: Installing Packages<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now we will install the required system packages for Mastodon:<\/p>\n<pre>apt update\r\n\r\napt install -y \\\r\nimagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \\\r\ng++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \\\r\nbison build-essential libssl-dev libyaml-dev libreadline6-dev \\\r\nzlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \\\r\nnginx redis-server redis-tools postgresql postgresql-contrib \\\r\ncertbot yarn libidn11-dev libicu-dev libjemalloc-dev<\/pre>\n<p>Here&#8217;s a brief explanation of the dependencies we just installed:<\/p>\n<ul>\n<li><strong>imagemagick<\/strong> &#8211; Mastodon uses ImageMagick for image related operations<\/li>\n<li><strong>ffmpeg<\/strong> &#8211; Mastodon uses FFmpeg for conversion of GIFs to MP4s<\/li>\n<li><strong>libprotobuf-dev and protobuf-compiler<\/strong> &#8211; Mastodon uses these for language detection<\/li>\n<li><strong>nginx<\/strong> &#8211; Nginx is used as a web server<\/li>\n<li><strong>redis-*<\/strong> &#8211; Mastodon uses Redis for its in-memory data structure store<\/li>\n<li><strong>postgresql-*<\/strong> &#8211; Mastodon uses PostgreSQL as its SQL database<\/li>\n<li><strong>nodejs<\/strong> &#8211; Node is used for Mastodon&#8217;s streaming API<\/li>\n<li><strong>yarn<\/strong> &#8211; Yarn is a Node.js package manager<\/li>\n<li><strong>Other -dev packages, g++<\/strong> &#8211; these are needed for the compilation of Ruby using ruby-build.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Step-3-Installing-Ruby\"><\/span>Step 3: Installing Ruby<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ruby is also one of the requirements for Mastodon and we will install it in this step. We will use &#8216;rbenv&#8217; to manage the Ruby versions. But since rbenv needs to be installed for a specific Linux user, the first thing we need to do is create a new Mastodon user. To create the Mastodon user, we will execute the command:<\/p>\n<pre>adduser --disabled-login mastodon<\/pre>\n<p>Then switch to the user mastodon with the command:<\/p>\n<pre>su - mastodon<\/pre>\n<p>And with the following commands we will install rbenv and rbenv-build:<\/p>\n<pre>git clone https:\/\/github.com\/rbenv\/rbenv.git ~\/.rbenv\r\ncd ~\/.rbenv &amp;&amp; src\/configure &amp;&amp; make -C src\r\necho 'export PATH=\"$HOME\/.rbenv\/bin:$PATH\"' &gt;&gt; ~\/.bashrc\r\necho 'eval \"$(rbenv init -)\"' &gt;&gt; ~\/.bashrc\r\nexec bash\r\ngit clone https:\/\/github.com\/rbenv\/ruby-build.git ~\/.rbenv\/plugins\/ruby-build<\/pre>\n<p>After we finish the rbenv and rbenv-build installation, we can install the exact Ruby version we need:<\/p>\n<pre>RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.0\r\nrbenv global 2.6.0<\/pre>\n<p>Because ruby_2.6.0 comes with a bundler that is not compatible with the default gem version, we&#8217;ll need to update the gem:<\/p>\n<pre>gem update --system<\/pre>\n<p>On top of this, we need to install bundler:<\/p>\n<pre>gem install bundler --no-document<\/pre>\n<p>Once all of the steps have been processed, we can return to the root user:<\/p>\n<pre>exit<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-4-Setting-up-PostgreSQL\"><\/span>Step 4: Setting up PostgreSQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>We will create a PostgreSQL user that can be used by the Linux user with the same username without requiring a separate password. This is a very simple method that uses the \u201cident\u201d authentication which allows for easy setup as well as allowing local users to access the database without a password.<\/p>\n<p>You can open the Postgres prompt by switching to the postgres user and then running the\u00a0<strong>psql<\/strong> command, or you can execute the following command:<\/p>\n<pre>sudo -u postgres psql<\/pre>\n<p>Execute the command:<\/p>\n<pre>CREATE USER mastodon CREATEDB;<\/pre>\n<p>Exit from the Postgres prompt with:<\/p>\n<pre>\\q<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-5-Setting-up-Mastodon\"><\/span>Step 5: Setting up Mastodon<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Since we have prepared the server for installing Mastodon, we can proceed now with downloading the Mastodon code. Switch to the mastodon user with the command:<\/p>\n<pre>su - mastodon<\/pre>\n<p>We will use git to clone the latest stable release of Mastodon by running the commands:<\/p>\n<pre>git clone https:\/\/github.com\/tootsuite\/mastodon.git live &amp;&amp; cd live\r\ngit checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-6-Installing-the-Ruby-and-JavaScript-Dependencies\"><\/span>Step 6: Installing the Ruby and JavaScript Dependencies<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>These are the last dependencies that we need to install. We will use bundler to install the rest of the Ruby dependencies:<\/p>\n<pre>bundle install \\\r\n-j$(getconf _NPROCESSORS_ONLN) \\\r\n--deployment --without development test<\/pre>\n<p>and use yarn to install Node.js dependencies:<\/p>\n<pre>yarn install --pure-lockfile<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-7-Generating-a-Configuration-File\"><\/span>Step 7: Generating a Configuration File<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>We can run the interactive setup wizard in order to generate the configuration file:<\/p>\n<pre>RAILS_ENV=production bundle exec rake mastodon:setup<\/pre>\n<p>Now we can switch back to the root account because that is all we had to do with the mastodon user.<\/p>\n<pre>exit<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Step-8-Setting-up-Nginx\"><\/span>Step 8: Setting up Nginx<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Mastodon comes by default with an Nginx configuration template. In the next step, we will use a copy of this configuration template and adjust it for our needs.<\/p>\n<pre>cp \/home\/mastodon\/live\/dist\/nginx.conf \/etc\/nginx\/sites-available\/mastodon.conf\r\nln -s \/etc\/nginx\/sites-available\/mastodon.conf \/etc\/nginx\/sites-enabled\/mastodon.conf<\/pre>\n<p>Then edit <code>\/etc\/nginx\/sites-available\/mastodon.conf<\/code> and replace <span style=\"color: #ff0000;\">your_domain.com<\/span> with your actual domain name.<\/p>\n<pre>nano \/etc\/nginx\/sites-available\/mastodon.conf<\/pre>\n<p>We need to reload Nginx for the changes to take effect:<\/p>\n<pre>systemctl reload nginx<\/pre>\n<p>If for some reason you accidentally lack the Nginx file in that location, then you can use the following Nginx configuration and modify it according to your needs.<\/p>\n<pre>map $http_upgrade $connection_upgrade {\r\ndefault upgrade;\r\n'' close;\r\n}\r\n\r\nproxy_cache_path \/var\/cache\/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;\r\n\r\nserver {\r\nlisten 80;\r\nlisten [::]:80;\r\nserver_name <span style=\"color: #ff0000;\">your_domain.com<\/span>;\r\nroot \/home\/mastodon\/live\/public;\r\nlocation \/.well-known\/acme-challenge\/ { allow all; }\r\nlocation \/ { return 301 https:\/\/$host$request_uri; }\r\n}\r\n\r\nserver {\r\nlisten 443 ssl http2;\r\nlisten [::]:443 ssl http2;\r\nserver_name <span style=\"color: #ff0000;\">your_domain.com<\/span>;\r\n\r\nssl_protocols TLSv1.2;\r\nssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;\r\nssl_prefer_server_ciphers on;\r\nssl_session_cache shared:SSL:10m;\r\n\r\n# Uncomment these lines once you acquire a certificate:\r\n# ssl_certificate \/etc\/letsencrypt\/live\/<span style=\"color: #ff0000;\">your_domain.com<\/span>\/fullchain.pem;\r\n# ssl_certificate_key \/etc\/letsencrypt\/live\/<span style=\"color: #ff0000;\">your_domain.com<\/span>\/privkey.pem;\r\n\r\nkeepalive_timeout 70;\r\nsendfile on;\r\nclient_max_body_size 80m;\r\n\r\nroot \/home\/mastodon\/live\/public;\r\n\r\ngzip on;\r\ngzip_disable \"msie6\";\r\ngzip_vary on;\r\ngzip_proxied any;\r\ngzip_comp_level 6;\r\ngzip_buffers 16 8k;\r\ngzip_http_version 1.1;\r\ngzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\r\n\r\nadd_header Strict-Transport-Security \"max-age=31536000\";\r\n\r\nlocation \/ {\r\ntry_files $uri @proxy;\r\n}\r\n\r\nlocation ~ ^\/(emoji|packs|system\/accounts\/avatars|system\/media_attachments\/files) {\r\nadd_header Cache-Control \"public, max-age=31536000, immutable\";\r\nadd_header Strict-Transport-Security \"max-age=31536000\";\r\ntry_files $uri @proxy;\r\n}\r\n\r\nlocation \/sw.js {\r\nadd_header Cache-Control \"public, max-age=0\";\r\nadd_header Strict-Transport-Security \"max-age=31536000\";\r\ntry_files $uri @proxy;\r\n}\r\n\r\nlocation @proxy {\r\nproxy_set_header Host $host;\r\nproxy_set_header X-Real-IP $remote_addr;\r\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\nproxy_set_header X-Forwarded-Proto https;\r\nproxy_set_header Proxy \"\";\r\nproxy_pass_header Server;\r\n\r\nproxy_pass http:\/\/127.0.0.1:3000;\r\nproxy_buffering on;\r\nproxy_redirect off;\r\nproxy_http_version 1.1;\r\nproxy_set_header Upgrade $http_upgrade;\r\nproxy_set_header Connection $connection_upgrade;\r\n\r\nproxy_cache CACHE;\r\nproxy_cache_valid 200 7d;\r\nproxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;\r\nadd_header X-Cached $upstream_cache_status;\r\nadd_header Strict-Transport-Security \"max-age=31536000\";\r\n\r\ntcp_nodelay on;\r\n}\r\n\r\nlocation \/api\/v1\/streaming {\r\nproxy_set_header Host $host;\r\nproxy_set_header X-Real-IP $remote_addr;\r\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\nproxy_set_header X-Forwarded-Proto https;\r\nproxy_set_header Proxy \"\";\r\n\r\nproxy_pass http:\/\/127.0.0.1:4000;\r\nproxy_buffering off;\r\nproxy_redirect off;\r\nproxy_http_version 1.1;\r\nproxy_set_header Upgrade $http_upgrade;\r\nproxy_set_header Connection $connection_upgrade;\r\n\r\ntcp_nodelay on;\r\n}\r\n\r\nerror_page 500 501 502 503 504 \/500.html;\r\n}<\/pre>\n<p>Remember to save and exit the file, and restart Nginx as shown above in order to acknowledge the new file.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step-9-Acquiring-an-SSL-Certificate\"><\/span>Step 9: Acquiring an SSL Certificate<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>We will use Let&#8217;s Encrypt to generate a free SSL certificate:<\/p>\n<pre>certbot certonly --webroot -d <span style=\"color: #ff0000;\">your_domain.com<\/span> -w \/home\/mastodon\/live\/public\/<\/pre>\n<p>Please do not forget to replace <span style=\"color: #ff0000;\">your_domain.com<\/span> with your actual domain name. We can now edit the\u00a0<code>\/etc\/nginx\/sites-available\/mastodon.conf<\/code> configuration file with:<\/p>\n<pre>nano \/etc\/nginx\/sites-available\/mastodon.conf<\/pre>\n<p>Uncomment and modify the <strong>ssl_certificate<\/strong> and <strong>ssl_certificate_key<\/strong> lines. Once we finish editing the configuration file, we need to reload Nginx once again for our changes to have effect:<\/p>\n<pre>systemctl reload nginx<\/pre>\n<p>At this point, if you try to access your domain in your preferred web browser, you will not be able to see Mastodon. This is because our Mastodon process is not yet started.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step-10-Setting-up-systemd-Services\"><\/span>Step 10: Setting up systemd Services<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In this step, we will start and enable the Mastodon service on the server. We can simply copy the systemd service templates from the Mastodon directory:<\/p>\n<pre>cp \/home\/mastodon\/live\/dist\/mastodon-*.service \/etc\/systemd\/system\/<\/pre>\n<p>We can double check and make sure that the username and paths are correct in these files:<\/p>\n<ul>\n<li><code>\/etc\/systemd\/system\/mastodon-web.service<\/code><\/li>\n<li><code>\/etc\/systemd\/system\/mastodon-sidekiq.service<\/code><\/li>\n<li><code>\/etc\/systemd\/system\/mastodon-streaming.service<\/code><\/li>\n<\/ul>\n<p>Finally, we can start and enable the Mastodon systemd services:<\/p>\n<pre>systemctl start mastodon-web mastodon-sidekiq mastodon-streaming\r\nsystemctl enable mastodon-web mastodon-sidekiq mastodon-streaming<\/pre>\n<p>If the systemd files are missing by any chance you can use the following configurations. You need to create three systemd Mastodon service files.<\/p>\n<p>For the Mastodon web workers service enter the following:<\/p>\n<pre>nano \/etc\/systemd\/system\/mastodon-web.service<\/pre>\n<p>Place the following code:<\/p>\n<pre>[Unit]\r\nDescription=mastodon-web\r\nAfter=network.target\r\n\r\n[Service]\r\nType=simple\r\nUser=mastodon\r\nWorkingDirectory=\/home\/mastodon\/live\r\nEnvironment=\"RAILS_ENV=production\"\r\nEnvironment=\"PORT=3000\"\r\nExecStart=\/home\/mastodon\/.rbenv\/shims\/bundle exec puma -C config\/puma.rb\r\nExecReload=\/bin\/kill -SIGUSR1 $MAINPID\r\nTimeoutSec=15\r\nRestart=always\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/pre>\n<p>Then save and exit.<\/p>\n<p>For the Mastodon background queue service:<\/p>\n<pre>nano \/etc\/systemd\/system\/mastodon-sidekiq.service<\/pre>\n<p>Paste the following code:<\/p>\n<pre>[Unit]\r\nDescription=mastodon-sidekiq\r\nAfter=network.target\r\n\r\n[Service]\r\nType=simple\r\nUser=mastodon\r\nWorkingDirectory=\/home\/mastodon\/live\r\nEnvironment=\"RAILS_ENV=production\"\r\nEnvironment=\"DB_POOL=25\"\r\nEnvironment=\"MALLOC_ARENA_MAX=2\"\r\nExecStart=\/home\/mastodon\/.rbenv\/shims\/bundle exec sidekiq -c 25\r\nTimeoutSec=15\r\nRestart=always\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/pre>\n<p>Then save and exit the file.<\/p>\n<p>For the Mastodon streaming API service:<\/p>\n<pre>nano \/etc\/systemd\/system\/mastodon-streaming.service<\/pre>\n<p>Place the following code:<\/p>\n<pre>[Unit]\r\nDescription=mastodon-streaming\r\nAfter=network.target\r\n\r\n[Service]\r\nType=simple\r\nUser=mastodon\r\nWorkingDirectory=\/home\/mastodon\/live\r\nEnvironment=\"NODE_ENV=production\"\r\nEnvironment=\"PORT=4000\"\r\nEnvironment=\"STREAMING_CLUSTER_NUM=1\"\r\nExecStart=\/usr\/bin\/node .\/streaming\r\nTimeoutSec=15\r\nRestart=always\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/pre>\n<p>Save and exit.<\/p>\n<p>You&#8217;ll need to reload the systemctl daemon list for the changes to take effect:<\/p>\n<pre>systemctl daemon-reload<\/pre>\n<p>You should now be able to start and enable the Mastodon systemd services as we did earlier.<\/p>\n<p>Congratulations! You have successfully installed Mastodon on your server. You can access it by going to <span style=\"color: #ff0000;\">https:\/\/your_domain.com\/<\/span>.<\/p>\n<p>In this article, we showed you how to install Mastodon on Ubuntu 18.04. Now you can use this knowledge and create your private social network with this wonderful application.<\/p>\n<hr \/>\n<p><img decoding=\"async\" class=\"alignleft size-full wp-image-31936\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/support-mastodon-setup-easily-admin-help-ubuntu-vps.jpg\" alt=\"\" width=\"150\" height=\"161\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/support-mastodon-setup-easily-admin-help-ubuntu-vps.jpg 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/support-mastodon-setup-easily-admin-help-ubuntu-vps-140x150.jpg 140w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>Of course, if you are one of our <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Managed Ubuntu Hosting<\/a> customers, you don\u2019t have to install Mastodon on your Ubuntu 18.04 VPS \u2013 simply ask our admins, sit back, and relax. Our admins will install Mastodon on Ubuntu 18.04 for you immediately.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>PS.<\/strong><\/span> If you liked this post on how to install Mastodon on an Ubuntu 18.04 VPS, please share it with your friends on the social networks using the buttons below, or simply leave a comment in the comments section. Thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will install Mastodon on an Ubuntu 18.04 VPS. Mastodon is a free and open-source network platform &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Install Mastodon on Ubuntu 18.04\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#more-30011\" aria-label=\"Read more about How to Install Mastodon on Ubuntu 18.04\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":31934,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,1698],"tags":[],"class_list":["post-30011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-ubuntu","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Install Mastodon on Ubuntu 18.04 | RoseHosting<\/title>\n<meta name=\"description\" content=\"How to Install Mastodon on Ubuntu 18.04 | RoseHosting\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install Mastodon on Ubuntu 18.04\" \/>\n<meta property=\"og:description\" content=\"How to Install Mastodon on Ubuntu 18.04 | RoseHosting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-04T16:03:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-03T08:33:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"How to Install Mastodon on Ubuntu 18.04\",\"datePublished\":\"2019-09-04T16:03:10+00:00\",\"dateModified\":\"2022-06-03T08:33:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/\"},\"wordCount\":1254,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/how-to-install-mastodon-on-ubuntu18.04.jpg\",\"articleSection\":[\"Tutorials\",\"Ubuntu\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/\",\"name\":\"How to Install Mastodon on Ubuntu 18.04 | RoseHosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/how-to-install-mastodon-on-ubuntu18.04.jpg\",\"datePublished\":\"2019-09-04T16:03:10+00:00\",\"dateModified\":\"2022-06-03T08:33:30+00:00\",\"description\":\"How to Install Mastodon on Ubuntu 18.04 | RoseHosting\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/how-to-install-mastodon-on-ubuntu18.04.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/how-to-install-mastodon-on-ubuntu18.04.jpg\",\"width\":742,\"height\":372},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-install-mastodon-on-ubuntu-18-04\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Install Mastodon on Ubuntu 18.04\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/RoseHosting\",\"https:\\\/\\\/x.com\\\/rosehosting\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/rosehosting\\\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\\\/\\\/www.rosehosting.com\",\"https:\\\/\\\/www.facebook.com\\\/rosehosting.helpdesk\"],\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/author\\\/jwilson\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Install Mastodon on Ubuntu 18.04 | RoseHosting","description":"How to Install Mastodon on Ubuntu 18.04 | RoseHosting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/","og_locale":"en_US","og_type":"article","og_title":"How to Install Mastodon on Ubuntu 18.04","og_description":"How to Install Mastodon on Ubuntu 18.04 | RoseHosting","og_url":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2019-09-04T16:03:10+00:00","article_modified_time":"2022-06-03T08:33:30+00:00","og_image":[{"width":742,"height":372,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg","type":"image\/jpeg"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"How to Install Mastodon on Ubuntu 18.04","datePublished":"2019-09-04T16:03:10+00:00","dateModified":"2022-06-03T08:33:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/"},"wordCount":1254,"commentCount":2,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg","articleSection":["Tutorials","Ubuntu"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/","url":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/","name":"How to Install Mastodon on Ubuntu 18.04 | RoseHosting","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg","datePublished":"2019-09-04T16:03:10+00:00","dateModified":"2022-06-03T08:33:30+00:00","description":"How to Install Mastodon on Ubuntu 18.04 | RoseHosting","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2019\/08\/how-to-install-mastodon-on-ubuntu18.04.jpg","width":742,"height":372},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-mastodon-on-ubuntu-18-04\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Install Mastodon on Ubuntu 18.04"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/30011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=30011"}],"version-history":[{"count":1,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/30011\/revisions"}],"predecessor-version":[{"id":41701,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/30011\/revisions\/41701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/31934"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=30011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=30011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=30011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}