Giter Club home page Giter Club logo

docker-adguardhome-sync's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances.

adguardhome-sync

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/adguardhome-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Version Tags

This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.

Tag Available Description
latest Stable releases from GitHub

Application Setup

Edit the adguardhome-sync.yaml with your AdGuardHome instance details, for more information check out AdGuardHome Sync.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  adguardhome-sync:
    image: lscr.io/linuxserver/adguardhome-sync:latest
    container_name: adguardhome-sync
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - CONFIGFILE=/config/adguardhome-sync.yaml #optional
    volumes:
      - /path/to/adguardhome-sync/config:/config
    ports:
      - 8080:8080
    restart: unless-stopped
docker run -d \
  --name=adguardhome-sync \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e CONFIGFILE=/config/adguardhome-sync.yaml `#optional` \
  -p 8080:8080 \
  -v /path/to/adguardhome-sync/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/adguardhome-sync:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 8080 Port for AdGuardHome Sync's web API.
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e CONFIGFILE=/config/adguardhome-sync.yaml Set a custom config file.
-v /config Contains all relevant configuration files.

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it adguardhome-sync /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f adguardhome-sync
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' adguardhome-sync
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/adguardhome-sync:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull adguardhome-sync
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d adguardhome-sync
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/adguardhome-sync:latest
  • Stop the running container:

    docker stop adguardhome-sync
  • Delete the container:

    docker rm adguardhome-sync
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-adguardhome-sync.git
cd docker-adguardhome-sync
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/adguardhome-sync:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 31.01.24: - Rebase to Alpine 3.19.
  • 11.06.23: - Rebase to Alpine 3.18, deprecate armhf.
  • 07.02.23: - Rebase to Alpine 3.17, update amd64 artifact name.
  • 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3.
  • 18.12.21: - Rebase to Alpine 3.15.
  • 09.08.21: - Rebase to Alpine 3.14.
  • 08.04.21: - Initial Release.

docker-adguardhome-sync's People

Contributors

aptalca avatar roxedus avatar thespad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-adguardhome-sync's Issues

[BUG] Error syncing dhcp in log

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

At each sync, there are errors about not being able to sync dhcp settings. This happens ever since version [v0.5.2-ls82]. I don't have DHCP enabled in AGH and I never have, my settings have not changed when this started happening.

Expected Behavior

Sync should work without errors

Steps To Reproduce

  1. use version [v0.5.2-ls82] or [v0.5.2-ls83]
  2. user AGH version 0.107.41 or 0.107.42
  3. reset DHCP settings in AGH and leave disabled
  4. sync

Environment

- OS: RPI 4 - Debian GNU/Linux 11 (bullseye)
- How docker service was installed: docker compose

CPU architecture

arm64

Docker creation

version: '3.3'
services:
    adguardhome-sync:
        container_name: adguardhome-sync
        ports:
            - 8088:8088
        environment:
            - PUID=1000
            - PGID=1000
            - TZ=America/New_York
        volumes:
            - './config:/config'
        restart: unless-stopped
        image: 'linuxserver/adguardhome-sync:latest'

Container logs

2023-12-07T11:17:32.912-0500	INFO	sync	sync/http.go:30	Starting sync from API	{"remote-addr": "192.168.86.22:55102"}
2023-12-07T11:17:33.040-0500	INFO	sync	sync/sync.go:162	Connected to origin	{"from": "192.168.86.193:8084", "version": "v0.107.42"}
2023-12-07T11:17:35.217-0500	INFO	sync	sync/sync.go:259	Start sync	{"from": "192.168.86.193:8084", "to": "192.168.86.196:8084"}
2023-12-07T11:17:35.626-0500	INFO	sync	sync/sync.go:267	Connected to replica	{"from": "192.168.86.193:8084", "to": "192.168.86.196:8084", "version": "v0.107.42"}
2023-12-07T11:17:38.479-0500	INFO	client	client/client.go:375	Set stats config	{"host": "192.168.86.196:8084", "interval": 1}
2023-12-07T11:17:39.716-0500	INFO	client	client/client.go:287	Toggle filtering	{"host": "192.168.86.196:8084", "enabled": true, "interval": 24}
2023-12-07T11:17:42.784-0500	INFO	client	client/client.go:434	Set dhcp server config	{"host": "192.168.86.196:8084"}
2023-12-07T11:17:43.237-0500	ERROR	sync	sync/sync.go:319	Error syncing dhcp	{"from": "192.168.86.193:8084", "to": "192.168.86.196:8084", "error": "400 Bad Request(bad dhcpv4 configuration: dhcpv4: invalid IP is not an IPv4 address\n)"}
github.com/bakito/adguardhome-sync/pkg/sync.(*worker).syncTo
	/home/bakito/go/src/github.com/bakito/adguardhome-sync/pkg/sync/sync.go:319
github.com/bakito/adguardhome-sync/pkg/sync.(*worker).sync
	/home/bakito/go/src/github.com/bakito/adguardhome-sync/pkg/sync/sync.go:247
github.com/bakito/adguardhome-sync/pkg/sync.(*worker).handleSync
	/home/bakito/go/src/github.com/bakito/adguardhome-sync/pkg/sync/http.go:31
github.com/gin-gonic/gin.(*Context).Next
	/home/bakito/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1
	/home/bakito/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:102
github.com/gin-gonic/gin.(*Context).Next
	/home/bakito/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/home/bakito/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:620
github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/home/bakito/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:576
net/http.serverHandler.ServeHTTP
	/home/bakito/.gimme/versions/go1.21.3.linux.amd64/src/net/http/server.go:2938
net/http.(*conn).serve
	/home/bakito/.gimme/versions/go1.21.3.linux.amd64/src/net/http/server.go:2009

Hard Coded "\" in URL

There is a hard coded "" character in the URL generator for the origin status.

The Following configuration is unable to connect to an adguard instance:

origin:
  # url of the origin instance
  url: http://192.168.0.3:3000
  apiPath: /control
  # insecureSkipVerify: true # disable tls check
  username: <user>
  password: <password>

the result of all attempts puts the following:
{"from": "192.168.0.3:3000", "error": ": Get \"http://192.168.0.3:3000/control/status\": dial tcp 192.168.0.3:3000: connect: no route to host"}

As you can see, there is a "" character being added to the URL path. I have verified that AdGuard does NOT support this URL and fails.

there should be no trailing slashes on the URL and the "/control/status" IS the correct URL.

[BUG] FILE__ environment variables get added a \n

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Trying to use the FILE__ environment variables to make use of docker secrets.

E.g. using FILE__ORIGIN_USERNAME: /run/secrets/myUser and myUser being foo, adguardhome-sync receives user\n - the same goes for all other environment variables.

The environment variables of the original image are not listed as supported environment variables for this image, maybe they are not supposed to be used this way?

I suppose this is a linuxserver issue since FILE__ comes directly from the base image. Using the environment variables without FILE__ (e.g. ORIGIN_USERNAME) does work without issues.

Expected Behavior

Environment variables with the FILE__ prefix shouldn't get an extra newline \n added.

Steps To Reproduce

  1. Use image and set environment variable such as FILE__ORIGIN_USERNAME: /run/secrets/myUser
  2. Make use of docker secrets to fill that referenced file or make use of volume mounts
  3. Observe the log (LOG_LEVEL: debug) for environment variable
  4. See that all variables being passed with FILE__ get a newline \n suffix.

Environment

- OS:
- How docker service was installed:

CPU architecture

arm64

Docker creation

adguard-sync:
    image: lscr.io/linuxserver/adguardhome-sync:latest
    container_name: adguard-sync
    environment:
      ORIGIN_URL: ${ADGUARD_ORIGIN_SERVER}
      FILE__ORIGIN_USERNAME: /run/secrets/myUser
      FILE__ORIGIN_PASSWORD: /run/secrets/myPassword
      REPLICA_URL: ${ADGUARD_REPLICA_SERVER}
      FILE__REPLICA_USERNAME: /run/secrets/myUser
      FILE__REPLICA_PASSWORD: /run/secrets/myPassword
      LOG_LEVEL: debug
      # REPLICA1_AUTOSETUP: true # if true, AdGuardHome is automatically initialized.
      CRON: '*/10 * * * *' # run every 10 minutes
      RUNONSTART: true
      # Configure sync features; by default all features are enabled.
      # FEATURES_GENERALSETTINGS: true
      # FEATURES_QUERYLOGCONFIG: true
      # FEATURES_STATSCONFIG: true
      # FEATURES_CLIENTSETTINGS: true
      # FEATURES_SERVICES: true
      # FEATURES_FILTERS: true
      # FEATURES_DHCP_SERVERCONFIG: true
      # FEATURES_DHCP_STATICLEASES: true
      # FEATURES_DNS_SERVERCONFIG: true
      # FEATURES_DNS_ACCESSLISTS: true
      # FEATURES_DNS_REWRITES: true
    volumes:
      - ./adguard-sync:/config
    secrets:
      - myUser
      - myPassword

Container logs

2023-01-30T00:48:53.785+0100    DEBUG   client  client/client.go:155    got response    {"host": "192.168.178.178:8099", "method": "GET", "path": "status", "username": "myUser\n", "status": 403, "body": "Forbidden", "content-type": ["text/plain; charset=utf-8"]}

[Issue] Can't access web UI anymore, doubt it's running

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

web UI errors out, it's showing as online in my unifi udm-pro clients list

web page/ui :
Unable to connect

Firefox can’t establish a connection to the server at 192.168.10.244:8080.

The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer’s network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the web.

Expected Behavior

it should work, it did when i finally got it set up, haven't touched settings since

Steps To Reproduce

start docker container, check logs and web ui page

Environment

- OS: unraid 6.10.3
- How docker service was installed: Community Apps Tab (linuxserver repo)

CPU architecture

x86-64

Docker creation

unraid community app tab

Container logs

short snippet of whats flying down the log screen:

github.com/spf13/cobra.(*Command).ExecuteC
      --feature-stats-config            Enable stats config feature (default true)
  -h, --help                            help for run
      --origin-api-path string          Origin instance API path (default "/control")
      --origin-cookie string            If Set, uses a cookie for authentication
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1115      --origin-insecure-skip-verify     Enable Origin instance InsecureSkipVerify

      --origin-password string          Origin instance password
      --origin-url string               Origin instance url
      --origin-username string          Origin instance username
      --origin-web-url string           Origin instance web url used in the web interface (default: <origin-url>)
      --printConfigOnly                 Prints the configuration only and exists. Can be used to debug the config E.g: when having authentication issues.
github.com/spf13/cobra.(*Command).Execute
      --replica-api-path string         Replica instance API path (default "/control")
      --replica-auto-setup              Enable automatic setup of new AdguardHome instances. This replaces the setup wizard.
      --replica-cookie string           If Set, uses a cookie for authentication
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1039
github.com/bakito/adguardhome-sync/cmd.Execute      --replica-insecure-skip-verify    Enable Replica instance InsecureSkipVerify
      --replica-interface-name string   Optional change the interface name of the replica if it differs from the master

      --replica-password string         Replica instance password
      --replica-url string              Replica instance url
      --replica-username string         Replica instance username
      --replica-web-url string          Replica instance web url used in the web interface (default: <replica-url>)
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/root.go:27
main.main
      --runOnStart                      Run the sync job on start. (default true)

Global Flags:
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/main.go:6      --config string   config file (default is $HOME/.adguardhome-sync.yaml)


runtime.main
        /home/bakito/.gimme/versions/go1.21.6.linux.amd64/src/runtime/proc.go:267
yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
Error: yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
2024-02-07T09:25:54.544-0500    ERROR   run     cmd/run.go:20   yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
github.com/bakito/adguardhome-sync/cmd.glob..func1
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/run.go:20
github.com/spf13/cobra.(*Command).execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:983
github.com/spf13/cobra.(*Command).ExecuteC
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1115
github.com/spf13/cobra.(*Command).Execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1039
github.com/bakito/adguardhome-sync/cmd.Execute
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/root.go:27
main.main
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/main.go:6
runtime.main
        /home/bakito/.gimme/versions/go1.21.6.linux.amd64/src/runtime/proc.go:267
yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
Usage:
  adguardhome-sync run [flags]

Flags:
      --api-dark-mode string            API UI in dark mode
      --api-password string             Sync API password
      --api-port int                    Sync API Port, the API endpoint will be started to enable remote triggering; if 0 port API is disabled. (default 8080)
      --api-username string             Sync API username
      --continueOnError                 If enabled, the synchronisation task will not fail on single errors, but will log the errors and continue.
      --cron string                     The cron expression to run in daemon mode
      --feature-client-settings         Enable client settings feature (default true)
      --feature-dhcp-server-config      Enable DHCP server config feature (default true)
      --feature-dhcp-static-leases      Enable DHCP server static leases feature (default true)
      --feature-dns-access-lists        Enable DNS server access lists feature (default true)
      --feature-dns-rewrites            Enable DNS rewrites feature (default true)
      --feature-dns-server-config       Enable DNS server config feature (default true)
      --feature-filters                 Enable filters sync feature (default true)
      --feature-general-settings        Enable general settings feature (default true)
      --feature-query-log-config        Enable query log config feature (default true)
      --feature-services                Enable services sync feature (default true)
      --feature-stats-config            Enable stats config feature (default true)
  -h, --help                            help for run
      --origin-api-path string          Origin instance API path (default "/control")
      --origin-cookie string            If Set, uses a cookie for authentication
      --origin-insecure-skip-verify     Enable Origin instance InsecureSkipVerify
      --origin-password string          Origin instance password
      --origin-url string               Origin instance url
      --origin-username string          Origin instance username
      --origin-web-url string           Origin instance web url used in the web interface (default: <origin-url>)
      --printConfigOnly                 Prints the configuration only and exists. Can be used to debug the config E.g: when having authentication issues.
      --replica-api-path string         Replica instance API path (default "/control")
      --replica-auto-setup              Enable automatic setup of new AdguardHome instances. This replaces the setup wizard.
      --replica-cookie string           If Set, uses a cookie for authentication
      --replica-insecure-skip-verify    Enable Replica instance InsecureSkipVerify
      --replica-interface-name string   Optional change the interface name of the replica if it differs from the master
      --replica-password string         Replica instance password
      --replica-url string              Replica instance url
      --replica-username string         Replica instance username
      --replica-web-url string          Replica instance web url used in the web interface (default: <replica-url>)
      --runOnStart                      Run the sync job on start. (default true)

Global Flags:
      --config string   config file (default is $HOME/.adguardhome-sync.yaml)

Error: yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
2024-02-07T09:25:55.627-0500    ERROR   run     cmd/run.go:20   yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
github.com/bakito/adguardhome-sync/cmd.glob..func1
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/run.go:20
github.com/spf13/cobra.(*Command).execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:983
github.com/spf13/cobra.(*Command).ExecuteC
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1115
github.com/spf13/cobra.(*Command).Execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1039
github.com/bakito/adguardhome-sync/cmd.Execute
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/root.go:27
main.main
Usage:
  adguardhome-sync run [flags]
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/main.go:6

Flags:
      --api-dark-mode string            API UI in dark mode
      --api-password string             Sync API password
runtime.main      --api-port int                    Sync API Port, the API endpoint will be started to enable remote triggering; if 0 port API is disabled. (default 8080)

      --api-username string             Sync API username
      --continueOnError                 If enabled, the synchronisation task will not fail on single errors, but will log the errors and continue.
      --cron string                     The cron expression to run in daemon mode
        /home/bakito/.gimme/versions/go1.21.6.linux.amd64/src/runtime/proc.go:267      --feature-client-settings         Enable client settings feature (default true)

      --feature-dhcp-server-config      Enable DHCP server config feature (default true)
      --feature-dhcp-static-leases      Enable DHCP server static leases feature (default true)
      --feature-dns-access-lists        Enable DNS server access lists feature (default true)
yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
      --feature-dns-rewrites            Enable DNS rewrites feature (default true)
      --feature-dns-server-config       Enable DNS server config feature (default true)
      --feature-filters                 Enable filters sync feature (default true)
      --feature-general-settings        Enable general settings feature (default true)
      --feature-query-log-config        Enable query log config feature (default true)
      --feature-services                Enable services sync feature (default true)
      --feature-stats-config            Enable stats config feature (default true)
  -h, --help                            help for run
      --origin-api-path string          Origin instance API path (default "/control")
      --origin-cookie string            If Set, uses a cookie for authentication
      --origin-insecure-skip-verify     Enable Origin instance InsecureSkipVerify
      --origin-password string          Origin instance password
      --origin-url string               Origin instance url
      --origin-username string          Origin instance username
      --origin-web-url string           Origin instance web url used in the web interface (default: <origin-url>)
      --printConfigOnly                 Prints the configuration only and exists. Can be used to debug the config E.g: when having authentication issues.
      --replica-api-path string         Replica instance API path (default "/control")
      --replica-auto-setup              Enable automatic setup of new AdguardHome instances. This replaces the setup wizard.
      --replica-cookie string           If Set, uses a cookie for authentication
      --replica-insecure-skip-verify    Enable Replica instance InsecureSkipVerify
      --replica-interface-name string   Optional change the interface name of the replica if it differs from the master
      --replica-password string         Replica instance password
      --replica-url string              Replica instance url
      --replica-username string         Replica instance username
      --replica-web-url string          Replica instance web url used in the web interface (default: <replica-url>)
      --runOnStart                      Run the sync job on start. (default true)

Global Flags:
      --config string   config file (default is $HOME/.adguardhome-sync.yaml)

Error: yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
2024-02-07T09:25:56.714-0500    ERROR   run     cmd/run.go:20   yaml: unmarshal errors:
  line 22: cannot unmarshal !!map into []types.AdGuardInstance
github.com/bakito/adguardhome-sync/cmd.glob..func1
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/run.go:20
github.com/spf13/cobra.(*Command).execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:983
github.com/spf13/cobra.(*Command).ExecuteC
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1115
github.com/spf13/cobra.(*Command).Execute
        /home/bakito/go/pkg/mod/github.com/spf13/[email protected]/command.go:1039
github.com/bakito/adguardhome-sync/cmd.Execute
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/cmd/root.go:27
main.main
        /home/bakito/go/src/github.com/bakito/adguardhome-sync/main.go:6
runtime.main
        /home/bakito/.gimme/versions/go1.21.6.linux.amd64/src/runtime/proc.go:267
Usage:
  adguardhome-sync run [flags]

yaml: unmarshal errors:Flags:

      --api-dark-mode string            API UI in dark mode
      --api-password string             Sync API password
      --api-port int                    Sync API Port, the API endpoint will be started to enable remote triggering; if 0 port API is disabled. (default 8080)
      --api-username string             Sync API username
      --continueOnError                 If enabled, the synchronisation task will not fail on single errors, but will log the errors and continue.
  line 22: cannot unmarshal !!map into []types.AdGuardInstance      --cron string                     The cron expression to run in daemon mode

      --feature-client-settings         Enable client settings feature (default true)
      --feature-dhcp-server-config      Enable DHCP server config feature (default true)
      --feature-dhcp-static-leases      Enable DHCP server static leases feature (default true)
      --feature-dns-access-lists        Enable DNS server access lists feature (default true)
      --feature-dns-rewrites            Enable DNS rewrites feature (default true)
      --feature-dns-server-config       Enable DNS server config feature (default true)
      --feature-filters                 Enable filters sync feature (default true)
      --feature-general-settings        Enable general settings feature (default true)
      --feature-query-log-config        Enable query log config feature (default true)
      --feature-services                Enable services sync feature (default true)
      --feature-stats-config            Enable stats config feature (default true)
  -h, --help                            help for run
      --origin-api-path string          Origin instance API path (default "/control")
      --origin-cookie string            If Set, uses a cookie for authentication
      --origin-insecure-skip-verify     Enable Origin instance InsecureSkipVerify
      --origin-password string          Origin instance password
      --origin-url string               Origin instance url
      --origin-username string          Origin instance username
      --origin-web-url string           Origin instance web url used in the web interface (default: <origin-url>)
      --printConfigOnly                 Prints the configuration only and exists. Can be used to debug the config E.g: when having authentication issues.
      --replica-api-path string         Replica instance API path (default "/control")
      --replica-auto-setup              Enable automatic setup of new AdguardHome instances. This replaces the setup wizard.
      --replica-cookie string           If Set, uses a cookie for authentication
      --replica-insecure-skip-verify    Enable Replica instance InsecureSkipVerify
      --replica-interface-name string   Optional change the interface name of the replica if it differs from the master
      --replica-password string         Replica instance password
      --replica-url string              Replica instance url
      --replica-username string         Replica instance username
      --replica-web-url string          Replica instance web url used in the web interface (default: <replica-url>)
      --runOnStart                      Run the sync job on start. (default true)

Global Flags:
      --config string   config file (default is $HOME/.adguardhome-sync.yaml)

Error: yaml: unmarshal errors:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.