Files
Clément Désiles 1970564c8f refactor: drop shared-service meta dependencies from service roles
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.
2026-07-04 00:15:50 +02:00
..

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)