What is webapp.io?
webapp.io integrates with GitHub, GitLab, and BitBucket to provide per-branch full-stack review environments.
It creates snapshots to create new copies of VMs in seconds by re-using the work previously done for earlier commits.
For example, instead of re-migrating and re-seeding a database for every environment, it would be done once and the snapshot would be re-used over and over again.
Let’s say you building an open-source version of Slack using Docker Compose.
Your codebase is a monorepository, so all of your services are within a single folder.
This is exactly what the Livechat Example github project contains.
For code review, you’d like it so that every time a developer pushes code, a new copy of the built services is visible on the internet at https://(branch).demo.yourcompany.com
Creating environments like this is precisely what webapp.io helps with.
Our hosted platform lets you efficiently create many copies of running services by re-using work from prior snapshots.
The webapp.io configuration from the example above might look like the following:
FROM vm/ubuntu:18.04 # Install docker RUN apt-get update && \ apt-get install apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" && \ apt-get update && \ apt install docker-ce # Install docker-compose RUN curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose # Copy repository files COPY / /root RUN /root/pull-images.sh RUN REPEATABLE docker-compose build --parallel RUN BACKGROUND docker-compose up # EXPOSE WEBSITE creates an internet visible link EXPOSE WEBSITE localhost:8000
To install webapp.io with the example above, you’d:
- Authorize webapp.io with GitHub, GitLab, or BitBucket
- Commit the file above as a file named
Layerfileanywhere in your repository
- Push a commit that contains that file. webapp.io will create an environment for it and post a link right on your commit.
Beyond review environments
webapp.io is well suited to creating per-branch links of webapps, but that’s far from the only thing it can do.
Check out the Advanced Workflows section to how polyrepositories, inheritance, and more can be set up with webapp.io.