Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: tomsquest/docker-radicale
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.4.1.1
Choose a base ref
...
head repository: tomsquest/docker-radicale
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.5.0.0
Choose a head ref
  • 10 commits
  • 7 files changed
  • 1 contributor

Commits on Mar 4, 2025

  1. ci: add push latest workflow

    tomsquest committed Mar 4, 2025
    Copy the full SHA
    e09e592 View commit details
  2. ci: remove name of steps

    tomsquest committed Mar 4, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    0383616 View commit details
  3. ci: push latest

    tomsquest committed Mar 4, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    b0e428e View commit details
  4. fix(ci): push latest

    tomsquest committed Mar 4, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    e8fb037 View commit details
  5. security: use latest alpine v3

    tomsquest committed Mar 4, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    37d0fcc View commit details
  6. fix(ci): login before pushing

    tomsquest committed Mar 4, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    7a5938c View commit details

Commits on Mar 6, 2025

  1. doc: add info about the daily push of latest

    tomsquest committed Mar 6, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    5de7805 View commit details
  2. doc: simplify version sections

    tomsquest committed Mar 6, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    2896c53 View commit details

Commits on Mar 16, 2025

  1. chore: update to Radicale 3.5.0

    tomsquest committed Mar 16, 2025
    Copy the full SHA
    25e933a View commit details
  2. update version used in test

    tomsquest committed Mar 16, 2025
    Copy the full SHA
    afe03c8 View commit details
Showing with 255 additions and 45 deletions.
  1. +3 −6 .github/workflows/build.yaml
  2. +40 −0 .github/workflows/push_latest.yaml
  3. +2 −2 Dockerfile
  4. +30 −26 README.md
  5. +177 −8 config
  6. +2 −2 test_image_custom_build.py
  7. +1 −1 test_image_prod.py
9 changes: 3 additions & 6 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -14,16 +14,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pipenv
run: pipx install pipenv
- run: pipx install pipenv
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pipenv'
- name: Install dependencies
run: pipenv sync --dev
- name: Test
run: pipenv run pytest -v
- run: pipenv sync --dev
- run: pipenv run pytest -v
build:
runs-on: ubuntu-latest
needs: test
40 changes: 40 additions & 0 deletions .github/workflows/push_latest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: push_latest
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pipx install pipenv
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pipenv'
- run: pipenv sync --dev
- run: pipenv run pytest -v
build:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
tags: tomsquest/docker-radicale:latest
push: true
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM alpine:3.21.3
FROM alpine:3

ARG COMMIT_ID
ENV COMMIT_ID=${COMMIT_ID}

ARG VERSION
ENV VERSION=${VERSION:-3.4.1}
ENV VERSION=${VERSION:-3.5.0}

ARG BUILD_UID
ENV BUILD_UID=${BUILD_UID:-2999}
56 changes: 30 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -21,15 +21,16 @@ Enhanced Docker image for <a href="https://radicale.org">Radicale</a>, the CalDA

- [Features](#features)
- [Changelog](#changelog)
- [Latest version](#latest-version)
- [Versions](#versions)
- [Version Tag Format](#version-tag-format)
- [Architecture](#architecture)
- [Running](#running)
- [Option 1: **Basic** instruction](#option-1-basic-instruction)
- [Option 2: **Recommended, Production-grade** instruction (secured, safe...) :rocket:](#option-2-recommended-production-grade-instruction-secured-safe-rocket)
- [Custom configuration](#custom-configuration)
- [Authentication configuration](#authentication-configuration)
- [Volumes versus Bind-Mounts](#volumes-versus-bind-mounts)
- [Running with Docker compose](#running-with-docker-compose)
- [Multi-architecture](#multi-architecture)
- [Unraid](#unraid)
- [Extending the image](#extending-the-image)
- [Versioning with Git](#versioning-with-git)
@@ -38,7 +39,6 @@ Enhanced Docker image for <a href="https://radicale.org">Radicale</a>, the CalDA
- [Option 1: Create a user/group with id `2999` on the host](#option-1-create-a-usergroup-with-id-2999-on-the-host)
- [Option 2: Force the user/group ids on `docker run`](#option-2-force-the-usergroup-ids-on-docker-run)
- [Option 3: Build the image with a custom user/group](#option-3-build-the-image-with-a-custom-usergroup)
- [Tags](#tags)
- [Running with Podman](#running-with-podman)
- [Running behind Caddy](#running-behind-caddy)
- [Contributing](#contributing)
@@ -61,9 +61,32 @@ Enhanced Docker image for <a href="https://radicale.org">Radicale</a>, the CalDA

:page_with_curl: See [CHANGELOG.md](CHANGELOG.md)

## Latest version
## Versions

![latest tag](https://img.shields.io/github/tag/tomsquest/docker-radicale.svg)
Two image versions are available:

- **`latest`**: Based on `alpine:3` with daily automated builds to include the most recent security patches
- **Version tags** (e.g., `3.4.1.1`): Specific Radicale versions with image updates

**Which should you use?**
- Use `tomsquest/docker-radicale:latest` for always-updated security patches
- Use `tomsquest/docker-radicale:$version` for stability with a specific Radicale version

### Version Tag Format

Version tags follow this format: `[Radicale version].[Image revision]`

For example, in `3.4.1.1`:
- `3.4.1` is the Radicale version
- The final `.1` is our image revision number (incremented for image-specific updates)

## Architecture

The image is built for two architectures:
- `amd64`: for your usual server
- `arm64`: for Raspberry Pi

When you run the image, Docker will automatically select the correct image architecture.

## Running

@@ -184,10 +207,6 @@ A [Docker compose file](docker-compose.yml) is included.
It can also be [extended](https://docs.docker.com/compose/production/#modify-your-compose-file-for-production).
Make sure you have Docker compose version 2 or higher.

## Multi-architecture

Docker will automatically select the correct image type for your architecture, whether it is amd64 or arm64.

## Unraid

This image is compatible with Unraid, and you can find it in the [Community App store](https://unraid.net/community/apps?q=radicale#r).
@@ -279,21 +298,6 @@ Usage: `docker build --build-arg=BUILD_UID=5000 --build-arg=BUILD_GID=5001 ...`.

`BUILD_UID` and `BUILD_GID` are also supported as environment variables to work around a problem on some Synology NAS. See this PR#68.

## Tags

The image is tagged with this scheme:

```
Version number = Architecture + '.' + Radicale version + '.' + This image increment number
```

Example:
- `tomsquest/docker-radicale:amd64.3.0.6.3`
- `tomsquest/docker-radicale:arm64.3.0.6.3`

The last number is **ours**, and it is incremented on new release.
For example, 2.1.11.**2** made the /config readonly (this is specific to this image).

## Running with Podman

Two users have given the instructions they used to run the image with Podman:
@@ -327,7 +331,7 @@ To run the tests:

## Releasing

1. Create a Git tag, e.g. `3.0.6.0`, push it and the CI will build the images and publish them on Docker hub
1. Create a Git tag, e.g. `1.2.3.4`, push it and the CI will build the images and publish them on Docker hub
2. Update the `latest` tag
4. Update `CHANGELOG.md` (after, or in the PR)
3. Create release on GitHub (`Draft a new release` > pick the tag > `Generate release notes` > `Publish release`)
@@ -338,7 +342,7 @@ Example instructions :
# Update local tags
git fetch --all --tags
# Create tag
TAG=3.0.6.0 && git tag $TAG && git push origin $TAG
TAG=1.2.3.4 && git tag $TAG && git push origin $TAG
# Update latest tag
git push --delete origin latest && git tag -d latest && git tag latest && git push origin latest
# Draft a new release
Loading