Skip to content

Add podman support#1

Draft
Renarde-dev wants to merge 7 commits intomainfrom
podman-quadlet
Draft

Add podman support#1
Renarde-dev wants to merge 7 commits intomainfrom
podman-quadlet

Conversation

@Renarde-dev
Copy link
Copy Markdown
Collaborator

@Renarde-dev Renarde-dev commented Aug 4, 2025

Adding support for podman quadlets ( systemd managed podman containers ).

Ideally we should support rootless containers.

  • Create basic configuration .container files to match the compose.yml
  • Add relevant documentation
  • See if using a .volume is a good idea
  • Test containers in apparmor and SeLinux environment

@Renarde-dev Renarde-dev self-assigned this Aug 4, 2025
@Renarde-dev Renarde-dev added the enhancement New feature or request label Aug 4, 2025
Copy link
Copy Markdown

@l-2-j l-2-j left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am currently running Piwigo via podman quadlets, so thought I'd review and see how this is different to my setup, and drop a few parts from my setup as suggestions in case they'd turn out to be useful.

For example, a piwigo.pod allows for easier management of all the containers with systemd as the piwigo-pod unit:

[Pod]

[Install]
# Uncomment to enable the service by default
#WantedBy=default.target

@@ -0,0 +1,2 @@
# Piwigo Network
[Network] No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Network]
[Network]
Description=Piwigo network
After=podman-user-wait-network-online.service

Image=docker.io/library/mariadb:lts
Network=piwigo.network
Volume=./piwigo-data/mysql:/var/lib/mysql:z

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Pod=piwigo.pod
HealthCmd=healthcheck.sh --connect --innodb_initialized
HealthInterval=30s
HealthRetries=2
HealthTimeout=10s
HealthOnFailure=kill
# Uncomment for automatic updates
#AutoUpdate=registry

Network=piwigo.network
PublishPort=8080:80
Volume=./piwigo-data/piwigo:/var/www/html/piwigo:z
Volume=./piwigo-data/scripts:/usr/local/bin/scripts:z
Copy link
Copy Markdown

@l-2-j l-2-j Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Volume=./piwigo-data/scripts:/usr/local/bin/scripts:z
# Remove `127.0.0.1:` if you want piwigo publicly exposed on all interfaces,
# and/or change `8080` to the host port you want to use.
PublishPort=127.0.0.1:8080:80
Volume=./piwigo-data/piwigo:/var/www/html/piwigo:z
Volume=./piwigo-data/scripts:/usr/local/bin/scripts:z
# Set the timezone and run as unprivileged user
Environment=TZ=... PUID=1000 PGID=1000
Pod=piwigo.pod
HealthCmd=wget -nv --tries=1 --spider http://127.0.0.1/ws.php?method=pwg.session.getStatus || exit 1
HealthInterval=30s
HealthRetries=2
HealthTimeout=10s
HealthOnFailure=kill
# Uncomment for automatic updates
#AutoUpdate=registry

@Renarde-dev
Copy link
Copy Markdown
Collaborator Author

Hi, I can't review this right now but I'm really thankful for your contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants