DEV Community

Sham Prakash K
Sham Prakash K

Posted on

Free Cloud PC That Works in Any Browser — Oracle Cloud Setup Guide (2026)

Ever wanted a computer in the cloud you can open from your phone, laptop, or any device — just by typing a URL in a browser?

No app to install. No VPN. Just open a link and you're staring at a full desktop.

I set this up for free using Oracle Cloud's Always Free tier. Here's exactly how I did it, including the mistakes I made along the way.

Why Oracle Cloud?

Before we start, here's why Oracle Cloud is the best free option:

Provider Free CPU Free RAM Free Forever?
Oracle Cloud 2 ARM cores 12 GB ✅ Yes
Google Cloud 1 shared vCPU 0.6 GB ✅ Yes (but too slow for a browser)
AWS 1 vCPU 1 GB ❌ 12 months only
Azure 1 vCPU 1 GB ❌ 12 months only

Note: Oracle reduced their Always Free ARM tier from 4 OCPUs/24 GB to 2 OCPUs/12 GB in August 2026. It's still the most generous free tier available — Google's free VM has 0.6 GB RAM which can't even run a browser properly.


What You'll Have at the End

  • A free Ubuntu 22.04 VM running 24/7
  • Full XFCE desktop environment
  • Firefox browser running in that VM
  • Access from any browser via http://YOUR_IP:6080/vnc.html
  • Works on mobile, laptop, tablet — anything with a browser
  • A platform to host web servers, bots, scripts, and side projects — all for free

Step 1: Create an Oracle Cloud Account

Go to cloud.oracle.com → Start for free

You'll need:

  • An email address
  • A Visa or Mastercard for identity verification (a ~$1 temporary hold is placed and auto-refunded in 3-5 days — RuPay is not accepted)
  • Choose your Home Region carefully — you can't change it later

Indian users: Oracle charges through their Singapore entity for APAC. The temporary hold appears in SGD (~₹85), not INR. It disappears on its own.


Step 2: Create the Free VM

  1. Go to Compute → Instances → Create Instance
  2. Click Change Image → Select Ubuntu 22.04
  3. Click Change Shape → Ampere (ARM) → VM.Standard.A1.Flex
  4. Set OCPUs: 2 and Memory: 12 GB
  5. Under Networking → Select Create new virtual cloud network
  6. Under Add SSH Keys → Download the private key and save it safely
  7. Click Create and wait 2-3 minutes

Step 3: Assign a Public IP

New VMs sometimes don't get a public IP automatically. Here's how to fix that:

  1. Click your instance → Networking tab
  2. Click the VNIC name → IP Administration tab
  3. Click ⋯ on the row → Edit
  4. Select Ephemeral public IP → Update

Note your public IP — you'll need it throughout this guide.


Step 4: SSH Into the VM

Windows (PowerShell):

ssh -i C:\path\to\your-key.key ubuntu@YOUR_PUBLIC_IP
Enter fullscreen mode Exit fullscreen mode

Mac/Linux:

ssh -i ~/path/to/your-key.key ubuntu@YOUR_PUBLIC_IP
Enter fullscreen mode Exit fullscreen mode

Type yes when asked about the fingerprint. You should see the Ubuntu welcome screen.


Step 5: Install Everything

Run these commands one by one:

# Update the system
sudo apt update && sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

When prompted about restarting services, just press Enter to accept defaults.

# Install XFCE desktop + VNC + noVNC
sudo apt install -y xfce4 xfce4-goodies tightvncserver novnc websockify
Enter fullscreen mode Exit fullscreen mode
# Install Firefox (non-snap version — important!)
sudo add-apt-repository ppa:mozillateam/ppa -y
sudo apt install -y firefox-esr
Enter fullscreen mode Exit fullscreen mode

Why non-snap Firefox? Ubuntu's default Firefox is installed as a snap package, which doesn't work inside a VNC session. Always use firefox-esr from the Mozilla PPA instead.


Step 6: Configure VNC

Set your VNC password:

vncserver :1
Enter fullscreen mode Exit fullscreen mode

Enter a password (max 8 characters). Type n when asked about a view-only password.

Configure XFCE as the desktop:

vncserver -kill :1

cat > ~/.vnc/xstartup << 'EOF'
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
EOF

chmod +x ~/.vnc/xstartup
Enter fullscreen mode Exit fullscreen mode

Start VNC with your screen resolution:

vncserver :1 -geometry 1920x1080 -depth 24
Enter fullscreen mode Exit fullscreen mode

Step 7: Start noVNC

noVNC is what turns the VNC desktop into something you can open in any browser:

websockify --web=/usr/share/novnc/ 6080 localhost:5901 &
Enter fullscreen mode Exit fullscreen mode

Step 8: Open the Firewall

You need to open port 6080 in two places:

1. Inside the VM:

sudo apt install -y iptables-persistent
sudo iptables -I INPUT -p tcp --dport 6080 -j ACCEPT
sudo netfilter-persistent save
Enter fullscreen mode Exit fullscreen mode

The iptables-persistent part is important — without it, the firewall rule disappears every time the VM reboots.

2. In Oracle Cloud Console:

  1. Go to Networking → Virtual Cloud Networks → Your VCN
  2. Click Security tab → Default Security List
  3. Click Add Ingress Rules:
    • Source CIDR: 0.0.0.0/0
    • Protocol: TCP
    • Destination Port Range: 6080
  4. Click Add Ingress Rules

Step 9: Access from Any Device

Open any browser and go to:

http://YOUR_PUBLIC_IP:6080/vnc.html
Enter fullscreen mode Exit fullscreen mode

Enter your VNC password → Click Connect.

You'll see the full Ubuntu desktop. Open Firefox from Applications → Web Browser.

That's it. You can now open this URL from your phone, your office laptop, a friend's computer — anywhere.


Make It Survive Reboots

Set up systemd services so everything starts automatically:

sudo bash -c 'cat > /etc/systemd/system/vncserver.service << EOF
[Unit]
Description=VNC Server
After=network.target

[Service]
User=ubuntu
Type=forking
ExecStartPre=-/usr/bin/vncserver -kill :1
ExecStartPre=-/bin/rm -f /tmp/.X1-lock /tmp/.X11-unix/X1
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF'
Enter fullscreen mode Exit fullscreen mode
sudo bash -c 'cat > /etc/systemd/system/novnc.service << EOF
[Unit]
Description=noVNC
After=vncserver.service
Requires=vncserver.service

[Service]
User=ubuntu
ExecStart=/usr/bin/websockify --web=/usr/share/novnc/ 6080 localhost:5901
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF'
Enter fullscreen mode Exit fullscreen mode
sudo systemctl daemon-reload
sudo systemctl enable vncserver novnc
sudo systemctl start vncserver novnc
Enter fullscreen mode Exit fullscreen mode

Now VNC + noVNC start automatically on every reboot. No SSH needed to get back in.


Transferring Files to Your VM

Copy a file from your local machine to the VM:

scp -i /path/to/key.key /local/file.pdf ubuntu@YOUR_IP:/home/ubuntu/
Enter fullscreen mode Exit fullscreen mode

What Else Can You Do With This VM?

A free cloud VM with 2 cores and 12 GB RAM is surprisingly capable. Here's what you can run on it beyond just browsing:

🛠️ Development & Coding

  • Host a web server — deploy a Node.js, Python Flask, or any backend API for free
  • VS Code in the browser — install code-server and get a full IDE accessible from any device
  • Database server — run PostgreSQL, MongoDB, or Redis
  • Docker containers — spin up multiple services on one VM

📚 Learning & Practice

  • Linux practice — a safe sandbox to learn terminal commands without breaking your own machine
  • Learn DevOps — practice Docker, CI/CD pipelines, nginx configs
  • Self-host your side projects — deploy and share your projects for free
  • Run Python/ML scripts — small AI experiments and data processing

⚡ Always-On Tasks

  • Background downloads — leave large downloads running 24/7 without keeping your laptop on
  • Scheduled cron jobs — run scripts at specific times automatically
  • Telegram/Discord bots — keep them always online
  • Web scrapers — run data collection scripts continuously

🔒 Privacy

  • Browse with a different IP — websites see the VM's IP, not yours
  • Isolated browsing — keep work and personal browsing completely separate

Gotchas I Hit (So You Don't Have To)

1. Public IP not assigned by default
New Oracle VMs sometimes have no public IP. Go to Networking → VNIC → IP Administration to assign one.

2. Snap browsers don't work in VNC
Both chromium-browser and firefox on Ubuntu 22.04 install as snap packages which crash inside VNC with a cgroup error. Use firefox-esr from the Mozilla PPA instead.

3. iptables rules reset on reboot
After resizing the VM (changing CPU/RAM), Oracle reboots it and iptables resets. The fix is iptables-persistent which saves rules permanently.

4. Mumbai region capacity
If you're in India, the Mumbai region is often at capacity for free ARM VMs. You may get fewer OCPUs/RAM than the limit allows. Try resizing after creation, or add the Singapore region to your account.


Security

  • Don't share your URL + VNC password with anyone you don't trust
  • Enable MFA on your Oracle account: Profile → Security → MFA
  • The connection is HTTP (not HTTPS) — don't do internet banking or enter real passwords inside the VM
  • Change your VNC password anytime with vncpasswd

Final Thoughts

For ₹0 a month, you get a cloud computer with 2 cores and 12 GB RAM running 24/7, accessible from any device on the planet.

Is it blazing fast? No. Is it free forever and genuinely useful? Absolutely.

I use it for browsing, running scripts, and keeping things running in the background — without touching my local machine's resources.


If this helped you, drop a ❤️! And if you hit any issues, ask in the comments — I've probably already made that mistake. 😄

Top comments (0)