Building a Personal 'Mini-Vercel': Deploying Coolify and Nixpacks on Oracle Cloud ARM VPS
Introduction: The Quest for Self-Hosted Deployment Freedom
For modern web developers, platforms like Vercel, Netlify, and Heroku revolutionized how we deploy applications. The seamless Git-to-deployment workflow, automatic SSL, and zero-config setups made production launches effortless. However, as projects scale, vendor lock-in, unpredictable pricing tiers, and strict usage limits often become significant hurdles. What if you could replicate that exact Vercel-like magic on your own infrastructure, completely free of charge?
By combining the generous Oracle Cloud Infrastructure (OCI) Always-Free Tier with Coolify (an open-source Heroku/Vercel alternative) and Nixpacks (a cutting-edge build tool), you can build a robust, self-hosted PaaS (Platform as a Service). This guide provides a comprehensive, step-by-step blueprint to provisioning an ARM-based VPS and configuring your very own personal 'Mini-Vercel'.
---Why This Stack? Understanding the Components
Before diving into the technical setup, it is essential to understand why this specific combination of tools creates such a formidable deployment engine.
- Oracle Cloud ARM VPS: Oracle's Ampere Altra ARM-based compute instances are arguably the best free tier offering in the cloud industry. You can provision up to 4 OCPUs and 24 GB of RAM for free. This infrastructure provides more than enough computing horsepower to build and host multiple full-stack applications simultaneously.
- Coolify: Serving as the control plane, Coolify is an open-source, self-hosted platform that manages your servers, applications, databases, and services via an intuitive web dashboard. It automates reverse proxy configuration (via Traefik), handles automatic Let's Encrypt SSL certificates, and connects directly to GitHub or GitLab.
- Nixpacks: Developed by Railway, Nixpacks takes a repository and creates a deployable container image. It analyzes your source code (whether it is Next.js, Nuxt, Python, Go, or Rust), detects the language, installs the required system dependencies, and builds the app efficiently. It acts as a faster, more modern alternative to traditional Buildpacks.
Phase 1: Provisioning Your Oracle Cloud ARM Instance
The foundation of our Mini-Vercel relies on a properly configured virtual private server. Follow these steps to set up your Oracle Cloud instance:
1. Create the Compute Instance
Log into your Oracle Cloud Console, navigate to Compute > Instances, and click Create Instance. Configure the following parameters:
- Image and Shape: Click Edit. For the image, select Ubuntu 22.04 LTS or Ubuntu 24.04 LTS. For the shape, select Ampere (ARM) and assign 2 to 4 OCPUs and 12 to 24 GB of RAM based on your availability.
- Networking: Assign a public IPv4 address and ensure it is attached to a Virtual Cloud Network (VCN) with a public subnet.
- SSH Keys: Generate or upload your public SSH key. Do not lose the corresponding private key, as this is your only way to access the server.
2. Configure the Security List (Firewall)
Coolify requires specific ports to be accessible from the outside world. Navigate to your VCN's Subnet, click on the Default Security List, and add the following Ingress Rules:
- Port 22 (TCP): For SSH access (usually open by default).
- Port 80 (TCP): For HTTP traffic and SSL challenges.
- Port 443 (TCP): For secure HTTPS production traffic.
- Port 8000 (TCP): For the Coolify dashboard UI (can be closed later if using a domain reverse proxy).
Important Security Note: Oracle Cloud applies an internal iptables firewall on Ubuntu images by default. Even after opening ports in the web console, you must allow traffic within the OS. Run the following commands inside your instance once logged in:
sudo iptables -I INPUT 6 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT 6 -p tcp --dport 8000 -j ACCEPT
sudo netfilter-persistent save---Phase 2: Installing Coolify on the ARM VPS
With the server secured and accessible, we can install Coolify. The developers have provided a highly optimized, one-line installation script that automatically detects your system architecture (including ARM64) and installs Docker, Docker Compose, and all necessary dependencies.
Running the Installation Script
SSH into your Oracle Cloud instance and execute the following command:
curl -fsSL [https://cdn.coollabs.io/coolify/install.sh](https://cdn.coollabs.io/coolify/install.sh) | bashThe installation process may take 3 to 5 minutes depending on network speeds. The script will pull the required Docker containers, configure the local network bridge, and initialize the Traefik reverse proxy. Once complete, the terminal will display the public URL and login instructions, typically pointing to http://your-server-ip:8000.
Phase 3: Initial Setup and Domain Configuration
Open your web browser and navigate to your server's IP address on port 8000. You will be prompted to create the initial administrator account.
1. Pointing Your Domain
To achieve a true Vercel-like experience, you need a wildcard domain configuration. Go to your DNS provider (e.g., Cloudflare) and create two records:
- A Record: Name:
panel.yourdomain.com-> Points toYour_VPS_IP - A Record (Wildcard): Name:
*.apps.yourdomain.com-> Points toYour_VPS_IP
2. Configuring Coolify Settings
Inside the Coolify dashboard, navigate to Settings. Set the Wildcard Domain field to [http://apps.yourdomain.com](http://apps.yourdomain.com). Coolify will use this base to automatically generate unique subdomains for every new project you deploy, seamlessly acquiring Let's Encrypt certificates behind the scenes.
Phase 4: Deploying an Application with Nixpacks
Now comes the exciting part: deploying your first application using Git integration and Nixpacks building technology.
1. Connect Your GitHub Account
Navigate to Sources in Coolify and click Add New Source. Select GitHub App. Follow the prompts to install the Coolify integration on either your entire GitHub account or selected repositories. This grants Coolify the ability to listen to webhook events for instant deployments when you push code.
2. Create a New Project
Go to Projects, click + New Project, and select an environment (e.g., production). Click + New Resource and choose Public/Private Repository. Select your connected GitHub source and pick a repository (for instance, a Next.js or Vite application).
3. Selecting the Build Pack
Coolify will analyze your repository. Under the Build Pack configuration configuration layout, ensure that Nixpacks is selected. Nixpacks automatically determines the node version, package manager (npm, yarn, pnpm), and optimum build commands without requiring a Dockerfile.
If your application requires environment variables, add them in the designated Environment Variables tab. Click Deploy.
4. Monitoring the Build Pipeline
You can watch the real-time build logs as Nixpacks downloads the necessary system libraries, runs your framework's build script, and compiles the production assets. Once finished, Traefik updates its routing tables, maps the public URL (e.g., [https://my-app.apps.yourdomain.com](https://my-app.apps.yourdomain.com)), and brings your application online with zero downtime.
Conclusion: The Power of Self-Hosting
Congratulations! You have successfully built a private, robust, and completely free 'Mini-Vercel' deployment pipeline. By utilizing Oracle Cloud's high-performance ARM instances, Coolify's orchestration interface, and Nixpacks' automated build engine, you now possess a developer environment that rivals commercial platforms.
You have absolute control over your resource allocation, database deployments (PostgreSQL, Redis, MongoDB are natively supported in Coolify with one-click setups), and configuration limitations. You are no longer bound by strict execution time constraints or seat-based billing. Enjoy your newly acquired deployment independence!