Create untested configuration for hosting an F-Droid repository.

This commit is contained in:
2025-11-01 04:28:27 -07:00
parent 221a446996
commit 1bcf5f3e7b
4 changed files with 146 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
# Build a container which hosts Android apps through an F-Droid repository.
# Base Image #
FROM debian:trixie-slim
# Setup #
RUN mkdir -pv "$REPO/"
# Install Packages#
# TBD/TODO: get list of packages
RUN apt-get update && apt-get install bash curl fdroidserver
# Download Files #
# TBD/TODO: is a remove necessary to get updates if the files already exist?
#RUN bash -c 'rm -rfv "$REPO"/*'
RUN bash -c 'if [[ -n "$FILE0" ]]; then curl "$FILE0" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE1" ]]; then curl "$FILE1" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE2" ]]; then curl "$FILE2" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE3" ]]; then curl "$FILE3" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE4" ]]; then curl "$FILE4" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE5" ]]; then curl "$FILE5" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE6" ]]; then curl "$FILE6" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE7" ]]; then curl "$FILE7" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE8" ]]; then curl "$FILE8" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE9" ]]; then curl "$FILE9" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE10" ]]; then curl "$FILE10" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE11" ]]; then curl "$FILE11" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE12" ]]; then curl "$FILE12" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE13" ]]; then curl "$FILE13" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE14" ]]; then curl "$FILE14" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE15" ]]; then curl "$FILE15" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE16" ]]; then curl "$FILE16" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE17" ]]; then curl "$FILE17" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE18" ]]; then curl "$FILE18" "$REPO"/; fi'
RUN bash -c 'if [[ -n "$FILE19" ]]; then curl "$FILE19" "$REPO"/; fi'
# Start Container #
USER root
WORKDIR "$REPO"
CMD cd "$REPO" && \
fdroid update \
&& tail -F /var/mail/mail & \
&& wait -n

View File

@@ -0,0 +1,15 @@
# F-Droid Repo
Simple container to create a 3rd party repository to be imported into F-Droid.
Downloads all the APKs during the build process and loads them automatically,
does not need any interaction other than modifying the `.env` with the URLs
of the apps you would like to be present.
If any apps get updated, rebuilding the container should pull any changes.
``` shell
docker compose down
docker compose build
docker compose up -d
```

View File

@@ -0,0 +1,41 @@
# 2025-11-01 Hyperling
# Create a 3rd party F-Droid repository for providing app updates.
services:
app:
container_name: fd-app
build:
context: ./
network: host
restart: always
environment:
- REPO=$REPO
- FILE0=$FILE0
- FILE1=$FILE1
- FILE2=$FILE2
- FILE3=$FILE3
- FILE4=$FILE4
- FILE5=$FILE5
- FILE6=$FILE6
- FILE7=$FILE7
- FILE8=$FILE8
- FILE9=$FILE9
- FILE10=$FILE10
- FILE11=$FILE11
- FILE12=$FILE12
- FILE13=$FILE13
- FILE14=$FILE14
- FILE15=$FILE15
- FILE16=$FILE16
- FILE17=$FILE17
- FILE18=$FILE18
- FILE19=$FILE19
volumes:
- ../../Volumes/F-DroidRepo:$REPO
deploy:
mode: global
resources:
limits:
cpus: $CPU
memory: $RAM

View File

@@ -0,0 +1,41 @@
# This file will need copied as `.env` and to have its values changed.
## Docker ##
COMPOSE_BAKE=true
## Performance ##
CPU=0.25
MEM=0.25G
## Repo Settings ##
REPO="/var/www/html/fdroid/repo"
REPO_NAME="Hyperling's Apps"
REPO_LINK="https://fdroid.hyperling.com"
## Files ##
# Should be provided as URLs directly to the APK files.
# TBD/TODO
FILE0="https://git.hyperling.com/me/android-carb-up/releases/download/latest/TBD"
FILE1="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/TBD"
FILE2="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/TBD"
FILE3="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/TBD"
FILE4="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TBD"
FILE5="https://git.hyperling.com/me/android-hypergames/releases/download/latest/TBD"
FILE6=""
FILE7=""
FILE8=""
FILE9=""
FILE10="https://git.hyperling.com/me/ebook-freedom-flyer/releases/download/latest/VoluntarySovereignty.pdf"
FILE11="https://git.hyperling.com/me/ebook-health-protocol/releases/download/latest/HyperlingsHealthProtocol.pdf"
FILE12=""
FILE13=""
FILE14=""
FILE15=""
FILE16=""
FILE17=""
FILE18=""
FILE19=""