|
1 | 1 | --- |
2 | | -title: adguardhome-sync - FreeBSD OCI Container |
3 | | -description: Sync AdGuardHome config to replica instances Run this application natively on FreeBSD using Podman and the Daemonless framework. Secure, lightweight, and automated. |
| 2 | +title: "AdGuardHome Sync on FreeBSD: Native OCI Container using Podman & Jails" |
| 3 | +description: "Install AdGuardHome Sync on FreeBSD natively using Podman and Daemonless. Enjoy lightweight, secure OCI containers in FreeBSD Jails without the overhead of Linux VMs." |
| 4 | +placeholders: |
| 5 | + ADGUARDHOME_SYNC_PORT: |
| 6 | + default: "8080" |
| 7 | + description: AdGuardHome Sync Host Port |
4 | 8 | --- |
5 | 9 |
|
6 | | -# adguardhome-sync |
| 10 | +# :simple-adguard: AdGuardHome Sync |
7 | 11 |
|
8 | | -Sync AdGuardHome configuration from an origin instance to replica instances, running natively on FreeBSD. |
| 12 | +[](https://github.com/daemonless/adguardhome-sync/actions) |
| 13 | +[](https://github.com/daemonless/adguardhome-sync/commits) |
9 | 14 |
|
10 | | -| | | |
11 | | -|---|---| |
12 | | -| **Port** | 8080 | |
13 | | -| **Registry** | `ghcr.io/daemonless/adguardhome-sync` | |
14 | | -| **Tags** | `:latest` | |
15 | | -| **Source** | [github.com/daemonless/adguardhome-sync](https://github.com/daemonless/adguardhome-sync) | |
| 15 | +Sync AdGuardHome configuration to replica instances. |
16 | 16 |
|
17 | | -## Quick Start |
| 17 | +## Version Tags |
18 | 18 |
|
19 | | -=== "Podman CLI" |
| 19 | +| Tag | Description | Best For | |
| 20 | +| :--- | :--- | :--- | |
| 21 | +| `latest` | **Upstream Binary**. Downloads the official release. | Most users. Matches Linux Docker behavior. | |
| 22 | + |
| 23 | +## Prerequisites |
| 24 | + |
| 25 | +Before deploying, ensure your host environment is ready. See the [Quick Start Guide](../quick-start.md) for host setup instructions. |
| 26 | + |
| 27 | +## Deployment |
| 28 | + |
| 29 | +=== ":material-docker: Podman Compose" |
20 | 30 |
|
21 | | - ### Podman |
22 | | - |
23 | | - ```bash |
24 | | - podman run --name adguardhome-sync\ |
25 | | - --restart unless-stopped\ |
26 | | - -v /my/own/config:/config\ |
27 | | - -p 8080:8080/tcp\ |
28 | | - -d ghcr.io/daemonless/adguardhome-sync |
29 | | - ``` |
30 | | - |
31 | | - ### Compose |
32 | | - |
33 | 31 | ```yaml |
34 | 32 | services: |
35 | 33 | adguardhome-sync: |
36 | 34 | image: ghcr.io/daemonless/adguardhome-sync:latest |
37 | 35 | container_name: adguardhome-sync |
38 | | - restart: unless-stopped |
| 36 | + environment: |
| 37 | + - PUID=@PUID@ |
| 38 | + - PGID=@PGID@ |
| 39 | + - TZ=@TZ@ |
39 | 40 | volumes: |
40 | | - - /my/own/config:/config |
| 41 | + - @CONTAINER_CONFIG_ROOT@/@ADGUARDHOME_SYNC_CONFIG_PATH@:/config |
41 | 42 | ports: |
42 | | - - "8080:8080/tcp" |
| 43 | + - @ADGUARDHOME_SYNC_PORT@:8080 |
| 44 | + restart: unless-stopped |
43 | 45 | ``` |
44 | 46 |
|
45 | | -## Configuration |
| 47 | +=== ":material-console: Podman CLI" |
46 | 48 |
|
47 | | -Create `/config/adguardhome-sync.yaml`: |
| 49 | + ```bash |
| 50 | + podman run -d --name adguardhome-sync \ |
| 51 | + -p @ADGUARDHOME_SYNC_PORT@:8080 \ |
| 52 | + -e PUID=@PUID@ \ |
| 53 | + -e PGID=@PGID@ \ |
| 54 | + -e TZ=@TZ@ \ |
| 55 | + -v @CONTAINER_CONFIG_ROOT@/@ADGUARDHOME_SYNC_CONFIG_PATH@:/config \ |
| 56 | + ghcr.io/daemonless/adguardhome-sync:latest |
| 57 | + ``` |
48 | 58 |
|
49 | | -```yaml |
50 | | -# cron expression for sync schedule |
51 | | -cron: "*/5 * * * *" |
| 59 | +=== ":simple-ansible: Ansible" |
52 | 60 |
|
53 | | -# run sync on startup |
54 | | -runOnStart: true |
| 61 | + ```yaml |
| 62 | + - name: Deploy adguardhome-sync |
| 63 | + containers.podman.podman_container: |
| 64 | + name: adguardhome-sync |
| 65 | + image: ghcr.io/daemonless/adguardhome-sync:latest |
| 66 | + state: started |
| 67 | + restart_policy: always |
| 68 | + env: |
| 69 | + PUID: "@PUID@" |
| 70 | + PGID: "@PGID@" |
| 71 | + TZ: "@TZ@" |
| 72 | + ports: |
| 73 | + - "@ADGUARDHOME_SYNC_PORT@:8080" |
| 74 | + volumes: |
| 75 | + - "@CONTAINER_CONFIG_ROOT@/@ADGUARDHOME_SYNC_CONFIG_PATH@:/config" |
| 76 | + ``` |
55 | 77 |
|
56 | | - # Primary instance |
57 | | - url: http://<primary-ip>:3000 |
58 | | - username: admin |
59 | | - password: password |
60 | | - # Secondary instances to sync to |
61 | | - replica: |
62 | | - - url: http://<replica-ip>:3000 |
63 | | - username: admin |
| 78 | +Access the Web UI at: `http://localhost:@ADGUARDHOME_SYNC_PORT@` |
64 | 79 |
|
65 | | -# API server |
66 | | -api: |
67 | | - port: 8080 |
68 | | -``` |
| 80 | +### Interactive Configuration |
69 | 81 |
|
70 | | -## Environment Variables |
| 82 | +<div class="placeholder-settings-panel"></div> |
71 | 83 |
|
72 | | -| Variable | Description | Default | |
73 | | -|----------|-------------|---------| |
74 | | -| `PUID` | User ID | `1000` | |
75 | | -| `PGID` | Group ID | `1000` | |
76 | | -| `TZ` | Timezone | `UTC` | |
| 84 | +## Parameters |
77 | 85 |
|
78 | | -## What Gets Synced |
| 86 | +### Environment Variables |
79 | 87 |
|
80 | | -- General settings |
81 | | -- DNS configuration (rewrites, access lists, server config) |
82 | | -- Filters |
83 | | -- Client settings |
84 | | -- DHCP settings (optional) |
85 | | -- Services |
86 | | -- Query log config |
87 | | -- Statistics config |
| 88 | +| Variable | Default | Description | |
| 89 | +|----------|---------|-------------| |
| 90 | +| `PUID` | `1000` | User ID for the application process | |
| 91 | +| `PGID` | `1000` | Group ID for the application process | |
| 92 | +| `TZ` | `UTC` | Timezone for the container | |
88 | 93 |
|
89 | | -## Volumes |
| 94 | +### Volumes |
90 | 95 |
|
91 | 96 | | Path | Description | |
92 | 97 | |------|-------------| |
93 | 98 | | `/config` | Configuration directory | |
94 | 99 |
|
95 | | -## Ports |
| 100 | +### Ports |
96 | 101 |
|
97 | 102 | | Port | Protocol | Description | |
98 | 103 | |------|----------|-------------| |
99 | | -| 8080 | TCP | Web API / metrics | |
100 | | - |
101 | | -## Tags |
| 104 | +| `8080` | TCP | Metrics/API | |
102 | 105 |
|
103 | | -| Tag | Source | Description | |
104 | | -|-----|--------|-------------| |
105 | | -| `:latest` | [Upstream Releases](https://github.com/bakito/adguardhome-sync/releases) | Latest upstream release | |
| 106 | +!!! info "Implementation Details" |
106 | 107 |
|
107 | | -## Links |
| 108 | + - **User:** `bsd` (UID/GID set via [PUID/PGID](../guides/permissions.md)). Defaults to `1000:1000`. |
| 109 | + - **Base:** Built on `ghcr.io/daemonless/base` (FreeBSD 15.0). |
108 | 110 |
|
109 | | -- [Upstream Repository](https://github.com/bakito/adguardhome-sync) |
110 | | -- [Configuration Reference](https://github.com/bakito/adguardhome-sync#config-file) |
| 111 | +[Website](https://github.com/bakito/adguardhome-sync){ .md-button .md-button--primary } |
| 112 | +[Source Code](https://github.com/bakito/adguardhome-sync){ .md-button } |
0 commit comments