https://github.com/dokku/service-proxy
An app that can be used to proxy to a datastore service's web ui
https://github.com/dokku/service-proxy
docker docker-image proxy tcp-proxy
Last synced: 6 months ago
JSON representation
An app that can be used to proxy to a datastore service's web ui
- Host: GitHub
- URL: https://github.com/dokku/service-proxy
- Owner: dokku
- License: mit
- Created: 2021-09-11T06:06:53.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-06-08T03:18:19.000Z (7 months ago)
- Last Synced: 2025-06-19T13:31:18.987Z (7 months ago)
- Topics: docker, docker-image, proxy, tcp-proxy
- Language: Shell
- Homepage:
- Size: 2.69 MB
- Stars: 9
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# service-proxy
[](https://hub.docker.com/r/dokku/service-proxy)
An app that can be provisioned on Dokku to provide a proxy between the service's web ui and your browser.
## Usage
## Supported Services
- [clickhouse](https://github.com/dokku/dokku-clickhouse): port `8123`
- [couchdb](https://github.com/dokku/dokku-couchdb): port `5984`
- [elasticsearch](https://github.com/dokku/dokku-elasticsearch): port `9200`
- [graphite](https://github.com/dokku/dokku-graphite): port `80`
- [meilisearch](https://github.com/dokku/dokku-meilisearch): port `7700`
- [pushpin](https://github.com/dokku/dokku-pushpin): port `7999`
- [rabbitmq](https://github.com/dokku/dokku-rabbitmq): port `15672`
- [rethinkdb](https://github.com/dokku/dokku-rethinkdb): port `8080`
- [solr](https://github.com/dokku/dokku-solr): port `8983`
### Deploying
In this example, a `rabbitmq` service named `lollipop` will be exposed under the app `service-proxy`.
To start, we'll need to create an app for the service proxy.
```shell
dokku apps:create service-proxy
```
In order to proxy to a given service, some config variables need to be provisioned.
At a minimum, both `SERVICE_NAME` and `SERVICE_TYPE` should be set where:
- `SERVICE_NAME`: the name of the service, eg. `my-database`
- `SERVICE_TYPE`: the type of the service, eg. `rabbitmq` (this is the command prefix)
These will be used to infer the host/port to fetch. For the above example, the host would be `dokku-rabbitmq-my-database`.
The port will be infered to be the _first_ port exposed by the service. This may be incorrect, especially when the first port is a tcp port for communication to the datastore itself. In those cases, a `SERVICE_PORT` environment variable can be set to force a specific port number.
In the following example, we configure for rabbitmq:
```shell
dokku config:set service-proxy SERVICE_NAME=queue SERVICE_TYPE=rabbitmq SERVICE_PORT=15672
```
Next, we'll create the service itself and link it to our app:
```shell
# create the rabbitmq service
dokku rabbitmq:create queue
# link the rabbitmq service
dokku rabbitmq:link queue service-proxy
```
Finally, the service-proxy can be deployed, after which the service will be available on the app's url.
```shell
dokku git:from-image service-proxy dokku/service-proxy:latest
```
Since the service proxy is treated as an app, it can be configured to use any app-related setting. For example, letsencrypt can be used to provision SSL certificates.
```shell
dokku letsencrypt:enable service-proxy
```