Compare commits

...

18 Commits

Author SHA1 Message Date
e0f846164e Merge pull request 'Nextcloud, Hyperling.com, LibreTranslate, and backup.sh Enhancements' (#11) from dev into main
Reviewed-on: #11
2025-10-14 14:58:58 -07:00
9314bb8bb4 Have the git command give us the branch instead. 2025-10-14 14:32:26 -07:00
b9d9771523 Add echo of $BRANCH contents. 2025-10-14 14:30:40 -07:00
d2aa3c195b Fix typo in variable name. 2025-10-14 14:23:40 -07:00
dd60d5a721 Fix typos and wording in comments. 2025-10-14 14:23:18 -07:00
c04eb08f78 Comment the micro server requirements. 2025-10-14 14:22:27 -07:00
418983c490 Add env variable for which branch to use. Move CPU and RAM requirements to env so that only 1 docker-compose.yml example is needed. 2025-10-14 14:21:59 -07:00
95060838e2 Remove using the dev branch on Production! Should only be on the Stage version of the Dockerfile. 2025-10-14 14:14:04 -07:00
6973640b4e Explicitly mention where the output is coming from. 2025-10-14 14:12:02 -07:00
a49d0129e7 Enhance output when starting Hyperling.com. 2025-10-14 14:10:00 -07:00
394acfa06d Critical changes for upcoming Hyperling.com 2.0! Automatic page updates after a pull request within 30 seconds, no reload necessary! 2025-10-14 14:08:13 -07:00
04089744e6 Change label for starting cronjob. 2025-10-14 12:22:41 -07:00
75711c6c20 Ensure backup's TRASH folder gets created and used properly. 2025-10-14 08:35:23 -07:00
c4032b5b94 Remove directory from basename variable. 2025-10-14 08:14:49 -07:00
d7820ed373 Add safeties to backup script. 2025-10-14 08:12:57 -07:00
d9f8318e66 Add recommendation to use /opt/ for LibreTranslate models. 2025-10-14 07:12:59 -07:00
a5a80276ac Folder name should not be plural. 2025-10-14 07:07:07 -07:00
c070d7cb92 Use a dedicated backup directory rather than /tmp. 2025-10-14 07:02:13 -07:00
6 changed files with 51 additions and 32 deletions

View File

@@ -6,7 +6,7 @@
FROM node:lts-slim FROM node:lts-slim
# Cache System Dependencies # Cache System Dependencies
RUN apt-get update && apt-get install -y git php-cli sudo curl RUN apt-get update && apt-get install -y git php-cli sudo curl procps
# Cache Node Dependencies # Cache Node Dependencies
RUN mkdir -p /var/www/api RUN mkdir -p /var/www/api
@@ -16,10 +16,18 @@ RUN npm install
# Install + Run Website # Install + Run Website
CMD cd /var/www/api && \ CMD cd /var/www/api && \
rm -rfv pages main.js run.sh && \ echo "Dockerfile: Ensure symlink is properly deleted if it exists..." && \
git clone https://git.hyperling.com/me/nodejs-website website && \ ls -l website/files; rm -v website/files; sleep 0 && \
rm -rfv website/files && \ echo "Dockerfile: Clone the website's Git repo..." && \
mv -v website/* ./ && \
rm -rfv website && \ rm -rfv website && \
echo "Starting Website's Run Script" && \ git clone https://git.hyperling.com/me/nodejs-website $BRANCH website && \
echo "Dockerfile: Remove dummy files and replace with symlink..." && \
rm -rfv website/files && \
cd website && \
echo -n "Dockerfile: Using branch " && \
git branch && \
ln -sv ../files ./files && \
echo "Dockerfile: Allow files under files/ to be ignored by Git..." && \
find ./files -exec git update-index --assume-unchanged {} \; && \
echo "Dockerfile: Start website!" && \
./run.sh ./run.sh

View File

@@ -10,11 +10,15 @@ services:
restart: always restart: always
ports: ports:
- 8317:8080 - 8317:8080
environment:
- BRANCH=$BRANCH
- CPU=$CPU
- MEM=$MEM
volumes: volumes:
- ./files:/var/www/api/files - ./files:/var/www/api/files
deploy: deploy:
mode: global mode: global
resources: resources:
limits: limits:
cpus: '0.25' cpus: $CPU
memory: 256M memory: $MEM

View File

@@ -1,21 +0,0 @@
# 2022-10-29
# Hyperling.com configuration.
# 2023-01-24 container needs 128M to get started fully then settles to 25M.
services:
app:
container_name: www-app
build:
context: ./
network: host
restart: always
ports:
- 8317:8080
volumes:
- ./files:/var/www/api/files
deploy:
mode: global
resources:
limits:
cpus: '0.10'
memory: 128M

View File

@@ -7,3 +7,18 @@
# Subsequent builds consistently take less than 2 seconds. # Subsequent builds consistently take less than 2 seconds.
# Testing was done on the micro server, not a workstation. # Testing was done on the micro server, not a workstation.
COMPOSE_BAKE=true COMPOSE_BAKE=true
## Branch ##
# Allow choosing the branch. By leaving it blank, the main branch will be used.
# Should be in the full "--branch my-branch" syntax.
BRANCH=
#BRANCH="--branch dev"
## Performance ##
# Standard Server
CPU=0.25
MEM=0.25G
# Micro Server
# 2023-01-24 container needs 128M to get started fully then settles to 25M.
#CPU=0.10
#MEM=128M

View File

@@ -47,3 +47,7 @@ MODELS_DIR=../../Volumes/LibreTranslate/models
## them from backup type locations such as Volumes/LibreTranslate/ and /var/. ## them from backup type locations such as Volumes/LibreTranslate/ and /var/.
## Please see the README for the CRON command related to this setting. ## Please see the README for the CRON command related to this setting.
# MODELS_DIR=/tmp/LibreTranslate/models # MODELS_DIR=/tmp/LibreTranslate/models
## Can also place them under /opt/ which may be recommended by FHS standards.
## This keeps them from taking up precious RAM / swap if using tmpfs or similar.
# MODELS_DIR=/opt/LibreTranslate/models

View File

@@ -11,15 +11,24 @@ source $DIR/../source.env
TAG="Docker" TAG="Docker"
DATE="`date "+%Y%m%d-%H%M%S"`" DATE="`date "+%Y%m%d-%H%M%S"`"
BASENAME="/tmp/Backup" BACKUP_DIR="/srv/backup"
file="$BASENAME.$DATE.$HOSTNAME.$TAG.zip" BASENAME="Backup"
file="$BACKUP_DIR/$BASENAME.$DATE.$HOSTNAME.$TAG.zip"
time="`which time`" time="`which time`"
## Main ## ## Main ##
# Ensure backup directory exists with correct permissions.
mkdir -pv "$BACKUP_DIR"
mkdir -pv "$BACKUP_DIR/TRASH"
chmod -Rv 775 "$BACKUP_DIR"
chown -Rv root:root "$BACKUP_DIR"
# Remove the last backup. # Remove the last backup.
echo "`date` - Removing existing files." echo "`date` - Removing existing files."
rm -fv "$BASENAME"*"$TAG"* cd "$BACKUP_DIR"
mv -v "$BASENAME"*"$TAG"* TRASH/
rm -v TRASH/*
echo -e "\n`date` - Take down services for a cold backup." echo -e "\n`date` - Take down services for a cold backup."
manage.sh -d manage.sh -d