<?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: Thuc Pham</title>
    <description>The latest articles on DEV Community by Thuc Pham (@thucpn).</description>
    <link>https://dev.to/thucpn</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%2F470631%2Ffeff6597-751a-4c83-b406-954cf68ba0bc.jpg</url>
      <title>DEV Community: Thuc Pham</title>
      <link>https://dev.to/thucpn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thucpn"/>
    <language>en</language>
    <item>
      <title>Autonomous Organization Infrastructure</title>
      <dc:creator>Thuc Pham</dc:creator>
      <pubDate>Sun, 25 Jan 2026 07:20:15 +0000</pubDate>
      <link>https://dev.to/thucpn/autonomous-organization-infrastructure-2h1l</link>
      <guid>https://dev.to/thucpn/autonomous-organization-infrastructure-2h1l</guid>
      <description>&lt;h2&gt;
  
  
  Rethinking Companies in the Age of AI
&lt;/h2&gt;

&lt;p&gt;Most AI systems today are still treated as tools: a human issues a prompt, the system produces a response, and the interaction ends. Even advanced agent frameworks largely follow this paradigm, positioning AI as an execution layer rather than an organizational entity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autonomous Organization Infrastructure (AOI)&lt;/strong&gt; proposes a fundamentally different model: &lt;strong&gt;AI as an organization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In this paradigm, an AI-powered company is not a monolithic system nor a collection of short-lived agents. Instead, it is composed of &lt;strong&gt;autonomous, long-running agents&lt;/strong&gt; that function as virtual employees—taking ownership of work, collaborating with others, and operating continuously within a shared organizational structure.&lt;/p&gt;

&lt;p&gt;AOI is not about better prompting. It is about rethinking how work is structured, coordinated, and executed in an AI-native world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agents as Virtual Employees
&lt;/h2&gt;

&lt;p&gt;In AOI, each agent represents a virtual employee with explicitly defined characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Role&lt;/strong&gt;: planner, researcher, engineer, reviewer, operator&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill scope&lt;/strong&gt;: tools it can access and domains it can operate in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capacity&lt;/strong&gt;: bounded by measurable computational constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike scripts or chatbots, these agents are &lt;strong&gt;stateful, long-lived workers&lt;/strong&gt;. They persist across tasks, maintain context, and assume responsibility for execution over time.&lt;/p&gt;

&lt;p&gt;Crucially, agent capacity is not abstract. It is explicitly defined and enforced through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Token budgets (context and reasoning limits)&lt;/li&gt;
&lt;li&gt;Concurrency constraints (parallel tasks per agent)&lt;/li&gt;
&lt;li&gt;Compute resources (CPU, memory, optional GPU)&lt;/li&gt;
&lt;li&gt;Execution limits (timeouts, quotas, failure thresholds)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result, organizational growth becomes a &lt;strong&gt;resource allocation problem&lt;/strong&gt;, not a hiring problem. Scaling the organization means allocating more compute, not onboarding more humans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Parallel and Continuous Execution
&lt;/h2&gt;

&lt;p&gt;Agents in AOI are designed to run as &lt;strong&gt;long-lived processes&lt;/strong&gt;, rather than being instantiated per request.&lt;/p&gt;

&lt;p&gt;They operate continuously, executing tasks in parallel across the organization. A single workflow may involve tens or hundreds of agents, each responsible for a narrowly scoped portion of the overall execution. Agents can be preempted, resumed, or reassigned dynamically by the scheduler.&lt;/p&gt;

&lt;p&gt;This architecture enables dramatic reductions in end-to-end latency for complex, multi-step work. Instead of serial handoffs, work progresses concurrently wherever possible, constrained only by dependencies and available capacity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blocking, Waiting, and Context Switching
&lt;/h2&gt;

&lt;p&gt;Real-world work is rarely linear. Tasks block due to missing information, ambiguity, external dependencies, or the need for judgment.&lt;/p&gt;

&lt;p&gt;In AOI, blocking does not imply idling.&lt;/p&gt;

&lt;p&gt;When an agent encounters a blocker, it transitions the task into a &lt;strong&gt;Blocked&lt;/strong&gt; state and may:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Emit a request signal to a human (for approval, decisions, or missing context)&lt;/li&gt;
&lt;li&gt;Request input from another agent (for review, data, or specialized capability)&lt;/li&gt;
&lt;li&gt;Yield its compute slot and switch to another available task&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This behavior mirrors efficient human organizations, where individuals do not wait passively for resolution. Instead, they context-switch and continue contributing elsewhere. AOI applies the same principle to machine labor, ensuring compute resources are continuously utilized.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Distributed and Composable Workforce
&lt;/h2&gt;

&lt;p&gt;Agents in AOI are not bound to a single machine or runtime environment.&lt;/p&gt;

&lt;p&gt;They can be deployed across multiple hosts, clusters, or geographic regions; scaled horizontally by increasing agent count; and isolated by tenant, project, or security boundary. This enables an &lt;strong&gt;elastic organization&lt;/strong&gt; whose capacity expands and contracts in real time.&lt;/p&gt;

&lt;p&gt;At a higher level, AOI supports &lt;strong&gt;agent composability&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teams can share internal pools of agents&lt;/li&gt;
&lt;li&gt;Organizations can expose agents as services&lt;/li&gt;
&lt;li&gt;Specialized agents can be traded or reused across organizational boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this model, AI labor becomes modular, composable, and transferable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Task Control Plane
&lt;/h2&gt;

&lt;p&gt;At the core of AOI lies a &lt;strong&gt;task control plane&lt;/strong&gt; that represents the operational state of the organization.&lt;/p&gt;

&lt;p&gt;All work is expressed as explicit tasks. Both agents and humans interact through this shared substrate. Agents pull tasks based on role, availability, and capacity, while the control plane coordinates execution, waiting, escalation, and handoff.&lt;/p&gt;

&lt;p&gt;Human participation is not treated as an exception or fallback. It is a &lt;strong&gt;first-class execution path&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When an agent encounters work that requires subjective judgment, business context, or external knowledge, the system creates a &lt;strong&gt;human task&lt;/strong&gt;. This task is routed to the appropriate human role—such as a manager, domain expert, or reviewer—and includes full execution context: current state, partial outputs, assumptions, and explicit questions.&lt;/p&gt;

&lt;p&gt;Ownership transfers through tasks, not ad-hoc messages. This preserves traceability, accountability, and continuity across autonomous and human-driven work.&lt;/p&gt;

&lt;h2&gt;
  
  
  From AI Systems to AI-Native Organizations
&lt;/h2&gt;

&lt;p&gt;Autonomous Organization Infrastructure is not another agent framework.&lt;/p&gt;

&lt;p&gt;It is an attempt to define the &lt;strong&gt;operating system of an AI-native company&lt;/strong&gt;, where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work is decomposed into explicit, traceable tasks&lt;/li&gt;
&lt;li&gt;Agents are scheduled and managed like compute resources&lt;/li&gt;
&lt;li&gt;Humans provide direction, judgment, and accountability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The future of AI is not about generating better responses to prompts.&lt;/p&gt;

&lt;p&gt;It is about building organizations that can &lt;strong&gt;execute autonomously, responsibly, and at scale&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to deploy Amplication app to DigitalOcean</title>
      <dc:creator>Thuc Pham</dc:creator>
      <pubDate>Wed, 06 Oct 2021 10:38:40 +0000</pubDate>
      <link>https://dev.to/thucpn/how-to-deploy-amplication-app-to-digitalocean-o3e</link>
      <guid>https://dev.to/thucpn/how-to-deploy-amplication-app-to-digitalocean-o3e</guid>
      <description>&lt;p&gt;This article shows you the way to deploy an app generated by &lt;a href="https://amplication.com"&gt;Amplication&lt;/a&gt; to DigitalOcean. Amplication provides the dockerfile to use containers for deployment, but this blog explains how to do it manually. I will guide you step by step to deploy Nestjs app and Postgres database with DOCKER, NGINX and PM2. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Sign up a Digital Ocean account
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Visit digitalocean.com and create an account&lt;/li&gt;
&lt;li&gt;If you are a student, go to &lt;a href="https://education.github.com/pack/offers"&gt;https://education.github.com/pack/offers&lt;/a&gt; to get 100$ offer&lt;/li&gt;
&lt;li&gt;Add your credit card to start using awesome services&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Create a droplet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click on "Create" button and select create droplet &lt;/li&gt;
&lt;li&gt;Config your droplet (CPU, region, ssh,...)
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1y01r9gx2u4vleyl53gb.png" alt="image" width="800" height="385"&gt; &lt;/li&gt;
&lt;li&gt;Waiting for your machine initialization
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbm7r0bhtj7wtjt3w8ph.png" alt="image" width="800" height="140"&gt;
&lt;/li&gt;
&lt;li&gt;After finish loading, go to tab "Access", you will see a button to load the console.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vbu1sj5vsqv6zf1xm0f.png" alt="image" width="800" height="374"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Install Nodejs, NPM
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install nodejs
sudo apt install npm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Install Docker
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install HTTPS packages:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install apt-transport-https ca-certificates curl software-properties-common
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add the GPG key to your system:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add repository to APT sources:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Install Docker:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install docker-ce
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Finally, Install Docker Compose:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Clone project from your git repository
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/&amp;lt;username&amp;gt;/&amp;lt;repo-name&amp;gt;.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't see your code, please checkout this document on how to sync your code from Amplication to GitHub &lt;a href="https://docs.amplication.com/docs/sync-with-github"&gt;https://docs.amplication.com/docs/sync-with-github&lt;/a&gt;&lt;br&gt;
You can also use my repo for testing: &lt;a href="https://github.com/thucpn/amplication-server-demo-deploy"&gt;https://github.com/thucpn/amplication-server-demo-deploy&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Install dependencies and initialize database
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to server folder and install dependencies
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd &amp;lt;your-repo&amp;gt;/server
npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Generate Prisma client
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run prisma:generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Start database in Docker
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run docker:db
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Initiate the database
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run db:init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Start the server
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Go to &lt;code&gt;&amp;lt;droplet-ip-address&amp;gt;:3000&lt;/code&gt; (example: 159.65.6.71:3000), you will see the response from server.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7. Setup PM2 to manage process
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install PM2
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo npm i pm2 -g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create an app
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pm2 start dist/main.js --name myserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your app is now running!&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flen50rt9au5xlyndw6x9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flen50rt9au5xlyndw6x9.png" alt="image" width="800" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View logs of app
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pm2 logs myserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Setup ufw firewall
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ufw enable
sudo ufw status
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Setup NGINX as a reverse proxy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install nginx
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Open config file
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/default
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add the following to location block
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
 }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Check NGINX config correctly
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nginx -t
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Restart NGINX
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo service nginx restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Visit &lt;code&gt;&amp;lt;droplet-ip-address&amp;gt;&lt;/code&gt; (example: 159.65.6.71), you will see app running without port. That's awesome!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  10. Here's my result
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create a post
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6dec9daxtl69etr6d8a.png" alt="image" width="800" height="402"&gt;
&lt;/li&gt;
&lt;li&gt;Get all posts
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j9kwghf8edc0nvrsmqr.png" alt="image" width="800" height="491"&gt;
&lt;/li&gt;
&lt;li&gt;Blog Client demo for api: &lt;a href="https://amplication-client-demo.vercel.app/"&gt;https://amplication-client-demo.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  References:
&lt;/h2&gt;

&lt;p&gt;These are the sources that I have consulted:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.amplication.com/docs/"&gt;https://docs.amplication.com/docs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pm2.keymetrics.io/docs/usage/process-management/"&gt;https://pm2.keymetrics.io/docs/usage/process-management/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04"&gt;https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04"&gt;https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/swlh/deploy-nest-js-app-with-postgres-in-vps-e1ce4abd2cad"&gt;https://medium.com/swlh/deploy-nest-js-app-with-postgres-in-vps-e1ce4abd2cad&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gist.github.com/bradtraversy/cd90d1ed3c462fe3bddd11bf8953a896"&gt;https://gist.github.com/bradtraversy/cd90d1ed3c462fe3bddd11bf8953a896&lt;/a&gt;&lt;/p&gt;

</description>
      <category>amplication</category>
      <category>digitalocean</category>
      <category>deployment</category>
    </item>
  </channel>
</rss>
