{"id":15063,"date":"2022-09-26T04:34:50","date_gmt":"2022-09-26T04:34:50","guid":{"rendered":"https:\/\/www.insentragroup.com\/us\/?p=15063"},"modified":"2024-12-13T02:01:27","modified_gmt":"2024-12-13T02:01:27","slug":"how-to-create-your-own-source-repository","status":"publish","type":"post","link":"https:\/\/www.insentragroup.com\/us\/insights\/geek-speak\/cloud-and-modern-data-center\/how-to-create-your-own-source-repository\/","title":{"rendered":"How to Create Your Own Source Repository"},"content":{"rendered":"\n<p>Have you ever wondered if you could create your own source repository instead of using the public source repositories? At the end of the day, if you submit your code to a cloud-based repository, who owns the code? Is it still you?<\/p>\n\n\n\n<p>Personally, I like being in control of my intellectual property and to move the code whenever I want. Therefore, the reason I created this little guide to help you build your own local source repository.<\/p>\n\n\n\n<p>Moreover, we are using Open Source GitLab code deployed on a Podman container (you can check out more on Pods in my blog article on <a href=\"https:\/\/www.insentragroup.com\/us\/insights\/geek-speak\/modern-workplace\/deploying-xwiki-using-podman-pod\/\" target=\"_blank\" rel=\"noreferrer noopener\">Deploying Xwiki using Podman Pod<\/a>). This implies you can use this as your testing base, but I suggest you learn how to use GitLab efficiently before you start using the public GitLab in anger- trust me!<\/p>\n\n\n\n<p>Please note: The following has been deployed on <a href=\"https:\/\/www.insentragroup.com\/us\/services\/technology-partners\/\" target=\"_blank\" rel=\"noreferrer noopener\">Red Hat<\/a> Enterprise Linux 9.0, but it will work on Rocky Linux or Fedora Server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Build the RHEL 9.0 server with at least 4vCPUs and 8GB RAM.<\/li><li>Ensure an additional 20-30GB of storage has been allocated to \/var\/lib\/containers and the file system has been created on LVM volume.<\/li><li>Ensure the host has a FQDN and both: A and PTR records have been registered in the DNS.<\/li><li>Register the server using subscription manager (in case of Red Hat Enterprise Linux server):<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># subscription-manager register<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Update the server:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># dnf upgrade --refresh -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Install podman packages:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># dnf install podman podman-remote podman-docker podman-plugins -y<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<ul class=\"wp-block-list\"><li>We need to update the ssh service and enable the ssh service to run on port 2222\/tcp (we will use 22\/tcp for Gitlab).<\/li><\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:40px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<ol class=\"wp-block-list\"><li>Edit \/etc\/ssh\/sshd_config file and update the Port variable:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>Port 2222<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>Update SELinux to allow ssh on 2222\/tcp:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>semanage port -a -t ssh_port_t -p tcp 2222\nsemanage port -l | grep ssh\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\"><li>Update ssh.xml firewalld service file:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>cp \/lib\/firewalld\/services\/ssh.xml \/etc\/firewalld\/services\/<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\"><li>The following represents the ssh.xml file after changes:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;service&gt;\n  &lt;short&gt;SSH&lt;\/short&gt;\n\n&lt;description&gt;Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.&lt;\/description&gt;\n  &lt;port protocol=\"tcp\" port=\"22\"\/&gt;\n  &lt;port protocol=\"tcp\" port=\"2222\"\/&gt;\n&lt;\/service&gt;\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\"><li>Reload firewall rules:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --reload<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"6\"><li>Restart ssh (remember ssh will be listening on port 2222\/tcp):<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart sshd<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>Run the following command to start the GitLab container:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># podman run -dt -h $(hostname -f) \\\n-p 443:443 \\\n-p 80:80 \\\n-p 22:22 \\\n--name gitlab \\\n-v gitlab_config:\/etc\/gitlab:Z \\\n-v gitlab_logs:\/var\/log\/gitlab:Z \\\n-v gitlab_home:\/var\/opt\/gitlab \\\n--shm-size 256m \\\ngitlab\/gitlab-ee:latest\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>It will take a while for GitLab to configure itself and start, you can observe the progress using the following command:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># podman logs -f gitlab<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Open the firewall ports on the host:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --add-service=https --add-service=http --permanent\nfirewall-cmd --reload\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Generate systemd unit file for GitLab container:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/systemd\/system\/\npodman generate systemd --new --files --name gitlab\nsystemctl daemon-reload\nsystemctl enable --now container-gitlab.service\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Update GitLab configuration file.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:40px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<ol class=\"wp-block-list\" start=\"7\"><li>Edit the configuration file using the following command:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>podman exec -it gitlab vi \/etc\/gitlab\/gitlab.rb<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"8\"><li>Change the following line to the fqdn of the server (in the following example, the fqdn is rh9.example.net):<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>external_url 'https:\/\/rh9.example.net'<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"9\"><li>Enable self-signed certificate (Update the email. In the original you will have just empty brackets []. Enclose your email in quotations):<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>letsencrypt&#91;'enable'] = true\nletsencrypt&#91;'contact_emails'] = &#91;'user@example.net']\n<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>Restart the service to generate the certificate:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart container-gitlab.service<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Once the container starts, get the initial GitLab password:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>podman exec -it gitlab grep 'Password:' \/etc\/gitlab\/initial_root_password<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Login to GitLab using the fqdn of the host where the GitLab container is running.<\/li><li>Navigate to User settings and change the root password:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"391\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-17-1024x391.png\" alt=\"\" class=\"wp-image-15066\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-17-1024x391.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-17-300x115.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-17-768x293.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-17.png 1183w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Navigate to Menu \u2192 Admin Area \u2192 Settings \u2192 General and expand Sign-up restrictions. Disable Sign-up enabled and click Save Changes.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-18-1024x551.png\" alt=\"\" class=\"wp-image-15067\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-18-1024x551.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-18-300x161.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-18-768x413.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-18.png 1193w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>There are plenty of additional settings, but you can investigate this for yourself. Do not be afraid to break the config. At the end of the day, it is enough to remove the volumes and start from scratch:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>podman volumes list\npodman volume rm gitlab_config\npodman volume rm gitlab_home\npodman volume rm gitlab_logs\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Adding New Users<\/h2>\n\n\n\n<p>Let\u2019s face it, we could run everything using the admin user, but it is not the right solution when you are sharing the space with many other people and you would like to ensure security.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>To add a new user, login to GitLab using the root user and navigate to Menu \u2014&gt; Admin Area \u2014&gt; Users and click New User.<\/li><li>Fill out the form. The following screenshot is an example:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1003\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-19-1024x1003.png\" alt=\"\" class=\"wp-image-15068\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-19-1024x1003.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-19-300x294.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-19-768x753.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-19.png 1044w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>The next time the user logs in, they will be asked to reset the password.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Adding SSH Keys for Authentication<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Log into GitLab using your standard user credentials (the user who is going to push the code to the repositories).<\/li><li>In the top-right corner, click on the avatar and select preferences:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"883\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-20.png\" alt=\"\" class=\"wp-image-15069\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-20.png 807w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-20-274x300.png 274w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-20-768x840.png 768w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Select SSH Keys<\/li><li>Login to the host from which you are planning to push the code and execute the following command (if you work as a root):<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel8 ~]# cat ~\/.ssh\/id_rsa.pub \nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTHXwjoyJuVcvni1pv43hodioePD1zegJux5XJk0hY7MKTSjjFzlO3ZUrvhlzQnNgXG8hd9zs3ToVgs\/nMIDbDJFb8bhb+ylHRjgkJ0JscndJEpfGDMdobmjYMTyYtcVpTsM3eLHJSPJwymA5C063rBB3bM3ArKD5YZwNcwmt+UsSKb4QwN1q4yDRK6lAheVp60636GVk6Zv1L5JLW1q0aNb4z6QYwVDIVIHA+HsBvL9w+bIaOeVuGfMwMoZTJ7NFVYlsqQ3K4OgbOL6oVLxyYDhOhgrC\/9ospq2nOXya\/aC2rrujEcRThNgI+BXNWEfQ5KWg2W2UGlvCUvCkJ98nT root@rhel8.example.net\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>In case you don\u2019t have the key, run the following command:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel8 ~]# ssh-keyget -t rsa -b 2048 <\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Copy the id_rsa.pub key and paste in the Key field in GitLab Settings.<\/li><li>Optionally \u2013 add the Expiration date and click Add key:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"669\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-21-1024x669.png\" alt=\"\" class=\"wp-image-15070\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-21-1024x669.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-21-300x196.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-21-768x502.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-21.png 1158w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-22-1024x403.png\" alt=\"\" class=\"wp-image-15071\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-22-1024x403.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-22-300x118.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-22-768x302.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-22.png 1185w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Adding a New Project<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Log into GitLab.<\/li><li>Click on \u2018New project\u2019.<\/li><li>Click on \u2018Create blank project\u2019.<\/li><li>In the \u2018Create blank project\u2019 view, specify the Project name, select Visibility Level to \u2018Internal\u2019 and click \u2018Create project\u2019:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"570\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-23-1024x570.png\" alt=\"\" class=\"wp-image-15072\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-23-1024x570.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-23-300x167.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-23-768x427.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-23.png 1127w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Given you do not have the privileges required to push to the main branch, we need to change this setting. On the top of the page, there should be a \u2018Settings\u2019 button. Click it.<\/li><li>In the left panel, under Settings click on \u2018Repository\u2019.<\/li><li>In the Right panel, click on Expand in \u2018Protected branches\u2019.<\/li><li>Enable \u2018Allowed to push\u2019 to \u2018Developers + Maintainers\u2019.<\/li><li>Enable \u2018Allowed to force push\u2019:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"855\" src=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-24-1024x855.png\" alt=\"\" class=\"wp-image-15073\" srcset=\"https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-24-1024x855.png 1024w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-24-300x251.png 300w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-24-768x641.png 768w, https:\/\/www.insentragroup.com\/us\/wp-content\/uploads\/sites\/21\/2022\/09\/image-24.png 1049w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Navigate to the server where you developed the code. Make sure to use the user for which the ssh key has been installed in GitLab.<\/li><li>Navigate to the directory where the code is stored. For example:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ansible-pack\ngit init\ngit add .\ngit commit -m \"Initial Commit\"\ngit remote add origin git@rh9.example.net:jdoe\/ansible-host-provisioning.git\ngit branch -M main\ngit push -uf origin main\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>GitLab is designed to make DevOps easier for developers and that extends to the creation of your own source repositories.<\/p>\n\n\n\n<p>I hope you\u2019ve found this post informative and easy to follow, but there\u2019s a lot more to learn and I can\u2019t wait to cover more on it (let us know if you have specific <a>topics<\/a> you\u2019d like me to delve into).<\/p>\n\n\n\n<p>To find out more about how Insentra can help your business navigate a changing technological landscape, please feel free to <a href=\"https:\/\/www.insentragroup.com\/us\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">contact us<\/a> today.<\/p>\n\n\n\n<style>\nbody .wp-block-code>code {\n    color: #000;\n    background: #ccc;\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"<p>If you submit code to a cloud-based repository, who owns it? Stay in control of your IP and build your own local source repository with GitLab.<\/p>\n","protected":false},"author":67,"featured_media":15075,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[21],"tags":[],"class_list":["post-15063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-and-modern-data-center","entry"],"_links":{"self":[{"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/posts\/15063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/comments?post=15063"}],"version-history":[{"count":5,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/posts\/15063\/revisions"}],"predecessor-version":[{"id":15159,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/posts\/15063\/revisions\/15159"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/media\/15075"}],"wp:attachment":[{"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/media?parent=15063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/categories?post=15063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.insentragroup.com\/us\/wp-json\/wp\/v2\/tags?post=15063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}