1b35702b1b
Co-authored-by: Joachim Friberg <joachim.friberg@ip-solutions.se> Reviewed-on: phirna/zima-apps#6
150 lines
4.7 KiB
YAML
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
|