Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/grantbirki/ingress

VM ingress for directing traffic to other docker compose stacks
https://github.com/grantbirki/ingress

ingress self-hosted

Last synced: 2 months ago
JSON representation

VM ingress for directing traffic to other docker compose stacks

Awesome Lists containing this project

README

        

# ingress ๐Ÿ“ฅ

[![deploy](https://github.com/GrantBirki/ingress/actions/workflows/deploy.yml/badge.svg)](https://github.com/GrantBirki/ingress/actions/workflows/deploy.yml)
[![Unlock On Merge](https://github.com/GrantBirki/ingress/actions/workflows/unlock-on-merge.yml/badge.svg)](https://github.com/GrantBirki/ingress/actions/workflows/unlock-on-merge.yml)

VM ingress for directing traffic to other docker compose stacks

## About โญ

This project assumes that you have a freshly deployed VM in the _cloud_. Now that you have a VM with docker + compose, you might want to host several domains for applications and all in different docker compose stacks. This ingress allows you to expose multiple domains on a single virtual machine and then route traffic to each docker compose stack.

- [Docker Compose](./docker-compose.yml) to run the ingress
- [Caddy](./src) to automatically generate SSL certificates for your domain(s)
- [Branch Deploy workflow](./.github/workflows/branch-deploy.yml) to help you ship changes to production (on your VM)

## Getting Started ๐Ÿš€

First, clone this repo to your virtual machine / vps. Then enter the directory of the repo you just cloned.

Now run the following command:

> Note: Before you run this command, ensure that you have a DNS record pointed to the static IP of your VM. This is required for the SSL certificate to be generated by [Caddy](https://github.com/caddyserver/caddy)

```bash
script/deploy
```

This will deploy ingress

## Updating ingress ๐Ÿ”„

Once your project is fully setup, you will likely want to apply updates from the upstream repository of ingress. To do this, either wait for Dependabot to open a PR or open one yourself.

You can comment `.deploy` on the pull request to branch-deploy and test out the update before fully "committing" to the change and merging the branch into `main`

## Localhost Testing ๐Ÿงช

```bash
curl -I -k https://localhost/health
```