Skip to content

Commit 021b01a

Browse files
authored
Update README
1 parent abeb0fa commit 021b01a

File tree

1 file changed

+57
-127
lines changed

1 file changed

+57
-127
lines changed

README.md

Lines changed: 57 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -9,140 +9,21 @@
99
[![Flake8](https://github.com/vitabaks/autobase/actions/workflows/flake8.yml/badge.svg)](https://github.com/vitabaks/autobase/actions/workflows/flake8.yml)
1010
[![Molecule](https://github.com/vitabaks/autobase/actions/workflows/molecule.yml/badge.svg)](https://github.com/vitabaks/autobase/actions/workflows/molecule.yml)
1111
[![GitHub license](https://img.shields.io/github/license/vitabaks/autobase)](https://github.com/vitabaks/autobase/blob/master/LICENSE)
12-
<a href="https://algora.io/autobase/bounties/new">
13-
<img
14-
src="https://img.shields.io/endpoint?url=https%3A%2F%2Falgora.io%2Fapi%2Fshields%2Fautobase%2Fbounties%3Fstatus%3Dopen"
15-
alt="Open Bounties"
16-
/>
17-
</a>
1812

1913
**Autobase for PostgreSQL®** is an open-source alternative to cloud-managed databases (DBaaS) such as Amazon RDS, Google Cloud SQL, Azure Database, and more.
2014

2115
This automated database platform enables you to create and manage production-ready, highly available PostgreSQL clusters. It simplifies the deployment process, reduces operational costs, and makes database management accessible—even for teams without specialized expertise.
2216

2317
**Automate deployment, failover, backups, restore, upgrades, scaling, and more with ease.**
2418

25-
You can find a version of this documentation that is searchable and also easier to navigate at [autobase.tech](https://autobase.tech)
26-
27-
---
28-
29-
### Project Status
30-
31-
Autobase has been actively developed for over 5 years (since 2019) and is trusted by companies worldwide, including in production environments with high loads and demanding reliability requirements. Our mission is to provide an open-source DBaaS that delivers reliability, flexibility, and cost-efficiency.
32-
33-
The project will remain open-source forever, but to ensure its continuous growth and development, we rely on [sponsorship](https://autobase.tech/docs/sponsor). By subscribing to [Autobase packages](https://autobase.tech/docs/support), you gain access to personalized support from the project authors and PostgreSQL experts, ensuring the reliability of your database infrastructure.
34-
35-
---
36-
37-
### Supported setups of Postgres Cluster
38-
39-
![pg_cluster_scheme](images/pg_cluster_scheme.png#gh-light-mode-only)
40-
![pg_cluster_scheme](images/pg_cluster_scheme.dark_mode.png#gh-dark-mode-only)
41-
42-
You have three schemes available for deployment:
43-
44-
#### 1. PostgreSQL High-Availability only
45-
46-
This is simple scheme without load balancing.
47-
48-
##### Components:
49-
50-
- [**Patroni**](https://github.com/zalando/patroni) is a template for you to create your own customized, high-availability solution using Python and - for maximum accessibility - a distributed configuration store like ZooKeeper, etcd, Consul or Kubernetes. Used for automate the management of PostgreSQL instances and auto failover.
51-
52-
- [**etcd**](https://github.com/etcd-io/etcd) is a distributed reliable key-value store for the most critical data of a distributed system. etcd is written in Go and uses the [Raft](https://raft.github.io/) consensus algorithm to manage a highly-available replicated log. It is used by Patroni to store information about the status of the cluster and PostgreSQL configuration parameters. [What is Distributed Consensus?](https://thesecretlivesofdata.com/raft/)
53-
54-
- [**vip-manager**](https://github.com/cybertec-postgresql/vip-manager) (_optional, if the `cluster_vip` variable is specified_) is a service that gets started on all cluster nodes and connects to the DCS. If the local node owns the leader-key, vip-manager starts the configured VIP. In case of a failover, vip-manager removes the VIP on the old leader and the corresponding service on the new leader starts it there. Used to provide a single entry point (VIP) for database access.
55-
56-
- [**PgBouncer**](https://pgbouncer.github.io/features.html) (optional, if the `pgbouncer_install` variable is `true`) is a connection pooler for PostgreSQL.
57-
58-
#### 2. PostgreSQL High-Availability with Load Balancing
59-
60-
This scheme enables load distribution for read operations and also allows for scaling out the cluster with read-only replicas.
61-
62-
When deploying to cloud providers such as AWS, GCP, Azure, DigitalOcean, and Hetzner Cloud, a cloud load balancer is automatically created by default to provide a single entry point to the database (controlled by the `cloud_load_balancer` variable).
63-
64-
For non-cloud environments, such as when deploying on Your Own Machines, the HAProxy load balancer is available for use. To enable it, set `with_haproxy_load_balancing: true` variable.
65-
66-
> [!NOTE]
67-
> Your application must have support sending read requests to a custom port 5001, and write requests to port 5000.
68-
69-
List of ports when using HAProxy:
70-
71-
- port 5000 (read / write) master
72-
- port 5001 (read only) all replicas
73-
- port 5002 (read only) synchronous replica only
74-
- port 5003 (read only) asynchronous replicas only
75-
76-
##### Components of HAProxy load balancing:
77-
78-
- [**HAProxy**](https://www.haproxy.org/) is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
79-
80-
- [**confd**](https://github.com/kelseyhightower/confd) manage local application configuration files using templates and data from etcd or consul. Used to automate HAProxy configuration file management.
81-
82-
- [**Keepalived**](https://github.com/acassen/keepalived) (_optional, if the `cluster_vip` variable is specified_) provides a virtual high-available IP address (VIP) and single entry point for databases access.
83-
Implementing VRRP (Virtual Router Redundancy Protocol) for Linux. In our configuration keepalived checks the status of the HAProxy service and in case of a failure delegates the VIP to another server in the cluster.
84-
85-
#### 3. PostgreSQL High-Availability with Consul Service Discovery
19+
## Documentation
8620

87-
To use this scheme, specify `dcs_type: consul` variable.
21+
Autobase documentation can be found [here](https://autobase.tech). Feedback, bug-reports, requests... [welcome](https://github.com/vitabaks/autobase/issues)!
8822

89-
This scheme is suitable for master-only access and for load balancing (using DNS) for reading across replicas. Consul [Service Discovery](https://developer.hashicorp.com/consul/docs/concepts/service-discovery) with [DNS resolving ](https://developer.hashicorp.com/consul/docs/discovery/dns) is used as a client access point to the database.
90-
91-
Client access point (example):
92-
93-
- `master.postgres-cluster.service.consul`
94-
- `replica.postgres-cluster.service.consul`
95-
96-
Besides, it can be useful for a distributed cluster across different data centers. We can specify in advance which data center the database server is located in and then use this for applications running in the same data center.
97-
98-
Example: `replica.postgres-cluster.service.dc1.consul`, `replica.postgres-cluster.service.dc2.consul`
99-
100-
It requires the installation of a consul in client mode on each application server for service DNS resolution (or use [forward DNS](https://developer.hashicorp.com/consul/tutorials/networking/dns-forwarding?utm_source=docs) to the remote consul server instead of installing a local consul client).
101-
102-
## Compatibility
103-
104-
RedHat and Debian based distros.
105-
106-
###### Supported Linux Distributions:
107-
108-
- **Debian**: 11, 12, 13
109-
- **Ubuntu**: 22.04, 24.04
110-
- **CentOS Stream**: 9, 10
111-
- **Oracle Linux**: 8, 9, 10
112-
- **Rocky Linux**: 8, 9, 10
113-
- **AlmaLinux**: 8, 9, 10
114-
115-
Architecture: x86_64 (amd64), aarch64 (arm64).
116-
117-
###### PostgreSQL versions:
118-
119-
all supported PostgreSQL versions
120-
121-
:white_check_mark: tested, works fine: PostgreSQL 10, 11, 12, 13, 14, 15, 16, 17, 18
122-
123-
_Table of results of daily automated testing of cluster deployment:_
124-
| Distribution | Test result |
125-
|--------------|:----------:|
126-
| Debian 12 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_debian12.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_debian12.yml) |
127-
| Debian 13 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_debian13.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_debian13.yml) |
128-
| Ubuntu 22.04 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_ubuntu2204.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_ubuntu2204.yml) |
129-
| Ubuntu 24.04 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_ubuntu2204.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_ubuntu2404.yml) |
130-
| CentOS Stream 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_centosstream9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_centosstream9.yml) |
131-
| CentOS Stream 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_centosstream10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_centosstream10.yml) |
132-
| Oracle Linux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_oracle_linux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_oracle_linux9.yml) |
133-
| Oracle Linux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_oracle_linux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_oracle_linux10.yml) |
134-
| Rocky Linux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_rockylinux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_rockylinux9.yml) |
135-
| Rocky Linux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_rockylinux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_rockylinux10.yml) |
136-
| AlmaLinux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_almalinux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_almalinux9.yml) |
137-
| AlmaLinux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_almalinux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_almalinux10.yml) |
138-
139-
## Getting Started
23+
## Quick start
14024

14125
You have the option to deploy Postgres clusters using the Console (UI), command line, or GitOps.
14226

143-
> [!TIP]
144-
> 📩 Contact us at [email protected], and our team will help you implement Autobase into your infrastructure.
145-
14627
### Console (UI)
14728

14829
The Autobase Console (UI) is the recommended method for most users. It is designed to be user-friendly, minimizing the risk of errors and making it easier than ever to set up your PostgreSQL clusters. This method is suitable for both beginners and those who prefer a visual interface for managing their PostgreSQL clusters.
@@ -236,6 +117,59 @@ Available variables:
236117

237118
</p></details>
238119

120+
> [!TIP]
121+
> 📩 Contact us at [email protected], and our team will help you implement Autobase into your infrastructure.
122+
123+
### Supported setups of Postgres Cluster
124+
125+
For a detailed description of the cluster components, visit the [Architecture](https://autobase.tech/docs/overview/architecture) page.
126+
127+
![pg_cluster_scheme](images/pg_cluster_scheme.png#gh-light-mode-only)
128+
![pg_cluster_scheme](images/pg_cluster_scheme.dark_mode.png#gh-dark-mode-only)
129+
130+
## Compatibility
131+
132+
RedHat and Debian based distros.
133+
134+
###### Supported Linux Distributions:
135+
136+
- **Debian**: 11, 12, 13
137+
- **Ubuntu**: 22.04, 24.04
138+
- **CentOS Stream**: 9, 10
139+
- **Oracle Linux**: 8, 9, 10
140+
- **Rocky Linux**: 8, 9, 10
141+
- **AlmaLinux**: 8, 9, 10
142+
143+
Architecture: x86_64 (amd64), aarch64 (arm64).
144+
145+
###### PostgreSQL versions:
146+
147+
all supported PostgreSQL versions
148+
149+
:white_check_mark: tested, works fine: PostgreSQL 10, 11, 12, 13, 14, 15, 16, 17, 18
150+
151+
_Table of results of daily automated testing of cluster deployment:_
152+
| Distribution | Test result |
153+
|--------------|:----------:|
154+
| Debian 12 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_debian12.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_debian12.yml) |
155+
| Debian 13 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_debian13.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_debian13.yml) |
156+
| Ubuntu 22.04 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_ubuntu2204.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_ubuntu2204.yml) |
157+
| Ubuntu 24.04 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_ubuntu2204.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_ubuntu2404.yml) |
158+
| CentOS Stream 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_centosstream9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_centosstream9.yml) |
159+
| CentOS Stream 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_centosstream10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_centosstream10.yml) |
160+
| Oracle Linux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_oracle_linux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_oracle_linux9.yml) |
161+
| Oracle Linux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_oracle_linux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_oracle_linux10.yml) |
162+
| Rocky Linux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_rockylinux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_rockylinux9.yml) |
163+
| Rocky Linux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_rockylinux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_rockylinux10.yml) |
164+
| AlmaLinux 9 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_almalinux9.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_almalinux9.yml) |
165+
| AlmaLinux 10 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vitabaks/autobase/schedule_pg_almalinux10.yml?branch=master)](https://github.com/vitabaks/autobase/actions/workflows/schedule_pg_almalinux10.yml) |
166+
167+
## Project Status
168+
169+
Autobase has been actively developed for over 5 years (since 2019) and is trusted by companies worldwide, including in production environments with high loads and demanding reliability requirements. Our mission is to provide an open-source DBaaS that delivers reliability, flexibility, and cost-efficiency.
170+
171+
**The project will remain open-source forever**, but to ensure its continuous growth and development, we rely on [sponsorship](https://autobase.tech/docs/sponsor). By subscribing to [Autobase packages](https://autobase.tech/docs/support), you gain access to personalized support from the project authors and PostgreSQL experts, ensuring the reliability of your database infrastructure.
172+
239173
## Star us
240174

241175
If you find our project helpful, consider giving it a star on GitHub! Your support helps us grow and motivates us to keep improving. Starring the project is a simple yet effective way to show your appreciation and help others discover it.
@@ -268,9 +202,5 @@ Licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
268202

269203
## Author
270204

271-
Vitaliy Kukharik (PostgreSQL DBA) \
205+
Vitaliy Kukharik (PostgreSQL Expert, Founder Autobase.tech) \
272206
273-
274-
## Feedback, bug-reports, requests, ...
275-
276-
Are [welcome](https://github.com/vitabaks/autobase/issues)!

0 commit comments

Comments
 (0)