Compare commits

...
40 Commits
Author SHA1 Message Date
me c80f5b55ce gitea, move ports to env file. 2026-11-07 14:08:20 -07:00
me 4d4730bb52 Remove the -app from container names, leave it on the service descriptor. 2026-11-07 13:52:47 -07:00
me 3cb50bf181 hugo, nake the &&'s more consistent. 2026-11-07 10:24:26 -07:00
me 146f29f760 hugo, capitalize RUN commands. 2026-11-07 09:16:02 -07:00
me e4f5793106 hugo, clean up the container after compiling hugo with go. 2026-11-07 09:12:32 -07:00
me 7a8f3cc095 Do not try to pull local build images. 2026-11-02 16:18:43 -07:00
me 2f2484df93 hugo, allow specifying the baseURL since it's helpful for SEO and other things, also rename PORT variables to not collide with Ansible's PROD_PORT. 2026-11-02 15:08:59 -07:00
me a5c1eef4a8 fdroid, remove unintentional file. 2026-11-01 15:44:29 -07:00
me 3fba4ed2be fdroid, change when the keystore is copied and keep config.yml with it. 2026-11-01 15:43:05 -07:00
me d26d345cbb gitignore, add F-Droid private files. 2026-11-01 15:41:57 -07:00
me 70cf072525 fdroid, remove the note about manually creating a key. 2026-11-01 15:41:03 -07:00
me f378518da4 fdroid, add sunset alarm to env and set all yml file branches to dev. 2026-11-01 15:22:12 -07:00
me 2a56040899 fdroid, explicitly mention where keystore is being looked for. 2026-11-01 15:04:03 -07:00
me fd8f9839ab fdroid, fix prep message and also variablize the files being used multiple times. 2026-11-01 15:03:02 -07:00
me db1c85db20 fdroid, begin maintaining a consistent keystore file. 2026-11-01 14:52:44 -07:00
me 665122faab fdroid, remove old comments from env. 2026-11-01 14:51:57 -07:00
me 18b0690314 fdroid, make the app name easier to type. 2026-11-01 14:51:25 -07:00
me e5d9968847 fdroid, update env to use new consistent APK names. 2026-11-01 11:14:28 -07:00
me 2fc06e6e55 Add image names to compose files which do a local build. 2026-11-01 08:12:10 -07:00
me 2e172f2b64 manage, add missing parenthesis. 2026-10-29 21:03:58 -07:00
me db4e61eeff manage, fix newline escaping. 2026-10-29 21:01:57 -07:00
me 64f90acffd create, use compose.yml from now on. 2026-10-29 20:59:24 -07:00
me 623d855cf6 manage, also recognize compose.yml files. 2026-10-29 20:59:05 -07:00
me 94273679d8 hugo, base the image tag on the branch being used, change the ports to be in the env file. 2026-10-29 08:57:30 -07:00
me 208d10034e hugo, add an image name so that all instances use it rather than recompiling every time. 2026-10-27 21:23:13 -07:00
me a63ac8a31f hugo, ensure the executable is available and executable. 2026-10-27 21:22:42 -07:00
me 18fd1dbc1f hugo, use the same version of Hugo as development systems, not any newer. 2026-10-27 20:27:18 -07:00
me 84039c005e hugo, add explicit path to cronjob. 2026-10-27 20:20:21 -07:00
me 56aa206f5c hugo, change the default repo. 2026-10-27 20:13:26 -07:00
me 80ace59b99 install, update the Arch-based packages. 2026-10-27 20:08:17 -07:00
me 5572e57d49 hugo, explicitly install ca-certificates so that hugo does not ail compiling, remove the no-install-recommends in case that's why the issue started in the first place. 2026-10-27 20:06:17 -07:00
me 9e019605ea hugo, refactor Dockerfile and remove unneeded packages. 2026-10-27 19:47:08 -07:00
me a0b1448fa3 Stop using host network to build containers since newer version of Docker fail without --allow. 2026-10-27 19:43:21 -07:00
me 6f1d022aef hugo, add Dockerfile updates to compile the executable, gives a much more recent version than Debian ships. 2026-10-27 19:33:23 -07:00
me 6ffae6e041 cronjob, ensure the hugo executable can be found since it's being compiled now. 2026-10-27 19:32:46 -07:00
me a9738b84fd Remove deploy.mode: global. 2026-10-27 19:16:57 -07:00
me eeb275d0eb gitignore, also ignore compose.yml files. 2026-10-27 19:14:37 -07:00
me 9a7b6010e2 fdroid, no longer use backports since apt was having issues with versioning. 2026-09-29 10:26:14 -07:00
me a6a0448cfb manage, prolong the sleep so that the system df output has more time to be read. 2026-09-11 09:07:28 -07:00
me dd68e98661 manage, add missing -e. 2026-09-11 09:05:45 -07:00
30 changed files with 169 additions and 104 deletions

No files matched your search

+4
View File
@@ -33,6 +33,7 @@ disabled.*
# 2024-01-23 Ignore true docker-compose files, only show examples from now on. # 2024-01-23 Ignore true docker-compose files, only show examples from now on.
docker-compose.yml docker-compose.yml
compose.yml
# 2024-01-24 Hide static files for Hyperling.com. # 2024-01-24 Hide static files for Hyperling.com.
Config/Hyperling.com/files/* Config/Hyperling.com/files/*
@@ -70,3 +71,6 @@ Config/Prosody/conf.avail
Config/Prosody/etc/conf.avail Config/Prosody/etc/conf.avail
Config/Prosody/etc/ Config/Prosody/etc/
# Ignore private F-Droid Config.
Config/F-DroidRepo/files/keystore.p12
Config/F-DroidRepo/files/config.yml
+3 -3
View File
@@ -7,16 +7,16 @@
services: services:
app: app:
container_name: dns-app container_name: dns
build: build:
context: ./ context: ./
network: host image: hyperling/dns:latest
pull_policy: never
restart: always restart: always
ports: ports:
- "53:53/udp" - "53:53/udp"
- "53:53/tcp" - "53:53/tcp"
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+10 -2
View File
@@ -20,12 +20,15 @@ ENV CONFIG="$FDROID/config.yml"
RUN mkdir -pv "$DOWNLOAD" "$WEBROOT" \ RUN mkdir -pv "$DOWNLOAD" "$WEBROOT" \
"$FDROID" "$METADATA" "$REPO" "$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
RUN apt-get update && apt-get install -y sudo bash curl git vim nginx RUN apt-get update && apt-get install -y sudo bash curl git vim nginx
COPY files/debian-backports.sources /etc/apt/sources.list.d/ COPY files/debian-backports.sources /etc/apt/sources.list.d/
RUN apt-get update && apt-get install -y -t trixie-backports fdroidserver
# 20260928 - Backport dependencies broken, use the stable version instead.
#RUN apt-get update && apt-get install -y -t trixie-backports fdroidserver
RUN apt-get update && apt-get install -y fdroidserver
# Generate F-Droid Repo # # Generate F-Droid Repo #
@@ -178,6 +181,11 @@ RUN mv -v "$DOWNLOAD"/*.yml "$METADATA"/ || \
RUN mv -v "$DOWNLOAD"/*.png "$FDROID"/ || \ RUN mv -v "$DOWNLOAD"/*.png "$FDROID"/ || \
(echo "WARNING! No PNG file(s) to copy." && sleep 10) (echo "WARNING! No PNG file(s) to copy." && sleep 10)
# Install Keystore #
COPY files/keystore.p12 "$FDROID"/keystore.p12
COPY files/config.yml "$FDROID"/config.yml
# Configure F-Droid Repo # # Configure F-Droid Repo #
ARG REPO_DOMAIN ARG REPO_DOMAIN
@@ -11,10 +11,9 @@ volumes:
services: services:
app: app:
container_name: fd-app container_name: fdroid
build: build:
context: ./ context: ./
network: host
args: args:
#WEBROOT: ${WEBROOT} #WEBROOT: ${WEBROOT}
#REPO: ${REPO} #REPO: ${REPO}
@@ -62,6 +61,8 @@ services:
FILE37: ${FILE37} FILE37: ${FILE37}
FILE38: ${FILE38} FILE38: ${FILE38}
FILE39: ${FILE39} FILE39: ${FILE39}
image: hyperling/fdroid-server:latest
pull_policy: never
restart: always restart: always
ports: ports:
- "8015:80" - "8015:80"
@@ -114,7 +115,6 @@ services:
volumes: volumes:
- fdroid_data:/root/fdroid - fdroid_data:/root/fdroid
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+22 -17
View File
@@ -23,25 +23,30 @@ REPO_NAME="Hyperling's Apps"
REPO_ICON="peace.png" REPO_ICON="peace.png"
## Files ## ## 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.
FILE00="https://hyperling.com/files/media/icons/peace.png" FILE00="https://hyperling.com/files/media/icons/peace.png"
FILE01="https://git.hyperling.com/me/android-carb-up/releases/download/latest/CarbUp_v1.0.1.apk"
FILE02="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.apk"
FILE03="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/ExpenseTracker_v0.1.3.apk" FILE02="https://git.hyperling.com/me/android-carb-up/raw/branch/dev/com.hyperling.carbupbeta.yml"
FILE04="https://git.hyperling.com/me/flutter-expense-tracker/raw/branch/main/com.hyperling.expense_tracker.yml"
FILE05="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/InfiniteTimer_v1.1.1.apk" FILE03="https://git.hyperling.com/me/flutter-expense-tracker/releases/download/latest/ExpenseTracker.apk"
FILE06="https://git.hyperling.com/me/android-infinite-timer/raw/branch/main/com.hyperling.apps.infinitetimer.yml" FILE04="https://git.hyperling.com/me/flutter-expense-tracker/raw/branch/dev/com.hyperling.expense_tracker.yml"
FILE07="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/The45MinuteRule_v1.0.7.apk"
FILE08="https://git.hyperling.com/me/android-45-minute-rule/raw/branch/main/com.hyperling.apps.the45minuterule.yml" FILE05="https://git.hyperling.com/me/android-infinite-timer/releases/download/latest/InfiniteTimer.apk"
FILE09="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TicTacToe_v1.1.0.apk" FILE06="https://git.hyperling.com/me/android-infinite-timer/raw/branch/dev/com.hyperling.apps.infinitetimer.yml"
FILE10="https://git.hyperling.com/me/android-tictactoe/raw/branch/main/com.hyperling.tictactoe.yml"
FILE11="https://git.hyperling.com/me/android-hypergames/releases/download/latest/HyperGames_v0.0.11.apk" FILE07="https://git.hyperling.com/me/android-45-minute-rule/releases/download/latest/The45MinuteRule.apk"
FILE12="https://git.hyperling.com/me/android-hypergames/raw/branch/main/apps.hyperling.com.platformer.yml" FILE08="https://git.hyperling.com/me/android-45-minute-rule/raw/branch/dev/com.hyperling.apps.the45minuterule.yml"
FILE13=""
FILE14="" FILE09="https://git.hyperling.com/me/android-tictactoe/releases/download/latest/TicTacToe.apk"
FILE10="https://git.hyperling.com/me/android-tictactoe/raw/branch/dev/com.hyperling.tictactoe.yml"
FILE11="https://git.hyperling.com/me/android-hypergames/releases/download/latest/HyperGames.apk"
FILE12="https://git.hyperling.com/me/android-hypergames/raw/branch/dev/apps.hyperling.com.platformer.yml"
FILE13="https://git.hyperling.com/me/flutter-sunset-alarm/releases/download/latest/SunsetAlarm.apk"
FILE14="https://git.hyperling.com/me/flutter-sunset-alarm/raw/branch/dev/com.hyperling.sunset_alarm.yml"
FILE15="" FILE15=""
FILE16="" FILE16=""
FILE17="" FILE17=""
Binary file not shown.
+17 -1
View File
@@ -6,12 +6,28 @@
## Setup ## ## Setup ##
DIR="$(dirname -- "${BASH_SOURCE[0]}")" DIR="$(dirname -- "${BASH_SOURCE[0]}")"
source $DIR/.env env="$DIR"/.env
if [[ ! -f "$env" ]]; then
cp -v "$DIR"/example.env "$env"
fi
source "$env"
## Main ## ## Main ##
# Create folders. # Create folders.
mkdir -pv $FDROID_DATA mkdir -pv $FDROID_DATA
keystore="$DIR"/files/keystore.p12
if [[ ! -f "$keystore" ]]; then
echo "ERROR: $keystore not detected. Please create it and config.yml using 'fdroid init'."
exit 1
fi
config="$DIR"/files/config.yml
if [[ ! -f "$config" ]]; then
echo "ERROR: $config not detected. Please copy the file that came with your keystore.p12 from 'fdroid init'."
exit 1
fi
# Finish successfully. # Finish successfully.
exit 0 exit 0
@@ -25,7 +25,6 @@ services:
volumes: volumes:
- ../../Volumes/Ghost/ghost:/var/lib/ghost/content - ../../Volumes/Ghost/ghost:/var/lib/ghost/content
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -43,7 +42,6 @@ services:
volumes: volumes:
- ../../Volumes/Ghost/db:/var/lib/mysql - ../../Volumes/Ghost/db:/var/lib/mysql
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU_DB cpus: $CPU_DB
+1 -1
View File
@@ -9,7 +9,7 @@ COMPOSE_BAKE=true
## Ghost ## ## Ghost ##
APP_NAME=ghost-app APP_NAME=ghost
URL='http://localhost:8368' URL='http://localhost:8368'
+3 -4
View File
@@ -13,12 +13,12 @@ services:
# SQL Lite # SQL Lite
## App ## ## App ##
container_name: gitea-app container_name: gitea
image: gitea/gitea:latest image: gitea/gitea:latest
restart: always restart: always
ports: ports:
- "3001:3000" - "$GITEA_WEB_PORT:3000"
- "2201:22" - "$GITEA_SSH_PORT:22"
volumes: volumes:
- ../../Volumes/Gitea/gitea:/data - ../../Volumes/Gitea/gitea:/data
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
@@ -27,7 +27,6 @@ services:
- USER_UID=1000 - USER_UID=1000
- USER_GID=1000 - USER_GID=1000
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+5
View File
@@ -4,6 +4,11 @@
COMPOSE_BAKE=true COMPOSE_BAKE=true
## Gitea ##
GITEA_WEB_PORT=3001
GITEA_SSH_PORT=2201
## Performance ## ## Performance ##
# Micro Server # Micro Server
+1 -2
View File
@@ -13,7 +13,7 @@ services:
# SQL Lite # SQL Lite
## App ## ## App ##
container_name: gogs-app container_name: gogs
image: gogs/gogs:latest image: gogs/gogs:latest
restart: always restart: always
ports: ports:
@@ -26,7 +26,6 @@ services:
environment: environment:
- "RUN_CROND=true" - "RUN_CROND=true"
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+32 -3
View File
@@ -1,11 +1,41 @@
# 2025-08-13 Hyperling # 2025-08-13 Hyperling
# Changelog
## 20261027: Install hugo from source. paperMod currently requires ~150 and Debian has ~130, latest is ~160.
## Image ## ## Image ##
FROM debian:trixie-slim FROM debian:trixie-slim
USER root
## Setup ## ## Setup ##
ARG DEBIAN_FRONTEND=noninteractive
# System Dependencies # System Dependencies
RUN apt-get update && apt-get install -y git hugo nginx cron curl bash sudo htop RUN echo "Install Dependencies"
RUN apt-get update && \
apt-get install -y \
git nginx cron curl bash sudo \
ca-certificates \
golang gcc && \
rm -rf /var/lib/apt/lists/*
# Compile Hugo (same version Artix is currently shipping, rather than latest.)
RUN echo "Compile Hugo"
RUN CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@v0.164.0
# Install Hugo
RUN echo "Install Hugo"
RUN mv -v $HOME/go/bin/hugo /usr/local/bin/hugo && \
chmod -v 755 /usr/local/bin/hugo
RUN echo "Clean Up Go"
RUN rm -rfv /usr/local/go \
/root/go/pkg/mod \
/root/.cache/go-build \
/root/go && \
apt-get remove -y --purge golang gcc && \
apt-get autoremove -y && \
apt-get clean && \
rm -rfv /var/lib/apt/lists/* /tmp/*
# User and Group # User and Group
#RUN groupadd -r hugo && useradd -r -g hugo hugo #RUN groupadd -r hugo && useradd -r -g hugo hugo
@@ -31,5 +61,4 @@ RUN chmod +x /root/main.sh
## Main ## ## Main ##
# Install + Run Website # Install + Run Website
WORKDIR /var/www/ WORKDIR /var/www/
USER root CMD /root/main.sh "$REPO" "$BRANCH" "$PROD" "$DEV" "$BASEURL"
CMD /root/main.sh "$REPO" "$BRANCH" "$PROD" "$DEV"
@@ -6,16 +6,18 @@ services:
container_name: hugo container_name: hugo
build: build:
context: ./ context: ./
network: host image: hyperling/hugo:$BRANCH
pull_policy: never
restart: always restart: always
ports: ports:
- 8013:80 # Production minified files served using NGINX. - $NGINX_PORT:80 # Production minified files served using NGINX.
- 1380:1380 # Development files with drafts served by Hugo Server. #- $HUGO_PORT:1380 # Development files with drafts served by Hugo Server.
environment: environment:
- REPO=$REPO - REPO=$REPO
- BRANCH=$BRANCH - BRANCH=$BRANCH
- PROD=$PROD - PROD=$NGINX
- DEV=$DEV - DEV=$HUGO
- BASEURL=$BASEURL
healthcheck: healthcheck:
test: curl -sS http://localhost:80 || curl -sS http://localhost:1380 || exit 1 test: curl -sS http://localhost:80 || curl -sS http://localhost:1380 || exit 1
interval: 1m interval: 1m
@@ -23,7 +25,6 @@ services:
retries: 2 retries: 2
start_period: 30s start_period: 30s
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+7 -3
View File
@@ -8,7 +8,7 @@ COMPOSE_BAKE=true
# #
## Git Website Repository ## ## Git Website Repository ##
# #
REPO=https://git.hyperling.com/me/hugo-jackanope REPO=https://git.hyperling.com/me/hugo-recipes
BRANCH=prod BRANCH=prod
# #
@@ -16,10 +16,14 @@ BRANCH=prod
# Please use values YES/TRUE and NO/FALSE. # Please use values YES/TRUE and NO/FALSE.
# Whether to start NGINX # Whether to start NGINX
PROD=YES NGINX=YES
NGINX_PORT=8013
# Whether to start Hugo Server # Whether to start Hugo Server
DEV=NO HUGO=NO
HUGO_PORT=1380
BASEURL=https://blog.hyperling.com
# #
## Resources ## ## Resources ##
+2 -5
View File
@@ -3,6 +3,7 @@
cd /var/www/hugo/site cd /var/www/hugo/site
FORCE="$1" FORCE="$1"
BASEURL="$2"
echo "*** Running cronjob @ `date` ***" echo "*** Running cronjob @ `date` ***"
@@ -16,7 +17,7 @@ if [[ $status != 0 && -e /var/www/html/index.html && -z $FORCE ]]; then
fi fi
# If the project was not already up to date, build the new files for NGINX. # If the project was not already up to date, build the new files for NGINX.
hugo --gc --minify /usr/local/bin/hugo $BASEURL --gc --minify
status="$?" status="$?"
echo "* Hugo status is '$status', FORCE is '$FORCE'." echo "* Hugo status is '$status', FORCE is '$FORCE'."
if [[ $status == 0 && -e public/index.html ]]; then if [[ $status == 0 && -e public/index.html ]]; then
@@ -26,7 +27,3 @@ if [[ $status == 0 && -e public/index.html ]]; then
fi fi
exit 0 exit 0
ww/html/
fi
exit 0
+9 -2
View File
@@ -17,6 +17,13 @@ DEV="$4"
typeset -u DEV typeset -u DEV
echo "DEV='$DEV'" echo "DEV='$DEV'"
BASEURL="$5"
echo "BASEURL='$BASEURL'"
baseurl=""
if [[ -n "$BASEURL" ]]; then
baseurl="-b $BASEURL"
fi
SITE="/var/www/hugo/site" SITE="/var/www/hugo/site"
CLONE="/var/www/hugo/site-new" CLONE="/var/www/hugo/site-new"
@@ -40,7 +47,7 @@ mv -v $CLONE $SITE
echo "*** Copying Static Files to NGINX ***" echo "*** Copying Static Files to NGINX ***"
rm -rfv /var/www/html/* rm -rfv /var/www/html/*
sudo -u www-data /var/www/hugo/cronjob.sh sudo -u www-data /var/www/hugo/cronjob.sh "" "$baseurl"
echo "*** Starting Cron ***" echo "*** Starting Cron ***"
service cron start service cron start
@@ -73,7 +80,7 @@ if [[ "$DEV" == "Y"* || "$DEV" == "T"* ]]; then
echo "* Dev server not detected, starting..." echo "* Dev server not detected, starting..."
cd $SITE cd $SITE
killall hugo 2>/dev/null killall hugo 2>/dev/null
sudo -u www-data hugo server -D -F --noBuildLock --bind 0.0.0.0 -p 1380 & sudo -u www-data hugo server $baseurl -D -F --noBuildLock --bind 0.0.0.0 -p 1380 &
fi fi
sleep 30 sleep 30
done & done &
@@ -3,10 +3,11 @@
services: services:
app: app:
container_name: www-app container_name: www
build: build:
context: ./ context: ./
network: host image: hyperling/website:latest
pull_policy: never
restart: always restart: always
ports: ports:
- 8317:8080 - 8317:8080
@@ -15,7 +16,6 @@ services:
volumes: volumes:
- ./files:/var/www/api/files - ./files:/var/www/api/files
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -23,10 +23,11 @@ services:
## Main ## ## Main ##
lt-app: lt-app:
container_name: lt-app container_name: lt
build: build:
context: ./ context: ./
network: host image: hyperling/libretranslate:latest
pull_policy: never
restart: always restart: always
ports: ports:
- "5000:5000" - "5000:5000"
@@ -48,7 +49,6 @@ services:
# Avoid re-downloading language models every reboot. # Avoid re-downloading language models every reboot.
- libretranslate_models:/home/libretranslate/.local:rw - libretranslate_models:/home/libretranslate/.local:rw
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+3 -4
View File
@@ -34,7 +34,6 @@ services:
- MYSQL_USER=$MYSQL_USER - MYSQL_USER=$MYSQL_USER
- MYSQL_PASSWORD=$MYSQL_PASSWORD - MYSQL_PASSWORD=$MYSQL_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.20' cpus: '0.20'
@@ -47,7 +46,6 @@ services:
restart: always restart: always
command: redis-server --requirepass $REDIS_HOST_PASSWORD command: redis-server --requirepass $REDIS_HOST_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.10' cpus: '0.10'
@@ -71,9 +69,11 @@ services:
## Nextcloud ## ## Nextcloud ##
nc-app: nc-app:
container_name: nc-app container_name: nc
build: build:
context: ./ context: ./
image: hyperling/nextcloud:latest
pull_policy: never
restart: always restart: always
ports: ports:
- 8080:80 - 8080:80
@@ -95,7 +95,6 @@ services:
- REDIS_HOST=$REDIS_HOST - REDIS_HOST=$REDIS_HOST
- REDIS_HOST_PASSWORD=$REDIS_HOST_PASSWORD - REDIS_HOST_PASSWORD=$REDIS_HOST_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.40' cpus: '0.40'
+3 -5
View File
@@ -32,7 +32,6 @@ services:
- MYSQL_USER=$MYSQL_USER - MYSQL_USER=$MYSQL_USER
- MYSQL_PASSWORD=$MYSQL_PASSWORD - MYSQL_PASSWORD=$MYSQL_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.50' cpus: '0.50'
@@ -48,7 +47,6 @@ services:
restart: always restart: always
command: redis-server --requirepass $REDIS_HOST_PASSWORD command: redis-server --requirepass $REDIS_HOST_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.25' cpus: '0.25'
@@ -64,7 +62,6 @@ services:
environment: environment:
- JWT_SECRET=$JWT_SECRET - JWT_SECRET=$JWT_SECRET
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '0.75' cpus: '0.75'
@@ -72,9 +69,11 @@ services:
## Nextcloud ## ## Nextcloud ##
nc-app: nc-app:
container_name: nc-app container_name: nc
build: build:
context: ./ context: ./
image: hyperling/nextcloud:latest
pull_policy: never
restart: always restart: always
ports: ports:
- 8080:80 - 8080:80
@@ -96,7 +95,6 @@ services:
- REDIS_HOST=$REDIS_HOST - REDIS_HOST=$REDIS_HOST
- REDIS_HOST_PASSWORD=$REDIS_HOST_PASSWORD - REDIS_HOST_PASSWORD=$REDIS_HOST_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: '2.00' cpus: '2.00'
+1 -3
View File
@@ -37,7 +37,7 @@
services: services:
pp-app: pp-app:
container_name: pp-app container_name: pp
image: photoprism/photoprism:latest image: photoprism/photoprism:latest
## Don't enable automatic restarts until PhotoPrism has been properly configured and tested! ## Don't enable automatic restarts until PhotoPrism has been properly configured and tested!
## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue: ## If the service gets stuck in a restart loop, this points to a memory, filesystem, network, or database issue:
@@ -118,7 +118,6 @@ services:
# Importing reorganizes files+folders, would rather they remain intact. # Importing reorganizes files+folders, would rather they remain intact.
#- "../../Volumes/PhotoPrism/imports_go_here:/photoprism/import" #- "../../Volumes/PhotoPrism/imports_go_here:/photoprism/import"
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -149,7 +148,6 @@ services:
MARIADB_PASSWORD: $MARIADB_PASSWORD MARIADB_PASSWORD: $MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD: $MARIADB_ROOT_PASSWORD MARIADB_ROOT_PASSWORD: $MARIADB_ROOT_PASSWORD
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU_DB cpus: $CPU_DB
@@ -32,7 +32,8 @@ services:
container_name: prosody container_name: prosody
build: build:
context: ./ context: ./
network: host image: hyperling/prosody:latest
pull_policy: never
restart: always restart: always
ports: ports:
- 5222:5222 - 5222:5222
@@ -55,7 +56,6 @@ services:
- prosody_certs:/etc/letsencrypt/live - prosody_certs:/etc/letsencrypt/live
- prosody_cert_archive:/etc/letsencrypt/archive - prosody_cert_archive:/etc/letsencrypt/archive
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -16,10 +16,11 @@ services:
build: build:
context: ./ context: ./
dockerfile: Dockerfiles/arch dockerfile: Dockerfiles/arch
network: host
args: args:
PACKAGES: ${PACKAGES} PACKAGES: ${PACKAGES}
EXTRA_ARCH: ${EXTRA_ARCH} EXTRA_ARCH: ${EXTRA_ARCH}
image: hyperling/provision-test:arch
pull_policy: never
restart: "no" restart: "no"
environment: environment:
- PACKAGES=$PACKAGES - PACKAGES=$PACKAGES
@@ -35,7 +36,6 @@ services:
volume: volume:
subpath: arch subpath: arch
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -46,10 +46,11 @@ services:
build: build:
context: ./ context: ./
dockerfile: Dockerfiles/debian dockerfile: Dockerfiles/debian
network: host
args: args:
PACKAGES: ${PACKAGES} PACKAGES: ${PACKAGES}
EXTRA_DEBIAN: ${EXTRA_DEBIAN} EXTRA_DEBIAN: ${EXTRA_DEBIAN}
image: hyperling/provision-test:debian
pull_policy: never
restart: "no" restart: "no"
environment: environment:
- PACKAGES=$PACKAGES - PACKAGES=$PACKAGES
@@ -65,7 +66,6 @@ services:
volume: volume:
subpath: debian subpath: debian
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -76,10 +76,11 @@ services:
build: build:
context: ./ context: ./
dockerfile: Dockerfiles/fedora dockerfile: Dockerfiles/fedora
network: host
args: args:
PACKAGES: ${PACKAGES} PACKAGES: ${PACKAGES}
EXTRA_FEDORA: ${EXTRA_FEDORA} EXTRA_FEDORA: ${EXTRA_FEDORA}
image: hyperling/provision-test:fedora
pull_policy: never
restart: "no" restart: "no"
environment: environment:
- PACKAGES=$PACKAGES - PACKAGES=$PACKAGES
@@ -95,7 +96,6 @@ services:
volume: volume:
subpath: fedora subpath: fedora
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -106,10 +106,11 @@ services:
build: build:
context: ./ context: ./
dockerfile: Dockerfiles/opensuse dockerfile: Dockerfiles/opensuse
network: host
args: args:
PACKAGES: ${PACKAGES} PACKAGES: ${PACKAGES}
EXTRA_OPENSUSE: ${EXTRA_OPENSUSE} EXTRA_OPENSUSE: ${EXTRA_OPENSUSE}
image: hyperling/provision-test:opensuse
pull_policy: never
restart: "no" restart: "no"
environment: environment:
- PACKAGES=$PACKAGES - PACKAGES=$PACKAGES
@@ -125,7 +126,6 @@ services:
volume: volume:
subpath: opensuse subpath: opensuse
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -136,10 +136,11 @@ services:
build: build:
context: ./ context: ./
dockerfile: Dockerfiles/ubuntu dockerfile: Dockerfiles/ubuntu
network: host
args: args:
PACKAGES: ${PACKAGES} PACKAGES: ${PACKAGES}
EXTRA_UBUNTU: ${EXTRA_UBUNTU} EXTRA_UBUNTU: ${EXTRA_UBUNTU}
image: hyperling/provision-test:ubuntu
pull_policy: never
restart: "no" restart: "no"
environment: environment:
- PACKAGES=$PACKAGES - PACKAGES=$PACKAGES
@@ -155,7 +156,6 @@ services:
volume: volume:
subpath: ubuntu subpath: ubuntu
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
+1 -1
View File
@@ -23,7 +23,7 @@ How to first begin using this subproject.
``` ```
1. Verify it started correctly, no configuration file errors. 1. Verify it started correctly, no configuration file errors.
``` ```
# docker logs rp-app # docker logs rp
# docker logs rp-certbot # docker logs rp-certbot
``` ```
1. Create the real certificates. 1. Create the real certificates.
@@ -8,10 +8,11 @@
services: services:
app: app:
container_name: rp-app container_name: rp
build: build:
context: ./ context: ./
network: host image: hyperling/nginx-reverse-proxy:latest
pull_policy: never
restart: always restart: always
ports: ports:
- "80:80" - "80:80"
@@ -21,7 +22,6 @@ services:
- ../../Volumes/ReverseProxy/letsencrypt-certs:/etc/nginx/certs - ../../Volumes/ReverseProxy/letsencrypt-certs:/etc/nginx/certs
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU cpus: $CPU
@@ -36,7 +36,6 @@ services:
- ../../Volumes/ReverseProxy/letsencrypt-certs:/etc/letsencrypt/nginx - ../../Volumes/ReverseProxy/letsencrypt-certs:/etc/letsencrypt/nginx
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; cp -rL /etc/letsencrypt/live/* /etc/letsencrypt/nginx/; sleep 12h & wait $${!}; done;'" entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; cp -rL /etc/letsencrypt/live/* /etc/letsencrypt/nginx/; sleep 12h & wait $${!}; done;'"
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $CPU_LE cpus: $CPU_LE
@@ -18,7 +18,7 @@
services: services:
app: app:
container_name: wp-app container_name: wp
image: wordpress:latest image: wordpress:latest
restart: always restart: always
ports: ports:
@@ -43,7 +43,6 @@ services:
WORDPRESS_DB_PASSWORD: $MARIADB_ROOT_PASSWORD WORDPRESS_DB_PASSWORD: $MARIADB_ROOT_PASSWORD
WORDPRESS_DEBUG: $WORDPRESS_DEBUG WORDPRESS_DEBUG: $WORDPRESS_DEBUG
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $WP_CPU cpus: $WP_CPU
@@ -69,7 +68,6 @@ services:
MARIADB_ROOT_PASSWORD: $MARIADB_ROOT_PASSWORD MARIADB_ROOT_PASSWORD: $MARIADB_ROOT_PASSWORD
MARIADB_AUTO_UPGRADE: $MARIADB_AUTO_UPGRADE MARIADB_AUTO_UPGRADE: $MARIADB_AUTO_UPGRADE
deploy: deploy:
mode: global
resources: resources:
limits: limits:
cpus: $WP_CPU_DB cpus: $WP_CPU_DB
+1 -1
View File
@@ -30,7 +30,7 @@ fi
## Variables ## ## Variables ##
dir="$1" dir="$1"
file="$dir/docker-compose.yml" file="$dir/compose.yml"
## Main ## ## Main ##
+1 -1
View File
@@ -56,7 +56,7 @@ if [[ "$pkgmgr" == "apt" ]]; then
elif [[ $pkgmgr == "pacman" ]]; then elif [[ $pkgmgr == "pacman" ]]; then
pacman -Rcns --noconfirm *docker* pacman -Rcns --noconfirm *docker*
pacman -Sy --noconfirm docker docker-compose && pacman -Sy --noconfirm docker docker-compose docker-buildx ca-certificates &&
echo "Success!" && echo "Success!" &&
exit 0 exit 0
fi fi
+11 -10
View File
@@ -151,13 +151,14 @@ if [[ -n $up || -n $down || -n $build || -n $pull || -n $maintenance ]]; then
pwd pwd
# Ensure env file exists so that all compose variables are populated. # Ensure env file exists so that all compose variables are populated.
if [[ -e "./example.env" && ! -e "./.env" && -f "docker-compose.yml" ]]; then if [[ -f "./example.env" && ! -f "./.env" \
&& ( -f "docker-compose.yml" || -f "compose.yml") ]]; then
echo "WARNING: .env file was not found, copying example as placeholder." echo "WARNING: .env file was not found, copying example as placeholder."
cp -v example.env .env cp -v example.env .env
fi fi
# Ensure all configuration files have been created. # Ensure all configuration files have been created.
if [[ -d "./config" && -f "docker-compose.yml" ]]; then if [[ -d "./config" && (-f "docker-compose.yml" || -f "compose.yml") ]]; then
ls ./config/*.example 2>/dev/null | while read example; do ls ./config/*.example 2>/dev/null | while read example; do
real=${example//.example/} real=${example//.example/}
if [[ ! -e $real ]]; then if [[ ! -e $real ]]; then
@@ -168,12 +169,12 @@ if [[ -n $up || -n $down || -n $build || -n $pull || -n $maintenance ]]; then
fi fi
# Run the prep script to create any necessary volumes. # Run the prep script to create any necessary volumes.
if [[ -f "prep.sh" && -f "docker-compose.yml" ]]; then if [[ -f "prep.sh" && (-f "docker-compose.yml" || -f "compose.yml") ]]; then
./prep.sh ./prep.sh
fi fi
# Run any maintenance scripts associated with the container. # Run any maintenance scripts associated with the container.
if [[ "$maintenance" == "Y" && -f "docker-compose.yml" ]]; then if [[ "$maintenance" == "Y" && (-f "docker-compose.yml" || -f "compose.yml") ]]; then
if [[ -f "maintenance.sh" ]]; then if [[ -f "maintenance.sh" ]]; then
./maintenance.sh ./maintenance.sh
fi fi
@@ -184,22 +185,22 @@ if [[ -n $up || -n $down || -n $build || -n $pull || -n $maintenance ]]; then
# Update container from remote source such as Docker Hub. # Update container from remote source such as Docker Hub.
if [[ $pull == "Y" ]]; then if [[ $pull == "Y" ]]; then
[ -e docker-compose.yml ] && docker compose pull [[ -f "docker-compose.yml" || -f "compose.yml" ]] && docker compose pull
fi fi
# Execute commands within the container's Dockerfile. # Execute commands within the container's Dockerfile.
if [[ $build == "Y" ]]; then if [[ $build == "Y" ]]; then
[ -e Dockerfile ] && docker compose build [[ -e Dockerfile ]] && docker compose build
fi fi
# Shut off container. # Shut off container.
if [[ $down == "Y" ]]; then if [[ $down == "Y" ]]; then
[ -e docker-compose.yml ] && docker compose down [[ -f "docker-compose.yml" || -f "compose.yml" ]] && docker compose down
fi fi
# Run the container as a daemon. # Run the container as a daemon.
if [[ $up == "Y" ]]; then if [[ $up == "Y" ]]; then
[ -e docker-compose.yml ] && docker compose up -d [[ -f "docker-compose.yml" || -f "compose.yml" ]] && docker compose up -d
fi fi
cd .. cd ..
@@ -236,9 +237,9 @@ if [[ -n $clean ]]; then
echo -e "\n* system df *" echo -e "\n* system df *"
docker system df docker system df
echo "\n* Syncing *" echo -e "\n* Syncing *"
sync sync
sleep 5 sleep 15
fi fi
# Follow the logs of a container. # Follow the logs of a container.