Compare commits
18 Commits
44f4aa55c6
...
stage
| Author | SHA1 | Date | |
|---|---|---|---|
| 0371059706 | |||
| 1796a21579 | |||
| 8bfe49c947 | |||
| 361c29cf25 | |||
| 921c450f03 | |||
| 933d307254 | |||
| 6a2dcba0f9 | |||
| 2d565c94f0 | |||
| b490c84b37 | |||
| fa25327462 | |||
| 9ab6335a3c | |||
| 0eb2ecf033 | |||
| a233f32751 | |||
| 99afb5ac50 | |||
| f16b44a5b6 | |||
| 87a571c89a | |||
| 52d108fa75 | |||
| df3a4cb354 |
@@ -46,8 +46,8 @@ fi
|
||||
echo "nameserver 1.1.1.1" > /etc/resolv.conf
|
||||
|
||||
echo -e "\n*** Start the docker container ***"
|
||||
docker compose down
|
||||
docker compose build
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
|
||||
echo -e "\n*** Now use the local process for DNS ***\n/etc/resolv.conf:"
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
# Build a container which hosts Android apps through an F-Droid repository.
|
||||
# https://f-droid.org/en/docs/Setup_an_F-Droid_App_Repo/
|
||||
|
||||
# Base Image #
|
||||
|
||||
FROM debian:trixie-slim
|
||||
|
||||
# Setup #
|
||||
# variables #
|
||||
|
||||
ARG REPO
|
||||
ENV REPO="/root/fdroid"
|
||||
ARG WEBROOT
|
||||
ENV WEBROOT="/var/www/html"
|
||||
|
||||
USER root
|
||||
RUN mkdir -pv "$REPO"
|
||||
WORKDIR "$REPO"
|
||||
ENV FDROID="/root/fdroid"
|
||||
ENV REPO="$FDROID/repo"
|
||||
|
||||
# Install Packages#
|
||||
# https://f-droid.org/en/docs/Installing_the_Server_and_Repo_Tools/#debianubuntumintetc
|
||||
@@ -25,50 +19,100 @@ RUN apt-get update && apt-get install -y -t trixie-backports fdroidserver
|
||||
|
||||
# Generate F-Droid Repo #
|
||||
|
||||
USER root
|
||||
RUN mkdir -pv "$FDROID"
|
||||
WORKDIR "$FDROID"
|
||||
RUN fdroid init
|
||||
|
||||
# Publish? #
|
||||
# Start Command #
|
||||
|
||||
#TBD/TODO
|
||||
CMD nginx -g "daemon off;"
|
||||
|
||||
# This is where the image would get published. #
|
||||
|
||||
# Configure F-Droid Repo #
|
||||
|
||||
RUN sed -i 's/TBD/TODO/g' TBD.cfg
|
||||
ARG REPO_DOMAIN
|
||||
ENV REPO_DOMAIN="$REPO_DOMAIN"
|
||||
ARG REPO_NAME
|
||||
ENV REPO_NAME="$REPO_NAME"
|
||||
|
||||
# Download Files #
|
||||
# TBD/TODO: Add commands to remove repo_url and repo_name if they already exist.
|
||||
|
||||
# TBD/TODO: is a remove necessary to get updates if the files already exist?
|
||||
#RUN bash -c 'rm -rfv "$REPO"/*'
|
||||
RUN sed -i "$ a repo_url: $REPO_DOMAIN/fdroid/repo" "$FDROID/config.yml"
|
||||
RUN sed -i "$ a repo_name: $REPO_NAME" "$FDROID/config.yml"
|
||||
|
||||
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'
|
||||
RUN fdroid update
|
||||
|
||||
RUN bash -c 'cd "$REPO" && fdroid update'
|
||||
# Advanced Variables #
|
||||
|
||||
# Publish Repo to Web Root #
|
||||
ARG FILE00
|
||||
ENV FILE00="$FILE00"
|
||||
ARG FILE01
|
||||
ENV FILE01="$FILE01"
|
||||
ARG FILE02
|
||||
ENV FILE02="$FILE02"
|
||||
ARG FILE03
|
||||
ENV FILE03="$FILE03"
|
||||
ARG FILE04
|
||||
ENV FILE04="$FILE04"
|
||||
ARG FILE05
|
||||
ENV FILE05="$FILE05"
|
||||
ARG FILE06
|
||||
ENV FILE06="$FILE06"
|
||||
ARG FILE07
|
||||
ENV FILE07="$FILE07"
|
||||
ARG FILE08
|
||||
ENV FILE08="$FILE08"
|
||||
ARG FILE09
|
||||
ENV FILE09="$FILE09"
|
||||
ARG FILE10
|
||||
ENV FILE10="$FILE10"
|
||||
ARG FILE11
|
||||
ENV FILE11="$FILE11"
|
||||
ARG FILE12
|
||||
ENV FILE12="$FILE12"
|
||||
ARG FILE13
|
||||
ENV FILE13="$FILE13"
|
||||
ARG FILE14
|
||||
ENV FILE14="$FILE14"
|
||||
ARG FILE15
|
||||
ENV FILE15="$FILE15"
|
||||
ARG FILE16
|
||||
ENV FILE16="$FILE16"
|
||||
ARG FILE17
|
||||
ENV FILE17="$FILE17"
|
||||
ARG FILE18
|
||||
ENV FILE18="$FILE18"
|
||||
ARG FILE19
|
||||
ENV FILE19="$FILE19"
|
||||
|
||||
#TBD/TODO
|
||||
# Download Remote Files #
|
||||
|
||||
# Start Container #
|
||||
RUN mkdir -pv /root/fdroid/repo
|
||||
RUN bash -c 'if [[ -n "$FILE00" ]]; then wget -P "$REPO" "$FILE00"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE01" ]]; then wget -P "$REPO" "$FILE01"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE02" ]]; then wget -P "$REPO" "$FILE02"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE03" ]]; then wget -P "$REPO" "$FILE03"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE04" ]]; then wget -P "$REPO" "$FILE04"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE05" ]]; then wget -P "$REPO" "$FILE05"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE06" ]]; then wget -P "$REPO" "$FILE06"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE07" ]]; then wget -P "$REPO" "$FILE07"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE08" ]]; then wget -P "$REPO" "$FILE08"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE09" ]]; then wget -P "$REPO" "$FILE09"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE10" ]]; then wget -P "$REPO" "$FILE10"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE11" ]]; then wget -P "$REPO" "$FILE11"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE12" ]]; then wget -P "$REPO" "$FILE12"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE13" ]]; then wget -P "$REPO" "$FILE13"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE14" ]]; then wget -P "$REPO" "$FILE14"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE15" ]]; then wget -P "$REPO" "$FILE15"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE16" ]]; then wget -P "$REPO" "$FILE16"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE17" ]]; then wget -P "$REPO" "$FILE17"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE18" ]]; then wget -P "$REPO" "$FILE18"; fi'
|
||||
RUN bash -c 'if [[ -n "$FILE19" ]]; then wget -P "$REPO" "$FILE19"; fi'
|
||||
|
||||
CMD sleep 5 \
|
||||
&& tail -F /var/mail/* & \
|
||||
&& tail -F /var/log/nginx/* & \
|
||||
&& wait -n
|
||||
RUN fdroid update -c
|
||||
|
||||
# Publish Repo Contents to Web Root #
|
||||
|
||||
RUN cp -r "$REPO/"* "$WEBROOT/"
|
||||
|
||||
@@ -9,7 +9,15 @@ 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 down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Guide followed to create this Container
|
||||
|
||||
https://f-droid.org/en/docs/Setup_an_F-Droid_App_Repo/
|
||||
|
||||
## App Metadata
|
||||
|
||||
TBD
|
||||
|
||||
@@ -2,29 +2,54 @@
|
||||
# Create a 3rd party F-Droid repository for providing app updates.
|
||||
|
||||
services:
|
||||
|
||||
app:
|
||||
container_name: fd-app
|
||||
build:
|
||||
context: ./
|
||||
network: host
|
||||
#args:
|
||||
# WEBROOT: "/var/www/html"
|
||||
# REPO: "/root/fdroid"
|
||||
args:
|
||||
#WEBROOT: ${WEBROOT}
|
||||
#REPO: ${REPO}
|
||||
REPO_DOMAIN: ${REPO_DOMAIN}
|
||||
REPO_NAME: ${REPO_NAME}
|
||||
FILE00: ${FILE00}
|
||||
FILE01: ${FILE01}
|
||||
FILE02: ${FILE02}
|
||||
FILE03: ${FILE03}
|
||||
FILE04: ${FILE04}
|
||||
FILE05: ${FILE05}
|
||||
FILE06: ${FILE06}
|
||||
FILE07: ${FILE07}
|
||||
FILE08: ${FILE08}
|
||||
FILE09: ${FILE09}
|
||||
FILE10: ${FILE10}
|
||||
FILE11: ${FILE11}
|
||||
FILE12: ${FILE12}
|
||||
FILE13: ${FILE13}
|
||||
FILE14: ${FILE14}
|
||||
FILE15: ${FILE15}
|
||||
FILE16: ${FILE16}
|
||||
FILE17: ${FILE17}
|
||||
FILE18: ${FILE18}
|
||||
FILE19: ${FILE19}
|
||||
restart: always
|
||||
ports:
|
||||
- "8015:80"
|
||||
environment:
|
||||
- WEBROOT="/var/www/html"
|
||||
- REPO="/root/fdroid"
|
||||
- FILE0=$FILE0
|
||||
- FILE1=$FILE1
|
||||
- FILE2=$FILE2
|
||||
- FILE3=$FILE3
|
||||
- FILE4=$FILE4
|
||||
- FILE5=$FILE5
|
||||
- FILE6=$FILE6
|
||||
- FILE7=$FILE7
|
||||
- FILE8=$FILE8
|
||||
- FILE9=$FILE9
|
||||
#- WEBROOT=$WEBROOT
|
||||
#- REPO=$REPO
|
||||
- REPO_DOMAIN=$REPO_DOMAIN
|
||||
- REPO_NAME=$REPO_NAME
|
||||
- FILE00=$FILE00
|
||||
- FILE01=$FILE01
|
||||
- FILE02=$FILE02
|
||||
- FILE03=$FILE03
|
||||
- FILE04=$FILE04
|
||||
- FILE05=$FILE05
|
||||
- FILE06=$FILE06
|
||||
- FILE07=$FILE07
|
||||
- FILE08=$FILE08
|
||||
- FILE09=$FILE09
|
||||
- FILE10=$FILE10
|
||||
- FILE11=$FILE11
|
||||
- FILE12=$FILE12
|
||||
@@ -36,8 +61,7 @@ services:
|
||||
- FILE18=$FILE18
|
||||
- FILE19=$FILE19
|
||||
volumes:
|
||||
- ../../Volumes/F-DroidRepo/fdroid:/root/fdroid
|
||||
- ../../Volumes/F-DroidRepo/nginx:/var/www/html
|
||||
- ../../Volumes/F-DroidRepo/share:/root/share
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
|
||||
@@ -11,23 +11,27 @@ MEM=0.25G
|
||||
|
||||
## Repo Settings ##
|
||||
|
||||
#WEBROOT="/var/www/html"
|
||||
#REPO="/root/fdroid"
|
||||
|
||||
REPO_DOMAIN="https://fdroid.hyperling.com"
|
||||
REPO_NAME="Hyperling's Apps"
|
||||
REPO_LINK="https://fdroid.hyperling.com"
|
||||
|
||||
## Files ##
|
||||
# Should be provided as URLs directly to the APK files.
|
||||
# TBD: Eventually change APKs to not have version number in them.
|
||||
# - Currently being done because Obtainium does not read the Gitea release/tag.
|
||||
|
||||
# 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=""
|
||||
FILE00="https://git.hyperling.com/me/android-carb-up/releases/download/latest/CarbUp_v1.0.1.apk"
|
||||
FILE01="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/ExpenseTracker_v0.1.3.apk"
|
||||
FILE02="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/InfiniteTimer_v1.1.1.apk"
|
||||
FILE03="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/The45MinuteRule_v1.0.7.apk"
|
||||
FILE04="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TicTacToe_v1.1.0.apk"
|
||||
FILE05="https://git.hyperling.com/me/android-hypergames/releases/download/latest/HyperGames_v0.0.11.apk"
|
||||
FILE06=""
|
||||
FILE07=""
|
||||
FILE08=""
|
||||
FILE09=""
|
||||
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=""
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hyperling.com - files/
|
||||
|
||||
This is copied to the container's www/files/ folder for hosting static content.
|
||||
This is a volume for the container's /var/www/files/ which hosts static content.
|
||||
|
||||
TBD: Make this a volume, rather than copying with `Dockerfile`.
|
||||
TBD: Move this to Volumes?
|
||||
|
||||
@@ -62,9 +62,9 @@ If the proxy needs turned off either stop or down may be used.
|
||||
Upgrading the containers is as easy as this:
|
||||
|
||||
```
|
||||
# docker compose down
|
||||
# docker compose pull
|
||||
# docker compose build
|
||||
# docker compose down
|
||||
# docker compose up -d
|
||||
```
|
||||
|
||||
@@ -75,15 +75,15 @@ This may be possible to do when the system is up, but the best results have come
|
||||
This is essentially an upgrade but there is no pull.
|
||||
|
||||
```
|
||||
# docker compose down
|
||||
# docker compose build
|
||||
# docker compose down
|
||||
# docker compose up -d
|
||||
```
|
||||
|
||||
If wanted as a one-line command:
|
||||
|
||||
```
|
||||
# docker compose down && docker compose build && docker compose up -d
|
||||
# docker compose build && docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
## Add New Config
|
||||
|
||||
11
Config/Sandbox/docker-compose.example.yml
Normal file
11
Config/Sandbox/docker-compose.example.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
# 2025-11-11 Hyperling
|
||||
# Basic container for testing commands in a blank slate environment.
|
||||
|
||||
services:
|
||||
app:
|
||||
container_name: sandbox
|
||||
image: debian:trixie-slim
|
||||
command: "tail -F /var/mail/*"
|
||||
working_dir: /root
|
||||
volumes:
|
||||
- ../../Volumes/Sandbox/root-shared:/root/shared
|
||||
10
Volumes/ReverseProxy/README.md
Normal file
10
Volumes/ReverseProxy/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# DO NOT EDIT
|
||||
|
||||
Manual modifications in these directories is not recommended.
|
||||
Changes should be done via the `certbot` command in the `rp-certbot` container.
|
||||
|
||||
```
|
||||
manage -i rp-certbot
|
||||
```
|
||||
|
||||
Example commands would be `certbot renew` and `certbot delete`.
|
||||
@@ -9,7 +9,7 @@ source "$DIR/../source.env"
|
||||
|
||||
## Variables ##
|
||||
|
||||
TAG="Docker"
|
||||
TAG="${DIR##*/}"
|
||||
DATE="`date "+%Y%m%d-%H%M%S"`"
|
||||
BACKUP_DIR="/srv/backup"
|
||||
BASENAME="Backup"
|
||||
@@ -60,7 +60,7 @@ chown -Rv root:root "$BACKUP_DIR"
|
||||
# Remove the last backup.
|
||||
echo "`date` - Removing existing files."
|
||||
cd "$BACKUP_DIR"
|
||||
mv -v "$BASENAME"*"$TAG"* TRASH/
|
||||
mv -v "$BASENAME."*".$TAG."* TRASH/
|
||||
rm -v TRASH/*
|
||||
|
||||
if [[ "$down" == "TRUE" ]]; then
|
||||
|
||||
@@ -179,11 +179,6 @@ if [[ -n $up || -n $down || -n $build || -n $pull || -n $maintenance ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Shut off container.
|
||||
if [[ $down == "Y" ]]; then
|
||||
[ -e docker-compose.yml ] && docker compose down
|
||||
fi
|
||||
|
||||
# Update container from remote source such as Docker Hub.
|
||||
if [[ $pull == "Y" ]]; then
|
||||
[ -e docker-compose.yml ] && docker compose pull
|
||||
@@ -194,6 +189,11 @@ if [[ -n $up || -n $down || -n $build || -n $pull || -n $maintenance ]]; then
|
||||
[ -e Dockerfile ] && docker compose build
|
||||
fi
|
||||
|
||||
# Shut off container.
|
||||
if [[ $down == "Y" ]]; then
|
||||
[ -e docker-compose.yml ] && docker compose down
|
||||
fi
|
||||
|
||||
# Run the container as a daemon.
|
||||
if [[ $up == "Y" ]]; then
|
||||
[ -e docker-compose.yml ] && docker compose up -d
|
||||
|
||||
Reference in New Issue
Block a user