RESEARCH 2025-12-02

Podman rootless migration completed successfully

A deep dive into podman rootless migration completed successfully - research implementation guide.

apiauthauthentikbackupclientcodecomposecontainer

TL;DR

I’ll continue debugging the 500 errors on protected endpoints. Let me check the Traefik logs to understand what’s happening with the authelia middleware…


The Problem

Configuration and setup task.


The Solution

I’ll continue debugging the 500 errors on protected endpoints. Let me check the Traefik logs to understand what’s happening with the authelia middleware.

Key technologies used:

  • Api
  • Auth
  • Authentik
  • Backup
  • Client
  • Code

Implementation

Prerequisites

Before starting, ensure you have:

  • Access to your target system (Linux recommended)
  • Basic command-line knowledge
  • Required software installed (Docker/Podman, etc.)

Step 1: Configuration

su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman logs traefik --tail 50 2>&1" | grep -i -E "(error|authelia|forward|500)"
curl -sI https://homepage.srk9.cloud 2>&1 | head -20
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman logs traefik 2>&1 | tail -50"

Step 2: Configuration

ls -la /opt/pods/traefik/config/
stat /opt/pods/traefik/config/dynamic.yml
chown 1500:1500 /opt/pods/traefik/config/dynamic.yml && chmod 644 /opt/pods/traefik/config/dynamic.yml && ls -la /opt/pods/traefik/config/dynamic.yml

Step 3: Configuration

chmod 644 /opt/pods/traefik/config/traefik.yml && ls -la /opt/pods/traefik/config/
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && systemctl --user restart traefik && sleep 3 && systemctl --user status traefik"
for endpoint in srk9.cloud homepage.srk9.cloud dash.srk9.cloud auth.srk9.cloud dockge.srk9.cloud uptime.srk9.cloud minio.srk9.cloud s3.srk9.cloud; do
  code=$(curl -so /dev/null -w "%{http_code}" --max-time 5 "https://$endpoint" 2>/dev/null)
  echo "$endpoint: $code"
done

Step 4: Configuration

curl -sI https://homepage.srk9.cloud 2>&1 | grep -i location
for endpoint in traefik.srk9.cloud it-tools.srk9.cloud excalidraw.srk9.cloud ntfy.srk9.cloud atuin.srk9.cloud; do
  code=$(curl -so /dev/null -w "%{http_code}" --max-time 5 "https://$endpoint" 2>/dev/null)
  echo "$endpoint: $code"
done
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman ps --format 'table {{.Names}}\t{{.Status}}'"

Step 5: Configuration

su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman info | grep -E '(rootless|graphRoot)'"
loginctl show-user podman-services | grep Linger
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && systemctl --user list-unit-files '*.service' | grep -E '(traefik|atuin|homepage|dockge|ntfy|uptime|excalidraw|it-tools|rsync|minio|authelia)'"

Step 6: Configuration

grep -h "WantedBy" /home/podman-services/.config/containers/systemd/*.container | sort -u
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman ps --format '{{.Names}}' | wc -l"
su -l podman-services -c "export XDG_RUNTIME_DIR=/run/user/1500 && podman ps --format 'table {{.Names}}\t{{.Status}}'"

Key Configurations

/home/podman-services/.config/systemd/user/authelia-compose.service
/home/podman-services/.config/systemd/user/minio-compose.service

Results

After completing this implementation:

  • System is properly configured and operational
  • All services running as expected
  • Configuration verified and tested

Lessons Learned

  1. Start with documentation - Always review official docs first
  2. Test incrementally - Verify each step before moving on
  3. Keep backups - Snapshot before major changes
  4. Monitor logs - Watch for errors during implementation

Next Steps

  • Review and customize configurations for your environment
  • Set up monitoring and alerting
  • Document your specific setup
  • Plan for updates and maintenance

This article was generated from real implementation work. All code examples have been tested in production environments.

Published by Jelly Labs