|
1 | 1 | --- |
2 | | -title: adguardhome-sync - FreeBSD OCI Container |
3 | | -description: Sync AdGuardHome config to replica instances on FreeBSD. Run this application natively on FreeBSD using Podman and the Daemonless framework. |
| 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** | SET_ADGUARDHOME_SYNC_PORT | |
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 Compose" |
| 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 | 31 | ```yaml |
22 | 32 | services: |
23 | 33 | adguardhome-sync: |
24 | 34 | image: ghcr.io/daemonless/adguardhome-sync:latest |
25 | 35 | container_name: adguardhome-sync |
26 | | - restart: unless-stopped |
| 36 | + environment: |
| 37 | + - PUID=@PUID@ |
| 38 | + - PGID=@PGID@ |
| 39 | + - TZ=@TZ@ |
27 | 40 | volumes: |
28 | | - - /my/own/config:/config |
| 41 | + - @CONTAINER_CONFIG_ROOT@/@ADGUARDHOME_SYNC_CONFIG_PATH@:/config |
29 | 42 | ports: |
30 | | - - "8080:8080/tcp" |
| 43 | + - @ADGUARDHOME_SYNC_PORT@:8080 |
| 44 | + restart: unless-stopped |
31 | 45 | ``` |
32 | 46 |
|
33 | | -## Podman |
34 | | - |
35 | | -```bash |
36 | | -podman run --name adguardhome-sync\ |
37 | | - --restart unless-stopped\ |
38 | | - -v /my/own/config:/config\ |
39 | | - -p 8080:8080/tcp\ |
40 | | - -d ghcr.io/daemonless/adguardhome-sync |
41 | | -``` |
42 | | - |
43 | | -## Configuration |
| 47 | +=== ":material-console: Podman CLI" |
44 | 48 |
|
45 | | -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 | + ``` |
46 | 58 |
|
47 | | -```yaml |
48 | | -# cron expression for sync schedule |
49 | | -cron: "*/5 * * * *" |
| 59 | +=== ":simple-ansible: Ansible" |
50 | 60 |
|
51 | | -# run sync on startup |
52 | | -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 | + ``` |
53 | 77 |
|
54 | | - # Primary instance |
55 | | - url: http://<primary-ip>:3000 |
56 | | - username: admin |
57 | | - password: password |
58 | | - # Secondary instances to sync to |
59 | | - replica: |
60 | | - - url: http://<replica-ip>:3000 |
61 | | - username: admin |
| 78 | +Access the Web UI at: `http://localhost:@ADGUARDHOME_SYNC_PORT@` |
62 | 79 |
|
63 | | -# API server |
64 | | -api: |
65 | | - port: 8080 |
66 | | -``` |
| 80 | +### Interactive Configuration |
67 | 81 |
|
68 | | -## Environment Variables |
| 82 | +<div class="placeholder-settings-panel"></div> |
69 | 83 |
|
70 | | -| Variable | Description | Default | |
71 | | -|----------|-------------|---------| |
72 | | -| `PUID` | User ID | `1000` | |
73 | | -| `PGID` | Group ID | `1000` | |
74 | | -| `TZ` | Timezone | `UTC` | |
| 84 | +## Parameters |
75 | 85 |
|
76 | | -## What Gets Synced |
| 86 | +### Environment Variables |
77 | 87 |
|
78 | | -- General settings |
79 | | -- DNS configuration (rewrites, access lists, server config) |
80 | | -- Filters |
81 | | -- Client settings |
82 | | -- DHCP settings (optional) |
83 | | -- Services |
84 | | -- Query log config |
85 | | -- 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 | |
86 | 93 |
|
87 | | -## Volumes |
| 94 | +### Volumes |
88 | 95 |
|
89 | 96 | | Path | Description | |
90 | 97 | |------|-------------| |
91 | 98 | | `/config` | Configuration directory | |
92 | 99 |
|
93 | | -## Ports |
| 100 | +### Ports |
94 | 101 |
|
95 | 102 | | Port | Protocol | Description | |
96 | 103 | |------|----------|-------------| |
97 | | -| 8080 | TCP | Web API / metrics | |
98 | | - |
99 | | -## Tags |
| 104 | +| `8080` | TCP | Metrics/API | |
100 | 105 |
|
101 | | -| Tag | Source | Description | |
102 | | -|-----|--------|-------------| |
103 | | -| `:latest` | [Upstream Releases](https://github.com/bakito/adguardhome-sync/releases) | Latest upstream release | |
| 106 | +!!! info "Implementation Details" |
104 | 107 |
|
105 | | -## 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). |
106 | 110 |
|
107 | | -- [Upstream Repository](https://github.com/bakito/adguardhome-sync) |
108 | | -- [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