OpenCloud-Radicale
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Timezone | |
| User ID | |
| Group ID | |
| OpenCloud-Radicale Host Port | |
| OpenCloud-Radicale /config Path |
A simple CalDAV (calendar) and CardDAV (contact) server.
| Port | 5232 |
| Registry | ghcr.io/daemonless/opencloud-radicale |
| Daemonless | daemonless/opencloud-radicale |
| Source | daemonless/opencloud-radicale |
| Website | radicale.org |
Version Tags
| Tag | Description | Best For |
|---|---|---|
latest |
Upstream Binary. Built from official release. | Most users. Matches Linux Docker behavior. |
Root Privileges Required
Podman on FreeBSD currently requires root. All commands must be run as root (or via doas/sudo).
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
Deployment
- name: Deploy opencloud-radicale
containers.podman.podman_container:
name: opencloud-radicale
image: ghcr.io/daemonless/opencloud-radicale:latest
state: started
restart_policy: always
env:
PUID: "1000"
PGID: "1000"
TZ: "UTC"
ports:
- "5232:5232"
volumes:
- "/path/to/containers/opencloud-radicale:/config"
Interactive Configuration
Parameters
Environment Variables
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
User ID for the application process |
PGID |
1000 |
Group ID for the application process |
TZ |
UTC |
Timezone for the container |
Volumes
| Path | Description |
|---|---|
/config |
Configuration and data directory |
Ports
| Port | Protocol | Description |
|---|---|---|
5232 |
TCP | Web UI |
!!! WARNING "Work in Progress"
This image is functional but may change significantly in a future release.
Intended for use with OpenCloud stack
This image can be used with OpenCloud to provide personal address books
and calendars for each OpenCloud user.
The image relies on OpenCloud acting as an authenticating reverse proxy for radicale. Using it as a standalone
radicale server is probably not a good idea.
Integrate with OpenCloud
To intergrate the radicale service with OpenCloud, you need to add a proxy configuration to OpenCloud.
Create the file /path/to/container/opencloud/config/proxy.yaml with this content (or add the content below
to your existing proxy.yaml configuration file):
additional_policies:
- name: default
routes:
- endpoint: /caldav/
backend: http://radicale:5232
remote_user_header: X-Remote-User
skip_x_access_token: true
additional_headers:
- X-Script-Name: /caldav
- endpoint: /.well-known/caldav
backend: http://radicale:5232
remote_user_header: X-Remote-User
skip_x_access_token: true
additional_headers:
- X-Script-Name: /caldav
- endpoint: /carddav/
backend: http://radicale:5232
remote_user_header: X-Remote-User
skip_x_access_token: true
additional_headers:
- X-Script-Name: /carddav
- endpoint: /.well-known/carddav
backend: http://radicale:5232
remote_user_header: X-Remote-User
skip_x_access_token: true
additional_headers:
- X-Script-Name: /carddav
radicale service to your existing compose file for the OpenCloud stack by merging this:
services:
opencloud:
depends_on:
- radicale
radicale:
image: ghcr.io/daemonless/opencloud-radicale:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- /path/to/containers/opencloud-radicale:/config
restart: unless-stopped
Implementation Details
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.0).
Need help? Join our Discord community.