{
    "url": "https://nucez.com/en/blog/proxmox-panel-warum",
    "lang": "en",
    "title": "Why I built my own panel for Proxmox | Nucez Software",
    "description": "Multiple Proxmox hosts mean multiple logins, a clunky API and a lot of manual work. How that turned into NexoVirt.",
    "alternates": {
        "de": "https://nucez.com/blog/proxmox-panel-warum",
        "en": "https://nucez.com/en/blog/proxmox-panel-warum"
    },
    "markdown_url": "https://nucez.com/en/blog/proxmox-panel-warum.md",
    "sections": [
        {
            "heading": "Why I built my own panel for Proxmox",
            "level": 1,
            "content": "By [Bjarne Fomferra](https://nucez.com/en/about) · 18.06.2026\n\nProxmox VE is a solid piece of software. It does exactly what it was built for: virtualization on a host or in a cluster. But as soon as multiple clusters are involved, day-to-day work gets tedious."
        },
        {
            "heading": "[The problem starts with the second host](https://nucez.com/en/projects/nexovirt)",
            "level": 2,
            "content": "With the first host you don't notice anything. With the second you open a second tab. By the fourth you have a bookmarks bar full of web interfaces, four sessions that expire at different speeds, and no shared view of utilization, backups or free addresses.\n\nOn top of that there's the API. It's complete, but it's not pleasant. If you want to automate provisioning, you end up writing your own intermediate layer. At some point I had exactly that intermediate layer lying around three times, in varying quality."
        },
        {
            "heading": "[What I wanted instead](https://nucez.com/en/projects/nexovirt)",
            "level": 2,
            "content": "The requirements were short:\n\n- One interface for all hosts, regardless of cluster\n- An API you can understand in an afternoon\n- Customers can see their own servers, but only their own\n- Plans, quotas and expiry should be enforced automatically\n- No changes to the existing Proxmox installation\n\nThe last point was the most important. A panel that requires a reinstall is worthless in live operation."
        },
        {
            "heading": "[How it runs today](https://nucez.com/en/projects/nexovirt)",
            "level": 2,
            "content": "NexoVirt connects via SSH to a lightweight agent and reads out the state of the nodes. The interface shows guests, storage, networks and backups across all clusters. All actions run asynchronously, so the interface doesn't block while a clone is running in the background.\n\nThe REST API covers the complete lifecycle. If you like, you can run the panel purely as a view and control everything through automation.\n\nWhat it has turned into is described in detail on the [project page](https://nucez.com/en/projects/nexovirt).\n\n[Back to the blog](https://nucez.com/en/blog)\n\nAuthor Bjarne Fomferra IT specialist for application development, owner of Nucez Software\n\nIn short\n\nMultiple Proxmox hosts mean multiple logins, a clunky API and a lot of manual work. How that turned into NexoVirt.\n\nQuestions about your project?\n\nSend me a short message, I usually reply within one business day."
        }
    ],
    "structured_data": [
        {
            "@context": "https://schema.org",
            "@graph": [
                {
                    "@type": "ProfessionalService",
                    "@id": "https://nucez.com/#organization",
                    "name": "Nucez Software",
                    "url": "https://nucez.com/",
                    "logo": {
                        "@type": "ImageObject",
                        "url": "https://nucez.com/assets/img/email/logo-weiss.png",
                        "width": 720,
                        "height": 200
                    },
                    "image": "https://nucez.com/assets/img/og-default.jpg",
                    "email": "info@nucez.de",
                    "founder": {
                        "@id": "https://nucez.com/#person"
                    },
                    "sameAs": [
                        "https://www.google.com/maps?cid=9349361584822113195",
                        "https://www.google.com/search?kgmid=/g/11zhb0srkw",
                        "https://www.gelbeseiten.de/gsbiz/9cae0f69-e81a-4ab8-8054-ac573b388637"
                    ],
                    "openingHoursSpecification": [
                        {
                            "@type": "OpeningHoursSpecification",
                            "dayOfWeek": [
                                "Monday",
                                "Tuesday",
                                "Wednesday",
                                "Thursday",
                                "Friday"
                            ],
                            "opens": "08:00",
                            "closes": "18:00"
                        },
                        {
                            "@type": "OpeningHoursSpecification",
                            "dayOfWeek": [
                                "Saturday",
                                "Sunday"
                            ],
                            "opens": "10:00",
                            "closes": "17:00"
                        }
                    ],
                    "address": {
                        "@type": "PostalAddress",
                        "streetAddress": "Im Windfeld 36",
                        "postalCode": "32130",
                        "addressLocality": "Enger",
                        "addressRegion": "Nordrhein-Westfalen",
                        "addressCountry": "DE"
                    },
                    "areaServed": [
                        {
                            "@type": "City",
                            "name": "Enger"
                        },
                        {
                            "@type": "City",
                            "name": "Herford"
                        },
                        {
                            "@type": "City",
                            "name": "Bielefeld"
                        },
                        {
                            "@type": "AdministrativeArea",
                            "name": "Ostwestfalen-Lippe"
                        },
                        {
                            "@type": "Country",
                            "name": "Deutschland"
                        }
                    ],
                    "brand": [
                        {
                            "@type": "Brand",
                            "name": "NexoVirt",
                            "url": "https://nexovirt.com/"
                        },
                        {
                            "@type": "Brand",
                            "name": "NZ GEO Visibility",
                            "url": "https://nucez.com/en/projects/nz-geo-visibility"
                        }
                    ],
                    "knowsAbout": [
                        "Individualsoftware",
                        "Automatisierung",
                        "Web-Anwendungen",
                        "Webdesign",
                        "JTL-Wawi",
                        "JTL-Shop",
                        "Schnittstellen",
                        "Generative Engine Optimization",
                        "Hosting"
                    ]
                },
                {
                    "@type": "Person",
                    "@id": "https://nucez.com/#person",
                    "name": "Bjarne Fomferra",
                    "jobTitle": "IT specialist for application development",
                    "worksFor": {
                        "@id": "https://nucez.com/#organization"
                    },
                    "url": "https://nucez.com/en/about",
                    "image": "https://nucez.com/assets/img/portrait.jpg",
                    "address": {
                        "@type": "PostalAddress",
                        "addressLocality": "Enger",
                        "addressCountry": "DE"
                    }
                },
                {
                    "@type": "WebSite",
                    "@id": "https://nucez.com/#website",
                    "name": "Nucez Software",
                    "url": "https://nucez.com/",
                    "inLanguage": [
                        "de",
                        "en"
                    ],
                    "publisher": {
                        "@id": "https://nucez.com/#organization"
                    }
                }
            ]
        },
        {
            "@context": "https://schema.org",
            "@type": "BreadcrumbList",
            "itemListElement": [
                {
                    "@type": "ListItem",
                    "position": 1,
                    "name": "Home",
                    "item": "https://nucez.com/en"
                },
                {
                    "@type": "ListItem",
                    "position": 2,
                    "name": "Blog",
                    "item": "https://nucez.com/en/blog"
                },
                {
                    "@type": "ListItem",
                    "position": 3,
                    "name": "Why I built my own panel for Proxmox",
                    "item": "https://nucez.com/en/blog/proxmox-panel-warum"
                }
            ]
        },
        {
            "@context": "https://schema.org",
            "@type": "BlogPosting",
            "headline": "Why I built my own panel for Proxmox",
            "description": "Multiple Proxmox hosts mean multiple logins, a clunky API and a lot of manual work. How that turned into NexoVirt.",
            "datePublished": "2026-06-18",
            "dateModified": "2026-06-18",
            "inLanguage": "en",
            "mainEntityOfPage": "https://nucez.com/en/blog/proxmox-panel-warum",
            "image": "https://nucez.com/assets/img/blog-proxmox-panel-warum.jpg",
            "author": {
                "@type": "Person",
                "@id": "https://nucez.com/#person",
                "name": "Bjarne Fomferra",
                "url": "https://nucez.com/en/about"
            },
            "publisher": {
                "@id": "https://nucez.com/#organization"
            }
        }
    ],
    "publisher": {
        "name": "Nucez Software",
        "person": "Bjarne Fomferra",
        "location": "Enger, Germany",
        "email": "info@nucez.de",
        "url": "https://nucez.com/"
    }
}