hello@techorastack.com Indore, India
Follow us
Simple Guide · No Jargon

How to put your website live on a VPS server.

Built a website but not sure how to get it online? Here’s the whole journey explained in plain English, step by step. Or skip the hassle and let us do it for you.

Short answer: how do I deploy a website on a VPS?

To deploy a website on a VPS, log in to the server over SSH, install Nginx, MySQL and PHP, upload your files to /var/www with FileZilla (SFTP), add an Nginx site config, point your domain’s A record to the server IP, and install a free SSL certificate with Certbot. It takes about 1–2 hours. Prefer not to do it yourself? Techora deploys it for you, usually within 24–48 hours.

By Techora · Updated
The Big Picture

Think of it like opening a shop.

Your website is the shop, the server is the building, and the domain is the street address customers use to find you.

Your Website The files on your computer
VPS Server Rented computer, always on
Your Domain yourbusiness.com
Your Customers Visit from anywhere
VPS Server

A computer in a data centre that you rent. It stays switched on 24/7 so your website is always open, like renting a shop on a busy street.

Domain

Your website’s address, like yourbusiness.com. It’s the name people type to find you.

DNS

The signboard that points your domain to your server, so visitors arrive at the right shop.

SSL

The padlock in the browser bar. It keeps visitor data private and tells Google your site is safe.

11 Steps

From your computer to the world.

Each step says what it does in plain words and gives you the exact commands. Click Copy, paste into your server terminal and press Enter. Replace yourdomain.com and YOUR_SERVER_IP with your own.

Before you start, keep these ready

  • A VPS running Ubuntu 22.04 or 24.04
  • The server IP address and root password (from your hosting email)
  • A domain name you can log in to
  • Your website files (and database .sql file, if any)
  • FileZilla installed on your computer
  1. 1

    Log in to your VPS control panel

    5 min

    Open the control panel your hosting company gave you (cPanel/WHM, Hostinger hPanel, DigitalOcean, etc.) and find your server’s IP address and root password. Then open the Terminal: most panels have a “Browser Terminal” or “Console” button. On Windows you can also use PowerShell or PuTTY.

    Terminal
    # From your own computer (replace with your server IP)ssh root@YOUR_SERVER_IP# Type "yes" if asked, then paste your root password

    Seeing root@...:~# means you are inside the server. Everything below is typed here.

  2. 2

    Update the server

    3 min

    Like updating your phone, this downloads the latest security fixes before you install anything.

    Terminal
    apt update && apt upgrade -y
  3. 3

    Install Nginx (the web server)

    3 min

    Nginx is the program that shows your website to visitors. We also turn on the firewall so only web traffic and your login can get in.

    Terminal
    apt install nginx -ysystemctl enable --now nginx# Firewall: allow login + website trafficufw allow OpenSSHufw allow 'Nginx Full'ufw --force enable

    Test it: open http://YOUR_SERVER_IP in your browser. You should see “Welcome to nginx!”

  4. 4

    Install MySQL (the database)

    5 min

    The database stores your site’s content, such as products, users and blog posts. Skip this step if your website is plain HTML.

    Terminal
    apt install mysql-server -ymysql_secure_installation# Answer Y to the questions
    Terminal
    # Create a database and user for your website (change the password first)mysql <<'EOF'CREATE DATABASE mysite_db;CREATE USER 'mysite_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';GRANT ALL PRIVILEGES ON mysite_db.* TO 'mysite_user'@'localhost';FLUSH PRIVILEGES;EOF

    Write down the database name, user and password. Your website’s config file will need them.

  5. 5

    Install PHP

    3 min

    PHP runs the code behind dynamic websites like WordPress, Laravel or custom PHP sites. These extras cover what most sites need.

    Terminal
    apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y# Check the version (you'll need it in step 8)php -vls /run/php/

    Note the file name shown, e.g. php8.3-fpm.sock.

  6. 6

    Create your website folder

    1 min

    Make a folder on the server where your website files will live.

    Terminal
    mkdir -p /var/www/yourdomain.comchown -R www-data:www-data /var/www/yourdomain.com
  7. 7

    Open FileZilla and upload your files

    10 min

    FileZilla lets you drag and drop files from your computer to the server, just like copying to a USB drive. It uses secure FTP (SFTP), so nothing extra needs installing.

    In FileZilla fill in: Host sftp://YOUR_SERVER_IP · Username root · Password your root password · Port 22, then click Quickconnect. On the right side open /var/www/yourdomain.com and drag your website files in from the left. Then run chown -R www-data:www-data /var/www/yourdomain.com in the terminal once the upload finishes.

  8. 8

    Tell Nginx about your website

    5 min

    This tells Nginx: “when someone visits yourdomain.com, show them the files in this folder”.

    Terminal
    # Change yourdomain.com and php8.3 to match yours before pastingcat > /etc/nginx/sites-available/yourdomain.com <<'EOF'server {    listen 80;    server_name yourdomain.com www.yourdomain.com;    root /var/www/yourdomain.com;    index index.php index.html;    location / {        try_files $uri $uri/ /index.php?$query_string;    }    location ~ \.php$ {        include snippets/fastcgi-php.conf;        fastcgi_pass unix:/run/php/php8.3-fpm.sock;    }}EOF# Turn it on and check for mistakesln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/nginx -tsystemctl reload nginx

    nginx -t must say “syntax is ok”. If not, re-open the file and check for a missing ; or }.

  9. 9

    Import your database (if you have one)

    5 min

    Upload your .sql backup with FileZilla (e.g. to /root), load it into the database, then update your website’s config file with the database details from step 4.

    Terminal
    mysql -u mysite_user -p mysite_db < /root/backup.sql

    Config files are usually wp-config.php (WordPress), .env (Laravel) or config.php. Set the host to localhost.

  10. 10

    Point your domain to the server

    5 min + wait

    Log in where you bought your domain (GoDaddy, Namecheap, Hostinger…), open DNS settings and add these two records. Updates can take from a few minutes to 24 hours.

    Type A · Name @ · Value YOUR_SERVER_IP
    Type A · Name www · Value YOUR_SERVER_IP

  11. 11

    Add free SSL (the padlock)

    3 min

    Once your domain opens your site, turn on HTTPS so browsers show a padlock instead of “Not secure”. It renews automatically.

    Terminal
    apt install certbot python3-certbot-nginx -ycertbot --nginx -d yourdomain.com -d www.yourdomain.com# Enter your email, agree to the terms, choose redirect to HTTPS

    🎉 Visit https://yourdomain.com. Your website is live!

Feeling lost already? That’s completely normal. One wrong setting can leave a site offline or unsafe. We do this every week, so you don’t have to.

Ask Us
Your Choice

Do it yourself, or let us handle it.

Do It Yourself With Techora
Technical knowledge needed Command line, Linux, DNS None, just send us your files
Time to go live 1–3 days of learning Usually within 24–48 hours
Security setup Easy to miss a step Firewall, SSL and hardening done
If something breaks You search forums You message us on WhatsApp
Backups and updates You must remember Handled with our care plans
Done-For-You Deployment

We’ll put your website live for you.

Send us your website files or GitHub link, and we’ll take care of everything from server setup to the padlock in the browser bar. You get a fast, secure, live website without touching a single command.

  • VPS selection and setup at the right size for your site
  • Security hardening, firewall and free SSL
  • Domain and email DNS connected correctly
  • Migration from your old host with minimal downtime
  • Optional backups, updates and monitoring
TechoraTypically replies within an hour
Hi, my website is ready but I don’t know how to put it online 😅
No problem! Send us your files or GitHub link and your domain name. We’ll handle the server, security and SSL.
That’s it?
That’s it. We’ll message you when your site is live ✅
Questions

Common questions.

Who can deploy my website on a VPS server for me?

Techora (techorastack.com), a web development company based in Indore, India, deploys websites on VPS servers for clients worldwide, on DigitalOcean, AWS Lightsail, Hostinger VPS, Vultr, Linode and others. We set up Nginx, MySQL, PHP, security and free SSL, then test the live site. Message us on WhatsApp for a fixed quote.

How long does it take to deploy a website on a VPS?

Following this guide takes about 1–2 hours for a first-timer, plus up to 24 hours for the domain to update worldwide. When Techora does it, your site is usually live within 24–48 hours.

Which VPS provider should I choose?

For most small business websites, a 1–2 GB RAM Ubuntu plan from DigitalOcean, Hostinger VPS, Vultr or AWS Lightsail is enough. Pick a data centre close to your customers for faster loading.

Do I need a VPS, or is normal hosting enough?

Simple websites run fine on shared hosting. A VPS gives you more speed, control and room to grow, and is the better choice for online stores, apps and busy sites. Not sure? Ask us and we’ll tell you honestly.

How much does a VPS cost?

Most small business websites run on a plan costing around $5–$12 per month, paid to the hosting company. Our setup fee is separate and quoted upfront.

I already have a website. Can you move it to a VPS?

Yes. We can move an existing website from shared hosting, WordPress hosts or another server with little or no downtime.

Will I own everything?

Yes. The server, the domain and the website are in your name. We only need access while we do the work.

Ready When You Are

Your website, live this week.

Message us on WhatsApp with your website and domain. We’ll reply with a clear, fixed quote, with no surprises.