umami icon indicating copy to clipboard operation
umami copied to clipboard

Please add support for deploying Umami on podman

Open thomasdn opened this issue 11 months ago • 5 comments

Describe the feature or enhancement

The Umami project currently provides a docker-compose.yml file for easy deployment using Docker. However, there is no equivalent podman-compose.yml file for deploying Umami on Podman, a popular container runtime that is gaining traction as a Docker alternative

Podman offers several advantages, such as rootless containers by default, better integration with systemd. Podman is rapidly gaining popularity in the container ecosystem due to its security-focused design (rootless operation), lightweight architecture, and compatibility with Kubernetes workflows. Many organizations and developers are adopting Podman as a replacement for Docker.

A dedicated podman-compose.yml file and systemd service definitionswould ensure seamless deployment for users who prefer Podman.

I have proposed a pull request implementing this feature:

https://github.com/umami-software/umami/pull/3360

Please consider merging.

Thanks.

thomasdn avatar Apr 23 '25 18:04 thomasdn

It appears it got considered, your PR has been merged 👍

Did you encounter any issues with the provided docker-compose.yml?

Podman-compose is especially designed to read docker-compose files, so it should be enough to have a running podman setup. I didn't have any problem on my tests.

Perhaps a pod definition in a kubernetes YAML format would be more appropriate if a new file has to be added. Systemd integration would still be possible and managed by podman with a .kube quadlet.

Maxime-J avatar Apr 25 '25 08:04 Maxime-J

I've been running Umami successfully with Podman using Quadlet (systemd container definitions) rather than podman-compose. The Podman team actually recommends Quadlet over compose for production deployments.

Here's a simplified example of my setup:

# ~/.config/containers/systemd/postgres.container
[Container]
ContainerName=postgres
Image=docker.io/postgres:15-alpine
PublishPort=5432:5432
Volume=/var/lib/postgresql/data:/var/lib/postgresql/data:z
Environment=POSTGRES_DB=umami
Environment=POSTGRES_USER=username
Environment=POSTGRES_PASSWORD=password

[Service]
Restart=on-failure

[Install]
WantedBy=default.target
# ~/.config/containers/systemd/umami.container
[Container]
ContainerName=umami
Image=docker.umami.is/umami-software/umami:postgresql-latest
PublishPort=3000:3000
Environment=DATABASE_URL=postgresql://username:password@localhost:5432/umami
Environment=DATABASE_TYPE=postgresql
Environment=APP_SECRET=your_secret_here
Environment=HASH_SALT=your_salt_here

[Service]
Restart=on-failure

[Install]
WantedBy=default.target

Start with:

systemctl --user daemon-reload && systemctl --user start postgres umami

This approach provides better systemd integration, which is one of Podman's strengths over Docker. No need for a special podman-compose file when Quadlet gives you native systemd integration.

yosbeda avatar Apr 30 '25 04:04 yosbeda

@yosbeda Can you submit a PR?

mikecao avatar Apr 30 '25 18:04 mikecao

@mikecao Thanks for considering this. Unfortunately, I don't have experience with GitHub PRs or git workflows. I just shared my working Quadlet configuration as a user of Umami with Podman, hoping it might help others.

yosbeda avatar Apr 30 '25 20:04 yosbeda

Agree with yosbeda, Podman team isn't focused on Compose support and actually doesn't directly maintain it. Quadlet is probably the best way to go for systemd integration.

@mikecao I can submit a PR if wanted. (Most likely in about a week, cause I'd have to properly test systemd integration)

With what I mentioned earlier, you can quickly put up Umami in a single command, and you can leverage their systemd integration with quadlet.

All that while following podman supported practices.

It's just one way among others, but probably the most simple.

Maxime-J avatar May 01 '25 12:05 Maxime-J

This issue is stale because it has been open for 60 days with no activity.

github-actions[bot] avatar Jul 01 '25 02:07 github-actions[bot]

This issue was closed because it has been inactive for 7 days since being marked as stale.

github-actions[bot] avatar Jul 09 '25 02:07 github-actions[bot]