add Podman Quadlet deployment

- flaskpaste.container for rootless systemd integration
- UserNS mapping for bind mount permissions
- README updated with deployment instructions
This commit is contained in:
Username
2026-01-17 13:58:52 +01:00
parent 379178e409
commit b9f0283a3b
2 changed files with 73 additions and 0 deletions

View File

@@ -338,6 +338,39 @@ podman run -d -p 5000:5000 -v flaskpaste-data:/app/data flaskpaste
See `Containerfile` for container build configuration.
### Using Podman Quadlet
Quadlet integrates rootless containers with systemd. Deploy as a dedicated user:
```bash
# Create service user and data directory
useradd -r -m -d /home/flaskpaste -s /sbin/nologin flaskpaste
mkdir -p /opt/flaskpaste
chown flaskpaste:flaskpaste /opt/flaskpaste
# Build image as flaskpaste user
sudo -u flaskpaste podman build -t localhost/flaskpaste:latest .
# Install Quadlet unit
mkdir -p /home/flaskpaste/.config/containers/systemd
cp flaskpaste.container /home/flaskpaste/.config/containers/systemd/
chown -R flaskpaste:flaskpaste /home/flaskpaste/.config
# Enable lingering (start user services at boot)
loginctl enable-linger flaskpaste
# Start service
systemctl --user -M flaskpaste@ daemon-reload
systemctl --user -M flaskpaste@ start flaskpaste
```
Manage with systemctl:
```bash
systemctl --user -M flaskpaste@ status flaskpaste
systemctl --user -M flaskpaste@ restart flaskpaste
journalctl --user -M flaskpaste@ -u flaskpaste
```
### Using systemd
```bash
# Create service user
@@ -391,6 +424,8 @@ flaskpaste/
├── run.py # Development server
├── wsgi.py # Production WSGI entry
├── Containerfile # Podman/Docker build
├── compose.yaml # Podman/Docker Compose
├── flaskpaste.container # Podman Quadlet unit
└── requirements.txt # Dependencies
```