{"id":842,"date":"2023-10-17T05:09:01","date_gmt":"2023-10-17T05:09:01","guid":{"rendered":"https:\/\/blog.vavensoft.com\/?p=842"},"modified":"2023-10-17T05:09:01","modified_gmt":"2023-10-17T05:09:01","slug":"step-by-step-guide-to-setting-up-your-own-mastodon-server","status":"publish","type":"post","link":"https:\/\/blog.vavencloud.com\/?p=842","title":{"rendered":"Step-by-Step Guide to Setting Up Your Own Mastodon Server"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What is Mastodon?<\/h2>\n\n\n\n<p>Mastodon is a decentralized social network comprised of separate servers focused on specific themes, topics, or interests. Users can join these servers, follow others, engage in conversations, and perform activities similar to what you&#8217;d typically do on platforms like Twitter.<\/p>\n\n\n\n<p>Mastodon has been in existence since March 2016, but it gained significant popularity in late 2022, thanks to a notable acquisition of a particular social media platform.<\/p>\n\n\n\n<p>A Mastodon website can function independently, much like a regular website. Users sign up, post messages, share pictures, and have conversations, similar to what you&#8217;d expect on any website. However, unlike traditional websites, Mastodon websites can connect and interact with each other. This means that users from different Mastodon websites can communicate, much like how you can send an email from your Gmail account to someone using Outlook, Fastmail, Protonmail, or any other email service, as long as you have their email address. In the same way, you can mention or send messages to anyone on any Mastodon website if you know their username or address.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Mastodon vs. Twitter: Exploring the Differences in Social Media Platforms<\/strong><\/h2>\n\n\n\n<p>In the world of social media, Mastodon stands out because it&#8217;s all about people having control and being part of a community. It&#8217;s not like Twitter, which is really popular but has some problems like keeping your data private and not being clear about how its rules work.<\/p>\n\n\n\n<p>Mastodon is different. It&#8217;s like a friendly neighborhood where everyone helps make the rules. On Twitter, special computer rules decide which posts you see first, which can make you only see similar things and never have a real conversation. But on Mastodon, you see posts in the order they were made, which makes it open and friendly.<\/p>\n\n\n\n<p>What&#8217;s more, on Mastodon, you can even make your own neighborhood and have your own rules. You and your neighbors decide what&#8217;s okay and what&#8217;s not. This makes Mastodon a unique and user-friendly social place.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Benefits of Hosting Your Own Instance<\/strong><\/h2>\n\n\n\n<p>When it comes to Mastodon, you have choices: join an existing group or start your own. Let&#8217;s break it down. Joining an existing group is like moving into a ready-made neighborhood; you&#8217;re part of a community right away. But you can&#8217;t customize much. On the other hand, having your own group has lots of benefits. You&#8217;re the boss; you can make it look and work as you like. You decide the rules, creating a cozy place for you and your friends. Your data is yours, so privacy is no problem.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.vavensoft.com\/wp-content\/uploads\/2023\/10\/mastodon-1-1024x524.png\" alt=\"\" class=\"wp-image-891\" style=\"width:715px;height:auto\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creating Your Own Mastodon Server&nbsp;<\/h2>\n\n\n\n<p>Before you start your own Mastodon community, remember a few things. You&#8217;ll need a server or instance. Also, you must have a proper domain. You can get a domain from any domain provider, and they offer different servers, too. The server you choose depends on how many people will use your Mastodon and how active it is. If you want more options, they have different server configurations too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pre-requisites\">Pre-requisites<a href=\"https:\/\/docs.joinmastodon.org\/admin\/install\/#pre-requisites\"><\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A computer running Ubuntu 20.04 or Debian 11, where you have full administrative access (root access).<\/li>\n\n\n\n<li>Choose a domain name (or subdomain) for your Mastodon server, for example, example.com.<\/li>\n\n\n\n<li>An email delivery service or another SMTP server.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Creating a mastodon System User and granting it administrative privileges<\/h2>\n\n\n\n<p>To begin, go to the root and create your Mastodon user using the &#8216;adduser&#8217; command.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo su -<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>adduser mastodon<\/code><\/pre>\n\n\n\n<p>Following that, add your Mastodon user to the sudo group to provide it with administrative privileges:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>usermod -aG sudo mastodon<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Setting Up Mastodon: Installing Dependencies and Cloning the Repository<\/strong><\/h2>\n\n\n\n<p>Before proceeding, ensure that you have installed curl, wget, GnuPG, apt-transport-https, lsb-release, and ca-certificates.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates\n<\/code><\/pre>\n\n\n\n<p>Node.js<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>curl -sL https:\/\/deb.nodesource.com\/setup_16.x | bash -<\/code><\/pre>\n\n\n\n<p>install Node.js 16.x and npm<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt-get install -y nodejs<\/code><\/pre>\n\n\n\n<p>You might also require development tools for creating native add-ons.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt-get install gcc g++ make<\/code><\/pre>\n\n\n\n<p>To install the Yarn package manager, run:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>curl -sL https:\/\/dl.yarnpkg.com\/debian\/pubkey.gpg | gpg --dearmor | sudo tee \/usr\/share\/keyrings\/yarnkey.gpg &gt;\/dev\/null<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>echo \"deb &#91;signed-by=\/usr\/share\/keyrings\/yarnkey.gpg] https:\/\/dl.yarnpkg.com\/debian stable main\" | sudo tee \/etc\/apt\/sources.list.d\/yarn.list<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt-get update\napt-get install yarn<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>wget -O \/usr\/share\/keyrings\/postgresql.asc https:\/\/www.postgresql.org\/media\/keys\/ACCC4CF8.asc<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>echo \"deb &#91;signed-by=\/usr\/share\/keyrings\/postgresql.asc] http:\/\/apt.postgresql.org\/pub\/repos\/apt $(lsb_release -cs)-pgdg main\" &gt; \/etc\/apt\/sources.list.d\/postgresql.list<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"system-packages\">Install System packages<a href=\"https:\/\/docs.joinmastodon.org\/admin\/install\/#system-packages\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt update<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>apt install -y \\\n  imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \\\n  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \\\n  bison build-essential libssl-dev libyaml-dev libreadline6-dev \\\n  zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \\\n  nginx redis-server redis-tools postgresql postgresql-contrib \\\n  certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev<\/code><\/pre>\n\n\n\n<p>To use yarn, activate Node.js&#8217;s corepack, which is included by default.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>corepack enable<\/code><\/pre>\n\n\n\n<p>Yarn has two distinct development paths, one being version 1.0 (known as classic), and the other being version 2.0. Mastodon specifically needs the classic version of yarn. You can enable this classic version using the command: &#8220;yarn set version&#8221;.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>yarn set version classic<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installing-ruby\"><strong>Installing Ruby<\/strong><a href=\"https:\/\/docs.joinmastodon.org\/admin\/install\/#installing-ruby\"><\/a><\/h3>\n\n\n\n<p>To make managing Ruby versions simpler and more efficient, we&#8217;ll use rbenv. With rbenv, it&#8217;s easier to obtain the correct Ruby versions and update them when new releases become available. However, it&#8217;s important to note that rbenv must be installed for a specific Linux user. Therefore, the first step is to create the user that Mastodon will run as.<\/p>\n\n\n\n<p>switch to mastodon user<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>su - mastodon<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>git clone https:\/\/github.com\/rbenv\/rbenv.git ~\/.rbenv<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>cd ~\/.rbenv\nsrc\/configure \nmake -C src<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>echo 'export PATH=\"$HOME\/.rbenv\/bin:$PATH\"' &gt;&gt; ~\/.bashrc<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>echo 'eval \"$(rbenv init -)\"' &gt;&gt; ~\/.bashrc<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>exec bash<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>git clone https:\/\/github.com\/rbenv\/ruby-build.git ~\/.rbenv\/plugins\/ruby-build<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.2<\/code><\/pre>\n\n\n\n<p>To set this Ruby version as the new default.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>rbenv global 3.2.2<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>gem install bundler --no-document<\/code><\/pre>\n\n\n\n<p>If you find the new version of Gem use this command to install <\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>gem update --system 3.4.20<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up PostgreSQL<\/h3>\n\n\n\n<p>You should create a PostgreSQL user for Mastodon. In a basic setup, the simplest approach is to use &#8220;ident&#8221; authentication. This means that the PostgreSQL user doesn&#8217;t have a separate password and can be accessed by the Linux user with the same username.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo -u postgres createuser --interactive<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-verse has-text-align-left\">Output\nEnter name of role to add: <strong>mastodon<\/strong>\nShall the new role be a superuser? (y\/n) <strong>y<\/strong><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-up-mastodon\">Setting up Mastodon<\/h2>\n\n\n\n<p>To obtain the latest stable release of Mastodon, use Git to download the code.<a href=\"https:\/\/docs.joinmastodon.org\/admin\/install\/#setting-up-mastodon\"><\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/home\/mastodon\/ <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/mastodon\/mastodon.git live\ncd live<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>git checkout $(git tag -l | grep '^v&#91;0-9.]*$' | sort -V | tail -n 1)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"installing-the-last-dependencies\">Installing the last dependencies<a href=\"https:\/\/docs.joinmastodon.org\/admin\/install\/#installing-the-last-dependencies\"><\/a><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>bundle config deployment 'true'\nbundle config without 'development test'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>bundle install -j$(getconf _NPROCESSORS_ONLN)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>yarn install --pure-lockfile<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-left\">The two &#8220;bundle config&#8221; commands are necessary only during the initial dependency installation. If you plan to update or reinstall dependencies at a later time, you can simply use &#8220;bundle install.&#8221;<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Run the interactive setup of Mastodon<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>RAILS_ENV=production bundle exec rake mastodon:setup<\/code><\/pre>\n\n\n\n<p>Please enter your domain name. make sure your input is accurate because changing it later can be challenging.<\/p>\n\n\n\n<p>Mastodon offers a single-user mode where registrations are disabled. If your goal is to create a shared space with others, it&#8217;s important not to enable the single-user mode.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Your instance is identified by its domain name. Changing it afterward will break things.\nDomain name: <strong>example.com<\/strong>\n\nDo you want to enable single user mode? (y\/N) <strong>N<\/strong>\n\nAre you using Docker to run Mastodon? (Y\/n) <strong>N<\/strong><\/pre>\n\n\n\n<p>During the PostgreSQL setup, you can keep all the settings as their defaults by simply pressing Enter for each prompt. Your database doesn&#8217;t rely on a password for authentication; instead, it uses peer authentication, which we&#8217;ll explain further later on. For now, you can leave these settings empty.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">PostgreSQL host:(\/var\/run\/postgresql) <strong>\/var\/run\/postgresql<\/strong>\nPostgreSQL port: (5432) <strong>5432<\/strong>\nName of PostgreSQL database: (mastodon_production) <strong>mastodon_production<\/strong>\nName of PostgreSQL user: (mastodon) <strong>mastodon<\/strong>\nPassword of PostgreSQL user: \n<strong>Database configuration works!<\/strong><\/pre>\n\n\n\n<p>Since this database is meant to be accessible only locally on this server, there&#8217;s no need to set up a password so, you can keep the Redis settings at their default values, and you can leave the password field empty.  Just press Enter for each prompt.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Redis host:(localhost) <strong>localhost<\/strong>\nRedis port:(6379) <strong>6379<\/strong>\nRedis password: \n<strong>Redis configuration works!<\/strong><\/pre>\n\n\n\n<p>In the next step, you have two options: use local storage or set up cloud storage with various providers. you&#8217;ll be prompted to decide how you want to handle file storage for Mastodon. If you prefer local storage please select &#8220;No.&#8221; if you want to store on cloud storage an immediate cloud storage solution is ready.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Do you want to store uploaded files on the cloud? (y\/N) <strong>N<\/strong><\/pre>\n\n\n\n<p>Mastodon needs access to an SMTP email server to send emails. Maintaining a secure and reliable email server is challenging, so an external provider is recommended. It&#8217;s best to use an external email service provider. Note that most charges are based on usage, and some offer a free tier up to a certain limit. Use your discretion in this situation.<\/p>\n\n\n\n<p>When using email providers, you&#8217;ll need to create and configure an account. After signing up, you typically have to verify your domain by adding DNS records. You&#8217;ll also require an API key for secure authentication. The exact process varies by provider.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Do you want to send e-mails from localhost? No\nSMTP server: (smtp.mailgun.org) <strong>smtp.mailgun.org<\/strong>\nSMTP port: (587) <strong>587<\/strong>\nSMTP username:\nSMTP password: \nSMTP authentication: (plain) \n\nSMTP OpenSSL verify mode: none\n\nEnable STARTTLS: auto\n  \nE-mail address to send e-mails \"from\":mastodon&lt;notification@mailgun.org>\n\nSend a test e-mail with this configuration ? (Y\/n)Y\n\nDo you want Mastodon to periodically check for important updates and notify you? (Recommended) (Y\/n) <strong>Y<\/strong>\n\nThis configuration will be written to .env.production\nSave configuration? (Y\/n) <strong>Y<\/strong>\n\nNow that configuration is saved, the database schema must be loaded.\nIf the database already exists, this will erase its contents.\nPrepare the database now? Yes\nRunning `RAILS_ENV=production rails db:setup` ...\n\n\nCreated database 'mastodon_production'\nDone!\n\nThe final step is compiling CSS\/JS assets.\nThis may take a while and consume a lot of RAM.\nCompile the assets now? Yes\n<\/pre>\n\n\n\n<p>Your Mastodon server is ready, but it&#8217;s not running yet. You&#8217;ll be prompted to create an administrator account for logging into your Mastodon server.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Do you want to create an admin user straight away? (Y\/n) Y\nUsername: (admin) \nE-mail: <\/pre>\n\n\n\n<p>To check the contents of your generated Mastodon configuration file, open it using the &#8220;nano&#8221; text editor or your preferred text editor.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim ~\/live\/.env.production<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Setting Up Nginx for Mastodon<\/strong> with Certbot<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up Certbot<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code> sudo certbot certonly --nginx -d &lt;your_domain&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up Nginx<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/home\/mastodon\/live\/dist\/nginx.conf \/etc\/nginx\/sites-available\/mastodon<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/etc\/nginx\/sites-available\/mastodon \/etc\/nginx\/sites-enabled\/mastodon<\/code><\/pre>\n\n\n\n<p>Open the file located at <code>\/etc\/nginx\/sites-available\/mastodon<\/code> in a text editor.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo vim \/etc\/nginx\/sites-enabled\/mastodon <\/code><\/pre>\n\n\n\n<p>Inside this file, replace all instances of &#8220;example.com&#8221; with your own domain name. Make any other necessary adjustments according to your configuration needs. Look for lines beginning with &#8220;ssl_certificate&#8221; and &#8220;ssl_certificate_key.&#8221; Remove the &#8220;#&#8221; symbol at the beginning of these lines to uncomment them. Then, replace the path in these lines with the correct file paths for your SSL certificate and key, which should correspond to your domain name. Save the file, after making the changes.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up systemd services<\/h3>\n\n\n\n<p>Please copy the systemd service templates from the Mastodon directory and paste in the systemd\/system directory<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo cp \/home\/mastodon\/live\/dist\/mastodon-*.service \/etc\/systemd\/system\/<\/code><\/pre>\n\n\n\n<p>If you made any changes from the default settings, please double-check that the username and file paths are accurate.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo vim \/etc\/systemd\/system\/mastodon-*.service<\/code><\/pre>\n\n\n\n<p>Lastly, begin and activate the new systemd services.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo systemctl daemon-reload<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>sudo systemctl start mastodon-sidekiq mastodon-web<\/code><\/pre>\n\n\n\n<p>These services will now start automatically during boot.<\/p>\n\n\n\n<p>To access your mastodon toy need to copy your domain and search on the browser it will open your mastodon account click on login and login with the credentials you get while setting up mastodon.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/blog.vavensoft.com\/wp-content\/uploads\/2023\/10\/mastodon-2-1024x524.png\" alt=\"\" class=\"wp-image-934\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>What is Mastodon? Mastodon is a decentralized social network comprised of separate servers focused on specific themes, topics, or interests. Users can join these servers, follow others, engage in conversations, and perform activities similar to what you&#8217;d typically do on platforms like Twitter. Mastodon has been in existence since March 2016, but it gained significant [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-step-by-step-guides"],"_links":{"self":[{"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/wp\/v2\/posts\/842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=842"}],"version-history":[{"count":0,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/wp\/v2\/posts\/842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.vavencloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}