Open-source platform for dynamic service discovery, dynamic configuration management, and service metadata management in cloud native and microservice systems.
apolloconfig/apollo
A centralized configuration management system for microservices, with real-time pushes, versioned releases, grayscale rollouts, and audit logs.
- Stars
- 29,816
- Forks
- 10,134
- Open issues
- 156
- Last commit
- 5 days ago
What is it?
Apollo centrally manages configuration across different applications, environments, and clusters from one web interface. Applications read their settings through SDKs, and changes published in Apollo reach running clients in near real time without a restart.
The server is built on Spring Boot and Spring Cloud and runs as a standalone Java process without an external application container such as Tomcat. Its only external dependency is MySQL. The Java SDK has no framework dependency and also offers Spring and Spring Boot integration, and a .NET SDK is available. Other languages can use the HTTP API.
Each release is versioned so configurations can be rolled back, and releases can be limited to a subset of instances before a full rollout. Editing and publishing are separate permissions, and every operation is logged.
Key features
- 01Centralized management of configurations across environments, clusters, and namespaces
- 02Real-time push of published changes to clients
- 03Versioned releases with rollback support
- 04Grayscale release to selected instances
- 05Permission control, release approval, and audit logs
- 06Java, .NET, and HTTP API client access
Use cases
- Managing shared and per-cluster settings for many microservices
- Changing feature flags or runtime parameters without redeploying
- Rolling out configuration changes to a subset of instances first
Quick start
- 1
Follow the Quick Start guide to run Apollo locally
- 2
Or follow the Docker Quick Start guide to run it in containers
Things to know
- Self-hosting the server requires Java and MySQL to be installed and configured.
- The Java and .Net SDKs are the native clients, and other languages depend on third-party SDKs or the HTTP API.
In collections
Topics
FAQ
- What is apollo?
- A centralized configuration management system for microservices, with real-time pushes, versioned releases, grayscale rollouts, and audit logs. Apollo centrally manages configuration across different applications, environments, and clusters from one web interface. Applications read their settings through SDKs, and changes published in Apollo reach running clients in near real time without a restart.
- Is apollo free to use? What license does it have?
- apollo is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is apollo still maintained?
- Actively maintained. The last commit to apollo was on Nov 2, 2026.
- What can I use apollo for?
- Managing shared and per-cluster settings for many microservices Changing feature flags or runtime parameters without redeploying Rolling out configuration changes to a subset of instances first
- How do I install apollo?
- Follow the Quick Start guide to run Apollo locally Or follow the Docker Quick Start guide to run it in containers
- Where can I get apollo?
- The source code and installation instructions are on GitHub: https://github.com/apolloconfig/apollo
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Spring Cloud integration with Netflix OSS components such as Eureka service discovery for Spring Boot applications.
An API gateway built on Spring Framework and Spring Boot for routing and filtering HTTP requests in microservice setups.
Spring Boot starter that runs gRPC servers and clients from annotations like @GrpcService and @GrpcClient, with no manual channel or server setup.
Kubernetes implementations of Spring Cloud interfaces, letting Spring Cloud apps use Kubernetes for service discovery and configuration.
Apache ZooKeeper is a distributed coordination service providing a hierarchical key-value store for configuration, naming and synchronization in distributed systems.