Skip to main content

The Growing Trend of Self-Hosting: Empowering Web Independence

This article provides an in-depth look at how and why self hosting going mainstream is happening — starting from the basics, like what is self hosting, to practical examples of self hosting a website, including both nextjs self hosting and supabase self hosting. The reader will learn about the key benefits of self hosting, how to deploy a self hosting website on their own server, and get access to useful links and documentation for self hosting nextjs and related tools.

The Growing Trend of Self-Hosting: Empowering Web Independence

In the era of cloud computing, where platforms like AWS, Google Cloud, and Vercel dominate the landscape, self-hosting is making a significant comeback.

What was once a niche activity reserved for tech enthusiasts is now gaining mainstream attention.

This shift, often described as self hosting going mainstream, is changing the way we think about web services, privacy, and digital autonomy.


What is Self-Hosting?

Self-hosting refers to the practice of setting up, running, and maintaining your own web services, rather than relying on third-party platforms or hosting providers.

Instead of using cloud-based services like AWS or hosting providers like Hostinger, users run their applications on their own infrastructure, whether that’s a personal server, a cloud instance, or even a Raspberry Pi.


The Core Benefits of Self-Hosting

Self hosting provides several key benefits, which have made it increasingly attractive to both individuals and organizations:

1. Control and Privacy

One of the primary reasons for choosing self hosting is the level of control it provides. With self hosting a website or service, you’re in charge of how data is handled, stored, and secured. In an age where data privacy is a growing concern, self hosting allows individuals to protect their data from prying eyes.

2. Cost Efficiency

Self hosting can be more cost-effective than using third-party hosting services. While there may be initial setup costs, especially if you need to purchase hardware or set up servers, the long-term cost of running your services on your own infrastructure can be significantly lower.

3. Customization and Flexibility

When you self host, you have full control over your software environment. You can choose your stack, customize configurations to suit your specific needs, and optimize performance.

4. Learning Experience

Managing your own server develops practical knowledge in system administration, networking, security, and troubleshooting — making self hosting a powerful way to grow your technical skills.


Self-Hosting a Website: How It Works

One of the most common applications of self hosting is self hosting a website. Whether you're running a personal blog or a business application, the process involves a few key steps:

1. Setting Up a Server

The server can be a physical machine (home server), a virtual private server (VPS), or a cloud-based VM.

Example: Set up a basic web server on Ubuntu:

# Update the system
sudo apt update && sudo apt upgrade -y

# Install Nginx web server
sudo apt install -y nginx

# Configure basic firewall
sudo apt install -y ufw
sudo ufw allow 'Nginx Full' # Opens ports 80 and 443
sudo ufw allow OpenSSH # Keeps SSH access open
sudo ufw enable

# Start Nginx
sudo systemctl start nginx
sudo systemctl enable nginx

Visit your server’s IP in the browser — you should see the Nginx welcome page.

2. Configuring DNS

  1. Purchase a domain from any registrar (Namecheap, Google Domains, etc.)
  2. Add an A record pointing your domain to your server's IP address:
TypeNameValueTTL
A@your.server.ip3600
Awwwyour.server.ip3600

3. Securing with SSL/TLS

# Install Certbot for free SSL certificates
sudo apt install -y certbot python3-certbot-nginx

# Obtain certificates (replace with your domain)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

4. Basic Nginx Configuration for Next.js site


server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;

ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

# Proxy to Next.js running on port 3000
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
}

Enable and apply:


sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5. Setup Website Directory

# Create directory
sudo mkdir -p /var/www/yourdomain.com/html

# Set permissions
sudo chown -R $USER:$USER /var/www/yourdomain.com/html
sudo chmod -R 755 /var/www/yourdomain.com

6. Deploy Your Website

# Install Node.js
sudo apt install -y nodejs npm

# Install PM2 for running Node apps
sudo npm install -g pm2

# Clone and deploy your app
git clone https://github.com/your-repo/your-nextjs-app.git
cd your-nextjs-app
npm install
npm run build
pm2 start npm --name "nextjs" -- start
pm2 startup
pm2 save

That's it! You now have a basic self-hosted website with SSL encryption. This setup provides the foundation you need to host static sites or dynamic applications like those built with Next.js.


Supabase Self-Hosting

Supabase is an open-source Firebase alternative. It allows full backend functionality including auth, database, and storage. The best part? You can self host Supabase and run everything on your own infrastructure.

Steps to Run Supabase Locally

  1. Install Docker
# For Ubuntu
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
  1. Clone the repo:
git clone https://github.com/supabase/supabase.git
cd supabase
  1. Run the containers:
docker-compose up -d

Now you have a fully running backend: Postgres + Supabase Auth + Realtime engine.

  1. Connect to Supabase from your Next.js app:

// Install the Supabase client in your Next.js app
// npm install @supabase/supabase-js

// In your Next.js app, create a client connection
import { createClient } from '@supabase/supabase-js'

const supabaseUrl = 'http://localhost:8000' // Your self-hosted Supabase URL
const supabaseKey = 'your-anon-key' // Find this in the Supabase dashboard

const supabase = createClient(supabaseUrl, supabaseKey)

// Now you can use Supabase in your app
async function getUsers() {
const { data, error } = await supabase
.from('users')
.select('*')

// Use the data in your Next.js components
}

Docs: https://supabase.com/docs/guides/self-hosting


The Future of Self-Hosting

As tools become easier to use and open-source ecosystems thrive, self hosting going mainstream is not just a trend — it’s a shift in how we think about software ownership.

The rise of self-hosted alternatives to popular commercial services makes this approach increasingly attractive to a wider audience. Users can now replace subscription-based services with their own instances of:

  • Plausible Analytics (web analytics) Link
  • Ghost (blogging platform) Link
  • Nextcloud (private file sharing) Link
  • Uptime Kuma (status page monitoring) Link

Helpful Resources


Final Thoughts

Whether you're building a side project or managing infrastructure for your company, self hosting provides:

  • Privacy and control
  • Cost efficiency
  • Customization
  • Technical growth

The tools are rapidly evolving, the documentation is improving, and the community is growing exponentially. If you've been wondering what is self hosting, now is the perfect time to dive in and try self hosting a website or service yourself.

The age of self hosting going mainstream is here — and it's just getting started

CONTACT US TODAY

Don't want to fill out the form? Then contact us by email hi@focusreactive.com