{"id":803,"date":"2025-01-12T20:54:40","date_gmt":"2025-01-12T20:54:40","guid":{"rendered":"https:\/\/gratisvps.net\/blog\/?p=803"},"modified":"2025-01-12T20:54:40","modified_gmt":"2025-01-12T20:54:40","slug":"self-hosted-hasura-gotrue","status":"publish","type":"post","link":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/","title":{"rendered":"Self-Hosted Hasura + GoTrue"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><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><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Self-Hosted_Hasura_GoTrue_A_Comprehensive_Guide\" >Self-Hosted Hasura + GoTrue: A Comprehensive Guide<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Introduction\" >Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#1_Understanding_Hasura_and_GoTrue\" >1. Understanding Hasura and GoTrue<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#11_What_is_Hasura\" >1.1. What is Hasura?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#12_What_is_GoTrue\" >1.2. What is GoTrue?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#2_Setting_Up_the_Environment\" >2. Setting Up the Environment<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#21_Prerequisites\" >2.1. Prerequisites<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#22_Choosing_a_Hosting_Platform\" >2.2. Choosing a Hosting Platform<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#3_Self-Hosting_Hasura\" >3. Self-Hosting Hasura<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#31_Installing_Docker\" >3.1. Installing Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#32_Deploying_Hasura_on_Docker\" >3.2. Deploying Hasura on Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#33_Configuring_Hasura\" >3.3. Configuring Hasura<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#4_Setting_Up_GoTrue\" >4. Setting Up GoTrue<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#41_Deploying_GoTrue\" >4.1. Deploying GoTrue<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#42_Configuring_GoTrue\" >4.2. Configuring GoTrue<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#5_Integrating_Hasura_with_GoTrue\" >5. Integrating Hasura with GoTrue<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#51_Setting_Up_Webhook_for_Authentication\" >5.1. Setting Up Webhook for Authentication<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#52_Configuring_Hasura_Permissions\" >5.2. Configuring Hasura Permissions<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#6_Testing_the_Setup\" >6. Testing the Setup<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#61_Creating_Users_with_GoTrue\" >6.1. Creating Users with GoTrue<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#62_Accessing_Hasura_with_JWT\" >6.2. Accessing Hasura with JWT<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#7_Advanced_Configurations\" >7. Advanced Configurations<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#71_Custom_Domains\" >7.1. Custom Domains<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#72_SSL_Configuration\" >7.2. SSL Configuration<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#8_Troubleshooting_Common_Issues\" >8. Troubleshooting Common Issues<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#9_FAQ\" >9. FAQ<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Q1_What_is_the_benefit_of_self-hosting_Hasura_and_GoTrue\" >Q1: What is the benefit of self-hosting Hasura and GoTrue?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Q2_Can_I_use_Hasura_with_other_authentication_methods\" >Q2: Can I use Hasura with other authentication methods?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Q3_How_do_I_scale_this_setup_for_production\" >Q3: How do I scale this setup for production?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Q4_What_are_some_alternatives_to_GoTrue\" >Q4: What are some alternatives to GoTrue?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#Q5_Can_I_deploy_this_on_a_local_machine\" >Q5: Can I deploy this on a local machine?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#10_Conclusion\" >10. Conclusion<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1 id=\"self-hosted-hasura--gotrue-a-comprehensive-guide\"><span class=\"ez-toc-section\" id=\"Self-Hosted_Hasura_GoTrue_A_Comprehensive_Guide\"><\/span>Self-Hosted Hasura + GoTrue: A Comprehensive Guide<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2 id=\"introduction\"><span class=\"ez-toc-section\" id=\"Introduction\"><\/span>Introduction<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In the world of application development, speed and flexibility are crucial. Combining Hasura, a powerful GraphQL engine, with GoTrue, an authentication service, allows developers to build scalable applications rapidly with user authentication capabilities. This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.<\/p>\n\n<hr \/>\n<h2 id=\"1-understanding-hasura-and-gotrue\"><span class=\"ez-toc-section\" id=\"1_Understanding_Hasura_and_GoTrue\"><\/span>1. Understanding Hasura and GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"11-what-is-hasura\"><span class=\"ez-toc-section\" id=\"11_What_is_Hasura\"><\/span>1.1. What is Hasura?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Hasura is an open-source engine that provides a real-time GraphQL API over your PostgreSQL database. It allows developers to build applications quickly without worrying about the backend infrastructure. With Hasura, you can:<\/p>\n<ul>\n<li>Automatically generate GraphQL endpoints.<\/li>\n<li>Execute real-time queries.<\/li>\n<li>Manage permissions dynamically.<\/li>\n<\/ul>\n<h3 id=\"12-what-is-gotrue\"><span class=\"ez-toc-section\" id=\"12_What_is_GoTrue\"><\/span>1.2. What is GoTrue?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>GoTrue is an open-source API for managing user authentication and issuing JSON Web Tokens (JWT). It provides a simple and secure means to handle user registration, login, and session management. Key features include:<\/p>\n<ul>\n<li>Email and password authentication.<\/li>\n<li>JWT-based session management.<\/li>\n<li>Integration with third-party OAuth providers.<\/li>\n<\/ul>\n<h2 id=\"2-setting-up-the-environment\"><span class=\"ez-toc-section\" id=\"2_Setting_Up_the_Environment\"><\/span>2. Setting Up the Environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"21-prerequisites\"><span class=\"ez-toc-section\" id=\"21_Prerequisites\"><\/span>2.1. Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before starting, ensure you have the following:<\/p>\n<ul>\n<li>A modern <a href=\"https:\/\/gratisvps.net\/blog\/deploying-a-python-web-application-on-a-linux-vps\/\">web<\/a> browser.<\/li>\n<li>Basic knowledge of Docker and command-line interfaces.<\/li>\n<li>A PostgreSQL database (Can be hosted or local).<\/li>\n<li>Access to a VPS or a local machine to host Hasura and GoTrue.<\/li>\n<\/ul>\n<h3 id=\"22-choosing-a-hosting-platform\"><span class=\"ez-toc-section\" id=\"22_Choosing_a_Hosting_Platform\"><\/span>2.2. Choosing a Hosting Platform<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You can host Hasura and GoTrue on various platforms, including:<\/p>\n<ul>\n<li><strong>Cloud Providers<\/strong>: AWS, Google Cloud, Azure, DigitalOcean.<\/li>\n<li><strong>Local Machine<\/strong>: For development purposes, you can run everything locally.<\/li>\n<\/ul>\n<h2 id=\"3-self-hosting-hasura\"><span class=\"ez-toc-section\" id=\"3_Self-Hosting_Hasura\"><\/span>3. Self-Hosting Hasura<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"31-installing-docker\"><span class=\"ez-toc-section\" id=\"31_Installing_Docker\"><\/span>3.1. Installing Docker<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To deploy Hasura using Docker, first install Docker on your machine. Follow\u00a0<a href=\"https:\/\/docs.docker.com\/get-docker\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker&#8217;s official installation guide<\/a>\u00a0to set it up for your OS.<\/p>\n<p>Verify the installation by running:<\/p>\n<pre><code class=\"lang-bash hljs language-bash\">docker --version<\/code><\/pre>\n<h3 id=\"32-deploying-hasura-on-docker\"><span class=\"ez-toc-section\" id=\"32_Deploying_Hasura_on_Docker\"><\/span>3.2. Deploying Hasura on Docker<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create a\u00a0<code>docker-compose.yml<\/code>\u00a0file for Hasura:<\/p>\n<pre><code class=\"lang-yaml hljs language-yaml\"><span class=\"hljs-attr\">version:<\/span> <span class=\"hljs-string\">'3.6'<\/span>\r\n<span class=\"hljs-attr\">services:<\/span>\r\n  <span class=\"hljs-attr\">postgres:<\/span>\r\n    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">postgres:13<\/span>  \r\n    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">always<\/span>  \r\n    <span class=\"hljs-attr\">environment:<\/span>\r\n      <span class=\"hljs-attr\">POSTGRES_DB:<\/span> <span class=\"hljs-string\">hasura<\/span>  \r\n      <span class=\"hljs-attr\">POSTGRES_USER:<\/span> <span class=\"hljs-string\">admin<\/span>  \r\n      <span class=\"hljs-attr\">POSTGRES_PASSWORD:<\/span> <span class=\"hljs-string\">password<\/span>  \r\n    <span class=\"hljs-attr\">ports:<\/span>\r\n      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"5432:5432\"<\/span>\r\n\r\n  <span class=\"hljs-attr\">hasura:<\/span>\r\n    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">hasura\/graphql-engine:v2.0.10<\/span>  \r\n    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">always<\/span>  \r\n    <span class=\"hljs-attr\">ports:<\/span>\r\n      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"8080:8080\"<\/span>\r\n    <span class=\"hljs-attr\">environment:<\/span>\r\n      <span class=\"hljs-attr\">HASURA_GRAPHQL_DATABASE_URL:<\/span> <span class=\"hljs-string\">postgres:\/\/admin:password@postgres:5432\/hasura<\/span>  \r\n      <span class=\"hljs-attr\">HASURA_GRAPHQL_ENABLE_CONSOLE:<\/span> <span class=\"hljs-string\">\"true\"<\/span>\r\n      <span class=\"hljs-attr\">HASURA_GRAPHQL_ADMIN_SECRET:<\/span> <span class=\"hljs-string\">myadminsecretkey<\/span>  \r\n    <span class=\"hljs-attr\">depends_on:<\/span>\r\n      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">postgres<\/span><\/code><\/pre>\n<p>Run the following commands to start Hasura:<\/p>\n<pre><code class=\"lang-bash hljs language-bash\">docker-compose up -d<\/code><\/pre>\n<h3 id=\"33-configuring-hasura\"><span class=\"ez-toc-section\" id=\"33_Configuring_Hasura\"><\/span>3.3. Configuring Hasura<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Access the Hasura Console by navigating to\u00a0<code>http:\/\/localhost:8080<\/code>\u00a0in your web browser. Set the admin secret as\u00a0<code>myadminsecretkey<\/code>\u00a0when prompted.<\/p>\n<p>To create tables, click on &#8220;Data&#8221; in the console and use the UI to create your desired tables. For example, create a simple\u00a0<code>users<\/code>\u00a0table with fields like\u00a0<code>id<\/code>,\u00a0<code>email<\/code>, and\u00a0<code>created_at<\/code>.<\/p>\n<h2 id=\"4-setting-up-gotrue\"><span class=\"ez-toc-section\" id=\"4_Setting_Up_GoTrue\"><\/span>4. Setting Up GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"41-deploying-gotrue\"><span class=\"ez-toc-section\" id=\"41_Deploying_GoTrue\"><\/span>4.1. Deploying GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To deploy GoTrue, you can also use Docker. Create another\u00a0<code>docker-compose.yml<\/code>\u00a0file:<\/p>\n<pre><code class=\"lang-yaml hljs language-yaml\"><span class=\"hljs-attr\">version:<\/span> <span class=\"hljs-string\">'3.6'<\/span>\r\n<span class=\"hljs-attr\">services:<\/span>\r\n  <span class=\"hljs-attr\">gotrue:<\/span>\r\n    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">netlify\/gotrue<\/span>  \r\n    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">always<\/span>  \r\n    <span class=\"hljs-attr\">environment:<\/span>\r\n      <span class=\"hljs-attr\">GOTRUE_DATABASE_URL:<\/span> <span class=\"hljs-string\">postgres:\/\/admin:password@postgres:5432\/hasura<\/span>  \r\n      <span class=\"hljs-attr\">GOTRUE_JWT_SECRET:<\/span> <span class=\"hljs-string\">your_jwt_secret<\/span>  \r\n      <span class=\"hljs-attr\">GOTRUE_SITE_URL:<\/span> <span class=\"hljs-string\">http:\/\/localhost:8080<\/span>  \r\n    <span class=\"hljs-attr\">ports:<\/span>\r\n      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"9999:9999\"<\/span><\/code><\/pre>\n<p>Run the following commands to start GoTrue:<\/p>\n<pre><code class=\"lang-bash hljs language-bash\">docker-compose up -d<\/code><\/pre>\n<h3 id=\"42-configuring-gotrue\"><span class=\"ez-toc-section\" id=\"42_Configuring_GoTrue\"><\/span>4.2. Configuring GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Once GoTrue is running, you can access it on\u00a0<code>http:\/\/localhost:9999<\/code>. You can use the REST API to manage users. For example, to register a user, send a POST request to:<\/p>\n<pre><code class=\"hljs language-bash\">POST http:\/\/localhost:9999\/signup  \r\nContent-Type: application\/json\r\n\r\n{\r\n  <span class=\"hljs-string\">\"email\"<\/span>: <span class=\"hljs-string\">\"user@example.com\"<\/span>,\r\n  <span class=\"hljs-string\">\"password\"<\/span>: <span class=\"hljs-string\">\"password\"<\/span>\r\n}<\/code><\/pre>\n<h2 id=\"5-integrating-hasura-with-gotrue\"><span class=\"ez-toc-section\" id=\"5_Integrating_Hasura_with_GoTrue\"><\/span>5. Integrating Hasura with GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"51-setting-up-webhook-for-authentication\"><span class=\"ez-toc-section\" id=\"51_Setting_Up_Webhook_for_Authentication\"><\/span>5.1. Setting Up Webhook for Authentication<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Hasura can use GoTrue to manage authentication by setting up a webhook. Use the Hasura console to navigate to &#8220;Actions&#8221; and add a new action for user authentication.<\/p>\n<h3 id=\"52-configuring-hasura-permissions\"><span class=\"ez-toc-section\" id=\"52_Configuring_Hasura_Permissions\"><\/span>5.2. Configuring Hasura Permissions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In the Hasura console, set up permissions for your tables. For the\u00a0<code>users<\/code>\u00a0table, configure permissions for authenticated users to select their own data. This can be done in the &#8220;Permissions&#8221; tab by setting up roles and their respective permissions.<\/p>\n<h2 id=\"6-testing-the-setup\"><span class=\"ez-toc-section\" id=\"6_Testing_the_Setup\"><\/span>6. Testing the Setup<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"61-creating-users-with-gotrue\"><span class=\"ez-toc-section\" id=\"61_Creating_Users_with_GoTrue\"><\/span>6.1. Creating Users with GoTrue<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create a user through the GoTrue API using the method described earlier. Verify the user exists by querying the database or checking through the GoTrue API.<\/p>\n<h3 id=\"62-accessing-hasura-with-jwt\"><span class=\"ez-toc-section\" id=\"62_Accessing_Hasura_with_JWT\"><\/span>6.2. Accessing Hasura with JWT<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Once a user is created, you can log in and obtain a JWT. Use this token to access Hasura:<\/p>\n<pre><code class=\"lang-bash hljs language-bash\">POST http:\/\/localhost:9999\/token  \r\nContent-Type: application\/json\r\n\r\n{\r\n  <span class=\"hljs-string\">\"email\"<\/span>: <span class=\"hljs-string\">\"user@example.com\"<\/span>,\r\n  <span class=\"hljs-string\">\"password\"<\/span>: <span class=\"hljs-string\">\"password\"<\/span>\r\n}<\/code><\/pre>\n<p>You&#8217;ll receive a JWT that can be used in the Authorization header when making requests to Hasura:<\/p>\n<pre><code class=\"lang-bash hljs language-bash\">Authorization: Bearer &lt;your_jwt&gt;<\/code><\/pre>\n<h2 id=\"7-advanced-configurations\"><span class=\"ez-toc-section\" id=\"7_Advanced_Configurations\"><\/span>7. Advanced Configurations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"71-custom-domains\"><span class=\"ez-toc-section\" id=\"71_Custom_Domains\"><\/span>7.1. Custom Domains<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To set up custom domains for Hasura and GoTrue, you&#8217;ll need to adjust your DNS settings and configure the server to recognize the domain names.<\/p>\n<h3 id=\"72-ssl-configuration\"><span class=\"ez-toc-section\" id=\"72_SSL_Configuration\"><\/span>7.2. SSL Configuration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For secure connections, consider using Let&#8217;s Encrypt to obtain SSL certificates for your custom domain. Use\u00a0<code>certbot<\/code>\u00a0to automate this process.<\/p>\n<h2 id=\"8-troubleshooting-common-issues\"><span class=\"ez-toc-section\" id=\"8_Troubleshooting_Common_Issues\"><\/span>8. Troubleshooting Common Issues<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Docker Issues<\/strong>: Ensure that Docker is running and correctly installed.<\/li>\n<li><strong>Database Connection Errors<\/strong>: Verify your database URL and credentials in the Docker Compose files.<\/li>\n<li><strong>Authentication Failures<\/strong>: Check the JWT secret and ensure that GoTrue is correctly issuing tokens.<\/li>\n<\/ul>\n<h2 id=\"9-faq\"><span class=\"ez-toc-section\" id=\"9_FAQ\"><\/span>9. FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-is-the-benefit-of-self-hosting-hasura-and-gotrue\"><span class=\"ez-toc-section\" id=\"Q1_What_is_the_benefit_of_self-hosting_Hasura_and_GoTrue\"><\/span>Q1: What is the benefit of self-hosting Hasura and GoTrue?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A: Self-hosting allows for greater customization, control over data, and integration with existing systems.<\/p>\n<h3 id=\"q2-can-i-use-hasura-with-other-authentication-methods\"><span class=\"ez-toc-section\" id=\"Q2_Can_I_use_Hasura_with_other_authentication_methods\"><\/span>Q2: Can I use Hasura with other authentication methods?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A: Yes, Hasura supports various authentication methods through webhooks and JWT.<\/p>\n<h3 id=\"q3-how-do-i-scale-this-setup-for-production\"><span class=\"ez-toc-section\" id=\"Q3_How_do_I_scale_this_setup_for_production\"><\/span>Q3: How do I scale this setup for production?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A: Consider using a load balancer, multiple instances of Hasura, and database replication.<\/p>\n<h3 id=\"q4-what-are-some-alternatives-to-gotrue\"><span class=\"ez-toc-section\" id=\"Q4_What_are_some_alternatives_to_GoTrue\"><\/span>Q4: What are some alternatives to GoTrue?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A: Alternatives include Auth0, Firebase Authentication, and AWS Cognito.<\/p>\n<h3 id=\"q5-can-i-deploy-this-on-a-local-machine\"><span class=\"ez-toc-section\" id=\"Q5_Can_I_deploy_this_on_a_local_machine\"><\/span>Q5: Can I deploy this on a local machine?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A: Yes, this setup can be run locally for development purposes using Docker.<\/p>\n<h2 id=\"10-conclusion\"><span class=\"ez-toc-section\" id=\"10_Conclusion\"><\/span>10. Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Combining Hasura and GoTrue creates a powerful and flexible environment for developing applications with efficient GraphQL APIs and robust user authentication. By following this guide, you\u2019ll be well on your way to building scalable applications with ease. As you navigate through the configurations and optimizations, remember to explore the extensive documentation provided by both Hasura and GoTrue for advanced features and best practices.<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-Hosted Hasura + GoTrue: A Comprehensive Guide Introduction In the world of application development, speed and flexibility are crucial. Combining [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":804,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[236,215],"tags":[238,237],"class_list":["post-803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hasura","category-tutorial","tag-gotrue","tag-hasura"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Self-Hosted Hasura + GoTrue<\/title>\n<meta name=\"description\" content=\"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Self-Hosted Hasura + GoTrue\" \/>\n<meta property=\"og:description\" content=\"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/\" \/>\n<meta property=\"og:site_name\" content=\"Free VPS Hosting Guides\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-12T20:54:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"832\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"ariete\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ariete\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/\"},\"author\":{\"name\":\"ariete\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#\\\/schema\\\/person\\\/cddcf8cb5192d0713c19b79425c77fc4\"},\"headline\":\"Self-Hosted Hasura + GoTrue\",\"datePublished\":\"2025-01-12T20:54:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/\"},\"wordCount\":810,\"publisher\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/hasuragotrue.jpg\",\"keywords\":[\"GoTrue\",\"Hasura\"],\"articleSection\":[\"Hasura\",\"Tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/\",\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/\",\"name\":\"Self-Hosted Hasura + GoTrue\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/hasuragotrue.jpg\",\"datePublished\":\"2025-01-12T20:54:40+00:00\",\"description\":\"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#primaryimage\",\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/hasuragotrue.jpg\",\"contentUrl\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/hasuragotrue.jpg\",\"width\":832,\"height\":448,\"caption\":\"Hasura + GoTrue\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/self-hosted-hasura-gotrue\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Self-Hosted Hasura + GoTrue\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/\",\"name\":\"Gratisvps.net | Blog Daily Tech Info\",\"description\":\"GratisVPS.NET\",\"publisher\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#organization\",\"name\":\"Gratisvps.net | Blog Daily Tech Info\",\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo.png\",\"width\":250,\"height\":67,\"caption\":\"Gratisvps.net | Blog Daily Tech Info\"},\"image\":{\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/#\\\/schema\\\/person\\\/cddcf8cb5192d0713c19b79425c77fc4\",\"name\":\"ariete\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g\",\"caption\":\"ariete\"},\"sameAs\":[\"https:\\\/\\\/gratisvps.net\\\/blog\"],\"url\":\"https:\\\/\\\/gratisvps.net\\\/blog\\\/author\\\/ariete\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Self-Hosted Hasura + GoTrue","description":"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.","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:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/","og_locale":"en_US","og_type":"article","og_title":"Self-Hosted Hasura + GoTrue","og_description":"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.","og_url":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/","og_site_name":"Free VPS Hosting Guides","article_published_time":"2025-01-12T20:54:40+00:00","og_image":[{"width":832,"height":448,"url":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg","type":"image\/jpeg"}],"author":"ariete","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ariete","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#article","isPartOf":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/"},"author":{"name":"ariete","@id":"https:\/\/gratisvps.net\/blog\/#\/schema\/person\/cddcf8cb5192d0713c19b79425c77fc4"},"headline":"Self-Hosted Hasura + GoTrue","datePublished":"2025-01-12T20:54:40+00:00","mainEntityOfPage":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/"},"wordCount":810,"publisher":{"@id":"https:\/\/gratisvps.net\/blog\/#organization"},"image":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#primaryimage"},"thumbnailUrl":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg","keywords":["GoTrue","Hasura"],"articleSection":["Hasura","Tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/","url":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/","name":"Self-Hosted Hasura + GoTrue","isPartOf":{"@id":"https:\/\/gratisvps.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#primaryimage"},"image":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#primaryimage"},"thumbnailUrl":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg","datePublished":"2025-01-12T20:54:40+00:00","description":"This guide will take you through the process of self-hosting Hasura and integrating it with GoTrue, covering everything from the initial setup to advanced configurations.","breadcrumb":{"@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#primaryimage","url":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg","contentUrl":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2025\/01\/hasuragotrue.jpg","width":832,"height":448,"caption":"Hasura + GoTrue"},{"@type":"BreadcrumbList","@id":"https:\/\/gratisvps.net\/blog\/self-hosted-hasura-gotrue\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gratisvps.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Self-Hosted Hasura + GoTrue"}]},{"@type":"WebSite","@id":"https:\/\/gratisvps.net\/blog\/#website","url":"https:\/\/gratisvps.net\/blog\/","name":"Gratisvps.net | Blog Daily Tech Info","description":"GratisVPS.NET","publisher":{"@id":"https:\/\/gratisvps.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gratisvps.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/gratisvps.net\/blog\/#organization","name":"Gratisvps.net | Blog Daily Tech Info","url":"https:\/\/gratisvps.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gratisvps.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2024\/10\/logo.png","contentUrl":"https:\/\/gratisvps.net\/blog\/wp-content\/uploads\/2024\/10\/logo.png","width":250,"height":67,"caption":"Gratisvps.net | Blog Daily Tech Info"},"image":{"@id":"https:\/\/gratisvps.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/gratisvps.net\/blog\/#\/schema\/person\/cddcf8cb5192d0713c19b79425c77fc4","name":"ariete","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b93881052caa63fd6b2fb5468a80afcf9f985a165c6d4de11a72cc4c0775f74a?s=96&d=mm&r=g","caption":"ariete"},"sameAs":["https:\/\/gratisvps.net\/blog"],"url":"https:\/\/gratisvps.net\/blog\/author\/ariete\/"}]}},"_links":{"self":[{"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":1,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"predecessor-version":[{"id":805,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/posts\/803\/revisions\/805"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/media\/804"}],"wp:attachment":[{"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gratisvps.net\/blog\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}