<?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>Forem: SevimsOffice</title>
    <description>The latest articles on Forem by SevimsOffice (@sevimsoffice).</description>
    <link>https://forem.com/sevimsoffice</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%2F1019191%2Fe6af52fa-47ce-4fb3-a2b6-7e8d559048f7.jpeg</url>
      <title>Forem: SevimsOffice</title>
      <link>https://forem.com/sevimsoffice</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sevimsoffice"/>
    <language>en</language>
    <item>
      <title>How to Safely Run OpenClaw on AWS EC2</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Wed, 28 Jan 2026 11:28:34 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/how-to-safely-install-clawdbot-on-aws-ec2-4mmg</link>
      <guid>https://forem.com/sevimsoffice/how-to-safely-install-clawdbot-on-aws-ec2-4mmg</guid>
      <description>&lt;p&gt;OpenClaw is an AI agent that runs 24/7 and can autonomously execute tasks like checking you into flights, responding to messages, booking appointments, and much more. This guide will walk you through setting up OpenClaw on an AWS EC2 instance in the cloud, which is the recommended method for continuous operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Run ClawdBot on AWS EC2?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24/7 availability without keeping your personal computer running&lt;/li&gt;
&lt;li&gt;Enhanced security - runs in an isolated cloud environment&lt;/li&gt;
&lt;li&gt;Does not have access to your entire PC or MacBook&lt;/li&gt;
&lt;li&gt;AWS free tier eligible for cost-effective operation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
Before you begin, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account (free tier eligible) &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;https://aws.amazon.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;An Anthropic Claude Pro or Max subscription&lt;/li&gt;
&lt;li&gt;WhatsApp, Telegram, or your preferred messaging app&lt;/li&gt;
&lt;li&gt;Claude Code installed on your local machine (for OAuth token generation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️** Important Security Note**&lt;br&gt;
ClawdBot is a powerful tool that can execute actions on your behalf. For maximum security, it is recommended to run it on a separate WhatsApp number using a service like Numero. This guide assumes you understand the risks and benefits of AI automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 1: Setting Up AWS EC2 Instance&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 1: Access AWS EC2 Console&lt;/strong&gt;&lt;br&gt;
Log in to your AWS Management Console&lt;br&gt;
Navigate to the EC2 service&lt;br&gt;
Click on "Launch Instance" button&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffch0xmli3lp5f10e5cs5.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffch0xmli3lp5f10e5cs5.png" alt=" " width="800" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Configure Instance Name&lt;/strong&gt;&lt;br&gt;
In the "Name and tags" section, enter a name for your instance (e.g., "ClawdBot" or "Turbo")&lt;br&gt;
You can choose any name you prefer - this is just for your reference&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyx0wey9jwdcrayzivoa.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyx0wey9jwdcrayzivoa.png" alt=" " width="655" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Select Operating System&lt;/strong&gt;&lt;br&gt;
Under "Application and OS Images", select "Linux" (Amazon Linux or Ubuntu recommended)&lt;br&gt;
Keep all default settings&lt;br&gt;
Ensure you select a free tier eligible instance type&lt;br&gt;
Skip selecting a key pair (not needed for this setup)&lt;br&gt;
Click "Launch Instance"&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpvjy5qg9aq4x2002boa.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpvjy5qg9aq4x2002boa.png" alt=" " width="650" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 4: Connect to Your Instance&lt;br&gt;
Once the instance is running, select it from your instances list&lt;br&gt;
Click the "Connect" button at the top&lt;br&gt;
Choose "EC2 Instance Connect" tab&lt;br&gt;
Click "Connect" to open a browser-based SSH terminal&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbwfihyudcua85gg7scv.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbwfihyudcua85gg7scv.png" alt=" " width="800" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 2: Installing OpenClaw&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 5: Run OpenClaw Installation Script&lt;/strong&gt;&lt;br&gt;
Navigate to the OpenClaw installation page: &lt;a href="https://docs.openclaw.ai/install#macos-%2F-linux-%2F-wsl2" rel="noopener noreferrer"&gt;https://docs.openclaw.ai/install#macos-%2F-linux-%2F-wsl2&lt;/a&gt; &lt;br&gt;
Copy the curl installation command (bash script)&lt;br&gt;
Installation Command:&lt;br&gt;
curl [OpenClaw URL] | bash&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa05xdpxvibojxtjn5seu.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa05xdpxvibojxtjn5seu.png" alt=" " width="583" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste the command into your EC2 terminal&lt;br&gt;
Press Enter to execute&lt;br&gt;
Wait for the installation to complete (this will fetch packages and install ClawdBot)&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6p58ycj0s835bf24udz.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6p58ycj0s835bf24udz.png" alt=" " width="493" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Generate OAuth Token&lt;/strong&gt;&lt;br&gt;
Important: Use OAuth instead of API keys to get unlimited inference on your Claude Pro/Max plan and avoid additional charges.&lt;br&gt;
On your local machine, open a terminal&lt;br&gt;
Run the command: &lt;br&gt;
claude setup token&lt;br&gt;
This will open a browser window&lt;br&gt;
Authorize Claude Code with your Claude Pro or Max account&lt;br&gt;
After authorization, you'll be redirected to a page with your OAuth token&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7jqu8l6m3dn79fm84cw.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7jqu8l6m3dn79fm84cw.png" alt=" " width="228" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copy the OAuth token (valid for 1 year)&lt;br&gt;
Keep this token secure - you'll need it in the next step&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqc2aw91t6olj0xbzzx7.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqc2aw91t6olj0xbzzx7.png" alt=" " width="356" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 3: Configuring ClawdBot&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 7: Run ClawdBot Onboarding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Back in your EC2 terminal, run the onboarding command:&lt;/p&gt;

&lt;p&gt;openclaw onboard --install-daemon&lt;/p&gt;

&lt;p&gt;The onboarding wizard will start&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn63woi5h5w632uczv5d9.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn63woi5h5w632uczv5d9.png" alt=" " width="215" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Accept Terms and Choose Setup Mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Read and accept the terms of service (understand that ClawdBot can execute actions on your behalf)&lt;br&gt;
Type 'yes' to agree&lt;br&gt;
Choose "Quick Start" for efficient setup&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn0mmwd6jzi2iixe9ahb.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn0mmwd6jzi2iixe9ahb.png" alt=" " width="483" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Select AI Model Provider&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select your model provider from the list (Anthropic recommended)&lt;br&gt;
Available options include: OpenAI, Anthropic, Google, and various other providers.&lt;br&gt;
I choose Anthropic to use Claude models.&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmixynyns82itxrg9qz1.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmixynyns82itxrg9qz1.png" alt=" " width="396" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Configure Authentication&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When prompted for authentication, paste your OAuth token (from Step 6)&lt;br&gt;
Select your preferred Claude model (Claude Sonnet 4.5 recommended for best performance)&lt;br&gt;
You can choose a lower-tier model if you want to conserve tokens&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F64mmvskylmb7yb9vsq84.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F64mmvskylmb7yb9vsq84.png" alt=" " width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 4: Connecting Messaging Platform&lt;/strong&gt;&lt;br&gt;
Step 11: Link WhatsApp&lt;/p&gt;

&lt;p&gt;Security Recommendation: For maximum security, use a second WhatsApp number with a service like Numero rather than your personal number.&lt;br&gt;
When prompted, choose to link WhatsApp&lt;br&gt;
A QR code will appear in your terminal&lt;br&gt;
Open WhatsApp on your phone&lt;br&gt;
Go to Settings &amp;gt; Linked Devices &amp;gt; Link a Device&lt;br&gt;
Scan the QR code displayed in your terminal&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37qypno582089luialed.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37qypno582089luialed.png" alt=" " width="319" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 12: Configure Skills (Optional)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClawdBot offers 22+ skills that extend its capabilities. You can configure these during setup or add them later.&lt;br&gt;
When asked if you want to configure skills, type 'yes'&lt;br&gt;
Select skills you want to enable (e.g., npm, Eight Sleep, Google Drive, etc.)&lt;br&gt;
Skip API key configuration for now unless you have specific integrations ready&lt;br&gt;
You can always add more skills and MCP servers later&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ow8lmbpgyw817g8x2jw.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ow8lmbpgyw817g8x2jw.png" alt=" " width="343" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 5: Launching ClawdBot&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 13: Choose Interface Mode&lt;/strong&gt;&lt;br&gt;
ClawdBot can run in two modes:&lt;br&gt;
TUI (Terminal UI): Recommended for EC2 instances, runs in the terminal&lt;br&gt;
Web UI: More interactive, better for local installations&lt;br&gt;
When prompted, choose your preferred interface&lt;br&gt;
For EC2, select TUI by typing the appropriate option&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 14: Complete Setup and Launch&lt;/strong&gt;&lt;br&gt;
Restart the service when prompted&lt;br&gt;
ClawdBot will initialize and connect to your messaging platform&lt;br&gt;
You should see a confirmation message indicating successful connection.&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqslfhi5iqpeheo410fp.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqslfhi5iqpeheo410fp.png" alt=" " width="217" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The onboarding is now complete&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o7ubckrh3o4dklvekp0.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o7ubckrh3o4dklvekp0.png" alt=" " width="553" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section 6: Using ClawdBot&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Testing Your Installation&lt;/strong&gt;&lt;br&gt;
Now that ClawdBot is running, test it by sending a message through your connected messaging platform:&lt;br&gt;
Open WhatsApp on your phone&lt;br&gt;
Find the ClawdBot conversation (it should appear automatically)&lt;br&gt;
Send a simple test message like "Hello" or "What can you do?"&lt;br&gt;
ClawdBot should respond within seconds&lt;br&gt;
Example Use Cases&lt;/p&gt;

&lt;p&gt;ClawdBot can help you with various tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Email Management:&lt;/em&gt; "Send an email to John about the meeting tomorrow"&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Appointment Booking:&lt;/em&gt; "Book a hair appointment for next Tuesday at 3pm"&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Flight Check-in:&lt;/em&gt; "Check me in for my flight tomorrow"&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Research Tasks:&lt;/em&gt; "Research the best restaurants in Dubai and create a list"&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Code Generation:&lt;/em&gt; "Create a simple to-do app and save it to my GitHub"
-_ Presentation Creation:_ "Make a presentation about AI trends"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Troubleshooting&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnkubm0eeu32bpkblt8l.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnkubm0eeu32bpkblt8l.png" alt=" " width="616" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Practices and Security Tips&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Recommendations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use a separate WhatsApp number: Consider using a second number via Numero or similar services to isolate ClawdBot from your personal communications&lt;/li&gt;
&lt;li&gt;Run in the cloud: AWS EC2 provides better security than running locally as it limits ClawdBot's access to your personal files&lt;/li&gt;
&lt;li&gt;Use OAuth authentication: This provides unlimited inference on your Claude plan without additional API costs&lt;/li&gt;
&lt;li&gt;Review permissions: Carefully consider which skills and integrations you enable&lt;/li&gt;
&lt;li&gt;Monitor activity: Regularly check what actions ClawdBot is taking on your behalf&lt;/li&gt;
&lt;li&gt;Optimization Tips&lt;/li&gt;
&lt;li&gt;Start with essential skills and add more as needed&lt;/li&gt;
&lt;li&gt;Use clear, specific instructions when communicating with ClawdBot&lt;/li&gt;
&lt;li&gt;Test ClawdBot's capabilities with simple tasks before complex 
workflows&lt;/li&gt;
&lt;li&gt;Keep your EC2 instance updated for security and performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Congratulations! You have successfully installed ClawdBot on your AWS EC2 instance. Your AI agent is now running 24/7 and ready to assist you with various tasks through your messaging platform.&lt;br&gt;
ClawdBot represents a significant step forward in AI automation, allowing you to delegate tasks that would otherwise require manual effort. As you become more familiar with its capabilities, you'll discover new ways to integrate it into your daily workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next Steps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore additional MCP servers and skills to extend functionality&lt;/li&gt;
&lt;li&gt;Experiment with different types of tasks to understand ClawdBot's capabilities&lt;/li&gt;
&lt;li&gt;Join the ClawdBot community to share experiences and learn from other users&lt;/li&gt;
&lt;li&gt;Stay updated on new features and improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Additional Resources&lt;/strong&gt;&lt;br&gt;
ClawdBot Documentation: Check the official documentation for detailed feature guides&lt;br&gt;
AWS EC2 Documentation: &lt;a href="https://docs.aws.amazon.com/ec2/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/ec2/&lt;/a&gt;&lt;br&gt;
Claude API Documentation: &lt;a href="https://docs.anthropic.com/" rel="noopener noreferrer"&gt;https://docs.anthropic.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/sevimdurmus/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/sevimdurmus/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aiandtech.cloud/" rel="noopener noreferrer"&gt;https://aiandtech.cloud/&lt;/a&gt; &lt;/p&gt;

</description>
      <category>clawdbot</category>
      <category>aws</category>
      <category>ec2</category>
      <category>ai</category>
    </item>
    <item>
      <title>Self Hosting n8n on AWS EC2 instance (Step-by-step Guide)</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Mon, 24 Nov 2025 07:59:30 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/self-hosting-n8n-on-aws-ec2-instance-step-by-step-guide-fh2</link>
      <guid>https://forem.com/sevimsoffice/self-hosting-n8n-on-aws-ec2-instance-step-by-step-guide-fh2</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING:&lt;/strong&gt; To use n8n on AWS with a custom domain you must own that domain (your website). If you don't have one you can create get one here: &lt;a href="https://hostinger.com.tr?REFERRALCODE=F1SSEVIMDH8P" rel="noopener noreferrer"&gt;Hostinger Domain&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt; Copy and paste each command one by one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. AWS Account and EC2 Instance Setup&lt;/strong&gt;&lt;br&gt;
Create an AWS account if you do not have one. &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;https://aws.amazon.com/&lt;/a&gt;&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq3ult79we807xirj9kz.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq3ult79we807xirj9kz.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launch an EC2 instance:&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w1907afoeei6q052dbu.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w1907afoeei6q052dbu.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quick Start: choose Amazon Linux.&lt;br&gt;
Amazon Machine Image (AMI): Amazon Linux 2023 AMI.&lt;br&gt;
Instance type: t3.micro or t2.micro (choose whichever has free tier availability for you). &lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhpj5muj1t6ht4b3uusdd.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhpj5muj1t6ht4b3uusdd.png" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key pair: Create new key pair (download .pem and keep it safe). &lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzau6oll3pwr9tufiucg2.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzau6oll3pwr9tufiucg2.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Network (security group): allow HTTP (80) and HTTPS (443) inbound.&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F70hyq1mofxecyo4no5jo.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F70hyq1mofxecyo4no5jo.png" alt=" " width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launch the instance. Wait until it becomes running.&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa108l6srkemgys1r8ow.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa108l6srkemgys1r8ow.png" alt=" " width="800" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Why this matters: the instance is your server that will run n8n in Docker.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Allocate an Elastic (Static) IP and Associate It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the AWS EC2 console go to Elastic IPs (top-right or left menu).&lt;/p&gt;

&lt;p&gt;Click Allocate Elastic IP address and allocate one.&lt;/p&gt;

&lt;p&gt;Associate the Elastic IP with the EC2 instance you launched. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d7p5l9j2qdfh0a4ufsv.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d7p5l9j2qdfh0a4ufsv.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why: Elastic IP prevents your instance IP from changing and lets you point your domain A record to a stable address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Connect to EC2 (SSH)&lt;/strong&gt;&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwax34xj16s5q4nt6mft.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwax34xj16s5q4nt6mft.png" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the public IP or associated Elastic IP and your downloaded key pair:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 400 my-key.pem
ssh -i my-key.pem ec2-user@YOUR_PUBLIC_IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After successful login you’ll be at the EC2 terminal prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. System Update and Install Nginx&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run commands one by one in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum update -y
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bqg1eqirys8y7ve0a2i.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bqg1eqirys8y7ve0a2i.png" alt=" " width="753" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nginx will act as the reverse proxy in front of n8n. (Keep it running.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Install Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On Amazon Linux 2023, the Docker install is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add the ec2-user to the docker group so you can use Docker without sudo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Important: Log out from SSH (exit) and reconnect for group changes to take effect. After reconnect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart docker
sudo systemctl status docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. Pull n8n Docker Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once Docker is ready:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull n8nio/n8n:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. Install Certbot (for Let’s Encrypt SSL)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install certbot and certbot nginx plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum install -y certbot python3-certbot-nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;8. Configure Nginx Reverse Proxy for n8n&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create an nginx conf file for n8n:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/conf.d/n8n.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste this (replace n8n.yourdomain.com with your domain):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name n8n.yourdomain.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save and exit editor.&lt;br&gt;
Then test and restart nginx:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;9. Point Your Domain DNS to the Elastic IP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In your DNS provider dashboard (&lt;a href="https://hostinger.com.tr?REFERRALCODE=F1SSEVIMDH8P" rel="noopener noreferrer"&gt;Hostinger&lt;/a&gt;) create an A record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host / Name: n8n (so domain becomes n8n.yourdomain.com)&lt;/li&gt;
&lt;li&gt;Value / Points to: &lt;em&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Set Proxy status to DNS only (not proxied). Set SSL/TLS mode to Full (not Full Strict). &lt;/li&gt;
&lt;/ul&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81yaybz91bh1bnlfnuus.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81yaybz91bh1bnlfnuus.png" alt=" " width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wait for DNS propagation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Obtain SSL Certificate with Certbot (Let's Encrypt)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run certbot to obtain and automatically configure SSL for nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo certbot --nginx -d n8n.yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will be prompted for an email — enter it. Agree to the terms. Certbot will modify nginx config to use the certificates and optionally redirect HTTP to HTTPS. [IMAGE: certbot prompt and success message]&lt;br&gt;
Set up automatic renewal (cron job):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "0 0 * * * certbot renew --quiet" | sudo tee -a /etc/crontab &amp;gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;11. Prepare n8n Data Directory and Permissions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create the persistent data directory for n8n:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p /home/ec2-user/.n8n-data
sudo chown 1000:1000 /home/ec2-user/.n8n-data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then check listing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls -lah /home/ec2-user/.n8n-data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;12. Run n8n Docker Container (first run)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run a quick run to verify container starts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v /home/ec2-user/.n8n-data:/home/node/.n8n \
  n8nio/n8n
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;13. Stop and Remove Container (cleanup before final run)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop n8n
docker rm n8n
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;14. Final n8n Docker Run with Environment Variables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run the container with recommended environment variables and persistent volume. Replace every &lt;strong&gt;&lt;em&gt;n8n.yourdomain.com&lt;/em&gt;&lt;/strong&gt; with your actual domain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d --name n8n --restart=always -p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
-e N8N_PROTOCOL=https \
-e N8N_HOST=n8n.yourdomain.com \
-e N8N_PORT=5678 \
-e BASE_URL=https://n8n.yourdomain.com \
-e WEBHOOK_URL=https://n8n.yourdomain.com \
-e WEBHOOK_TUNNEL_URL=https://n8n.yourdomain.com \
-e VUE_APP_URL_BASE_API=https://n8n.yourdomain.com \
-e WEBHOOK_INCLUDE_ORIGIN_HEADER_DATA=false \
-e N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com \
-e N8N_ENABLE_COMMUNITY_NODES=true \
-e NODE_FUNCTION_ALLOW_EXTERNAL=* \
-e N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom \
-e N8N_IGNORE_CERT_ERRORS=true \
-e N8N_SECURE_COOKIE=false \
n8nio/n8n

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

&lt;/div&gt;



&lt;p&gt;Reference: &lt;a href="https://docs.n8n.io/hosting/configuration/environment-variables/deployment/" rel="noopener noreferrer"&gt;n8n environment variables and deployment docs/&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. Verify n8n Is Working&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open your browser and go to: &lt;a href="https://n8n.yourdomain.com" rel="noopener noreferrer"&gt;https://n8n.yourdomain.com&lt;/a&gt;&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4bg49h168ob0ew7dvyv.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4bg49h168ob0ew7dvyv.png" alt=" " width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
Create a password and make sure not to forget it!&lt;/p&gt;

&lt;p&gt;If you see n8n UI, congratulations it’s running over HTTPS. If the browser reports “not secure,” check the certbot certificate validity and renew if expired. See troubleshooting below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Updating n8n (Pulling latest image and restarting)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To update n8n later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop n8n
docker rm n8n
docker pull n8nio/n8n:latest
# then re-run the same docker run command from Step 14
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This replaces the container but preserves data in the mounted ~/.n8n directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. Certificate Renewal Troubleshooting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your site shows SSL issues, renew certificates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum install -y certbot
certbot --version
sudo certbot renew
sudo systemctl restart nginx
sudo certbot certificates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reference: &lt;a href="https://eff-certbot.readthedocs.io/en/stable/using.html" rel="noopener noreferrer"&gt;Certbot renewal documentation.&lt;/a&gt;&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvputc469rl6u812yc28w.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvputc469rl6u812yc28w.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Checklist (copyable)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS EC2 launched (Amazon Linux 2023).&lt;/li&gt;
&lt;li&gt;Elastic IP allocated and associated.&lt;/li&gt;
&lt;li&gt;Security group: ports 80 and 443 open.&lt;/li&gt;
&lt;li&gt;SSH connected using .pem key. &lt;/li&gt;
&lt;li&gt;nginx installed and reverse proxy configured. &lt;/li&gt;
&lt;li&gt;Docker installed and running.&lt;/li&gt;
&lt;li&gt;n8n Docker image pulled and container launched with right env vars. &lt;/li&gt;
&lt;li&gt;DNS A record pointing n8n.yourdomain.com to Elastic IP. &lt;/li&gt;
&lt;li&gt;SSL obtained with certbot. &lt;/li&gt;
&lt;li&gt;Test &lt;a href="https://n8n.yourdomain.com" rel="noopener noreferrer"&gt;https://n8n.yourdomain.com&lt;/a&gt; — n8n UI should appear.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Helpful Links / References (authoritative)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
n8n &lt;a href="https://docs.n8n.io/hosting/installation/docker/" rel="noopener noreferrer"&gt;Docker &amp;amp; hosting docs (self-hosting and environment variables). &lt;/a&gt;&lt;br&gt;
n8n Docs&lt;br&gt;
AWS EC2 Elastic IP &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html" rel="noopener noreferrer"&gt;documentation (allocation &amp;amp; association)&lt;/a&gt;. &lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-docker.html" rel="noopener noreferrer"&gt;Installing Docker on Amazon Linux 2023 (AWS docs)&lt;/a&gt;. &lt;br&gt;
Certbot (Let’s Encrypt) nginx instructions and renewal. &lt;br&gt;
&lt;a href="https://certbot.eff.org/instructions?os=snap&amp;amp;ws=nginx" rel="noopener noreferrer"&gt;certbot.eff.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ec2</category>
      <category>n8n</category>
      <category>automation</category>
    </item>
    <item>
      <title>Build Your Own Niche AI SaaS for AI-Generated B-Roll Videos</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Thu, 06 Nov 2025 12:20:32 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/build-your-own-niche-ai-saas-for-ai-generated-b-roll-videos-483d</link>
      <guid>https://forem.com/sevimsoffice/build-your-own-niche-ai-saas-for-ai-generated-b-roll-videos-483d</guid>
      <description>&lt;p&gt;Want B-roll of yourself without shooting a single clip?&lt;/p&gt;

&lt;p&gt;You can build a tiny SaaS that does that. You let users upload images. You train a model to make a digital version of them. You generate short B-roll clips from that model. This is aimed at a small group of users, not everyone. That focus makes the product easier to build and faster to grow.&lt;/p&gt;

&lt;p&gt;Building this happens in layers. Each layer adds structure, intelligence, and automation.&lt;/p&gt;

&lt;p&gt;Here’s how you can do it step by step:&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Foundation Layer:&lt;/strong&gt; Define your goal. Decide what you want to automate, such as social posts, blog content, or newsletters.&lt;br&gt;
• &lt;strong&gt;Data Layer:&lt;/strong&gt; Collect and organize your data. Use APIs or Google Sheets to keep it structured and easy for AI to read.&lt;br&gt;
• &lt;strong&gt;AI Layer:&lt;/strong&gt; Add intelligence. Connect GPT-4 or Claude to generate content drafts from your data.&lt;br&gt;
Train it with clear prompts to match your tone and accuracy.&lt;br&gt;
• &lt;strong&gt;Automation Layer:&lt;/strong&gt; Build your workflow. Use n8n or Make.com to link your data, AI model, and publishing tools.&lt;br&gt;
Set triggers like “new entry → create post → send for review.”&lt;br&gt;
&lt;strong&gt;• Review Layer:&lt;/strong&gt; Keep quality high. Add a short review loop for human or AI-assisted checks before publishing.&lt;br&gt;
&lt;strong&gt;• Deployment Layer:&lt;/strong&gt; Publish and measure. Integrate with LinkedIn, X, or your CMS.&lt;br&gt;
Track engagement, refine your prompts, and improve results over time.&lt;br&gt;
Start small.&lt;br&gt;
Add one layer at a time.&lt;br&gt;
Soon, you’ll have a content engine that runs itself while staying true to your brand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set Up the Frontend in Lovable&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://lovable.dev" rel="noopener noreferrer"&gt;https://lovable.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create a new project.&lt;/li&gt;
&lt;li&gt;Give Lovable a high-level prompt describing the app UI (no functionality yet).&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9dorvt1cmwih2i19jey.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9dorvt1cmwih2i19jey.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wait for Lovable to generate your base app layout.
You should see:
Upload image section
Character creation form
Clip generation form
History page&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k2k2vz11qoie05m5v30.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k2k2vz11qoie05m5v30.png" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect the Backend with Supabase&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Lovable, click “Connect Lovable Cloud”.&lt;/li&gt;
&lt;li&gt;Enable Cloud integration.&lt;/li&gt;
&lt;li&gt;Allow Lovable to set up the Supabase backend automatically
You’ll now see:&lt;/li&gt;
&lt;li&gt;Database tables&lt;/li&gt;
&lt;li&gt;Storage buckets&lt;/li&gt;
&lt;li&gt;Authentication setup&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7pphf4mvwl33fdriswr.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7pphf4mvwl33fdriswr.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add Image Upload Functionality&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a form in Lovable to upload a ZIP file of your images.&lt;/li&gt;
&lt;li&gt;Allow Lovable to update the backend (database and storage permissions).&lt;/li&gt;
&lt;li&gt;Verify uploads:&lt;/li&gt;
&lt;li&gt;Open Cloud &amp;gt; Storage in Lovable.&lt;/li&gt;
&lt;li&gt;Check for a folder under your user name.&lt;/li&gt;
&lt;li&gt;Ensure the ZIP file appears there.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiouvb8rti3owmd96735w.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiouvb8rti3owmd96735w.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enable User Authentication&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Lovable Cloud, go to Authentication Settings.&lt;/li&gt;
&lt;li&gt;Set up user sign-in with email or OAuth.&lt;/li&gt;
&lt;li&gt;For testing, enable Mock User mode if you prefer.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2feqso8nv55ynvf13vha.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2feqso8nv55ynvf13vha.png" alt=" " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prepare the AI Engine on Replicate&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit &lt;a href="https://replicate.com" rel="noopener noreferrer"&gt;https://replicate.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create an account.&lt;/li&gt;
&lt;li&gt;Use these two models:&lt;/li&gt;
&lt;li&gt;fastflux trainer – Fine-tunes your custom image generation model.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vofnsmgb3l6mr2hwp6e.png" alt=" " width="800" height="523"&gt;
&lt;/li&gt;
&lt;li&gt;Kling v2.1 – Turns an image into a short video.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Get Your API Credentials&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Replicate:&lt;/li&gt;
&lt;li&gt;Copy your API Key.&lt;/li&gt;
&lt;li&gt;Copy your Username.&lt;/li&gt;
&lt;li&gt;In Lovable:&lt;/li&gt;
&lt;li&gt;Go to Cloud &amp;gt; Secrets.&lt;/li&gt;
&lt;li&gt;Add your Replicate API key and username.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Train Your AI Model&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask Lovable to use the Replicate API for training.&lt;/li&gt;
&lt;li&gt;Allow Lovable to:&lt;/li&gt;
&lt;li&gt;Create database tables.&lt;/li&gt;
&lt;li&gt;Update backend policies.&lt;/li&gt;
&lt;li&gt;Connect to Replicate for model training.&lt;/li&gt;
&lt;li&gt;Check progress:&lt;/li&gt;
&lt;li&gt;In Replicate, open Trainings Tab to see your model training.&lt;/li&gt;
&lt;li&gt;Once done, check Models Tab to confirm your new model.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou91yho25i411wq8lqyo.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou91yho25i411wq8lqyo.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate a Test Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Replicate, open your new model.&lt;br&gt;
Test with a sample prompt (example: “person walking in an office”).&lt;br&gt;
Use:&lt;br&gt;
Aspect ratio: 16:9&lt;br&gt;
Quality: 40&lt;br&gt;
Output: PNG&lt;br&gt;
Run the model and check the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configure the B-Roll Generator&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy the configuration parameters from Replicate.&lt;/li&gt;
&lt;li&gt;In Lovable, open the B-roll generation form.&lt;/li&gt;
&lt;li&gt;Paste the parameters into the backend logic.&lt;/li&gt;
&lt;li&gt;Add prompt input fields:&lt;/li&gt;
&lt;li&gt;Character&lt;/li&gt;
&lt;li&gt;Prompt description&lt;/li&gt;
&lt;li&gt;Style option&lt;/li&gt;
&lt;li&gt;When it works, you’ll see:&lt;/li&gt;
&lt;li&gt;Character chosen&lt;/li&gt;
&lt;li&gt;Generated clip&lt;/li&gt;
&lt;li&gt;Success message&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Test Model Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Replicate &amp;gt; Predictions tab.&lt;/li&gt;
&lt;li&gt;You should see two predictions:&lt;/li&gt;
&lt;li&gt;Custom image generation&lt;/li&gt;
&lt;li&gt;Video creation (Kling)&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frn15zpuae6ggwkmc3gxd.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frn15zpuae6ggwkmc3gxd.png" alt=" " width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Both should display timestamps and completion results.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Build a History Page&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Lovable, create a History Page.&lt;/li&gt;
&lt;li&gt;Display all previously generated clips.&lt;/li&gt;
&lt;li&gt;Ensure database records (for each clip) are visible.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Review Backend Resources&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check your Lovable Cloud:&lt;/li&gt;
&lt;li&gt;Two database tables&lt;/li&gt;
&lt;li&gt;Storage bucket for uploaded ZIPs&lt;/li&gt;
&lt;li&gt;Several backend functions auto-created by Lovable&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix Security Warnings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If Lovable shows a security warning, enable proper user authentication before publishing.&lt;br&gt;
Otherwise, others could use your Replicate API key to generate content.&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4lzyn6g6dxpgn9rh9u8.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4lzyn6g6dxpgn9rh9u8.png" alt=" " width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optional: Enhance with Advanced AI Steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can extend your SaaS further:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add GPT-5 (or GPT-4) to improve text prompts.&lt;/li&gt;
&lt;li&gt;Add a video upscaler model for 4K output.&lt;/li&gt;
&lt;li&gt;Add custom niche models from &lt;a href="https://huggingface.co" rel="noopener noreferrer"&gt;https://huggingface.co&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tips for Success&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Expect to iterate. You’ll need to refine prompts and model connections.&lt;br&gt;
Be patient when Lovable fails or breaks temporarily.&lt;br&gt;
Always test each part separately before linking them together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Publish and Test Your App&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once secure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add real authentication.&lt;/li&gt;
&lt;li&gt;Publish your Lovable project.&lt;/li&gt;
&lt;li&gt;Share with a small group of testers.&lt;/li&gt;
&lt;li&gt;Monitor performance and costs from Lovable and Replicate dashboards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me on: &lt;a href="https://www.linkedin.com/in/sevimdurmus/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/sevimdurmus/&lt;/a&gt;&lt;br&gt;
Instagram: &lt;a href="https://www.instagram.com/sevimsoffice/" rel="noopener noreferrer"&gt;https://www.instagram.com/sevimsoffice/&lt;/a&gt; &lt;/p&gt;

</description>
      <category>saas</category>
      <category>tutorial</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>What is the difference between RAG and AI AGENT?</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Fri, 23 May 2025 08:39:39 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/what-is-the-difference-between-rag-and-ai-agent-12g0</link>
      <guid>https://forem.com/sevimsoffice/what-is-the-difference-between-rag-and-ai-agent-12g0</guid>
      <description>&lt;p&gt;&lt;strong&gt;🔍 RAG (Retrieval-Augmented Generation)&lt;/strong&gt;&lt;br&gt;
Purpose: Enhances LLMs by retrieving relevant documents from a knowledge base to ground answers in factual content.&lt;/p&gt;

&lt;p&gt;Components: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A vector database or retrieval tool (e.g., OpenSearch).&lt;/li&gt;
&lt;li&gt;Embedding model to convert documents and queries into vectors.&lt;/li&gt;
&lt;li&gt;A language model (like Amazon Titan, Anthropic Claude, or Meta LLaMA) to generate answers based on retrieved documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Typical Use Case: Answering user questions by pulling and summarizing information from a static or dynamic document store.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Agent (Autonomous LLM Agent)&lt;/strong&gt;&lt;br&gt;
Purpose: Performs multi-step reasoning and can autonomously execute tools or APIs to achieve a task.&lt;/p&gt;

&lt;p&gt;Components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A planner or orchestrator that can decide what action to take.&lt;/li&gt;
&lt;li&gt;Tool usage (e.g., calling APIs, database queries, invoking functions).&lt;/li&gt;
&lt;li&gt;Often reactive to changing context and capable of handling open-ended workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Typical Use Case: Completing tasks like “Book me a flight” or “Analyze this sales report and generate a presentation” by choosing from available tools.&lt;/p&gt;

&lt;p&gt;📽️ Watch the video on how to Set Up a RAG Chatbot in Bedrock? HERE: &lt;a href="https://www.youtube.com/watch?v=Munrg_qYW-E" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Munrg_qYW-E&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Feature             RAG           Agent&lt;br&gt;&lt;br&gt;
Retrieves documents ✅ 🔸 (sometimes)&lt;br&gt;&lt;br&gt;
Uses vector store   ✅         ❌&lt;br&gt;&lt;br&gt;
Executes tools/APIs ❌ ✅&lt;br&gt;&lt;br&gt;
Multi-step reasoning    ❌ ✅&lt;br&gt;&lt;br&gt;
Dynamic decision making ❌ ✅         &lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Set Up a RAG Chatbot in AWS Bedrock: A Step-by-Step Guide</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Mon, 03 Mar 2025 11:29:18 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/how-to-set-up-a-rag-chatbot-in-aws-bedrock-a-step-by-step-guide-lge</link>
      <guid>https://forem.com/sevimsoffice/how-to-set-up-a-rag-chatbot-in-aws-bedrock-a-step-by-step-guide-lge</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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzi0t50u2gz0hj4n2c83.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzi0t50u2gz0hj4n2c83.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;How to Set Up a RAG Chatbot in AWS Bedrock: Architecture&lt;/p&gt;

&lt;p&gt;Retrieval-Augmented Generation (RAG) chatbots combine generative AI with knowledge retrieval, making them incredibly powerful for answering questions based on stored data. In this guide, you'll learn how to build a RAG chatbot using &lt;strong&gt;AWS Bedrock&lt;/strong&gt;, &lt;strong&gt;Amazon S3&lt;/strong&gt;, and &lt;strong&gt;Amazon OpenSearch&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before we start, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;AWS account&lt;/strong&gt; with access to Bedrock&lt;/li&gt;
&lt;li&gt;Basic understanding of AWS services like S3 and OpenSearch&lt;/li&gt;
&lt;li&gt;Some knowledge of AI and vector databases&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Set Up an S3 Bucket for Documents
&lt;/h2&gt;

&lt;p&gt;AWS S3 will store documents that the chatbot will reference.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to your &lt;strong&gt;AWS Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Amazon S3&lt;/strong&gt; and create a new bucket.&lt;/li&gt;
&lt;li&gt;Name your bucket (e.g., &lt;code&gt;rag-chatbot-docs&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Disable &lt;strong&gt;bucket key&lt;/strong&gt; and create the bucket.&lt;/li&gt;
&lt;li&gt;Upload the documents that will serve as the chatbot's knowledge base.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 2: Create an S3 Bucket for Output Data
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go back to &lt;strong&gt;Amazon S3&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create another bucket (e.g., &lt;code&gt;rag-chatbot-output&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;This bucket will store chatbot-generated responses and logs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 3: Set Up a Knowledge Base in Amazon Bedrock
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Amazon Bedrock&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Knowledge Bases&lt;/strong&gt; &amp;gt; &lt;strong&gt;Create Knowledge Base&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Vector Store&lt;/strong&gt; as the storage method.&lt;/li&gt;
&lt;li&gt;Add details like name and description.&lt;/li&gt;
&lt;li&gt;Assign a &lt;strong&gt;service role&lt;/strong&gt; with access to S3.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 4: Configure Data Sources
&lt;/h2&gt;

&lt;p&gt;AWS Bedrock supports multiple data sources, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3&lt;/strong&gt; (for uploaded documents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web crawlers&lt;/strong&gt; (for real-time data retrieval)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salesforce, SharePoint, Confluence&lt;/strong&gt; (for enterprise data)&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Amazon S3&lt;/strong&gt; and link it to the previously created bucket.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Select Parsing and Chunking Strategy
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Choose a parsing model. The &lt;strong&gt;Bedrock default parser&lt;/strong&gt; ignores images, but you can select &lt;strong&gt;Foundational Models&lt;/strong&gt; to process them.&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;chunking strategy&lt;/strong&gt;. The default setting will break documents into smaller segments for better indexing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 6: Choose Embedding Model &amp;amp; Vector Store
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Amazon Titan Embeddings&lt;/strong&gt; for vectorization.&lt;/li&gt;
&lt;li&gt;Configure the vector database:

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Amazon OpenSearch Serverless&lt;/strong&gt; (recommended).&lt;/li&gt;
&lt;li&gt;Enable automatic chunking and embedding storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bedrock will now embed and store the document data in the vector database.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 7: Enable AI Models for Querying
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Model Access Settings&lt;/strong&gt; in Bedrock.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Amazon Titan Embeddings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Optionally, enable models like &lt;strong&gt;Llama 3&lt;/strong&gt; for additional AI capabilities.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 8: Test Your RAG Chatbot
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Bedrock Knowledge Base&lt;/strong&gt; and select your chatbot.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Test Chatbot&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ask a question related to the uploaded documents.&lt;/li&gt;
&lt;li&gt;Bedrock will retrieve relevant chunks from the &lt;strong&gt;vector database&lt;/strong&gt; and generate a response.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  nocode #ai #awsbedrock #amazonS3
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You’ve successfully built a &lt;strong&gt;RAG-powered chatbot&lt;/strong&gt; in AWS Bedrock! This chatbot can now retrieve and generate responses based on structured document knowledge. You can further refine it by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding &lt;strong&gt;more data sources&lt;/strong&gt; (SharePoint, databases, web crawlers).&lt;/li&gt;
&lt;li&gt;Experimenting with &lt;strong&gt;different vector stores&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Fine-tuning &lt;strong&gt;parsing and chunking strategies&lt;/strong&gt; for better retrieval.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stay tuned for more AWS AI tutorials! 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Connect Your AmazonQ Application to Gmail</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Wed, 31 Jan 2024 22:39:44 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/how-to-create-an-application-on-amazon-q-and-connect-to-gmail-5ccc</link>
      <guid>https://forem.com/sevimsoffice/how-to-create-an-application-on-amazon-q-and-connect-to-gmail-5ccc</guid>
      <description>&lt;p&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%2Fo1bs324xbyzrgwzufm6y.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%2Fo1bs324xbyzrgwzufm6y.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will go trough the steps of creating a Personal AI Assistant who can have access to our emails. &lt;/p&gt;

&lt;p&gt;1.Navigate to &lt;a href="https://aws.amazon.com/"&gt;https://aws.amazon.com/&lt;/a&gt; and sign in to your AWS Console.&lt;/p&gt;

&lt;p&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%2F6rvkkvo6mxhrce5w9dlz.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%2F6rvkkvo6mxhrce5w9dlz.png" alt="Image description" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.From the services type and select "Amazon Q"&lt;/p&gt;

&lt;p&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%2Fdwuftn0lmmphf16l84j9.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%2Fdwuftn0lmmphf16l84j9.png" alt="Image description" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Click "Create application"&lt;/p&gt;

&lt;p&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%2Fi6tpleve4h7thsnt6ggk.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%2Fi6tpleve4h7thsnt6ggk.png" alt="Image description" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Type your application's name ex:"MyAssistant" and leave the default "Create and use a new service role" and click "Create".&lt;/p&gt;

&lt;p&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%2F9i5zvst3c3emf38o2pwc.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%2F9i5zvst3c3emf38o2pwc.png" alt="Image description" width="639" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.On the next page leave the default Retrievers. Leave Index provisioning as "1" and Click "Next".&lt;/p&gt;

&lt;p&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%2Fy9hdbkbu0qgsm7gbb9as.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%2Fy9hdbkbu0qgsm7gbb9as.png" alt="Image description" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Select Gmail.&lt;/p&gt;

&lt;p&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%2Fi23hgyp1s61q340tjj5w.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%2Fi23hgyp1s61q340tjj5w.png" alt="Image description" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;For the "Data source name" field enter name.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&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%2Fclbyr9y6cc0icvy84qe8.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%2Fclbyr9y6cc0icvy84qe8.png" alt="Image description" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Choose "Create and add new secret"&lt;/p&gt;

&lt;p&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%2Fnkcxy43qard3jt3k2ufz.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%2Fnkcxy43qard3jt3k2ufz.png" alt="Image description" width="681" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Fill in the information. &lt;/p&gt;

&lt;p&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%2F0ia995mk3s25rl3zmony.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%2F0ia995mk3s25rl3zmony.png" alt="Image description" width="598" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you are going to need the Private Key of your Gmail account. &lt;/p&gt;

&lt;p&gt;10.Navigate to Google Cloud Platform.&lt;/p&gt;

&lt;p&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%2F7tj5255qs7r11i45sk75.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%2F7tj5255qs7r11i45sk75.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;11.Write a project name and click "Create" &lt;/p&gt;

&lt;p&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%2Fwnz1i5hfwi4ufa8avkex.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%2Fwnz1i5hfwi4ufa8avkex.png" alt="Image description" width="685" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;12.Click ok "SELECT PROJECT"&lt;/p&gt;

&lt;p&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%2Fhf358eiowdpsetlopj18.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%2Fhf358eiowdpsetlopj18.png" alt="Image description" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;13.From the left bar go to Service Accounts.&lt;/p&gt;

&lt;p&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%2Fq4f4iscd1s2mesdvu7xi.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%2Fq4f4iscd1s2mesdvu7xi.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;14.Click the "Service account name" field and type a name, something like "AmazonQAssistant". &lt;/p&gt;

&lt;p&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%2Ftv0vxakgbk7j1oxb207x.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%2Ftv0vxakgbk7j1oxb207x.png" alt="Image description" width="720" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;15.Create a service account.&lt;/p&gt;

&lt;p&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%2Fdhieeeoqy0vlwuly9gg9.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%2Fdhieeeoqy0vlwuly9gg9.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;16.Service account ID will be generated. &lt;/p&gt;

&lt;p&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%2Fk61i1rk7pq3mfah4la4e.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%2Fk61i1rk7pq3mfah4la4e.png" alt="Image description" width="545" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;17.Click "CREATE AND CONTINUE"&lt;/p&gt;

&lt;p&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%2Frkrvtlco4eym9giax702.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%2Frkrvtlco4eym9giax702.png" alt="Image description" width="703" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;18.And then click on "DONE".&lt;/p&gt;

&lt;p&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%2Fa9a50mfpbn6iuogfyoxw.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%2Fa9a50mfpbn6iuogfyoxw.png" alt="Image description" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;19.Clik on the account Email.&lt;/p&gt;

&lt;p&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%2Ffdn3sj5662i1f25tseea.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%2Ffdn3sj5662i1f25tseea.png" alt="Image description" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;20.Go to "KEYS"&lt;/p&gt;

&lt;p&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%2Fubmzqiy4v4qvnr4ylldn.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%2Fubmzqiy4v4qvnr4ylldn.png" alt="Image description" width="799" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;21."ADD KEY" and "Create new key".&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now go back to AWS Console &amp;gt; Amazon Q and add your "Private key" generated in Gmail account in this field and SAVE.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&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%2F4y3jhoi3d3qlh5gpse0x.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%2F4y3jhoi3d3qlh5gpse0x.png" alt="Image description" width="530" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;23.Continue adding data source.&lt;/p&gt;

&lt;p&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%2Fznvhot2xwxo87a4snecd.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%2Fznvhot2xwxo87a4snecd.png" alt="Image description" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create your application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&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%2Fu1mcgek0tmi19sj8u46f.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%2Fu1mcgek0tmi19sj8u46f.png" alt="Image description" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fhsxeh0shw8beh0monrym.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%2Fhsxeh0shw8beh0monrym.png" alt="Image description" width="509" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can now select Jason and click on "Create" to download it to your local driver.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&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%2Fko1tubclf4s9f3y5u3mi.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%2Fko1tubclf4s9f3y5u3mi.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>amazonq</category>
      <category>generativeai</category>
      <category>aws</category>
      <category>awsbigdata</category>
    </item>
    <item>
      <title>How to Install Amazon CodeWhisperer in Visual Studio Code</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Tue, 07 Nov 2023 20:04:37 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/how-to-install-amazon-codewhisperer-in-visual-studio-code-3c99</link>
      <guid>https://forem.com/sevimsoffice/how-to-install-amazon-codewhisperer-in-visual-studio-code-3c99</guid>
      <description>&lt;p&gt;Amazon CodeWhisperer is a powerful tool that streamlines your development workflow when working with Amazon Web Services (AWS). With a range of features and tools, it simplifies the process of building, deploying, and managing AWS applications directly from your integrated development environment (IDE).&lt;/p&gt;

&lt;p&gt;I'll walk you through the installation process of Amazon CodeWhisperer in Visual Studio Code, allowing you to seamlessly integrate AWS services into your development projects.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Visual Studio Code application and go to the Extensions on the left upper side.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xCAJBsqb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pedkkrr8bzbh9ayjq9xn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xCAJBsqb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pedkkrr8bzbh9ayjq9xn.png" alt="Image description" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Access Extensions: Type "Amazon" into the search bar and you will see a list of available extensions related to Amazon Web Services including Amazon Toolkit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nOxjV2jY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/388kymo92jqg4cxjaw4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nOxjV2jY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/388kymo92jqg4cxjaw4h.png" alt="Image description" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select AWS Toolkit and click install.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q_O6YpfG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r44nngqnzjy9rpf8tlx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_O6YpfG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r44nngqnzjy9rpf8tlx3.png" alt="Image description" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After the installation is complete click on one of the future options provided to add the connection.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MO0jyjX9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inanqflwzg7es20kn4ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MO0jyjX9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inanqflwzg7es20kn4ww.png" alt="Image description" width="767" height="711"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scroll down until you see the sign in and sign up button. Click on it and proceed to the browser.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jldd_7ux--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdsf1du0vaygqs38e5tb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jldd_7ux--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdsf1du0vaygqs38e5tb.png" alt="Image description" width="800" height="722"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mHBqTM4J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yx2yt5uzy181bh0lynu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mHBqTM4J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yx2yt5uzy181bh0lynu9.png" alt="Image description" width="546" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the authorization code.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--droS_3X7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pttrwr4g2dlw6gzikpwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--droS_3X7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pttrwr4g2dlw6gzikpwv.png" alt="Image description" width="664" height="799"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Allow for data access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0IJXD2iS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1tt4aagrfa4313f6ggu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0IJXD2iS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1tt4aagrfa4313f6ggu.png" alt="Image description" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hJKr__lK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ayp9lxab2kjqev465rj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hJKr__lK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ayp9lxab2kjqev465rj.png" alt="Image description" width="517" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, you have successfully installed Amazon CodeWhisperer in Visual Studio Code, making AWS integration easier and more efficient for your development projects. You can now take advantage of the various features and tools it offers to work seamlessly with AWS services directly from your IDE. Happy coding!&lt;/p&gt;

</description>
      <category>codewhisperer</category>
      <category>vscode</category>
      <category>devops</category>
      <category>aws</category>
    </item>
    <item>
      <title>HOW TO GENERATE AWS IAM POLICY FOR AN S3 BUCKET</title>
      <dc:creator>SevimsOffice</dc:creator>
      <pubDate>Thu, 10 Aug 2023 08:07:31 +0000</pubDate>
      <link>https://forem.com/sevimsoffice/how-to-generate-aws-iam-policy-for-an-s3-bucket-1eog</link>
      <guid>https://forem.com/sevimsoffice/how-to-generate-aws-iam-policy-for-an-s3-bucket-1eog</guid>
      <description>&lt;p&gt;Securely accessing cloud resources is one of the most critical requirements for IT teams. To achieve this, cloud administrators leverage web services that assist with managing access to cloud environments. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Policy Generator&lt;/strong&gt; simplifies the process of creating policy documents for the Amazon Simple Queue Service (SQS), Amazon S3, VPC Endpoint Policy, the Amazon Simple Notification Service (SNS), and AWS Identity and Access Management (IAM).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ysMOpZVe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hst43nacytcpmskmjse8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ysMOpZVe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hst43nacytcpmskmjse8.png" alt="Image description" width="733" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we are going to walk trough the AWS Policy Generator Service to Generate public access to an S3 Bucket called "mycanvapage".&lt;/p&gt;

&lt;p&gt;First navigate to &lt;a href="http://awspolicygen.s3.amazonaws.com/policygen.html"&gt;AWS Policy Generator &lt;/a&gt;. You will also have the link on your S3 Bucket Permissions Page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JEu8ABlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tjiy9kgttizhlh684ghy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JEu8ABlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tjiy9kgttizhlh684ghy.png" alt="Image description" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There will be 3 steps to follow: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Select Policy Type&lt;/strong&gt;: We are going to create an S3 bucket policy. Therefore, Select S3 Bucket Policy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UXV3XXLG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d8yewiu3tysxl4wh2v9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UXV3XXLG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d8yewiu3tysxl4wh2v9u.png" alt="Image description" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Add Statement(s)&lt;/strong&gt;: Effect will be "Allow". Click on Principal field and enter "*". &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oiZoUx7x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/da4val8qoy2se21okwc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oiZoUx7x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/da4val8qoy2se21okwc4.png" alt="Image description" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click "-- Select Actions --" dropdown.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ywRzwmwx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i4sqzz4bypcy0og15gpe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ywRzwmwx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i4sqzz4bypcy0og15gpe.png" alt="Image description" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on "GetObject"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c5R-We3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebyefg36cw94gx586x14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c5R-We3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebyefg36cw94gx586x14.png" alt="Image description" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the "Amazon Resource Name (ARN)" field. You will find your ARN number in your S3 bucket Details. Enter your ARN number which is similar to &lt;em&gt;arn:aws:s3:::mycanvapage&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4On1Fv48--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fh2wql4qhu302y4d8pg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4On1Fv48--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fh2wql4qhu302y4d8pg3.png" alt="Image description" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And Click on Add Statement &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YThKy2j6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/84a24d2aulvzmf5kbqgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YThKy2j6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/84a24d2aulvzmf5kbqgy.png" alt="Image description" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Generate Policy&lt;/strong&gt; Now that the stament is ready Click on "Generate Policy"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S_zFaIeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0oy0uxe88g5epid7qp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S_zFaIeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0oy0uxe88g5epid7qp6.png" alt="Image description" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your policy will be generated:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WLrdbC98--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ai9l2t9s62ql08oc63t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WLrdbC98--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ai9l2t9s62ql08oc63t.png" alt="Image description" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now add your policy to your S3 Bucket and Save Changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aC_XDxxa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mv67t59082s53jrt86ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aC_XDxxa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mv67t59082s53jrt86ga.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qhFEwwEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d7xd3yahnp6mb78a2ts8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qhFEwwEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d7xd3yahnp6mb78a2ts8.png" alt="Image description" width="715" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope it was useful! See you in my next blog post!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
