OpenTenBase Packages(此仓库已经转移到社团仓库进行统一维护管理,目前这里的版本没有更新,相关链接可能错误,项目新地址:CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages)
English | 中文
Official cross-platform package repository for OpenTenBase — Enterprise-grade multi-format, multi-distro packaging and distribution for the OpenTenBase distributed SQL database.
Quick Start Guide (快速开始) — 5 minutes to install and run.
OpenTenBase Packages is the official packaging and distribution project for OpenTenBase, a distributed SQL database based on PostgreSQL. We provide standardized binary packages for major Linux distributions, supporting both DEB (Debian/Ubuntu) and RPM (RHEL/CentOS/Fedora) packaging systems across x86_64 and ARM64 architectures.
Goal: Build a long-term maintained, auto-built, multi-version coexisting official package repository for OpenTenBase — like PostgreSQL's apt.postgresql.org and Docker's download.docker.com.
| Feature | Description |
|---|---|
| Multi-format | DEB (.deb) + RPM (.rpm) dual format support |
| Multi-distro | 14 distros: Ubuntu/Debian (7), Rocky/Alma/CentOS/Fedora/openEuler (7) |
| Multi-arch | x86_64 (amd64) + ARM64 (aarch64) |
| Multi-version coexistence | Install v5.0 / v2.6 / v2.5 and dev versions side-by-side, switch with opentenbase-ctl switch |
| APT/RPM repository | Official repository hosted on GitHub Pages — apt install opentenbase / dnf install opentenbase |
| One-line install | curl -sSL ... | sudo bash — auto-configures repository, detects OS, resolves dependencies |
| CI/CD automation | GitHub Actions for automated build, sign, and publish |
| GPG signed packages | All release packages are GPG-signed (RSA 4096-bit) for authenticity verification |
| systemd integration | Native systemd service units, managed via systemctl |
| Cluster management | Built-in opentenbase-ctl script for one-command init, start, stop |
| Cloudflare CDN acceleration | Global CDN acceleration mirror: repo.blackevil217.com |
curl -sSL https://raw.githubusercontent.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages/main/scripts/setup-apt.sh | sudo bash
sudo apt update
sudo apt install opentenbasecurl -sSL https://raw.githubusercontent.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages/main/scripts/setup-rpm.sh | sudo bash
sudo dnf install opentenbase# Download from releases: https://github.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages/releases
# DEB: sudo apt install ./opentenbase_*.deb
# RPM: sudo dnf install ./opentenbase-*.rpmcurl -sSL https://raw.githubusercontent.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages/main/scripts/setup-cluster.sh | sudo bashThe installation scripts automatically detect and use the fastest available mirror:
- Cloudflare CDN (
repo.blackevil217.com/aptfor APT,repo.blackevil217.com/rpmfor RPM) — global acceleration, free forever - GitHub Pages (
cduestc-openatom-open-source-club.github.io/OpenTenBase-Packages/) — direct fallback
Note: The
curlcommands in the Quick Install section download scripts fromraw.githubusercontent.com. Once executed, the scripts will automatically configure your system to use the CDN-accelerated repository.
Test Environment: Huawei Cloud EulerOS 2.0 aarch64 (East China region)
| Test | Cloudflare CDN | GitHub Pages | Speedup |
|---|---|---|---|
| Download GPG Key | 0.6s | 2m12s | ~200x |
| Download Packages index | 0.3s | 45s | ~150x |
| Download opentenbase-server RPM (5.5MB) | 1.2s | 3m30s | ~175x |
Conclusion: Cloudflare CDN works in China without VPN, with ~150-200x speedup. Scripts auto-detect: CDN first, fallback to GitHub Pages on timeout.
| Test | Result | Notes |
|---|---|---|
setup-rpm.sh execution |
✅ | Auto-selected CDN mirror |
dnf install opentenbase |
✅ | Installed from CDN repo |
| Installed versions | ✅ | v5.0, v2.6.0, v2.5.0 co-existing |
| Version switching | ✅ | opentenbase-switch-version works |
| Cluster startup | ✅ | GTM + Coordinator + Datanode all normal |
| Resource | Minimum | Recommended | Notes |
|---|---|---|---|
| RAM | 3 GB | 4 GB+ | OpenTenBase pooler cache requires ~1GB+ non-swappable shared memory per node. A single-machine cluster (GTM + Coordinator + Datanode) needs at least 3GB. |
| Disk | 2 GB | 10 GB+ | Binary packages (~500MB) + data directory |
| CPU | 1 core | 2+ cores | GTM thread count auto-detected from CPU cores |
| OS | Ubuntu 20.04+, Debian 11+, RHEL 8+, Fedora 40+ | See platform matrix below |
Important: The
opentenbase-ctl initscript automatically detects available RAM and tunesmax_connections,max_pool_size, andshared_buffersaccordingly. On servers with <4GB RAM, reduced settings are applied automatically. On servers with <3GB RAM, a warning is displayed as the cluster may fail to start due to OOM (Out of Memory).
| Package | Format | Description |
|---|---|---|
opentenbase |
DEB / RPM | Metapackage — depends on server + client |
opentenbase-server |
DEB / RPM | Server binaries (postgres, gtm, pg_ctl) + service driver + cluster management |
opentenbase-client |
DEB / RPM | Client utilities (psql, pg_dump, pg_restore, etc.) |
opentenbase-contrib |
DEB / RPM | Extensions (pgbench, pg_stat_statements, postgres_fdw, etc.) |
libopentenbase-dev |
DEB / RPM | Development headers + static libraries + pg_config |
opentenbase-doc |
DEB / RPM | Documentation |
| Distribution | Version | DEB | RPM | x86_64 | aarch64 |
|---|---|---|---|---|---|
| Ubuntu | 20.04 / 22.04 / 24.04 / 25.04 | ✅ | — | ✅ | ✅ |
| Debian | 11 / 12 / 13 | ✅ | — | ✅ | ✅ |
| Rocky Linux | 8 / 9 | — | ✅ | ✅ | ✅ (el9 only) |
| AlmaLinux | 8 / 9 | — | ✅ | ✅ | ✅ (el9 only) |
| CentOS Stream | 8 / 9 | — | ✅ | ✅ | — |
| Fedora | 40 | — | ✅ | ✅ | — |
| openEuler | 22.03 | — | ✅ | ✅ | — |
Total: 15 distros, 150+ packages per release — 3 versions × 15 distros
aarch64 Note: RPM aarch64 packages are currently only available for el9 (Rocky/Alma 9). The setup scripts automatically fall back to x86_64 when an aarch64 repo is unavailable. DEB aarch64 is fully supported for all distros.
ARM64 Verified: openEuler 22.03 aarch64 (hdspace cloud, 4vCPU 8GiB) + Ubuntu 24.04 aarch64 — full cluster deployment, SQL connectivity, and distributed table operations confirmed.
# 1. Initialize cluster (GTM + Coordinator + Datanode)
opentenbase-ctl init
# 2. Start cluster
opentenbase-ctl start
# 3. Check cluster status
opentenbase-ctl status
# 4. Connect to database
opentenbase-psql -h 127.0.0.1 -p 5432 -U opentenbase -d template1
# 5. Stop cluster
opentenbase-ctl stopDeploy a complete OpenTenBase cluster (GTM + Coordinator + 2 Datanodes) with Docker Compose:
# Download the deployment script
curl -sLO https://raw.githubusercontent.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages/main/docker/test-docker.sh
bash test-docker.sh
# Start the cluster
cd /tmp/otb-docker/compose
docker compose up -d --build
# Connect to the database
docker compose exec coordinator psql -h 127.0.0.1 -U opentenbase -d postgres
# Stop the cluster
docker compose down -vNote for users in China: Docker Hub is not directly accessible from mainland China. You need to configure a Docker registry mirror. Edit
/etc/docker/daemon.json:{ "registry-mirrors": ["https://docker.m.daocloud.io"] }Then restart Docker:
sudo systemctl restart docker
OpenTenBase supports multiple versions installed side-by-side, similar to PostgreSQL's postgresql-14, postgresql-15 model. Each version has its own isolated directory tree.
# List installed versions
opentenbase-switch-version
# Switch to a specific version
opentenbase-switch-version 5.0
# Switch to another version
opentenbase-switch-version 2.6.0
# Verify current version
readlink /etc/opentenbase/currentVersioned directory structure:
| Path | Purpose |
|---|---|
/usr/lib/opentenbase/<version>/ |
Binaries and libraries per version |
/etc/opentenbase/<version>/ |
Configuration per version |
/var/lib/opentenbase/<version>/ |
Data directory per version |
/var/log/opentenbase/<version>/ |
Logs per version |
/etc/opentenbase/current |
Symlink to active version |
Supported versions: 5.0 (stable), 2.6.0, 2.5.0 (historical), master-{sha} (development), latest (alias)
┌─────────────────────────────────────────────────────────────────┐
│ OpenTenBase Packages │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌──────────────┐ │
│ │ DEB Packages │ │ RPM Packages │ │ Docker │ │
│ │ Ubuntu/Debian│ │ RHEL/CentOS │ │ Images │ │
│ │ (14 targets) │ │ (14 targets) │ │ │ │
│ └───────┬───────┘ └───────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └───────────────────┼───────────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ GPG Signature │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ Version Manager │ │
│ │ v5.0 / v2.6 / … │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ GitHub Actions │ │
│ │ Auto Build & Ship│ │
│ └───────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
| Path | Purpose |
|---|---|
/usr/lib/opentenbase/<version>/ |
Binaries and libraries (isolated from system PostgreSQL) |
/etc/opentenbase/<version>/ |
Configuration files |
/var/lib/opentenbase/<version>/ |
Data directory |
/var/log/opentenbase/<version>/ |
Log directory |
/usr/bin/opentenbase-ctl |
Cluster management script |
OpenTenBase supports two deployment approaches:
| Aspect | Pre-built Packages | Source Build |
|---|---|---|
| Deploy time | ~2 minutes | 30-60 minutes (first time) |
| Customization | Not supported | Full control (debug, cassert, etc.) |
| Best for | Production, quick testing | Development, learning, contributing |
| Image size | ~500 MB | ~2 GB |
Recommendation: Use pre-built packages for production and quick evaluation. Use source builds for development, debugging, and contributing to the project. See source-build-guide.md for detailed source build instructions.
git clone https://github.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages.git
cd OpenTenBase-Packages
# Build for all distributions
./scripts/build-multi.sh --all
# Build for Ubuntu 24.04 only
./scripts/build-multi.sh -d ubuntu -v 24.04
# Build RPM only
./scripts/build-multi.sh --rpm# Install build dependencies
sudo apt install -y debhelper-compat bison flex perl libreadline-dev \
zlib1g-dev libssl-dev libxml2-dev libldap2-dev uuid-dev pkg-config
# Build DEB packages
./scripts/build-deb.sh
# Build RPM packages
./scripts/build-rpm.shOpenTenBase-Packages/
├── README.md # English documentation
├── README_zh.md # Chinese documentation
├── CHANGELOG.md # Release history
├── TEST-PLAN.md # Test matrix and results
├── config/ # Configuration templates
├── debian/ # DEB packaging rules
├── rpm/ # RPM packaging rules
├── docker/ # Docker build environments
├── scripts/ # Build, release, setup scripts
├── patches/ # Source patches
├── test/ # Automated tests
│ └── advanced/ # Advanced test suites
└── docs/ # Guides and references
├── QUICKSTART.md # Quick start guide
├── CONTRIBUTING.md # Contributing guide
├── source-build-guide.md # Build from source
├── 01-quickstart.md # Tutorial: quick start
├── 02-basic-ops.md # Tutorial: basic operations
├── 03-architecture.md # Tutorial: architecture
├── 04-advanced.md # Tutorial: advanced usage
├── 05-troubleshoot.md # Tutorial: troubleshooting
├── 06-best-practices.md # Tutorial: best practices
├── 07-deployment.md # Tutorial: deployment
└── archive/ # Archived planning docs
| Release | Date | Assets | Notes |
|---|---|---|---|
| v5.0-p11 | 2026-06-02 | 156 | Cloudflare CDN acceleration documentation |
| v5.0-p10 | 2026-06-02 | 156 | ARM64 native builds + Docker E2E + version switch fix |
| v5.0-p9 | 2026-06-01 | 150 | Multi-version end-to-end verification on ARM64 |
| v5.0-p8 | 2026-06-01 | 150 | Stress test (7/7), cross-machine deployment, dh_install fix |
| v5.0-p4 | 2026-05-30 | 150 | Advanced test suite (31/31), all 14 distros |
| v5.0-p3 | 2026-05-29 | 150 | Multi-version (5.0+2.6.0+2.5.0), 15 distros |
| v5.0-p2 | 2026-05-28 | 50 | Fix lib/postgresql path, all 15 distros |
| v5.0 | 2026-05-18 | 7 | First release |
See GitHub Releases for all releases.
Vision: Build a long-term maintained, auto-built, multi-version coexisting official package repository for OpenTenBase, like PostgreSQL's apt.postgresql.org and Docker's download.docker.com.
- Docker build environments for all target distros
- CI workflows: 30 build targets (16 DEB + 14 RPM)
- x86_64 + aarch64 dual architecture support
- Multi-version coexistence (versioned paths + symlink switching)
- Automated release pipeline (tag triggers build + test + publish)
- Multi-version management (
opentenbase-switch-version) - One-click installation script
- GPG signing integration (RSA 4096-bit, CI automated)
- APT/RPM repository hosting (GitHub Pages, free)
- RPM package support (RHEL/CentOS/Rocky/Fedora/openEuler)
- Automated CI/CD pipeline
- Standardize packaging specifications
- Code quality review and upstream contribution
| Distribution | Version | Codename | x86_64 | aarch64 |
|---|---|---|---|---|
| Ubuntu | 18.04 | bionic | yes | - |
| Ubuntu | 18.10 | cosmic | yes | - |
| Ubuntu | 19.04 | disco | yes | - |
| Ubuntu | 19.10 | eoan | yes | - |
| Ubuntu | 20.04 | focal | yes | yes |
| Ubuntu | 22.04 | jammy | yes | yes |
| Ubuntu | 22.10 | kinetic | yes | - |
| Ubuntu | 23.10 | mantic | yes | - |
| Ubuntu | 24.04 | noble | yes | yes |
| Ubuntu | 24.10 | oracular | yes | - |
| Ubuntu | 25.04 | plucky | yes | yes |
| Debian | 9 | stretch | yes | - |
| Debian | 10 | buster | yes | - |
| Debian | 11 | bullseye | yes | yes |
| Debian | 12 | bookworm | yes | yes |
| Debian | 13 | trixie | yes | yes |
| Distribution | Version | x86_64 | aarch64 |
|---|---|---|---|
| CentOS Stream | 8 | yes | - |
| CentOS Stream | 9 | yes | yes |
| Rocky Linux | 8 | yes | - |
| Rocky Linux | 9 | yes | yes |
| AlmaLinux | 8 | yes | - |
| AlmaLinux | 9 | yes | yes |
| Fedora | 40 | yes | yes |
| OpenEuler | 22.03 | yes | yes |
Total: 30 build targets, 15+ distributions, x86_64 + aarch64.
ARM64 Note: x86_64 packages are built in CI (GitHub Actions). ARM64 (aarch64) packages are built natively on ARM64 hardware — CI-verified ARM64 targets: openEuler 22.03 (RPM), Ubuntu 24.04 (DEB, verified on developer-1). Other ARM64 targets are built but not yet CI-verified.
All 15 distros pass CI verification (install + cluster + SQL + advanced tests).
| Suite | Tests | Content |
|---|---|---|
| Basic SQL | 1 | CREATE TABLE, INSERT, SELECT |
| Transactions | 6 | COMMIT/ROLLBACK, isolation, SAVEPOINT |
| Connection Pool | 6 | Concurrent connections, pool reload |
| Data Types | 7 | int, text, jsonb, timestamp, array |
| Performance | 6 | Bulk INSERT, JOIN, index effectiveness |
| Failover | 7 | Cluster health, stress R/W, data consistency |
| Stress Test | 7 | 100-row INSERT, batch UPDATE/DELETE, aggregation |
Verified on real hardware: devenv (ARM64, GTM+Coordinator) + 47.108 (x86_64, Datanode) connected via SSH reverse tunnel.
# Run cross-machine test
./test/cross-machine-test.sh
# Trigger stress test in CI
gh workflow run stress-test.yml| Limitation | Description |
|---|---|
| Multiple clusters on same machine | Not supported due to port conflicts; each machine runs one cluster (GTM + Coordinator + Datanode) |
Contributions are welcome — code, bug reports, and improvement suggestions!
- Fork this repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit and push your changes
- Create a Pull Request
See Contributing Guide for details.
Same as OpenTenBase — Apache License 2.0.
| Resource | Link |
|---|---|
| This project | https://github.com/CDUESTC-OpenAtom-Open-Source-Club/OpenTenBase-Packages |
| Upstream repo | https://github.com/OpenTenBase/OpenTenBase |
| OpenTenBase docs | https://github.com/OpenTenBase/OpenTenBase/wiki |
| Issue tracker | Issues |
Maintainer: muzimu217 Last Updated: 2026-06-02 (v5.0-p11, CDN acceleration documentation)