Loading...

Purchase a Self-Managed VPS Hosting with Cloudron Installation

Cloudron is a powerful platform that provides companies and individuals with easy, secure management of web applications on their server environment. Cloudron enables you to deploy, update, and manage over 60 pre-tested apps with a single click, blending seamlessly into your workflow. Cloudron is user-friendly and customizable, making server management simple even for those without extensive technical knowledge.

Why Use Cloudron?

Cloudron keeps your private data safe by running your apps inside secure, isolated containers. It automates updates, backups, DNS, SSL, and user management, so you can enjoy the full power of self-hosted apps without compromising your digital security or spending time on system administration.

Uses of Cloudron

There are many applications of Cloudron in different fields:

  • Secure Automations: Run web apps, file sharing, and collaboration tools safely inside isolated containers.
  • Smart Approvals: Manage user access and permissions for sensitive apps and workflows from a single dashboard.
  • Custom Integrations: Deploy apps like WordPress, Nextcloud, GitLab, Rocket.Chat, and more, connecting your server to your favorite platforms.
  • Safe Data Handling: Back up and migrate apps securely, analyze and manage data without risking leaks or hacks.
  • Enterprise Development: Build and manage corporate tools, documentation, and communication platforms with strict access controls.

This versatility makes Cloudron a valuable asset for anyone looking to deploy secure, automated web applications with total peace of mind.

How to Purchase a Self-Managed VPS Hosting with Cloudron Installation

To get started with Cloudron on Bluehost, you first need to purchase a Self-Managed VPS plan. Follow the steps below:

Pre-configured Setup

Self-Managed VPS - Pre-configured Setup New to VPS or not sure where to start? No worries! At the top of the Self-Managed VPS purchase page, you’ll see the Pre-configured Setup section. This handy feature is perfect if you’re feeling a bit unsure—just pick the type of project you want, like WordPress Site, AI Agent/Claude Code, Dev/Staging, or eCommerce Store. We’ll take care of the rest by automatically filling in the best plan, operating system, and template for you.
  • Super simple for beginners or anyone who just wants a quick setup
  • Instantly get the recommended settings for your project
  • Skip the guesswork and save time
  • You can still customize things later if you want
Give the Pre-configured Setup a try and get your Bluehost Self-Managed VPS up and running in no time!
  1. In your browser, go to https://www.bluehost.com/vps-hosting.
  2. Click the Choose Plan button under your preferred VPS hosting plan.

    VPS Hosting-Choose Plan
     

  3. Select your preferred Data Center location.

    Select Location
     

  4. On the Cart page, you can configure your server to fit your needs in the following section:
    1. Hardware:
      1. Pre-selected:

        You can select a different Self-Managed VPS plan in this section.

        Pre-selected
         

      2. Configure:

        Click Configure to customize your package.

        Configure your server
         

    2. Software:
      1. Click on the Application Tab.
      2. Choose Cloudron.

        select cloudron
         

      3. Click Confirm to continue.

        select cloudron- confirm
         

  5. Add-Ons:
    • Premium Support:

      You can add Premium Support here, which gives you priority access to expert assistance and faster response times.

      Add-ons
       

  6. In the Advanced options:
    • Extra IP's: You can add extra IP addresses for an additional fee.
      Pricing changes based on how many IPs you add.
    • Hostname: Assign a custom hostname to easily identify your server. This is optional.

      Advanced Options
       

  7. Select your preferred billing term and view your Order Summary. Click the Continue to Checkout button to proceed.

    cloudron-service-terms
     

  8. Do the following on the Checkout page:

    If you're new with Bluehost:

    1. Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!

      Checkout page - Create an account
       

    2. Select your preferred payment method: credit card, Google Pay, or PayPal. Enter your billing information.

      Checkout page - Billing Information
       

    If you have an account with us, you will see your Bluehost login details when you are logged into your Bluehost Portal. If you are not logged in, please click the Log In link.

    log-in to account in bh
     

  9. In the Shopping Cart section, you can still adjust your billing term if needed.

    Self-Managed VPS - service terms
     

  10. Review the items in your cart, add a Promo Code if you have one, and then click Submit Payment to complete the purchase.

    Self-Managed VPS - service terms
     

After checkout, your Self-Managed VPS will begin setting up. Once it’s ready, you can find it under the Hosting tab in your Bluehost Portal.

How to Setup your Cloudron Server

  1. Server and Network Configuration
        cat /var/log/onboot.log
    Example Output:
        
        Last login: Sat Jun 20 20:54:21 2026 from 123.45.678.910
        root@server-123456:~# cat /var/log/onboot.log
        [2026-06-20 20:41:18] Starting onboot script
        [2026-06-20 20:41:18] Disabled Cloudron MOTD: 92-cloudron
        [2026-06-20 20:41:18] Onboot script completed successfully
        root@server-123456:~#
            
  2. Open Firewalls (Cloud Provider Specific)

    Do NOT enable UFW (ufw enable). Cloudron manages its own internal firewall using iptables. Enabling UFW will break its container networking.

    • If you are on AWS EC2: Go to your AWS Console → Security Groups, and ensure Ports 80 (HTTP) and 443 (HTTPS) are open to the world (0.0.0.0/0).
    • If you are on Oracle Cloud: The script should handle this. If you can't reach the setup page shortly, force-open the OS firewall by running:
        
        iptables -I INPUT -p tcp --dport 80 -j ACCEPT
        iptables -I INPUT -p tcp --dport 443 -j ACCEPT
        netfilter-persistent save
            
        
        root@server-123456:~# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
        iptables -I INPUT -p tcp --dport 443 -j ACCEPT
        netfilter-persistent save
        run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
        run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
        root@server-123456:~#
            
  3. Configure Your DNS Records
    • Log into your DNS provider's dashboard and add two A Records pointing to your server's public IP:
      Type Name Value / Points to TTL
      A @ your-server-public-ip Auto / 14400
      A * your-server-public-ip Auto / 14400

Access your Cloudron Dashboard

After the configuration completes:

  1. Log In via Your Browser:
        https://your-server-ip
        

  2. Bypass the Browser Security Warning.

    BH AM - aaPanel log in  click advanced
     

  3. Link Your Domain & DNS API

    On the setup screen, fill out the configuration form:

    BH - Cloudron - Domain Setup
     

    • Domain: Enter your root domain (e.g., yourdomain.com).
    • DNS Provider: Select your provider from the dropdown.
    • API Token: Paste the API key/token you generated during Phase 1.
    • Certificate Provider: Leave it on Let's Encrypt Prod - Wildcard.
    • IPv4 Configuration: Select Public IP.

    Once done, Cloudron will now automatically communicate with your DNS provider, create the necessary management subdomains, and provision an SSL certificate. This takes about 2–3 minutes.

    BH - Cloudron - Setting Up Dashboard
     

  4. Create the Admin Account

    Once the DNS validation succeeds, your browser will automatically redirect to a secure URL:

    https://my.yourdomain.com

    Fill out the final form to create your master admin account:

    • Enter your Name, Username, and a strong Password.
    • Enter a valid Email Address (Let’s Encrypt will send SSL expiration warnings here if anything ever fails to auto-renew).

    Click Create admin.

  5. Verification

    You are now logged into your Cloudron Dashboard!

    • To Install Apps: Go to the built-in App Store, click an app (like WordPress or Nextcloud), and give it a subdomain. Cloudron handles the rest.
    • Future Dashboard Access: You will always access your server administration portal at: https://my.yourdomain.com
  6. If you ever need to check if the background system services are running happily via SSH, you can run:
        
        
        Last login: Sat Jun 20 21:15:21 2026 from 123.456.789.101
        root@server-123456:~# systemctl status box
        ● box.service - Box
             Loaded: loaded (/etc/systemd/system/box.service; enabled; preset: enabled)
             Active: active (running) since Sat 2026-06-20 20:41:16 UTC; 2h 13min ago
            Process: 2388 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
           Main PID: 1251 (MainThread)
              Tasks: 11 (limit: 2332)
             Memory: 196.1M (max: 400.0M available: 203.8M peak: 200.6M)
                CPU: 5.683s
             CGroup: /system.slice/box.service
                     └─1251 node /home/yellowtent/box/box.js
        
        Jun 20 20:41:20 server-123456.testingdomain.com sudo[1533]: pam_unix(sudo:session): session opened for user root(uid=0)>
        Jun 20 20:41:20 server-123456.testingdomain.com sudo[1533]: pam_unix(sudo:session): session closed for user root
        Jun 20 22:17:04 server-123456.testingdomain.com sudo[2380]: pam_unix(sudo:session): session opened for user root(uid=0)>
        Jun 20 22:17:04 server-123456.testingdomain.com sudo[2380]: pam_unix(sudo:session): session closed for user root
        Jun 20 22:17:04 server-123456.testingdomain.com sudo[2385]: pam_unix(sudo:session): session opened for user root(uid=0)>
        Jun 20 22:17:04 server-123456.testingdomain.com systemd[1]: Reloading box.service - Box...
        Jun 20 22:17:04 server-123456.testingdomain.com sudo[2385]: pam_unix(sudo:session): session closed for user root
        Jun 20 22:17:09 server-123456.testingdomain.com systemd[1]: Reloaded box.service - Box.
        Jun 20 22:31:21 server-123456.testingdomain.com sudo[2471]: pam_unix(sudo:session): session opened for user root(uid=0)>
        Jun 20 22:31:21 server-123456.testingdomain.com sudo[2471]: pam_unix(sudo:session): session closed for user root
        

Additional Information & Example Documentation Output

You can run cat /root/README.md to see more information and useful commands:

Example Output:
    
    root@server-123456:~# cat /root/README.md
    # Cloudron
    
    ## Description
    
    Cloudron is a self-hosting platform that lets you install and manage popular web applications on your server with automatic updates and backups. It handles app configuration, SSL certificates, user management, and system maintenance automatically, making it easy to run a personal or organizational app ecosystem without deep technical expertise.
    
    ## Before You Begin
    
    You will need the following before starting setup:
    
    1. **A registered domain name** (e.g. `mycompany.com`) -- purchase from
       Namecheap, GoDaddy, or Porkbun. Cheap `.xyz` or `.online` domains
       cost $1-2/year.
    2. **Wildcard DNS configured** -- create a wildcard `A` record pointing
       `*.yourdomain.com` -> your server's public IP. This is required for
       Cloudron to create subdomains for each app automatically.
    3. **A DNS provider API key** so Cloudron can automatically manage DNS
       records. Cloudflare is recommended (free). Point your domain nameservers
       to Cloudflare, then create an API token with Zone -> DNS -> Edit permissions.
    4. **An admin email address** -- used for Let's Encrypt SSL certificate
       provisioning. Use a valid email you have access to.
    
    > Cloudron requires a real domain because it automatically provisions
    > wildcard SSL certificates and creates subdomains for every app you install
    > (e.g. `wordpress.yourdomain.com`, `nextcloud.yourdomain.com`).
    > This cannot be bypassed in production use.
    
    ---
    
    ## Minimum Resources
    
    Cloudron requires more resources than a typical single-app image due to its
    container orchestration, Docker engine, and built-in services (nginx, MySQL,
    mail server, etc.).
    
    | Resource | Minimum |
    |----------|---------|
    | CPU      | 2 vCPUs |
    | RAM      | 3 GB    |
    | Disk     | 20 GB   |
    
    ---
    
    ## How to Use
    
    #### Step 1 -- Wait for First Boot to Complete
    
    After launching the instance, the first-boot script runs automatically in the
    background. It opens ports 80 and 443 via iptables and prepares the system for
    Cloudron setup. This takes about 2 minutes. You can verify it completed:
    
    ```bash
    cat /var/log/onboot.log
    ```
    
    #### Step 2 -- Point Your Domain to This Server
    
    Before opening the setup UI, add these DNS records at your DNS provider:
    ```
    Type: A  |  Name: *  |  Value: your-server-ip  |  TTL: Auto
    Type: A  |  Name: @  |  Value: your-server-ip  |  TTL: Auto
    ```
    The wildcard record is required -- Cloudron automatically creates a subdomain
    for every app you install (e.g. `wordpress.yourdomain.com`).
    
    #### Step 3 -- Open the Cloudron Setup UI
    
    Open your browser and go to:
    ```
    http://your-server-ip
    ```
    
    You will see the Cloudron first-time setup wizard. If the page does not load,
    wait another minute and try again.
    
    #### Step 4 -- Enter Your Domain and DNS Credentials
    
    Fill in the setup form:
    - **Domain** -- your registered domain (e.g. `mycompany.com`)
    - **DNS Provider** -- select your provider (Cloudflare recommended)
    - **API Token** -- your DNS provider API token
    - **Certificate provider** -- leave as `Let's Encrypt Prod - Wildcard`
    - **IPv4 Configuration** -- leave as `Public IP`
    
    Click **Next**. Cloudron will create the required DNS records and provision
    a wildcard SSL certificate automatically. This may take 2-3 minutes.
    
    #### Step 5 -- Create Your Admin Account
    
    Once DNS and SSL are configured, Cloudron redirects you to
    `https://my.yourdomain.com`. Fill in your name, email, username, and
    password, then click **Create admin** to access your dashboard.
    
    > Use a real email address -- Let's Encrypt sends certificate renewal
    > notices to this address.
    
    ---
    
    ### Oracle Cloud Deployment
    
    Oracle Cloud has an additional OS-level firewall that blocks ports 80 and 443
    even after opening them in the Security List. This image handles this
    automatically on first boot -- no manual iptables commands are needed.
    
    If ports are still blocked after booting, SSH in and run:
    
    ```bash
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    iptables -I INPUT -p tcp --dport 443 -j ACCEPT
    netfilter-persistent save
    ```
    
    Then follow Steps 2-5 above.
    
    ---
    
    ### AWS EC2 Deployment
    
    #### Step 1 -- Open Security Group Ports
    
    Open these ports in your EC2 Security Group before accessing the setup page:
    
    | Port | Protocol | Source    | Purpose                    |
    |------|----------|-----------|----------------------------|
    | 22   | TCP      | Your IP   | SSH access                 |
    | 80   | TCP      | 0.0.0.0/0 | Cloudron setup UI + HTTP   |
    | 443  | TCP      | 0.0.0.0/0 | HTTPS for apps + dashboard |
    
    **Steps:**
    1. Go to EC2 -> Instances -> select your instance -> Security tab
    2. Click the Security Group link -> Edit inbound rules
    3. Add HTTP (port 80) and HTTPS (port 443) with source Anywhere (0.0.0.0/0)
    4. Save rules
    
    ## Accessing the Dashboard
    
    Cloudron has no default username or password. Your admin credentials are
    created by you during the first-boot setup wizard (Step 5 above). If you
    have not completed setup yet, open `http://your-server-ip` to begin.
    
    After setup, your Cloudron dashboard is always at:
    ```
    https://my.yourdomain.com
    ```
    
    Each app you install gets its own subdomain automatically:
    - WordPress -> `https://wordpress.yourdomain.com`
    - Nextcloud -> `https://nextcloud.yourdomain.com`
    - Gitea -> `https://git.yourdomain.com`
    
    Cloudron acts as an OAuth/OIDC provider -- once logged into the dashboard,
    you are automatically signed into all hosted apps.
    
    ---
    
    ## DNS Provider API Keys
    
    | Provider     | How to get credentials                               |
    |--------------|------------------------------------------------------|
    | Cloudflare   | My Profile -> API Tokens -> Create Token (Zone:Edit)  |
    | AWS Route 53 | IAM -> Users -> Create Access Key + Secret Key         |
    | GoDaddy      | developer.godaddy.com -> API Keys                    |
    | Namecheap    | Profile -> Tools -> API Access                        |
    | DigitalOcean | API -> Generate New Token                            |
    
    Full list: [DNS Provider docs](https://docs.cloudron.io/domains/#dns-providers)
    
    ---
    
    ## Services
    
    | Service  | Ports   | Purpose                                      |
    |----------|---------|----------------------------------------------|
    | Cloudron | 80, 443 | Setup UI, dashboard, and hosted applications |
    | OpenSSH  | 22      | Remote SSH access                            |
    
    > Do NOT enable UFW -- Cloudron manages its own firewall via iptables.
    > Enabling UFW will conflict with Cloudron's internal port management.
    
    ---
    
    ## Image Contents
    
    - Cloudron 8+ (currently 9.1.6, installed via official installer)
    - Docker CE (latest stable, upgraded post-install)
    - Ubuntu 24.04 with all security patches applied at build time
    
    > Cloudron bundles and manages its own versions of nginx and Node.js
    > internally. These are updated via Cloudron's own update mechanism.
    
    ---
    
    ## Known Limitations
    
    - Remaining Trivy vulnerabilities are in Cloudron's bundled Node.js
      dependencies and Docker CE binaries compiled with Go stdlib. These are
      managed by Cloudron and Docker upstream respectively and will be resolved
      in their future releases.
    - Cloudron requires a real domain name -- it cannot be accessed via IP
      address alone in production use.
    
    ---
    
    ## Validation Tests
    
    ```bash
    perl /root/app_test/main.t
    ```
    
    Runs 11 checks: `box.service` enabled and unit file present, first-boot script
    executable, logrotate config present, log directory exists, README copied to
    `/root/README.md`, MOTD executable, Docker binary and service available, port 80
    listening, and Cloudron box service active.
    
    ## Useful Commands (via SSH)
    
    ```bash
    # Check Cloudron status
    systemctl status box
    
    # Restart Cloudron
    systemctl restart box
    
    # View Cloudron logs
    journalctl -u box -n 100 --no-pager
    
    # View first-boot log
    cat /var/log/onboot.log
    ```
    
    ---
    
    ## Links
    
    **Cloudron**
    
    * Home: [cloudron.io](https://www.cloudron.io/)
    * Documentation: [docs.cloudron.io](https://docs.cloudron.io/)
    * App Store: [Cloudron App Store](https://www.cloudron.io/store/)
    * DNS Providers: [Supported DNS Providers](https://docs.cloudron.io/domains/#dns-providers)
    * Community Forum: [forum.cloudron.io](https://forum.cloudron.io/)
    root@server-123456:~#
    

Summary

With Cloudron, you will be able to leverage everything that comes with a secure and customizable server environment offered by Bluehost through the Self-Managed VPS Hosting. Here, you can benefit from enhanced data management, workflow integration, and many more benefits associated with Cloudron. With this tutorial, you will be all set to create your VPS and make the most of Cloudron.

Loading...