35 Commits

Author SHA1 Message Date
me d0c791f477 provisioning, add script to easily check the results. 2026-08-04 17:59:04 -07:00
me 481a0b9744 provisioning, main.sh, variablize the local repo name. 2026-08-04 17:46:20 -07:00
me a6a8f4c97a Add ca-certificates to Prosody config which allows it to validate s2s certs. 2026-07-24 05:32:29 -07:00
me 2302897460 Ignore etc files for Prosody as well. 2026-07-24 05:15:36 -07:00
me a08c59bcb2 Remove module example as it was already in the enabled list by default. 2026-07-24 05:07:55 -07:00
me 5850a237ce Add an extra port to Prosody to see if it helps with certificate validation. 2026-07-24 05:06:30 -07:00
me 5b8deb8a67 Add community modules for Prosody and give an example of enabling notifications. 2026-07-23 14:50:42 -07:00
me b5ae8ff0ce Change example of where the prosody certs should be referenced. 2026-07-23 13:32:33 -07:00
me 0ccef4583a Ensure the cert archive exists so the symbolic links can be followed. 2026-07-13 15:55:51 -07:00
me 7b3b7623be Do not do the reload, confuses the system. 2026-07-13 15:55:08 -07:00
me 64415239ca One step closer to getting the Prosody server live. Create the bind dir and ensure certs are imported as root. Still not actually getting the certs, but having way less errors. 2026-07-13 15:03:30 -07:00
me a770eb00ef Also ignore lowercase hugo sites. 2026-07-13 15:02:32 -07:00
me 6cf24f958f Properly ignore Prosody config files. 2026-07-13 14:58:49 -07:00
me a532924fd1 Change NC back to stable. 2026-07-09 10:06:13 -07:00
me c2c20c248b Export the cache busting build timestamp so it is seen by later commands. 2026-07-04 17:14:42 -07:00
me 4155dac8c9 Ensure the build timestamp is set to break cache on builds. 2026-07-04 17:12:01 -07:00
me b74e786356 fdroid, Add missing FILE07. 2026-07-04 17:07:04 -07:00
me 95034b88c6 fdroid, exit would have been correct over return, but is not necessary regardless. 2026-07-04 16:55:35 -07:00
me 758edc25f2 Add error checking if a file fails to download. 2026-07-04 16:45:38 -07:00
me f2924eaf16 fdroid, Try not having two fdroid update commands again. 2026-07-04 16:42:18 -07:00
me e0d136b3b3 fdroid, Try doing the cache bust via docker-compose file rather than an extra script. 2026-07-04 16:40:49 -07:00
me 58e0e4230e Add a cache bust. 2026-07-04 16:35:18 -07:00
me ed4b0ec674 Use proper if statements to avoid non-0 exit codes. 2026-07-04 16:32:18 -07:00
me 33c14b2719 fdroid, Remove the extra WORKDIR. 2026-07-04 16:30:32 -07:00
me b754b7e361 Go back to using wget, ADD was getting too workaroundy. We'll make a script to update the files. Lame! 2026-07-04 16:30:03 -07:00
me 892a386284 No longer need to remove the weird files that were getting ADD'ed in. 2026-07-04 16:16:37 -07:00
me 42b651f85b Add a fix for the weird .yml files getting copied. Sort of a workaround, but ADD is way better than wget. 2026-07-04 16:15:00 -07:00
me 61d4bb08eb Fix file permissions for fdroid prep. 2026-07-04 16:02:26 -07:00
me cc89dc5bca Somehow compose files are getting into the container. Maybe the null ADD variables are doing something weird. Remove them. 2026-07-04 15:53:15 -07:00
me b9b36aa2ac Add automatically creating the volume folder. 2026-07-04 15:32:13 -07:00
me 6accd3b152 fdroid, Add vars 20-39 to compose file. 2026-07-04 15:10:53 -07:00
me fce4ae1769 Remove old share from FDroid, was used for troubleshooting. 2026-07-04 15:09:22 -07:00
me 75c2f83d25 Enhance output for manage -c. 2026-07-04 15:07:51 -07:00
me 888a961e6d Refactor the file order and add 20 more possibilities. 2026-07-04 14:47:11 -07:00
me e349ad0aeb Overhaul F-Droid Dockerfile now that it works. 2026-07-04 14:46:30 -07:00
13 changed files with 303 additions and 79 deletions
+5 -1
View File
@@ -48,6 +48,8 @@ STAGE-*
# Ignore copies of the Hugo configuration, such as "Config/Hugo-MyWebsite". # Ignore copies of the Hugo configuration, such as "Config/Hugo-MyWebsite".
Hugo-* Hugo-*
*-Hugo *-Hugo
hugo-*
*-hugo
# Ignore Prod and Dev copies as well. # Ignore Prod and Dev copies as well.
*-Prod *-Prod
@@ -64,5 +66,7 @@ dev-*
DEV-* DEV-*
# Ignore custom Prosody hosts. # Ignore custom Prosody hosts.
Config/Prosody/conf.avail/* Config/Prosody/conf.avail
Config/Prosody/etc/conf.avail
Config/Prosody/etc/
+123 -50
View File
@@ -4,11 +4,21 @@
FROM debian:trixie-slim FROM debian:trixie-slim
# variables # # Static Variables #
ENV DOWNLOAD="/root/Downloads"
ENV WEBROOT="/var/www/html" ENV WEBROOT="/var/www/html"
ENV FDROID="/root/fdroid" ENV FDROID="/root/fdroid"
ENV METADATA="$FDROID/metadata"
ENV REPO="$FDROID/repo" ENV REPO="$FDROID/repo"
ENV CONFIG="$FDROID/config.yml"
# Create Directory Hierarchies #
RUN mkdir -pv "$DOWNLOAD" "$WEBROOT" \
"$FDROID" "$METADATA" "$REPO"
# Install Packages# # Install Packages#
# https://f-droid.org/en/docs/Installing_the_Server_and_Repo_Tools/#debianubuntumintetc # https://f-droid.org/en/docs/Installing_the_Server_and_Repo_Tools/#debianubuntumintetc
@@ -20,27 +30,10 @@ RUN apt-get update && apt-get install -y -t trixie-backports fdroidserver
# Generate F-Droid Repo # # Generate F-Droid Repo #
USER root USER root
RUN mkdir -pv "$FDROID"
WORKDIR "$FDROID" WORKDIR "$FDROID"
RUN fdroid init RUN fdroid init
# This is where the image would get published. # # This is where the image would get published on Docker Hub. #
# Configure F-Droid Repo #
ARG REPO_DOMAIN
ENV REPO_DOMAIN="$REPO_DOMAIN"
ARG REPO_NAME
ENV REPO_NAME="$REPO_NAME"
ARG REPO_ICON
ENV REPO_ICON="$REPO_ICON"
# TBD/TODO: Add commands to remove repo_url and repo_name if they already exist.
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 fdroid update
# Advanced Variables # # Advanced Variables #
@@ -84,42 +77,122 @@ ARG FILE18
ENV FILE18="$FILE18" ENV FILE18="$FILE18"
ARG FILE19 ARG FILE19
ENV FILE19="$FILE19" ENV FILE19="$FILE19"
ARG FILE20
ENV FILE20="$FILE20"
ARG FILE21
ENV FILE21="$FILE21"
ARG FILE22
ENV FILE22="$FILE22"
ARG FILE23
ENV FILE23="$FILE23"
ARG FILE24
ENV FILE24="$FILE24"
ARG FILE25
ENV FILE25="$FILE25"
ARG FILE26
ENV FILE26="$FILE26"
ARG FILE27
ENV FILE27="$FILE27"
ARG FILE28
ENV FILE28="$FILE28"
ARG FILE29
ENV FILE29="$FILE29"
ARG FILE30
ENV FILE30="$FILE30"
ARG FILE31
ENV FILE31="$FILE31"
ARG FILE32
ENV FILE32="$FILE32"
ARG FILE33
ENV FILE33="$FILE33"
ARG FILE34
ENV FILE34="$FILE34"
ARG FILE35
ENV FILE35="$FILE35"
ARG FILE36
ENV FILE36="$FILE36"
ARG FILE37
ENV FILE37="$FILE37"
ARG FILE38
ENV FILE38="$FILE38"
ARG FILE39
ENV FILE39="$FILE39"
ARG CACHE_BUST
ENV CACHE_BUST="$CACHE_BUST"
# Download Remote Files # # Download Remote Files #
RUN mkdir -pv /root/fdroid/repo RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE00" ]]; then wget -P "$DOWNLOAD" "$FILE00"; fi'
RUN bash -c 'if [[ -n "$FILE00" ]]; then wget -P "$REPO" "$FILE00"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE01" ]]; then wget -P "$DOWNLOAD" "$FILE01"; fi'
RUN bash -c 'if [[ -n "$FILE01" ]]; then wget -P "$REPO" "$FILE01"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE02" ]]; then wget -P "$DOWNLOAD" "$FILE02"; fi'
RUN bash -c 'if [[ -n "$FILE02" ]]; then wget -P "$REPO" "$FILE02"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE03" ]]; then wget -P "$DOWNLOAD" "$FILE03"; fi'
RUN bash -c 'if [[ -n "$FILE03" ]]; then wget -P "$REPO" "$FILE03"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE04" ]]; then wget -P "$DOWNLOAD" "$FILE04"; fi'
RUN bash -c 'if [[ -n "$FILE04" ]]; then wget -P "$REPO" "$FILE04"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE05" ]]; then wget -P "$DOWNLOAD" "$FILE05"; fi'
RUN bash -c 'if [[ -n "$FILE05" ]]; then wget -P "$REPO" "$FILE05"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE06" ]]; then wget -P "$DOWNLOAD" "$FILE06"; fi'
RUN bash -c 'if [[ -n "$FILE06" ]]; then wget -P "$REPO" "$FILE06"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE07" ]]; then wget -P "$DOWNLOAD" "$FILE07"; fi'
ADD "$FILE07" "$REPO"/ RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE08" ]]; then wget -P "$DOWNLOAD" "$FILE08"; fi'
#RUN bash -c 'if [[ -n "$FILE07" ]]; then wget -P "$REPO" "$FILE07"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE09" ]]; then wget -P "$DOWNLOAD" "$FILE09"; fi'
RUN bash -c 'if [[ -n "$FILE08" ]]; then wget -P "$REPO" "$FILE08"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE10" ]]; then wget -P "$DOWNLOAD" "$FILE10"; fi'
RUN bash -c 'if [[ -n "$FILE09" ]]; then wget -P "$REPO" "$FILE09"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE11" ]]; then wget -P "$DOWNLOAD" "$FILE11"; fi'
RUN bash -c 'if [[ -n "$FILE10" ]]; then wget -P "$REPO" "$FILE10"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE12" ]]; then wget -P "$DOWNLOAD" "$FILE12"; fi'
RUN bash -c 'if [[ -n "$FILE11" ]]; then wget -P "$REPO" "$FILE11"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE13" ]]; then wget -P "$DOWNLOAD" "$FILE13"; fi'
RUN bash -c 'if [[ -n "$FILE12" ]]; then wget -P "$REPO" "$FILE12"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE14" ]]; then wget -P "$DOWNLOAD" "$FILE14"; fi'
RUN bash -c 'if [[ -n "$FILE13" ]]; then wget -P "$REPO" "$FILE13"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE15" ]]; then wget -P "$DOWNLOAD" "$FILE15"; fi'
RUN bash -c 'if [[ -n "$FILE14" ]]; then wget -P "$REPO" "$FILE14"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE16" ]]; then wget -P "$DOWNLOAD" "$FILE16"; fi'
RUN bash -c 'if [[ -n "$FILE15" ]]; then wget -P "$REPO" "$FILE15"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE17" ]]; then wget -P "$DOWNLOAD" "$FILE17"; fi'
RUN bash -c 'if [[ -n "$FILE16" ]]; then wget -P "$REPO" "$FILE16"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE18" ]]; then wget -P "$DOWNLOAD" "$FILE18"; fi'
RUN bash -c 'if [[ -n "$FILE17" ]]; then wget -P "$REPO" "$FILE17"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE19" ]]; then wget -P "$DOWNLOAD" "$FILE19"; fi'
RUN bash -c 'if [[ -n "$FILE18" ]]; then wget -P "$REPO" "$FILE18"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE20" ]]; then wget -P "$DOWNLOAD" "$FILE20"; fi'
RUN bash -c 'if [[ -n "$FILE19" ]]; then wget -P "$REPO" "$FILE19"; fi' RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE21" ]]; then wget -P "$DOWNLOAD" "$FILE21"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE22" ]]; then wget -P "$DOWNLOAD" "$FILE22"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE23" ]]; then wget -P "$DOWNLOAD" "$FILE23"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE24" ]]; then wget -P "$DOWNLOAD" "$FILE24"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE25" ]]; then wget -P "$DOWNLOAD" "$FILE25"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE26" ]]; then wget -P "$DOWNLOAD" "$FILE26"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE27" ]]; then wget -P "$DOWNLOAD" "$FILE27"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE28" ]]; then wget -P "$DOWNLOAD" "$FILE28"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE29" ]]; then wget -P "$DOWNLOAD" "$FILE29"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE30" ]]; then wget -P "$DOWNLOAD" "$FILE30"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE31" ]]; then wget -P "$DOWNLOAD" "$FILE31"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE32" ]]; then wget -P "$DOWNLOAD" "$FILE32"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE33" ]]; then wget -P "$DOWNLOAD" "$FILE33"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE34" ]]; then wget -P "$DOWNLOAD" "$FILE34"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE35" ]]; then wget -P "$DOWNLOAD" "$FILE35"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE36" ]]; then wget -P "$DOWNLOAD" "$FILE36"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE37" ]]; then wget -P "$DOWNLOAD" "$FILE37"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE38" ]]; then wget -P "$DOWNLOAD" "$FILE38"; fi'
RUN bash -c 'echo "$CACHE_BUST" && if [[ -n "$FILE39" ]]; then wget -P "$DOWNLOAD" "$FILE39"; fi'
RUN sync # Move Downloaded Files #
# Move any downloaded metadata files to the correct folder. # Move any downloaded APK files to the repo folder.
RUN mv -v "$REPO"/*.yml "$REPO"/../metadata || \ RUN mv -v "$DOWNLOAD"/*.apk "$REPO"/ || \
echo "WARNING! No YML file(s) to copy." && sleep 10 (echo "WARNING! No APK file(s) to copy." && sleep 10)
# Move any downloaded icons to the proper folder. # Move any downloaded metadata files to the metadata folder.
RUN mv -v "$REPO"/*.png "$FDROID"/ || \ RUN mv -v "$DOWNLOAD"/*.yml "$METADATA"/ || \
echo "WARNING! No PNG file(s) to copy." && sleep 10 (echo "WARNING! No YML file(s) to copy." && sleep 10)
# Move any downloaded icons to the main folder.
RUN mv -v "$DOWNLOAD"/*.png "$FDROID"/ || \
(echo "WARNING! No PNG file(s) to copy." && sleep 10)
# Configure F-Droid Repo #
ARG REPO_DOMAIN
ENV REPO_DOMAIN="$REPO_DOMAIN"
ARG REPO_NAME
ENV REPO_NAME="$REPO_NAME"
ARG REPO_ICON
ENV REPO_ICON="$REPO_ICON"
RUN sed -i '/repo_url/d' "$CONFIG"
RUN sed -i '/repo_name/d' "$CONFIG"
RUN sed -i '/repo_icon/d' "$CONFIG"
RUN sed -i "$ a repo_url: $REPO_DOMAIN/fdroid/repo" "$CONFIG"
RUN sed -i "$ a repo_name: $REPO_NAME" "$CONFIG"
# If the icon variable is set, add it to the config file before updating. # If the icon variable is set, add it to the config file before updating.
RUN [ ! -z "$REPO_ICON" ] && \ RUN [ ! -z "$REPO_ICON" ] && \
sed -i "$ a repo_icon: $REPO_ICON" "$FDROID/config.yml" sed -i "$ a repo_icon: $REPO_ICON" "$FDROID/config.yml"
@@ -131,8 +204,8 @@ RUN fdroid update -c
RUN cp -rv "$FDROID" "$WEBROOT/" RUN cp -rv "$FDROID" "$WEBROOT/"
# The index files are in repo. # The index files are in repo.
# TODO: Can NGINX be configured to serve this as root while still # TODO: Can NGINX be configured to serve REPO as the webroot while still
# having the URL be fdroid/repo/? How do others handle this? # having the user's URL be fdroid/repo/? How do others handle this?
RUN cp -rv "$REPO"/* "$WEBROOT/" RUN cp -rv "$REPO"/* "$WEBROOT/"
# Start Command # # Start Command #
+42 -2
View File
@@ -6,7 +6,7 @@ volumes:
driver: local driver: local
driver_opts: driver_opts:
type: none type: none
device: ../../Volumes/F-DroidRepo/data device: $FDROID_DATA #../../Volumes/F-DroidRepo/fdroid by default.
o: bind o: bind
services: services:
@@ -21,6 +21,7 @@ services:
REPO_DOMAIN: ${REPO_DOMAIN} REPO_DOMAIN: ${REPO_DOMAIN}
REPO_NAME: ${REPO_NAME} REPO_NAME: ${REPO_NAME}
REPO_ICON: ${REPO_ICON} REPO_ICON: ${REPO_ICON}
CACHE_BUST: ${BUILD_TIMESTAMP:-1}
FILE00: ${FILE00} FILE00: ${FILE00}
FILE01: ${FILE01} FILE01: ${FILE01}
FILE02: ${FILE02} FILE02: ${FILE02}
@@ -41,6 +42,26 @@ services:
FILE17: ${FILE17} FILE17: ${FILE17}
FILE18: ${FILE18} FILE18: ${FILE18}
FILE19: ${FILE19} FILE19: ${FILE19}
FILE20: ${FILE20}
FILE21: ${FILE21}
FILE22: ${FILE22}
FILE23: ${FILE23}
FILE24: ${FILE24}
FILE25: ${FILE25}
FILE26: ${FILE26}
FILE27: ${FILE27}
FILE28: ${FILE28}
FILE29: ${FILE29}
FILE30: ${FILE30}
FILE31: ${FILE31}
FILE32: ${FILE32}
FILE33: ${FILE33}
FILE34: ${FILE34}
FILE35: ${FILE35}
FILE36: ${FILE36}
FILE37: ${FILE37}
FILE38: ${FILE38}
FILE39: ${FILE39}
restart: always restart: always
ports: ports:
- "8015:80" - "8015:80"
@@ -70,8 +91,27 @@ services:
- FILE17=$FILE17 - FILE17=$FILE17
- FILE18=$FILE18 - FILE18=$FILE18
- FILE19=$FILE19 - FILE19=$FILE19
- FILE20=$FILE20
- FILE21=$FILE21
- FILE22=$FILE22
- FILE23=$FILE23
- FILE24=$FILE24
- FILE25=$FILE25
- FILE26=$FILE26
- FILE27=$FILE27
- FILE28=$FILE28
- FILE29=$FILE29
- FILE30=$FILE30
- FILE31=$FILE31
- FILE32=$FILE32
- FILE33=$FILE33
- FILE34=$FILE34
- FILE35=$FILE35
- FILE36=$FILE36
- FILE37=$FILE37
- FILE38=$FILE38
- FILE39=$FILE39
volumes: volumes:
- ../../Volumes/F-DroidRepo/share:/root/share
- fdroid_data:/root/fdroid - fdroid_data:/root/fdroid
deploy: deploy:
mode: global mode: global
+39 -15
View File
@@ -9,6 +9,10 @@ COMPOSE_BAKE=true
CPU=0.25 CPU=0.25
MEM=0.25G MEM=0.25G
## Storage Location ##
FDROID_DATA="../../Volumes/F-DroidRepo/fdroid"
## Repo Settings ## ## Repo Settings ##
#WEBROOT="/var/www/html" #WEBROOT="/var/www/html"
@@ -23,23 +27,43 @@ REPO_ICON="peace.png"
# TBD: Eventually change APKs to not have version number in them. # TBD: Eventually change APKs to not have version number in them.
# - Currently being done because Obtainium does not read the Gitea release/tag. # - Currently being done because Obtainium does not read the Gitea release/tag.
FILE00="https://git.hyperling.com/me/android-carb-up/releases/download/latest/CarbUp_v1.0.1.apk" FILE00="https://hyperling.com/files/media/icons/peace.png"
FILE01="https://git.hyperling.com/me/android-carb-up/raw/branch/main/com.hyperling.carbupbeta.yml" FILE01="https://git.hyperling.com/me/android-carb-up/releases/download/latest/CarbUp_v1.0.1.apk"
FILE02="" FILE02="https://git.hyperling.com/me/android-carb-up/raw/branch/main/com.hyperling.carbupbeta.yml"
FILE03="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/ExpenseTracker_v0.1.3.apk" FILE03="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/ExpenseTracker_v0.1.3.apk"
FILE04="https://git.hyperling.com/me/flutter-expense-tracker/raw/branch/main/com.hyperling.expense_tracker.yml" FILE04="https://git.hyperling.com/me/flutter-expense-tracker/raw/branch/main/com.hyperling.expense_tracker.yml"
FILE05="" FILE05="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/InfiniteTimer_v1.1.1.apk"
FILE06="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/InfiniteTimer_v1.1.1.apk" FILE06="https://git.hyperling.com/me/android-infinite-timer/raw/branch/main/com.hyperling.apps.infinitetimer.yml"
FILE07="https://git.hyperling.com/me/android-infinite-timer/raw/branch/main/com.hyperling.apps.infinitetimer.yml" FILE07="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/The45MinuteRule_v1.0.7.apk"
FILE08="" FILE08="https://git.hyperling.com/me/android-45-minute-rule/raw/branch/main/com.hyperling.apps.the45minuterule.yml"
FILE09="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/The45MinuteRule_v1.0.7.apk" FILE09="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TicTacToe_v1.1.0.apk"
FILE10="https://git.hyperling.com/me/android-45-minute-rule/raw/branch/main/com.hyperling.apps.the45minuterule.yml" FILE10="https://git.hyperling.com/me/android-tictactoe/raw/branch/main/com.hyperling.tictactoe.yml"
FILE11="" FILE11="https://git.hyperling.com/me/android-hypergames/releases/download/latest/HyperGames_v0.0.11.apk"
FILE12="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TicTacToe_v1.1.0.apk" FILE12="https://git.hyperling.com/me/android-hypergames/raw/branch/main/apps.hyperling.com.platformer.yml"
FILE13="https://git.hyperling.com/me/android-tictactoe/raw/branch/main/com.hyperling.tictactoe.yml" FILE13=""
FILE14="" FILE14=""
FILE15="https://git.hyperling.com/me/android-hypergames/releases/download/latest/HyperGames_v0.0.11.apk" FILE15=""
FILE16="https://git.hyperling.com/me/android-hypergames/raw/branch/main/apps.hyperling.com.platformer.yml" FILE16=""
FILE17="" FILE17=""
FILE18="" FILE18=""
FILE19="https://hyperling.com/files/media/icons/peace.png" FILE19=""
FILE20=""
FILE21=""
FILE22=""
FILE23=""
FILE24=""
FILE25=""
FILE26=""
FILE27=""
FILE28=""
FILE29=""
FILE30=""
FILE31=""
FILE32=""
FILE33=""
FILE34=""
FILE35=""
FILE36=""
FILE37=""
FILE38=""
FILE39=""
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# 2026-07-04 Hyperling
# Create the necessary folders for volumes to work.
# This must be run before the container will start properly.
## Setup ##
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
source $DIR/.env
## Main ##
# Create folders.
mkdir -pv $FDROID_DATA
# Finish successfully.
exit 0
+1 -1
View File
@@ -1,7 +1,7 @@
# 2025-06-16 Hyperling # 2025-06-16 Hyperling
# Tired of running fixes.sh to install extra packages. Bake them in! # Tired of running fixes.sh to install extra packages. Bake them in!
FROM nextcloud:latest FROM nextcloud:stable
# Cache System Dependencies # Cache System Dependencies
RUN apt-get update && apt-get install -y sudo libmagickcore-7.q16-10-extra htop \ RUN apt-get update && apt-get install -y sudo libmagickcore-7.q16-10-extra htop \
+2 -4
View File
@@ -8,7 +8,7 @@ FROM debian:trixie-slim
## Setup ## ## Setup ##
# System Dependencies # System Dependencies
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y prosody \ apt-get install -y prosody prosody-modules ca-certificates \
bash sudo htop \ bash sudo htop \
vim vim
@@ -21,11 +21,9 @@ COPY ./etc/conf.avail/* /etc/prosody/conf.d/
RUN rm -rfv /etc/prosody/README* RUN rm -rfv /etc/prosody/README*
## Main ## ## Main ##
# Install + Run Website
WORKDIR /root WORKDIR /root
USER root USER root
CMD prosodyctl cert import /etc/letsencrypt/live && \ CMD prosodyctl --root cert import /etc/letsencrypt/live && \
service prosody start && \ service prosody start && \
prosodyctl reload && \
tail -F /var/log/prosody/prosody.log & \ tail -F /var/log/prosody/prosody.log & \
tail -F /var/log/prosody/prosody.err tail -F /var/log/prosody/prosody.err
@@ -14,6 +14,12 @@ volumes:
type: none type: none
device: ../../Volumes/ReverseProxy/letsencrypt/live device: ../../Volumes/ReverseProxy/letsencrypt/live
o: bind o: bind
prosody_cert_archive:
driver: local
driver_opts:
type: none
device: ../../Volumes/ReverseProxy/letsencrypt/archive
o: bind
services: services:
app: app:
@@ -25,6 +31,7 @@ services:
ports: ports:
- 5222:5222 - 5222:5222
- 5269:5269 - 5269:5269
- 5281:5281
#environment: #environment:
# - REPO=$REPO # - REPO=$REPO
# - BRANCH=$BRANCH # - BRANCH=$BRANCH
@@ -39,6 +46,7 @@ services:
volumes: volumes:
- prosody_data:/var/lib/prosody/ - prosody_data:/var/lib/prosody/
- prosody_certs:/etc/letsencrypt/live - prosody_certs:/etc/letsencrypt/live
- prosody_cert_archive:/etc/letsencrypt/archive
deploy: deploy:
mode: global mode: global
resources: resources:
@@ -8,8 +8,8 @@ VirtualHost "example.com"
-- Note that old-style SSL on port 5223 only supports one certificate, and will always -- Note that old-style SSL on port 5223 only supports one certificate, and will always
-- use the global one. -- use the global one.
--ssl = { --ssl = {
-- key = "/etc/letsencrypt/live/example.com/privkey.pem"; -- key = "/etc/prosody/certs/example.com.key";
-- certificate = "/etc/letsencrypt/live/example.com/fullchain.pem"; -- certificate = "/etc/prosody/certs/example.com.crt";
-- } -- }
------ Components ------ ------ Components ------
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# 2026-07-13 Hyperling
# Create the necessary folders for volumes to work.
# This must be run before the container will start properly.
## Setup ##
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
source $DIR/.env
## Main ##
# Create folders.
mkdir -pv ../../Volumes/Prosody/data
# Finish successfully.
exit 0
+5 -3
View File
@@ -1,11 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
sh -c "rm -rfv prov-test" REPO_NAME="git-repo"
sh -c "rm -rfv $LOCAL_REPO_NAME"
echo "Downloading Repo '$REPO' : Branch '$BRANCH'" echo "Downloading Repo '$REPO' : Branch '$BRANCH'"
git clone $REPO --branch=$BRANCH prov-test git clone $REPO --branch=$BRANCH $LOCAL_REPO_NAME
cd prov-test cd $LOCAL_REPO_NAME
echo "Starting Executable Script '$EXEC'" echo "Starting Executable Script '$EXEC'"
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# 20260804 - Hyperling
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
source $DIR/.env
## Parameters ##
num_lines="$1"
if [[ -z "$num_lines" ]]; then
num_lines=20
fi
## Setup ##
source $DIR/.env
## Main ##
ls $PT_STORAGE_DIR/*/test.log | while read test_log; do
echo -e "\n*** $test_log ***\n"
tail -n $num_lines $test_log
echo -e "\n\n"
done
+18 -1
View File
@@ -8,6 +8,8 @@ DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")" PROG="$(basename -- "${BASH_SOURCE[0]}")"
source $DIR/../source.env source $DIR/../source.env
export BUILD_TIMESTAMP="`date`"
## Functions ## ## Functions ##
function usage() { function usage() {
@@ -113,6 +115,7 @@ fi
## Validations ## ## Validations ##
BUILD_TIMESTAMP="`date`"
# Script will behave poorly if not run with admin privileges. # Script will behave poorly if not run with admin privileges.
if [[ "$LOGNAME" != "root" ]]; then if [[ "$LOGNAME" != "root" ]]; then
echo "*************************************************************" echo "*************************************************************"
@@ -212,14 +215,28 @@ fi
# Clean every type of Docker object which can be abandoined by Compose. # Clean every type of Docker object which can be abandoined by Compose.
if [[ -n $clean ]]; then if [[ -n $clean ]]; then
echo -e "\n*** Cleaning Abandoned Objects ***" echo -e "\n*** Cleaning Abandoned Objects ***"
echo -e "* system df *"
docker system df docker system df
echo -e "\n* image prune -a *"
docker image prune -a docker image prune -a
echo -e "\n* container prune *"
docker container prune docker container prune
echo -e "\n* volume prune *"
docker volume prune docker volume prune
echo -e "\n* network prune *"
docker network prune docker network prune
echo -e "\n* builder prune -a *"
docker builder prune -a docker builder prune -a
echo -e "\n* system df *"
docker system df docker system df
echo "Syncing."
echo "\n* Syncing *"
sync sync
sleep 5 sleep 5
fi fi