This guide deploys nsupdate.info using Docker Compose with Ansible automation for dynamic DNS management.
- name: Deploy nsupdate.info with Docker
hosts: nsupdate_info_docker
become: true
vars:
nsui_project_dir: /opt/nsupdate-info
nsui_db_password: "{{ lookup('password', '/dev/null chars=ascii_letters,digits length=32') }}"
tasks:
- name: Install Docker
ansible.builtin.package:
name:
- docker
- docker-compose
state: present
- name: Create nsupdate.info project directory
ansible.builtin.file:
path: "{{ nsui_project_dir }}"
state: directory
mode: "0755"
- name: Deploy docker-compose.yml
ansible.builtin.copy:
dest: "{{ nsui_project_dir }}/docker-compose.yml"
mode: "0644"
content: |
version: '3.8'
services:
nsupdate-info:
image: jschwaeger/nsupdate-info:latest
ports:
- "8080:80"
environment:
- DATABASE_URL=postgresql://nsupdate:${NSUI_DB_PASSWORD}@postgres:5432/nsupdate
depends_on:
- postgres
postgres:
image: postgres:15
environment:
- POSTGRES_DB=nsupdate
- POSTGRES_USER=nsupdate
- POSTGRES_PASSWORD=${NSUI_DB_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
postgres-data:
- name: Deploy .env file
ansible.builtin.copy:
dest: "{{ nsui_project_dir }}/.env"
mode: "0600"
content: |
NSUI_DB_PASSWORD={{ nsui_db_password }}
ansible-playbook -i inventory.ini nsupdate-info-docker-install.yml
Need help with nsupdate.info deployments? We provide consulting for dynamic DNS setups and RFC 2136 integrations. Contact office@linux-server-admin.com or visit our contact page.