1970564c8f
podman, postgres, valkey, and nginx are shared services deployed once per host. Declaring them in meta/main.yml re-ran them on every service deploy, adding significant time to targeted runs. Playbooks now list shared services first (tagged 'infra') and every role entry carries a group tag plus its own name, so '--tags <role>' deploys just that role. Roles still fail fast when a shared service is missing (password asserts, postgresql tasks). Prerequisites are documented in role READMEs. CLAUDE.md updated to reflect the new convention.
fdroid - F-Droid Custom APK Repository
Deploys an F-Droid repository server using austozi/fdroidserver to host custom APKs for family devices.
Configuration
Required Variables
Set in inventory or vault:
fdroid_keystore_password: "your-secure-password-here" # Min 12 chars
Optional Variables
See defaults/main.yml for all configuration options.
Key settings:
fdroid_version: "26.2.1"
fdroid_port: 8070
fdroid_repo_url: "https://apk.jokester.fr/repo"
fdroid_repo_name: "F-Droid Repository"
fdroid_repo_description: "Custom APK repository"
fdroid_update_interval: "12h"
# Nginx reverse proxy
fdroid_nginx_enabled: false
fdroid_nginx_hostname: apk.nas.local
Usage
Adding APKs
scp my-app.apk jokester@andromeda:/opt/podman/fdroid/data/repo/
The container automatically re-runs fdroid update every fdroid_update_interval (default: 12h) to regenerate the signed index.
To trigger an immediate update:
ssh jokester@andromeda "podman exec fdroid-server fdroid update -c"
F-Droid Client Setup
On family phones, open F-Droid and add a new repository:
- Repository URL:
https://apk.jokester.fr/repo - Accept the fingerprint on first connection
Keystore Backup
The signing keystore at {{ podman_projects_dir }}/fdroid/data/keystore.p12 is critical. If lost, all clients must re-add the repository. Back it up.
Architecture
- Container:
austozi/fdroidserver(Apache + fdroidserver + Android build-tools) - Storage: Persistent data directory for keystore, config, metadata, and APKs
- Networking: Localhost binding, nginx reverse proxy for HTTPS
- Index updates: Automatic on configurable interval
Dependencies
- podman
- nginx (if
fdroid_nginx_enabled: true)