Uffizzi - Open-source Preview Environments
Don't merge until you preview
Uffizzi is a tool that lets you preview pull requests before merging. Create on-demand Preview Environments for APIs, frontends, backends, databases, microservices, binaries and command-line tools. Each Preview Environment gets a secure HTTPS URL that is continually refreshed when you push new commits. Uffizzi also handles clean up, so your environments last only as long as you need them.
Uffizzi is an open-source, off-the-shelf, cross-platform solution that works with any version control system, container registry, or CI platform.
Give us a star ⭐️
If you're interested in Uffizzi, give us a star. It helps others discover the project.
Quickstart (~1 minute)
Go to the
quickstart repo, then follow the instructions in the
README to create a Preview Environment for a sample application.
Uffizzi is designed to integrate with any CI platform as a step in your pipeline. You can use Uffizzi to rapidly create:
- Pull request environments
- Debugging environments
- Demo environments
- Release environments
- Staging environments
What types of apps are supported by Uffizzi?
Uffizzi is designed for full-stack web applications and containerized services, including APIs, backends, frontends, databases, microservices, binaries and command line tools . Currently, application configurations must be defined via Docker Compose. Support for Helm and other configuration formats are on our public roadmap. See Docker Compose for Uffizzi to learn more about supported syntax.
Uffizzi helps busy project leaders approve pull requests faster. Testing a live preview provides a more holistic way to assess a new feature or bug fix, rather than simply reviewing code changes. Uffizzi also removes the added step of pulling down the branch to test it locally: Uffizzi seamlessly integrates with CI providers like GitHub Actions and posts comments directly to pull request issues, so there is no additional step for the maintainer or the contributor.
See our high-level project roadmap, including already delivered milestones.
Set up Preview Environments for your application
(If you haven't completed the quickstart guide, we recommend starting there to understand how Uffizzi works and how it's configured.)
There are two options to get Uffizzi:
Use Uffizzi Cloud (SaaS) - This is fastest and easiest way to get started with Uffizzi. Uffizzi Cloud is free for small teams and is recommended for those who are new to Uffizzi. It also includes some premium options like single sign-on (SSO) and password-protected URLs for your Preview Environments. If you want to use Uffizzi Cloud, you can follow this step-by-step guide to configure Preview Environments for your own application.
Install open-source Uffizzi on your own Kubernetes cluster - Alternatively, you can install Uffizzi on your own cluster by following the self-hosted installation guide.
- Slack channel - Get support or discuss the project
- Subscribe to our newsletter - Receive monthly updates about new features and special events
- Contributing to Uffizzi - Start here if you want to contribute
- Code of Conduct - Let's keep it professional
All services defined by your Docker Compose file are deployed to Preview Environments as containers—this includes databases, caches, and other datastores. This means that even if you use a managed database service like Amazon RDS for production, you should use a database image in your Compose (See this example that uses a
postgres image from Docker Hub).
If your application requires test data, you will need to seed your database when your Preview Environment is created. Here are two methods for seeding databases:
- (Recommended) Have your application perform a data migration on start-up. You can add a conditional to do this only if the database is uninitialized.
- Bundle test data into the database image itself. This method is only recommended for small datasets (< 50MB), as it will increase the size of your image and deployment times.
localhost. Application instances that belong to different Preview Environments may only communicate via the public Internet. See the self-hosted installation guide for more architecture details.
pushsteps for each of the components of your application. Uffizzi just needs to know the fully qualified container registry URL for where to find these built images.
docker-compose uplocally, all the
servicesdefined in your Compose share a local network and can communicate via
localhost. Application instances that belong to different Preview Environments may only communicate via the public Internet.
This library is licensed under the Apache License, Version 2.0.
If you discover a security related issues, please do not create a public github issue. Notify the Uffizzi team privately by sending an email to