<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arya</title>
    <description>The latest articles on DEV Community by Arya (@iamarya).</description>
    <link>https://dev.to/iamarya</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F233705%2F00bbae4a-1539-4aa0-a1c7-5e2d24fabffa.jpg</url>
      <title>DEV Community: Arya</title>
      <link>https://dev.to/iamarya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamarya"/>
    <language>en</language>
    <item>
      <title>My experience deploying ActiveCollab on AWS</title>
      <dc:creator>Arya</dc:creator>
      <pubDate>Fri, 19 Jun 2020 12:15:29 +0000</pubDate>
      <link>https://dev.to/iamarya/my-experience-deploying-activecollab-on-aws-h1a</link>
      <guid>https://dev.to/iamarya/my-experience-deploying-activecollab-on-aws-h1a</guid>
      <description>&lt;h2&gt;
  
  
  What is Active Collab?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.n4vn33t.com%2Fcontent%2Fimages%2F2020%2F06%2FAWS-Active-Collab.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.n4vn33t.com%2Fcontent%2Fimages%2F2020%2F06%2FAWS-Active-Collab.jpg" alt="ActiveCollab on AWS" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ActiveCollab&lt;/strong&gt; is a project management software with a clean interface and is available as SaaS Cloud Hosted/Self-Hosted model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Resources&lt;/strong&gt; used for this project were&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EC2&lt;/strong&gt; — For Server and Application Hosting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RDS&lt;/strong&gt; — Managed Database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElastiCache&lt;/strong&gt; — Caching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElasticSearch&lt;/strong&gt; — Search and Indexing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EBS&lt;/strong&gt; — Block Storage for EC2 Instance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EBS and RDS Snapshot&lt;/strong&gt; — for easy restoration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The experience
&lt;/h2&gt;

&lt;p&gt;Active Collab is enterprise focused business app. Cloud and Self hosted model serve a purpose, Cloud is suitable for non-tech companies who don't want to focus at infrastructure, maintenance and uptime whereas Self hosted version is suitable for businesses who want full control of their Data, Hosting and Maintenance and have teams working 24*7 maintaining uptime of the application.&lt;/p&gt;

&lt;p&gt;The application is wonderful to use once setup but I found their guides a bit lacking for AWS deployments.&lt;/p&gt;

&lt;p&gt;We wanted to use nginx, but the documentation lacks the guide for it, here is a sample that anyone can refer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#
# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;
#
# Public folder should be the document root.
#
        root /var/www/site-directory/public;

#
# Active collab setup stuff
#
        index router.php;
        access_log /var/log/nginx/activecollab-{version}-access.log;
        error_log /var/log/nginx/activecollab-{version}-error.log debug;
        server_name _;

#
# URL Rewrite
#
        location / {
            if (!-e $request_filename) {
                rewrite ^/assets/(.*)$ /assets/$1 last;
                rewrite ^/avatars/(.*)$ /avatars/$1 last;
                rewrite ^/wallpapers/(.*)$ /wallpapers/$1 last;
                rewrite ^/verify-existence$ /verify.php last;
                rewrite ^/proxy.php$ /proxy.php last;
                rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=$2&amp;amp;api_version=$1 last;
                rewrite ^$ /router.php last;
                rewrite ^(.*) /router.php?path_info=$1 last;
            }
        }

#
# PHP FPM Backend
#
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php{version}-fpm.sock;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;

            if (!-e $request_filename) {
                rewrite ^(.*) /router.php?path_info=$1 last;
            }
        }

}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Setup instructions for &lt;strong&gt;ElasticSearch on AWS&lt;/strong&gt; is not documented.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to setup Elasticsearch?
&lt;/h2&gt;

&lt;p&gt;You need to spin up ES instance on AWS and connect all the different services in a VPC lock them down using Security groups.&lt;/p&gt;

&lt;p&gt;Once you set up the &lt;strong&gt;VPC&lt;/strong&gt;(Kinda like VLAN) and &lt;strong&gt;SecurityGroups&lt;/strong&gt;(Firewall) correctly all the services will be accessible internally in AWS network and then you can open access to the VPS serving Active Collab.&lt;/p&gt;

&lt;p&gt;Overall experience was good and you can scale the app easily by resizing EC2, EBS and add load balancing.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ubuntu</category>
      <category>nginx</category>
      <category>elasticsearch</category>
    </item>
    <item>
      <title>Hello World vdev</title>
      <dc:creator>Arya</dc:creator>
      <pubDate>Tue, 26 May 2020 03:47:46 +0000</pubDate>
      <link>https://dev.to/iamarya/hello-world-vdev-okj</link>
      <guid>https://dev.to/iamarya/hello-world-vdev-okj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1543332164-6e82f355badc%3Fixlib%3Drb-1.2.1%26q%3D80%26fm%3Djpg%26crop%3Dentropy%26cs%3Dtinysrgb%26w%3D2000%26fit%3Dmax%26ixid%3DeyJhcHBfaWQiOjExNzczfQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1543332164-6e82f355badc%3Fixlib%3Drb-1.2.1%26q%3D80%26fm%3Djpg%26crop%3Dentropy%26cs%3Dtinysrgb%26w%3D2000%26fit%3Dmax%26ixid%3DeyJhcHBfaWQiOjExNzczfQ" alt="Hello World v2" width="2000" height="1333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is my second try at blogging with Ghost!&lt;br&gt;
And my first try for cross publish feature on dev.to.&lt;/p&gt;

&lt;p&gt;I like the editor interface and &lt;strong&gt;markdown&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>personal</category>
    </item>
  </channel>
</rss>
