Skip to content

The Future Belongs to 1Panel: Baota Has Completed Her Historical Mission

About 992 wordsAbout 3 min

OpsBaota1Panel

2024-10-08

In years of indie contracting, I’ve touched 100+ projects and 50+ servers by a conservative count. Most deploy and ops work was done through Baota (宝塔) Panel.

Back in big-company days everything was CLI, and dedicated ops colleagues owned the real work, so panel tools like Baota were unfamiliar.

Like falling in love, first contact with Baota was exciting and curious — I wanted every project under her care. And she delivered: new capabilities and bright spots kept appearing.

First encounter with Baota

It started after an incident where user-uploaded files were deleted with no backup. I began looking for tools beyond hand-rolled ops. I had already left the company and was helping a friend with a mini-program project. Losing data hurt a young team — those records were created by B2B customers that sales had painstakingly closed.

Meanwhile, the “heirloom” LNMP one-click scripts I’d “borrowed” from the company were not always obedient.

The script ran on Tencent Cloud standard instances but failed on lightweight instances due to permission-group differences; or it was locked to one distro such as CentOS and relied on the system package manager, so Ubuntu made the heirloom script useless.

Then I met Baota.

She offered optional component versions — a few mouse clicks and a coffee later, a standard environment was up.

She offered database backup, directory backup, scheduled backup policies, backup to cloud storage — a full toolchain.

She offered free SSL certificates and one-click HTTPS (the little green lock).

She offered a solid file manager: remote download, share links, online unzip — no more Xshell rz/sz mojibake pain.

...

Too many strengths. I was hooked, ready to hand over every server, trying new setups daily and exploring unknown corners.

Walking together

She quietly guarded many startups’ assets. Stealing the spotlight was never her intent, but several times her last-minute saves got me and my clients through scares.

One client accidentally deleted multiple videos from an entire chapter. The product was not live yet, but re-uploading by hand would have been painful. Luckily I always put auto-backup on new servers and databases; restoring yesterday’s backup fixed it.

Another client’s server hit ransomware — database and code encrypted, 20,000 RMB demanded to decrypt. The client panicked; I smiled and said backups were synced to Alibaba Cloud OSS — download and restore. Code was fine too: clone from Git and rebuild. The client said: “You get what you pay for!” (meaning my rate — haha).

Of course this assumes good habits: production code stays in sync with Git. One client’s desktop developer lost months of work after a PC compromise because they never pushed to Git in time.

Sorry — too much digression.

Beyond backups, Baota’s ecosystem still impressed:

  • Multi-version PHP management, different versions per project

  • Easy Nginx reverse-proxy setup, plus many preset rewrite rules

  • Process supervision based on supervisord

  • Private mail via Baota Mail

Without her, three years of full-time contracting — 100+ projects, 50+ servers — would have meant endless manual supervisord edits and copy-paste Nginx configs. She made life easy. Humans err; hand-editing CLI is high risk. May the world see fewer accidental rm -rf of important files.

Old love and new flame

A perfect partner may not exist — Baota included.

In romance we amplify one virtue and decide “this is the one.” Dating can be flowers and moon; marriage is groceries and bills. Reality pops the romantic bubble, and small flaws show in daily friction.

When you can no longer stand those quirks, it is time to say goodbye.

Sometime about a year ago, Baota Panel started often flipping to 404 mid-operation, needing a re-login. Sometimes several logins in a row still 404’d — an endless loop that made you curse.

I checked my cache and network, tried a friend’s machine — nothing helped. Baota is not open source, so community help was limited. We lived with it: every visit meant bracing for 404 and re-login.

Another hard flaw: Baota is highly invasive and takes over the whole server. Before install it checks for a “clean” environment with no other software occupying LNMP basics (ports 80, 3306, etc.). That creates strong lock-in; old projects dare not switch ops tools lightly.

Tight host binding also meant PHP extensions could not isolate perfectly by version. The extension page even warns: “Redis can only be installed for one PHP version; if another version already has Redis, do not install again.” That limits multi-PHP Redis use. Not entirely Baota’s fault — PHP extensions depending on the host system is a deeper issue.

In 2023, JumpServer’s parent company released a new ops panel: 1Panel. Docker-based, fully open source, Golang backend, plus a well-known company’s backing — Baota’s strongest competitor yet.

After trying it on several projects and watching for half a year, here is why I recommend it (the new “catch”):

  1. Open source, Docker-native — cloud-era infrastructure. Solves Baota’s issues at the root.

  2. Containerization makes modern apps easy to build — current and capable.

  3. Smooth UI, attractive interface. No more enduring Baota’s laggy pages.

  4. SSL auto-renewal that actually works. Vs. Baota’s Let’s Encrypt auto-renew success rate near zero.

  5. Active community; maintainers answer questions with energy.

Closing

Baota Panel made a bold contribution to China’s internet and partnered with countless SMBs — no one will forget her. Still, history’s wheel rolls forward. I’ll say it plainly: Baota has completed her historical mission; next comes the age of 1Panel.

Disclosure: spontaneous sharing, no paid tie-in. Real usage feedback. Choose what fits you.

Changelog

8/27/26, 2:41 PM
View All Changelog
  • 94b04-Quote YAML frontmatter descriptions containing colons.on
  • 68955-Translate all 14 blog posts to English for Plume i18n.on
  • b7b2c-启用文章变更历史并升级主题配置。on
  • b19ea-重构: 将文章迁移至 blog 目录,更新配置on
  • a10e0-upon
  • c0fe2-upon
  • 6c2e6-upon
  • afdb5-upon