···11111212Combined with a socket-proxy container that provides granular endpoint access it's possible to expose only information about specific containers in a read-only context.
13131414+See [**Use Cases**](/usecases.md) for some common scenarios with popular apps where DPF can come in handy.
1515+1416## Features
15171618### Container Filtering
+75
usecases.md
···11+# Usecases
22+33+Some common uses for Docker Proxy Filter with popular applications.
44+55+## Homepage Docker Integration
66+77+[Homepage](https://gethomepage.dev/), a popular startpage application, can [use the Docker API](https://gethomepage.dev/configs/docker/) to discover services automatically for its dashboard.
88+99+Homepage uses only the `/containers/json` endpoint to find services by label and parse running state. There is no need for it to have access to other non-homepage labeled services.
1010+1111+Use the [`CONTAINER_LABELS`](/README.md#container_labels) environmental to allow any label with a key containing `homepage`:
1212+1313+```yaml
1414+services:
1515+ proxy-container:
1616+ image: foxxmd/docker-proxy-filter
1717+ environment:
1818+ - PROXY_URL=http://socket-proxy:2375
1919+ - CONTAINER_LABELS=homepage
2020+ ports:
2121+ - 2375:2375
2222+ socket-proxy:
2323+ image: wollomatic/socket-proxy:1.10.0
2424+ restart: unless-stopped
2525+ user: 0:0
2626+ mem_limit: 64M
2727+ read_only: true
2828+ cap_drop:
2929+ - ALL
3030+ security_opt:
3131+ - no-new-privileges
3232+ command:
3333+ - '-loglevel=debug'
3434+ - '-listenip=0.0.0.0'
3535+ - '-allowfrom=proxy-container'
3636+ - '-allowHEAD=/_ping'
3737+ - '-allowGET=/_ping|/(v1\..{1,2}/)?(info|version|containers|events).*'
3838+ volumes:
3939+ - /var/run/docker.sock:/var/run/docker.sock:ro
4040+```
4141+4242+## Uptime Kuma Docker Monitor
4343+4444+[Uptime Kuma](https://github.com/louislam/uptime-kuma) can create [monitors for Docker containers](https://github.com/louislam/uptime-kuma/wiki/How-to-Monitor-Docker-Containers) by using the Docker API through either direct socket connection or TCP/HTTP.
4545+4646+In Uptime Kuma, setup a new Docker Host using docker-proxy-filter instead of a normal socket-proxy. Then, add a label (`uptime.enabled=true`) on for each service you want Uptime Kuma to be able to monitor. Finally, add that label to `CONTAINER_LABELS` for docker-proxy-filter.
4747+4848+```yaml
4949+services:
5050+ proxy-container:
5151+ image: foxxmd/docker-proxy-filter
5252+ environment:
5353+ - PROXY_URL=http://socket-proxy:2375
5454+ - CONTAINER_LABELS=uptime.enabled=true
5555+ ports:
5656+ - 2375:2375
5757+ socket-proxy:
5858+ image: wollomatic/socket-proxy:1.10.0
5959+ restart: unless-stopped
6060+ user: 0:0
6161+ mem_limit: 64M
6262+ read_only: true
6363+ cap_drop:
6464+ - ALL
6565+ security_opt:
6666+ - no-new-privileges
6767+ command:
6868+ - '-loglevel=debug'
6969+ - '-listenip=0.0.0.0'
7070+ - '-allowfrom=proxy-container'
7171+ - '-allowHEAD=/_ping'
7272+ - '-allowGET=/_ping|/(v1\..{1,2}/)?(info|version|containers|events).*'
7373+ volumes:
7474+ - /var/run/docker.sock:/var/run/docker.sock:ro
7575+```