{"id":207,"date":"2022-05-04T10:56:09","date_gmt":"2022-05-04T17:56:09","guid":{"rendered":"https:\/\/www.cmsws.com\/blog\/?page_id=207"},"modified":"2023-05-30T13:08:28","modified_gmt":"2023-05-30T20:08:28","slug":"install-freeside-v3-x","status":"publish","type":"page","link":"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/","title":{"rendered":"Install Freeside v3.X"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bootstrapping\"><\/span>Bootstrapping<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Bootstrapping\" >Bootstrapping<\/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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Configure_Freeside_repos\" >Configure Freeside repos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Debian_9_stretch\" >Debian 9 (stretch)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Debian_10_buster\" >Debian 10 (buster)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Administrative_package_setup_non-Freeside\" >Administrative package setup (non-Freeside)<\/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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Install_Freeside_Packages\" >Install Freeside Packages<\/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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Setup_Postgres\" >Setup Postgres<\/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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Bootstrap_RT\" >Bootstrap RT<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Request_Tracker_RT_settings\" >Request Tracker (RT) settings<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Bootstrap_Freeside\" >Bootstrap Freeside<\/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.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Setup_Apache\" >Setup Apache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.cmsws.com\/blog\/freeside-wisp-billing-software-platform\/install-freeside-v3-x\/#Finish_installation\" >Finish installation<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install Debian 9 Server with SSH (Unselect Desktop Install, Select SSH)<\/li>\n\n\n\n<li>login as root<\/li>\n\n\n\n<li>apt update &amp;&amp; apt -y upgrade &amp;&amp; apt-get -y autoremove &amp;&amp; apt-get -y autoclean<\/li>\n\n\n\n<li>apt install sudo<\/li>\n\n\n\n<li>adduser username &#8212; add a system user<\/li>\n\n\n\n<li>usermod -aG sudo username<\/li>\n<\/ul>\n\n\n\n<p>Connect via ssh or on the terminal as your normal linux system user and continue with the install.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configure_Freeside_repos\"><\/span>Configure Freeside repos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vi \/etc\/apt\/sources.list<\/code><\/pre>\n\n\n\n<p>Copy\/Paste:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Debian_9_stretch\"><\/span>Debian 9 (stretch)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Freeside Repos\ndeb &#091;trusted=yes] <a href=\"http:\/\/pkg.freeside.biz\/freeside-stretch\/\">http:\/\/pkg.freeside.biz\/freeside-stretch\/<\/a> .\/\ndeb &#091;trusted=yes] <a href=\"http:\/\/pkg.freeside.biz\/freeside3-stretch-testing\/\">http:\/\/pkg.freeside.biz\/freeside3-stretch-testing\/<\/a> .\/<\/code><\/pre>\n\n\n\n<p>or, use my own release of the Freeside software. This is currently available for Debian 9 only.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># My repo\ndeb &#091;trusted=yes] <a href=\"https:\/\/www.cmsws.com\/repo\/stretch\/freeside\/\">https:\/\/www.cmsws.com\/repo\/stretch\/freeside\/<\/a> .\/\ndeb &#091;trusted=yes] <a href=\"https:\/\/www.cmsws.com\/repo\/stretch\/freeside3\/\">https:\/\/www.cmsws.com\/repo\/stretch\/freeside3\/<\/a> .\/<\/code><\/pre>\n\n\n\n<p>note: out of the box, apt cannot use the https protocol. Be sure to install the &#8216;apt-transport-https&#8217; package.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Debian_10_buster\"><\/span>Debian 10 (buster)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Freeside Repos\ndeb &#091;trusted=yes] <a href=\"http:\/\/pkg.freeside.biz\/freeside-buster\/\">http:\/\/pkg.freeside.biz\/freeside-buster\/<\/a> .\/\ndeb &#091;trusted=yes] <a href=\"http:\/\/pkg.freeside.biz\/freeside3-stretch-testing\/\">http:\/\/pkg.freeside.biz\/freeside3-stretch-testing\/<\/a> .\/<\/code><\/pre>\n\n\n\n<p>Update and Upgrade system<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Administrative_package_setup_non-Freeside\"><\/span>Administrative package setup (non-Freeside)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Install packages that I find useful<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install exim4- exim4-base- exim4-config- exim4-daemon-light- \\\n                 dnsutils locate net-tools nmap rsync screen strace \\\n                 telnet traceroute whois<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_Freeside_Packages\"><\/span>Install Freeside Packages<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\"> sudo apt install freeside freeside-lib freeside-webui \\\n                 libbusiness-onlinepayment-cardfortress-perl \\\n                 libev-perl- \\\n                 liblocale-codes-perl \\\n                 liblocale-subcountry-perl=1.63-1 \\\n                 texlive-fonts-recommended-doc- \\\n                 texlive-latex-base-doc- \\\n                 texlive-latex-extra-doc- \\\n                 texlive-latex-recommended-doc- \\\n                 texlive-pictures-doc- \\\n                 texlive-pstricks-doc-<\/pre>\n\n\n\n<p>If you prefer to install a specific version of Freeside, view the list of all packages that have been generated and select a version. Adjust the line including the freeside package names accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">freeside=3.93~git-2019062510 freeside-lib=3.93~git-2019062510 freeside-webui=3.93~git-2019062510 \\<\/pre>\n\n\n\n<p><strong>Place hold on specific packages<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-mark hold 'freeside*' liblocale-subcountry-perl<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Setup_Postgres\"><\/span>Setup Postgres<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Create the freeside user in PostgreSQL<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su postgres -c \"createuser --createdb --no-createrole --no-superuser freeside\"<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configure \/usr\/local\/etc\/freeside\/secrets if necessary. This file contains three lines: DBI datasource, username and password\n<ul class=\"wp-block-list\">\n<li>See the <a href=\"https:\/\/metacpan.org\/pod\/DBI\">DBI manpage<\/a> and the manpage for your DBD for the exact syntax of your DBI data source.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>As the freeside user in PostgreSQL, create the freeside database<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c \"createdb -E UTF8 -T template0 freeside\"<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bootstrap_RT\"><\/span>Bootstrap RT<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Run these one at a time and enter your password during each one:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c '\/opt\/rt3\/sbin\/rt-setup-database --action schema'\nsudo su freeside -c '\/opt\/rt3\/sbin\/rt-setup-database --action coredata'\nsudo su freeside -c '\/opt\/rt3\/sbin\/rt-setup-database --action insert --datafile \/opt\/rt3\/etc\/initialdata'<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Request_Tracker_RT_settings\"><\/span>Request Tracker (RT) settings<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Open \/opt\/rt3\/etc\/RT_SiteConfig.pm and update or insert the following lines:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set rtname to your domain name (this is the same domain used with freeside-setup earlier)<\/li>\n\n\n\n<li>Set Organization to your company name<\/li>\n\n\n\n<li>Update Timezone<\/li>\n\n\n\n<li>Set RT::URI::freeside::URL to your local URL for Freeside<\/li>\n\n\n\n<li>Add the following lines:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">Set($WebPort, 443);\nSet($WebDomain, 'FQDN of their freeside server');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bootstrap_Freeside\"><\/span>Bootstrap Freeside<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If migrating then skip to the Setting up apache section<\/li>\n\n\n\n<li>Replace $DOMAIN with the customers domain, sets up database and temp permissions<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c \"freeside-setup -d $DOMAIN\"<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add default Freeside system users<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c \"freeside-adduser -g 1 fs_queue\"\nsudo su freeside -c \"freeside-adduser -g 1 fs_daily\"\nsudo su freeside -c \"freeside-adduser -g 1 fs_selfservice\"\nsudo su freeside -c \"freeside-adduser -g 1 fs_api\"<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add your user in<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c \"freeside-adduser -g 1 {freeside_username} {temp password}\"<\/pre>\n\n\n\n<p><em><strong>(after you log in for the first time reset your password using a more secure one)<\/strong><\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v3 uses htaccess authentication<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo htpasswd -c \/usr\/local\/etc\/freeside\/htpasswd {freeside_username}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Setup_Apache\"><\/span>Setup Apache<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Enable Apache modules and configuration<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo a2enconf freeside-base2\nsudo a2enconf freeside-rt\nsudo a2dismod mpm_event\nsudo a2enmod mpm_prefork\nsudo a2enmod rewrite\nsudo a2enmod ssl\nsudo chown freeside \/var\/lock\/apache2<\/pre>\n\n\n\n<p>Make a backup of your original \/etc\/apache2\/envvars file and modify user and group fields<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo cp \/etc\/apache2\/envvars \/etc\/apache2\/envvars.$(date +%s)\nsudo sed -i \"s\/www-data\/freeside\/g\" \/etc\/apache2\/envvars<\/pre>\n\n\n\n<p>Make a backup of your original \/etc\/apache2\/site-available\/000-default.conf file and make changes to the original file<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo cp \/etc\/apache2\/sites-available\/000-default.conf \/etc\/apache2\/sites-available\/000-default.conf.$(date +%s)<\/pre>\n\n\n\n<p>Add the following to the end of the default config file just before the closing &lt;\/VirtualHost&gt; block.<\/p>\n\n\n\n<p>sudo vi \/etc\/apache2\/sites-available\/000-default.conf<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\t&lt;Directory \/&gt;\n                Options +FollowSymLinks\n                AllowOverride None\n        &lt;\/Directory&gt;\n        &lt;Directory \/var\/www\/html&gt;\n                Options +Indexes +FollowSymLinks +MultiViews\n                AllowOverride None\n                Order allow,deny\n                allow from all\n        &lt;\/Directory&gt;\n\n        ScriptAlias \/cgi-bin\/ \/usr\/lib\/cgi-bin\/\n        &lt;Directory \"\/usr\/lib\/cgi-bin\"&gt;\n                AllowOverride None\n                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch\n                Order allow,deny\n                Allow from all\n        &lt;\/Directory&gt;\n        RewriteEngine   on\n        RewriteCond    &nbsp;%{SERVER_PORT} ^80$\n        RewriteCond    &nbsp;%{REMOTE_ADDR}&nbsp;!^127.0.0.1$\n        RewriteCond    &nbsp;%{REMOTE_ADDR}&nbsp;!^\\:\\:1$\n        RewriteRule     ^\/(.*)$ https:\/\/%{SERVER_NAME}\/$1 [L,R]<\/pre>\n\n\n\n<p>Enable the default Apache SSL site<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo a2ensite default-ssl<\/pre>\n\n\n\n<p>For an pre-built script that does all the above, copy\/paste the following into a script on your freeside server and run it.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># backup envars then change apache user and group\nsudo cp \/etc\/apache2\/envvars \/etc\/apache2\/envvars.$(date +%s)\nsudo sed -i \"s\/www-data\/freeside\/g\" \/etc\/apache2\/envvars\n\n# backup the original 000-default.conf  then create new \n\nsudo cp \/etc\/apache2\/sites-available\/000-default.conf \/etc\/apache2\/sites-available\/000-default.conf.$(date +%s)\nsudo bash -c 'cat &lt;&lt;EOF &gt;\/etc\/apache2\/sites-available\/000-default.conf\n&lt;VirtualHost *:80&gt;\n\t# The ServerName directive sets the request scheme, hostname and port that\n\t# the server uses to identify itself. This is used when creating\n\t# redirection URLs. In the context of virtual hosts, the ServerName\n\t# specifies what hostname must appear in the reques s Host: header to\n\t# match this virtual host. For the default virtual host (this file) this\n\t# value is not decisive as it is used as a last resort host regardless.\n\t# However, you must set it for any further virtual host explicitly.\n\t#ServerName www.example.com\n\n\tServerAdmin webmaster@localhost\n\tDocumentRoot \/var\/www\/html\n    \n\t# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,\n\t# error, crit, alert, emerg.\n\t# It is also possible to configure the loglevel for particular\n\t# modules, e.g.\n\t#LogLevel info ssl:warn\n\n\tErrorLog \\${APACHE_LOG_DIR}\/error.log\n\tCustomLog \\${APACHE_LOG_DIR}\/access.log combined\n\n\t# For most configuration files from conf-available\/, which are\n\t# enabled or disabled at a global level, it is possible to\n\t# include a line for only one particular virtual host. For example the\n\t# following line enables the CGI configuration for this host only\n\t# after it has been globally disabled with \"a2disconf\".\n\t#Include conf-available\/serve-cgi-bin.conf\n\n\t&lt;Directory \/&gt;\n                Options +FollowSymLinks\n                AllowOverride None\n        &lt;\/Directory&gt;\n        &lt;Directory \/var\/www\/html&gt;\n                Options +Indexes +FollowSymLinks +MultiViews\n                AllowOverride None\n                Order allow,deny\n                allow from all\n        &lt;\/Directory&gt;\n\n        ScriptAlias \/cgi-bin\/ \/usr\/lib\/cgi-bin\/\n        &lt;Directory \"\/usr\/lib\/cgi-bin\"&gt;\n                AllowOverride None\n                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch\n                Order allow,deny\n                Allow from all\n        &lt;\/Directory&gt;\n\tRewriteEngine   on\n\tRewriteCond    &nbsp;%{SERVER_PORT} ^80$\n\tRewriteCond    &nbsp;%{REMOTE_ADDR}&nbsp;!^127.0.0.1$\n\tRewriteCond    &nbsp;%{REMOTE_ADDR}&nbsp;!^\\:\\:1$\n\tRewriteRule     ^\/(.*)$ https:\/\/%{SERVER_NAME}\/$1 [L,R]\n\n&lt;\/VirtualHost&gt;\nEOF'\n\n# seems redundant, directory and files in sites-available owned by root\n# sudo chown -R root:root \/etc\/apache2\/sites-available\n\n# Enable modules\nsudo a2enconf freeside-base2\nsudo a2enconf freeside-rt\nsudo a2dismod mpm_event\nsudo a2enmod mpm_prefork\nsudo a2enmod rewrite\nsudo a2enmod ssl\nsudo chown freeside \/var\/lock\/apache2sudo\n\n# Enable Default SSL site\nsudo a2ensite default-ssl\n# ssl enabling complains, default now?<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Finish_installation\"><\/span>Finish installation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Converts templates to msg_template<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c 'freeside-upgrade freeside_username'<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start Apache\/Freeside<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo systemctl start freeside\nsudo systemctl restart apache2<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Login to the web interface, click on &#8220;Ticketing main&#8221;<\/li>\n\n\n\n<li>Bootstrap your RT Login, replace freeside_username with your freeside account name created above<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo su freeside -c psql\ninsert into acl ( principaltype, principalid, rightname, objecttype, objectid )\n         values ( 'Group',\n                 ( select id from groups where instance = ( select id from users where name = 'freeside_username' )\n                                           and domain = 'ACLEquivalence' and type = 'UserEquiv'        ),\n                  'SuperUser', 'RT::System', 1 );\n\\q<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Change your password through the preferences link (you can change it to the same password)<\/li>\n\n\n\n<li>Verify remote access to UI is via 443 only<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Bootstrapping Connect via ssh or on the terminal as your normal linux system user and continue with the install. Configure Freeside repos Copy\/Paste: Debian 9 (stretch) or, use my own release of the Freeside software. This is currently available for Debian 9 only. note: out of the box, apt cannot use the https protocol. Be sure to install the &#8216;apt-transport-https&#8217; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":142,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-207","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/pages\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":1,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/pages\/207\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/pages\/207\/revisions\/208"}],"up":[{"embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/pages\/142"}],"wp:attachment":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/media?parent=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}