Files
zima-apps/Apps/docker-ip-addr-manager/docker-compose.yaml
T

150 lines
4.7 KiB
YAML

name: docker-ip-addr-manager
services:
app:
image: joafri/docker-ip-addr-manager-app:main
build:
context: ./backend
dockerfile: Dockerfile
container_name: docker-ip-addr-manager
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
security_opt:
- no-new-privileges:true
environment:
TZ: Europe/Stockholm
APP_PORT: "31810"
STATE_FILE: /data/entries.json
DOCKER_API_URL: unix:///var/run/docker.sock
DOCKER_TIMEOUT_SECONDS: "3"
DNS_PROVIDER: none
DNS_BASE_DOMAIN: home.arpa
DNS_TTL_SECONDS: "120"
DNS_SYNC_INTERVAL_SECONDS: "15"
ADGUARD_URL: http://127.0.0.1:3000
ADGUARD_USERNAME: ""
ADGUARD_PASSWORD: ""
ADGUARD_API_TOKEN: ""
RFC2136_SERVER: ""
RFC2136_ZONE: ""
RFC2136_PORT: "53"
RFC2136_TSIG_KEY_NAME: ""
RFC2136_TSIG_SECRET: ""
RFC2136_TSIG_ALGORITHM: hmac-sha256
volumes:
- type: bind
source: /DATA/AppData/$AppID/data
target: /data
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
read_only: true
x-casaos:
envs:
- container: APP_PORT
description:
en_us: HTTP port for the management UI
- container: DOCKER_API_URL
description:
en_us: Docker endpoint (unix socket default, optional tcp endpoint)
- container: DOCKER_TIMEOUT_SECONDS
description:
en_us: Timeout in seconds for Docker API requests
- container: DNS_PROVIDER
description:
en_us: DNS backend (none, adguard, rfc2136)
- container: DNS_BASE_DOMAIN
description:
en_us: Base domain for generated hostnames like <name>.<domain>
- container: DNS_TTL_SECONDS
description:
en_us: TTL in seconds for DNS A records
- container: DNS_SYNC_INTERVAL_SECONDS
description:
en_us: Background DNS reconcile interval in seconds
- container: ADGUARD_URL
description:
en_us: AdGuard Home URL for DNS_PROVIDER=adguard
- container: ADGUARD_USERNAME
description:
en_us: AdGuard Home username for DNS_PROVIDER=adguard
- container: ADGUARD_PASSWORD
description:
en_us: AdGuard Home password for DNS_PROVIDER=adguard
- container: RFC2136_SERVER
description:
en_us: RFC2136 nameserver host or IP
- container: RFC2136_ZONE
description:
en_us: RFC2136 zone name (for example home.arpa)
volumes:
- container: /data
description:
en_us: Persistent IP entry state
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:version-3.0.9-r0
container_name: docker-ip-addr-manager-proxy
restart: unless-stopped
environment:
TZ: Europe/Stockholm
CONTAINERS: 1
INFO: 1
PING: 1
POST: 0
VERSION: 1
read_only: true
tmpfs:
- /run
ports:
- target: 2375
published: "2375"
host_ip: 127.0.0.1
protocol: tcp
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
x-casaos:
architectures:
- amd64
- arm64
- arm
main: app
category: phirna
author: Joachim Friberg
developer: Joachim Friberg
icon: https://cdn.simpleicons.org/docker
tagline:
en_us: Manage host LAN IP aliases for container port bindings
description:
en_us: >-
Adds/removes host interface IP aliases and shows whether an IP is used by Docker
container port bindings. Includes fail-closed disable/delete checks when usage cannot
be validated.
Start by adding a new IP Entry in this app and connect it to the appropriate Device.
Then install, or update, a zima app and choose network: bridge.
* Enter a name for the app, and the app can create DNS records as <name>.<DNS_BASE_DOMAIN> when DNS sync is enabled
* Click add, and a new row appears under.
* Click "Enable" to have this app setup the host to listen to this IP Address
* To to the ZimaOS App Store, choose an app, and do a "Custom Install"
* Add your chosen ip to all fields related to a host port
Such as the ip to the WebUI, and under "Port", theres a "Host" column.
!!! DON'T add the ip-address to the Container column. !!!
Note:
Due to a builtin "convenience" checker in ZimaOS, even if each container gets their own IP, the UI might still complain if two applications use the same port
title:
en_us: Docker IP Addr Manager
index: /
port_map: "31810"
scheme: http