{"id":47440,"date":"2013-09-02T17:31:32","date_gmt":"2013-09-02T14:31:32","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=47440"},"modified":"2022-01-03T14:57:15","modified_gmt":"2022-01-03T11:57:15","slug":"how-to-deploy-discourse-with-juju","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/","title":{"rendered":"How to Deploy Discourse with Juju"},"content":{"rendered":"<p><a href=\"https:\/\/www.discourse.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Discourse<\/a> is an open-source, next-generation discussion platform built for the next decade of the Internet. <a href=\"https:\/\/jaas.ai\/\" rel=\"noopener noreferrer\" target=\"_blank\">Juju<\/a> is a service orchestration management tool developed by Canonical. This guide requires a configured and successfully bootstrapped Juju environment. Please walk through <a href=\"https:\/\/charmhub.io\/docs\/getting-started.html\" rel=\"noopener noreferrer\" target=\"_blank\">getting started with Juju<\/a> guide if you are not familiar with the tool yet.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent 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-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#Configure_Discourse\" >Configure Discourse<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#Configure_Juju\" >Configure Juju<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#Deployment\" >Deployment<\/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.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#About_the_author\" >About the author<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Configure_Discourse\"><\/span>Configure Discourse<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Firstly, you have to fork Discourse and prepare it for deployment with Juju. For this purpose, add <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">config\/redis.yml<\/code> like shown below.<\/p>\n<pre><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"s\">&lt;%= ENV['RAILS_ENV'] %&gt;<\/span><span class=\"pi\">:<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">uri<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= uri = URI.parse(ENV['REDIS_URL']) %&gt;<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">host<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= uri.host %&gt;<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= uri.port %&gt;<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">password<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= uri.password %&gt;<\/span><\/code><\/pre>\n<p>Copy <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">config\/environments\/production.rb.sample<\/code> to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">config\/environments\/production.rb<\/code>.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">cp config\/environments\/production.rb.sample config\/environments\/production.rb<\/code><\/pre>\n<p>Add new files to Git.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">git add <span class=\"nt\">--force<\/span> config\/environments\/production.rb config\/redis.yml<\/code><\/pre>\n<p>Update your repository.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">git add <span class=\"nb\">.<\/span><br data-jekyll-commonmark-ghpages=\"\">git commit <span class=\"nt\">-m<\/span> <span class=\"s1\">'prepare to deploy with juju'<\/span><br data-jekyll-commonmark-ghpages=\"\">git push origin master<\/code><\/pre>\n<p>Now, Discourse is ready for the deployment with JuJu.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Configure_Juju\"><\/span>Configure Juju<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create Rack charm config using <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">discourse.yml<\/code> as shown below.<\/p>\n<pre><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"na\">discourse<\/span><span class=\"pi\">:<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">repo<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;repo_url&gt;<\/span><br data-jekyll-commonmark-ghpages=\"\">  <span class=\"na\">env<\/span><span class=\"pi\">:<\/span> <span class=\"s\">SECRET_TOKEN=ssEnesNG3f3jAhgJgSlWDLUi0U3cUrUhrTBwwancUKL91hX7ClKAgKl0Ofpv<\/span><\/code><\/pre>\n<p>Important: Discourse requires <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">SECRET_TOKEN<\/code> to be defined for sessions storage.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/juju-gui.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/juju-gui.png\" alt=\"\" width=\"640\" class=\"alignnone size-full wp-image-63215\" \/><\/a><small>The Juju graphical user interface (<a href=\"https:\/\/ubuntu.com\/blog\/designing-a-product-you-dont-use\" rel=\"noopener noreferrer\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>More configuration and deployment options are available on the <a href=\"http:\/\/manage.jujucharms.com\/~pavel-pachkovskij\/precise\/rack\" rel=\"noopener noreferrer\" target=\"_blank\">Rack charm<\/a> page.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Deployment\"><\/span>Deployment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Deploy Discourse with Rack charm.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju deploy rack <span class=\"nt\">--config<\/span> discourse.yml discourse<\/code><\/pre>\n<p>Deploy and relate Redis.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju deploy redis-master<br data-jekyll-commonmark-ghpages=\"\">juju add-relation redis-master:redis-master discourse<\/code><\/pre>\n<p>Deploy and relate PostgreSQL.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju deploy postgresql<br data-jekyll-commonmark-ghpages=\"\">juju add-relation postgresql:db-admin discourse<\/code><\/pre>\n<p>Generally, you should use the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">db<\/code> relation for PostgreSQL, but Discourse creates the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">hstore<\/code> extension in migrations, that\u2019s why you have to use <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">db-admin<\/code> instead.<\/p>\n<p>Finally, expose Discourse.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju expose discourse<\/code><\/pre>\n<p>Use <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">juju status<\/code> or <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">juju debug-log<\/code> to watch for deployment progress.<\/p>\n<p>When Discourse is deployed, create, migrate, and seed the database.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju ssh discourse\/0 run rake db:create<br data-jekyll-commonmark-ghpages=\"\">juju ssh discourse\/0 run rake db:migrate<br data-jekyll-commonmark-ghpages=\"\">juju ssh discourse\/0 run rake db:seed_fu<\/code><\/pre>\n<p>Compile assets.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju ssh discourse\/0 run rake assets:precompile<\/code><\/pre>\n<p>Restart Discourse.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju ssh discourse\/0 <span class=\"nb\">sudo <\/span>restart rack<\/code><\/pre>\n<p>Navigate to Discourse and create your account. When you are done, promote your account to admin in the Rails console.<\/p>\n<pre><code class=\"language-bash\" data-lang=\"bash\">juju ssh discourse\/0 run rails c<\/code><\/pre>\n<pre><code class=\"language-ruby\" data-lang=\"ruby\"><span class=\"n\">me<\/span> <span class=\"o\">=<\/span> <span class=\"no\">User<\/span><span class=\"p\">.<\/span><span class=\"nf\">find_by_username_or_email<\/span><span class=\"p\">(<\/span><span class=\"s1\">'myemailaddress@me.com'<\/span><span class=\"p\">)<\/span><br data-jekyll-commonmark-ghpages=\"\"><span class=\"n\">me<\/span><span class=\"p\">.<\/span><span class=\"nf\">activate<\/span><br data-jekyll-commonmark-ghpages=\"\"><span class=\"n\">me<\/span><span class=\"p\">.<\/span><span class=\"nf\">admin<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">true<\/span><br data-jekyll-commonmark-ghpages=\"\"><span class=\"n\">me<\/span><span class=\"p\">.<\/span><span class=\"nf\">save<\/span><\/code><\/pre>\n<p>Now, you can configure Discourse from the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">\/admin<\/code> console. To learn more details about getting started with Discourse, check out <a href=\"https:\/\/github.com\/discourse\/discourse\" rel=\"noopener noreferrer\" target=\"_blank\">this guide<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/easy-deployment-of-rack-applications-with-juju\/\">Easy Deployment of Rack Applications with Juju<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/how-to-implement-integration-tests-for-juju-charms\/\">How to Implement Integration Tests for Juju Charms<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\">Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_author\"><\/span>About the author<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/pavel-pachkovsky.png\" width=\"110\" class=\"alignright size-thumbnail wp-image-64162\" \/><\/p>\n<p><small><a href=\"https:\/\/www.linkedin.com\/in\/pavel-pachkovsky-535a6128\/\" rel=\"noopener noreferrer\" target=\"_blank\">Pavel Pachkovskij<\/a> has experience in front- and back-end development of web applications. He is proficient in Ruby, Ruby on Rails, JavaScript, CSS, etc. Pavel also worked with relational databases, such as MySQL, MariaDB, PostgreSQL, as well as NoSQL solutions, such as MongoDB and Redis. Find him on <a href=\"https:\/\/web.archive.org\/web\/20140601125849\/https:\/\/github.com\/pavelpachkovskij\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub<\/a>.<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide walks through process of deployment Discourse with Juju and Rack charm.<\/p>\n","protected":false},"author":34,"featured_media":63218,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[1000,895],"class_list":["post-47440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-github","tag-research-and-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Deploy Discourse with Juju | Altoros<\/title>\n<meta name=\"description\" content=\"This guide walks through the process of deployment  Discourse with Juju and Rack charm.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Deploy Discourse with Juju | Altoros\" \/>\n<meta property=\"og:description\" content=\"This guide walks through process of deployment Discourse with Juju and Rack charm.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-02T14:31:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-03T11:57:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png\" \/>\n\t<meta property=\"og:image:width\" content=\"597\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alena Vasilenko\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alena Vasilenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/\",\"name\":\"How to Deploy Discourse with Juju | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png\",\"datePublished\":\"2013-09-02T14:31:32+00:00\",\"dateModified\":\"2022-01-03T11:57:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/019e8147b835bc8f1b4abd8a4fa42c7f\"},\"description\":\"This guide walks through process of deployment Discourse with Juju and Rack charm.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png\",\"width\":597,\"height\":576},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Deploy Discourse with Juju\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/019e8147b835bc8f1b4abd8a4fa42c7f\",\"name\":\"Alena Vasilenko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/alena-vasilenko-author-e1561752194994-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/alena-vasilenko-author-e1561752194994-96x96.jpg\",\"caption\":\"Alena Vasilenko\"},\"description\":\"Alena Vasilenko is Communications Manager at Altoros. She has proven track record of supporting R&amp;D engineers in their research activities on such topics as big data and cloud computing, translating the research results into easy-to-understand stories.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/alena-vasilenko\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Deploy Discourse with Juju | Altoros","description":"This guide walks through the process of deployment  Discourse with Juju and Rack charm.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/","og_locale":"en_US","og_type":"article","og_title":"How to Deploy Discourse with Juju | Altoros","og_description":"This guide walks through process of deployment Discourse with Juju and Rack charm.","og_url":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/","og_site_name":"Altoros","article_published_time":"2013-09-02T14:31:32+00:00","article_modified_time":"2022-01-03T11:57:15+00:00","og_image":[{"width":597,"height":576,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png","type":"image\/png"}],"author":"Alena Vasilenko","twitter_misc":{"Written by":"Alena Vasilenko","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/","url":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/","name":"How to Deploy Discourse with Juju | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png","datePublished":"2013-09-02T14:31:32+00:00","dateModified":"2022-01-03T11:57:15+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/019e8147b835bc8f1b4abd8a4fa42c7f"},"description":"This guide walks through process of deployment Discourse with Juju and Rack charm.","breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/ways-to-deploy-discourse-with-juju.png","width":597,"height":576},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/how-to-deploy-discourse-with-juju\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Deploy Discourse with Juju"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/019e8147b835bc8f1b4abd8a4fa42c7f","name":"Alena Vasilenko","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/alena-vasilenko-author-e1561752194994-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/alena-vasilenko-author-e1561752194994-96x96.jpg","caption":"Alena Vasilenko"},"description":"Alena Vasilenko is Communications Manager at Altoros. She has proven track record of supporting R&amp;D engineers in their research activities on such topics as big data and cloud computing, translating the research results into easy-to-understand stories.","url":"https:\/\/www.altoros.com\/blog\/author\/alena-vasilenko\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=47440"}],"version-history":[{"count":14,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47440\/revisions"}],"predecessor-version":[{"id":65997,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47440\/revisions\/65997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/63218"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=47440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=47440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=47440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}