Compare commits

..

76 Commits

Author SHA1 Message Date
8a8845d898 Merge pull request '¡Hyperling.com 2.0!' (#16) from dev into main
Reviewed-on: #16
2025-10-14 14:54:53 -07:00
65be246673 Remove idea, working fine without it. 2025-10-14 14:38:27 -07:00
eabf56ed93 Specify that this is not a TODO, just listing TODO items. 2025-10-14 14:38:01 -07:00
d55b13ecbf Add more comments. 2025-10-14 14:03:28 -07:00
cc8a7710a1 Enhance comment on WHY there is nothing to do. :) 2025-10-14 14:01:52 -07:00
ad83090b05 Add further comments for future self and others. 2025-10-14 14:01:08 -07:00
684c237ac1 Remove excess exit and provide output var in case it's helpful in later debugging. 2025-10-14 13:57:33 -07:00
23c0090a47 Only run apt install command once. 2025-10-14 13:51:58 -07:00
e57ec6de50 Add automatic restart if a primary program is updated. 2025-10-14 13:47:38 -07:00
c790dd6736 Reword the output. 2025-10-14 13:41:46 -07:00
6e3666cea2 Begin watching git's status too, not just the grep status of not already being up to date. Add more conditional branches so that errors are logged properly. 2025-10-14 13:37:55 -07:00
7379df38de Make output even more succint. Remove duplicate cd command. 2025-10-14 13:11:37 -07:00
2a915fec69 Fancify script. 2025-10-14 13:06:21 -07:00
fa0e9907ee Use full executable path. Move the ps information out of the loop to prevent log spam. 2025-10-14 13:06:11 -07:00
2c3b5056ae Use a single echo command to announce the program's run. 2025-10-14 12:52:07 -07:00
f5e0c39458 Change announcement wording. Refactor code HTML. 2025-10-14 12:51:06 -07:00
645093da36 Add the announcement video to Freedom page. 2025-10-14 12:48:39 -07:00
f57583b1a9 Refactor comments and output. 2025-10-14 12:46:57 -07:00
51b2ebf8e6 Do not do a full kill, allows website to keep uptime while getting updates. 2025-10-14 12:36:57 -07:00
5a6d91296d Change label for local cronjob. 2025-10-14 12:23:28 -07:00
5306cb78d3 Change to the proper package name for ps. 2025-10-14 12:17:17 -07:00
749a018a6e Remove rebase since files/ is being ignored in Docker container. 2025-10-14 12:16:59 -07:00
f212c41734 Add ps requirement, missing from Docker container! 2025-10-14 11:53:13 -07:00
cba46bfc23 Add explicit rebase. 2025-10-14 11:51:19 -07:00
b734be4054 Enable kill mode. 2025-10-14 11:50:50 -07:00
45915d2914 Add comment on how to stop the 2025-10-14 11:48:55 -07:00
1fa30724d2 Use a parent process checker for both forked jobs. 2025-10-14 11:43:03 -07:00
6def1a3007 Echo the killed processes. 2025-10-14 11:26:43 -07:00
ed7c2b8b29 Add automatic execution of cronjob through run script. 2025-10-14 11:25:35 -07:00
3fcd6af3a9 Move cd to be more in the program. 2025-10-14 11:24:14 -07:00
8507cbd189 Add dedicated cronjob file for keeping the project in sync on docker containers. 2025-10-14 11:18:39 -07:00
8207702442 Make the dates pop a bit more. 2025-10-14 10:30:22 -07:00
0ec47180e2 Add part about testing. 2025-10-14 10:30:08 -07:00
c28f7a92d9 Break open HTML so it is more readable. Add comment for gap. 2025-10-14 10:19:02 -07:00
2d270542f0 Add subtitles of eBooks, as well as a small gap between the list items. 2025-10-14 10:17:51 -07:00
ba0cfe8b56 Show advisory on this page since they are no longer related. 2025-10-14 10:17:24 -07:00
fa8eef51ff Reword and refactor advisory. 2025-10-14 10:12:27 -07:00
730940b003 Remove All, seems too wordy. 2025-10-14 09:58:35 -07:00
58fab1850b Place subtitle header in its own row. 2025-10-14 06:39:28 -07:00
a5b6227fef Remove indentation on centered link. Remove comment with Markdown link. 2025-10-14 06:37:14 -07:00
999a919a7f Remove title image. 2025-10-14 06:33:27 -07:00
9afec80742 Remove title image. 2025-10-14 06:33:18 -07:00
550485093c Remove TBD. 2025-10-14 06:33:04 -07:00
3a736dec82 Remove TBD. 2025-10-14 06:32:54 -07:00
15bbb2e33e Add links to announcement videos. 2025-10-14 06:30:24 -07:00
c2193c9651 Refactor banner image CSS. 2025-10-14 06:30:03 -07:00
e0ae65304d Get the banner images to play MUCH better thanks to midnight epiphany of using background. :) 2025-10-14 06:00:26 -07:00
3273fb62c8 Remove extra newlines around PHP tags. 2025-10-13 15:37:52 -07:00
0d3822258f Change intro text to consistently use header class as the background color. 2025-10-13 15:34:27 -07:00
825bf62851 Change wording about offline time. 2025-10-13 15:25:02 -07:00
46e357d2bb Hide media photo even if banner does not have photos. 2025-10-13 15:23:44 -07:00
8f24d80e8d Add variable to control whether the advisory is shown so that it can easily be toggled. Helps during testing! 2025-10-13 15:22:07 -07:00
c6289be09c Found another page with a title photo. Disable if banner photos are on. 2025-10-13 15:21:28 -07:00
24af65bfeb Use the global variable to determine whether page title images are shown. No if images are in the banner. Yes if the banner is only the logo. 2025-10-13 15:18:48 -07:00
c479aa5b73 Use a global variable for whether the banner images are being shown. 2025-10-13 15:18:02 -07:00
1cec38a99e Remove extra newline. 2025-10-13 15:11:54 -07:00
a8b60b5662 Set the banner pics to true for a while. 2025-10-13 15:10:59 -07:00
3053b941d7 Change mode of new announcements file. 2025-10-13 15:08:47 -07:00
63da008d41 Remove the hardcoded height of the banner. 2025-10-13 15:07:30 -07:00
41dd1719ac Add ability to have images surround the banner. 2025-10-13 15:06:55 -07:00
692b6523a1 Change from "Latest" to "All" announcements. 2025-10-13 14:43:15 -07:00
8699e8094d Remove old spacers. Did not look good with the double rows. 2025-10-13 07:11:57 -07:00
3429ffc4f6 Add note on why Confused section of Obtainum config is commented. 2025-10-13 07:11:09 -07:00
fa07738520 Change menu link for Videos to go directly to Odysee. 2025-10-13 07:08:39 -07:00
06b35c2091 Add TBD for image on Apps page. 2025-10-13 07:05:47 -07:00
7e1162ae39 Add placeholder alt text for all images. 2025-10-13 07:03:55 -07:00
930364f8d1 Fix the announcements header, does not need redundant image. 2025-10-13 06:59:36 -07:00
e9831646a7 Change more wording in announcements. 2025-10-13 06:57:03 -07:00
f01f8e5e82 Edit layout, linking, and wording of announcements. 2025-10-13 06:52:27 -07:00
363242a4d5 Add and style historic announcements. Still needs work. 2025-10-13 06:40:53 -07:00
214ac0d594 Create the announcements subpage. 2025-10-13 06:06:28 -07:00
7ce1c5216f Change the homepage to be a list of announcements. 2025-10-13 06:06:18 -07:00
c7c3485896 Move the Apps page to be standalone. 2025-10-13 06:05:59 -07:00
06c0a5ae46 Change menu to have media types broken out. 2025-10-13 05:43:53 -07:00
fa37d4d0ee Reword the Obtainium section and add subheaders. 2025-10-09 14:03:34 -07:00
5cbe5372ea Add link to Obtainium configuration. 2025-10-09 13:56:52 -07:00
25 changed files with 652 additions and 337 deletions

View File

@@ -25,7 +25,7 @@ cd www
Then in a web browser, navigate to `localhost:8080`. Then in a web browser, navigate to `localhost:8080`.
## TODO ## TODO Items
All goals are currently completed. All goals are currently completed.

66
cronjob.sh Executable file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# 2025-10-14 Hyperling
# Copied cronjob.sh from env-docker/Config/Hugo-Example/files/ to use for this
# project so that docker container can do periodic git pulls rather than having
# to reload /rebuild the container each time a release is pushed out.
## Setup ##
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")"
cd $DIR
DIR="`pwd`"
NAME="'$PROG'"
function log {
echo -e "`date` : $NAME - $1"
}
function kill-project {
# Kill node.js which will complete run.sh and restart any Docker containers.
# This is more intended towards Development and Stage sites since Production
# will only see git changes when a pull request is manually completed.
log "Stopping continuous processes!"
pkill node
}
function reload-project {
# Nothing to do, run.sh and main.js automatically uses the latest files.
log "Project reloaded successfully!"
}
## Main ##
# Pull any updates, and if the project is already up to date, exit successfully.
output="`git pull`"
git_status="$?"
echo "$output" | grep -v "up to date"
grep_status="$?"
log "Pull status is '$git_status', checking for changes is '$grep_status'."
# Check whether the continuously running jobs have been updated.
echo "$output" | grep "main.js"
main_changed="$?"
echo "$output" | grep "run.sh"
run_changed="$?"
# Determine where we've landed and whether we need to do anything.
if [[ $git_status != 0 ]]; then
log "*** ERROR: Git reported a failure! ***"
exit 1
elif [[ $git_status == 0 && ($main_changed == 0 || $run_changed == 0) ]]; then
log "Either main ('$main_changed'), or run ('$run_changed') were changed!"
kill-project
elif [[ $git_status == 0 && $grep_status == 0 ]]; then
reload-project
elif [[ $git_status == 0 && $grep_status != 0 ]]; then
log "Nothing to do. '$output'"
else
log "*** WARNING: Unknown Situation ***"
fi
## Success! ##
exit 0

View File

@@ -5,15 +5,18 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Who Am I?</h1> <h1 class="col-12 title">Who Am I?</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/about.jpg" alt=""> <img src="/files/media/icons/about.jpg" alt="<<about.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 header">
<p> <p>
Hi there! My name is Chad, I'm the primary content creator Hi there! My name is Chad, I'm the primary content creator
behind Hyperling and HyperVegan. Thank you for your interest! behind Hyperling and HyperVegan. Thank you for your interest!
@@ -26,7 +29,6 @@
planted at least one fruit tree or had a small square foot planted at least one fruit tree or had a small square foot
garden. We would be in paradise! garden. We would be in paradise!
</p> </p>
<!-- TBD change this to 'Coding, videos, and art' :) -->
<p> <p>
Coding and videos aren't my only hobbies, I'm also big into Coding and videos aren't my only hobbies, I'm also big into
health. I see it as humanity's most important asset and take a health. I see it as humanity's most important asset and take a
@@ -51,7 +53,6 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/about/notice.php"; include "subpages/about/notice.php";
include "subpages/about/health.php"; include "subpages/about/health.php";

View File

@@ -6,5 +6,285 @@
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Apps"; $GLOBALS["HEADER_TITLE"] = "Apps";
} }
include "home.php"; include "helpers/body_open.php";
?>
<div class="row" id="experience">
<h2 class="col-12 title">My Profession</h2>
</div>
<div class="row">
<div class="col-12 header">
<p>
I'm a professional software engineer who's been playing with
Linux system administration from a young age.
Much of my career has focused on back-end / database systems
and optimizing workflows.
I feel that I specialize in building systems with "no sharp
edges", meaning that I test rigorously to ensure there aren't any
ways the user can hurt themselves or the system.
In my free time I enjoy learning new
languages and writing apps for Android.
</p>
<!--<p><a href="/resume/">My resume can be found here</a>.</p>-->
</div>
</div>
<div class="row" id="obtainium">
<h4 class="col-12 header">Obtainium Configuration</h4>
</div>
<div class="row text">
<div class="col-6 text">
<strong>Automatic Import</strong>
<p>
This JSON file will add all of my apps for you in its own
convenient group:
</p>
<ul class="indent"><li>
<a href="https://git.hyperling.com/me/env-obtainium-hyperling/src/branch/main/obtainium-export.json"
target="_blank" rel="noopener noreferrer"
>
[obtainium-export.json] | Hyperling's Apps
</a>
</li></ul>
<p>
Then if you only want to keep a subset of the apps you may either
mark the unwanted ones as Track Only or delete them from the app.
</p>
</div>
<div class="col-6 text">
<strong>Manual Imports</strong>
<p>
If you decide to add the apps 1-by-1 based on the URLs in the
section below, here is how to show the correct version numbers:
</p>
<ul>
<li>Enable <i>"Sort by only the last segment of the link"</i>.</li>
<li>
Set the <i>"Version string extraction RegEx"</i> field to:
<code>[0-9\.]+[0-9]+</code>
</li>
</ul>
<p>
Otherwise, using <i>"Take first link"</i> ensures you get the
proper update but will show pseudo versions.
</p>
</div>
<!--
TBD/TODO, if adding this section, make it something that's
minimized by default and can be expanded open. Otherwise too big.
<div class="col-12 text">
<strong>Confused?</strong>
<p>
Obtainium is a wonderful app for managing your APKs and sharing
the configuration across your devices or with other people.
</p>
<p>
It is not my project, but I highly recommend using it.
<a href="TBD/TODO"
target="_blank" rel="noopener noreferrer"
>Find its APK here (TBD/TODO!)</a> and
<a>its documentation here</a>.
</p>
</div>
-->
</div>
<div class="row" id="android">
<h3 class="col-12 header">Android Apps</h3>
</div>
<div class="row center text">
<div class="col-12 text border" id="expense">
<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases">
<figure>
<img class="app-icon" loading="lazy" alt="<<expense.png>>"
src="/files/media/icons/expense.png"
>
<figcaption>
Recurring Expense Tracker
</figcaption>
</figure>
</a>
<p>
Keep track of repeating expenses and
view projections of their effect on your finances.
First app written with Flutter.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="tictactoe">
<a href="https://git.hyperling.com/me/android-tictactoe/releases">
<figure>
<img class="app-icon" loading="lazy" alt="<<tictactoe.png>>"
src="/files/media/icons/tictactoe.png"
>
<figcaption>
Tic-Tac-Toe
</figcaption>
</figure>
</a>
<p>
Play against a friend or a range of AIs.
Written to practice Kotlin/Compose.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/android-tictactoe/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-tictactoe/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="ctfu">
<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt="<<ctfu.png>>"
src="/files/media/icons/ctfu.png"
>
<figcaption>
Carb Up! BETA
</figcaption>
</figure>
</a>
<p>
Calculate cost-effective foods on a High Carb Low Fat lifestyle.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.carbupbeta"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-carb-up/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="timer">
<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt="<<infinitetimer.png>>"
src="/files/media/icons/infinitetimer.png"
>
<figcaption>
Infinite Timer
</figcaption>
</figure>
</a>
<p>
Play a notification at your chosen interval.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.infinitetimer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-infinite-timer/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="sleep">
<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt="<<t45mr.png>>"
src="/files/media/icons/t45mr.png"
>
<figcaption>
45 Minute Rule
</figcaption>
</figure>
</a>
<p>
Determine a good bedtime for waking during light sleep.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.the45minuterule"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-45-minute-rule/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="games">
<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt="<<hypergames.png>>"
src="/files/media/icons/hypergames.png"
>
<figcaption>
HyperGames
</figcaption>
</figure>
</a>
<p>
Started as a fun project for learning.
Playable but unfinished.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=apps.hyperling.com.platformer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-hypergames/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--
<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>
-->
</div>
</div>
<div class="row" id="other">
<h3 class="col-12 header">Other Programs</h3>
</div>
<div class="row">
<div class="col-12 text">
<p>
For a full list of software including my Ansible automation,
Docker setup, source code for this website, and other
fun/random toys, check out
<a href="https://git.hyperling.com/me" target="_blank">My Projects</a>.
</p>
</div>
</div>
<?php
include "helpers/body_close.php";
?> ?>

10
pages/books.php Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/php
<!--
Alias for where Books menu item should go.
-->
<?php
if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Books";
}
include "media.php";
?>

View File

@@ -5,21 +5,28 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Contact</h1> <h1 class="col-12 title">Contact</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/contact.jpg" alt=""> <img src="/files/media/icons/contact.jpg" alt="<<contact.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 title center"> <div class="col-12 header center">
<p> <p>
Timely responses are not guarenteed, as I spend a majority of Timely responses are not guarenteed, as I spend a large amount of
my time offline and enjoy traveling in reception-free zones. time offline and enjoy traveling in reception-free zones.
</p> </p>
</div> </div>
</div> </div>
<div class="row">
<h2 class="col-12 header">Methods</h2>
</div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 text">
<p> <p>
@@ -42,7 +49,6 @@
</li></ul> </li></ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -5,12 +5,8 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Current Diet</h1> <h1 class="col-12 title">Current Diet</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/tbd.jpg" alt="Image TBD">
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 text">
@@ -208,7 +204,6 @@
</ul> </ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -9,7 +9,6 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Voluntary Sovereignty</h1> <h1 class="col-12 title">Voluntary Sovereignty</h1>
</div> </div>
@@ -59,16 +58,30 @@
<p> <p>
Curious how I made it? Check out its Git repository: Curious how I made it? Check out its Git repository:
</p> </p>
<ul class="indent"><li> <ul class="indent">
<li>
<a href="https://git.hyperling.com/me/ebook-freedom-flyer" <a href="https://git.hyperling.com/me/ebook-freedom-flyer"
target="_blank" rel="noopener noreferrer" target="_blank" rel="noopener noreferrer"
> >
[CODE] | Source Code [CODE] | Source Code
</a> </a>
</li></ul> </li>
</div> </ul>
</div>
<p>
Here is the video it was announced in:
</p>
<ul class="indent">
<li>
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
target="_blank" rel="noopener noreferrer"
>
[Odysee] | HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview"
</a>
</li>
</ul>
</div>
</div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -3,13 +3,12 @@
Page to provide ways people can support me. Page to provide ways people can support me.
--> -->
<?php <?php
$GLOBALS["ADVISORY"] = false; //$GLOBALS["ADVISORY"] = false;
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Health"; $GLOBALS["HEADER_TITLE"] = "Health";
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">My Health Protocol</h1> <h1 class="col-12 title">My Health Protocol</h1>
</div> </div>
@@ -109,7 +108,6 @@
</ul> </ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -1,12 +1,13 @@
#!/usr/bin/php #!/usr/bin/php
<?php
$show_advisory = true;
if ($show_advisory) echo '
<div class="row"> <div class="row">
<p><!-- Gap Area --></p> <p><!-- Gap Area --></p>
</div> </div>
<div class="row center" id="advisory"> <div class="row center title" id="advisory">
<div class="col-12 title"> <i><h2 class="col-12 title">Latest Announcement</h2></i>
<i><h2>Announcements</h2></i>
</div>
<a href="/freedom/"> <a href="/freedom/">
<div class="col-12 text"> <div class="col-12 text">
<u class="orange">2025-09-28</u> <u class="orange">2025-09-28</u>
@@ -16,3 +17,5 @@
</div> </div>
</a> </a>
</div> </div>
';
?>

View File

@@ -21,3 +21,16 @@
.banner-bottom { .banner-bottom {
background-color: #33CC33; background-color: #33CC33;
} }
.banner-image {
background-repeat: no-repeat;
background-position: center, center;
height: 237px; /* 69*3[banner stripes] + 15*2[padding top+bot] */
}
.banner-image01 {
background-image: url("/files/media/icons/home.jpg");
}
.banner-image02 {
background-image: url("/files/media/icons/contact.jpg");
}

View File

@@ -1,8 +1,32 @@
#!/usr/bin/php #!/usr/bin/php
<?php
// Dynamic testing of whether new images around the banner is wanted.
if (!isset($GLOBALS["SHOW_BANNER_PICS"])) {
$GLOBALS["SHOW_BANNER_PICS"] = true;
}
$show_pics = $GLOBALS["SHOW_BANNER_PICS"];
$banner_width = $show_pics ? 6 : 12;
?>
<a href='/about/'> <a href='/about/'>
<div class="row col-12 header"> <div class="row">
<?php if ($show_pics) echo '
<div class="col-3 header center banner-image banner-image01">
<!-<img src="/files/media/icons/home.jpg"
alt="<<banner01.jpg>>"
>-->
</div>
';?>
<div class="col-<?php echo "$banner_width"; ?> header">
<div class="banner-top">Peace</div> <div class="banner-top">Peace</div>
<div class="banner-middle">Love</div> <div class="banner-middle">Love</div>
<div class="banner-bottom">Happiness</div> <div class="banner-bottom">Happiness</div>
</div> </div>
<?php if ($show_pics) echo '
<div class="col-3 header center banner-image banner-image02">
<!--<img src="/files/media/icons/contact.jpg"
alt="<<banner02.jpg>>"
>-->
</div>
';?>
</div>
</a> </a>

View File

@@ -2,6 +2,5 @@
<?php <?php
include "footer.php" include "footer.php"
?> ?>
</body> </body>
</html> </html>

View File

@@ -2,9 +2,7 @@
<?php <?php
include "header.php"; include "header.php";
?> ?>
<body> <body>
<?php <?php
include "banner.php"; include "banner.php";
include "menu.php"; include "menu.php";

View File

@@ -1,12 +1,19 @@
#!/usr/bin/php #!/usr/bin/php
<div class="row header menu"> <div class="row header menu">
<ul class="menu-list"> <ul class="menu-list">
<li class="col-1"></li> <li class="col-3 menu-item"><a href="/">Home</a></li>
<li class="col-2 menu-item"><a href="/apps/">Apps</a></li> <li class="col-3 menu-item"><a href="/about/">About</a></li>
<li class="col-2 menu-item"><a href="/media/">Media</a></li> <li class="col-3 menu-item"><a href="/contact/">Contact</a></li>
<li class="col-2 menu-item"><a href="/about/">About</a></li> <li class="col-3 menu-item"><a href="/support/">Support</a></li>
<li class="col-2 menu-item"><a href="/contact/">Contact</a></li> </ul>
<li class="col-2 menu-item"><a href="/support/">Support</a></li> <ul class="menu-list">
<li class="col-1"></li> <li class="col-3 menu-item"><a href="/apps/">Apps</a></li>
<li class="col-3 menu-item"><a href="/books/">Books</a></li>
<li class="col-3 menu-item">
<a href="https://odysee.com/@HyperVegan:2"
target="_blank" rel="noopener noreferrer"
>Videos</a>
</li>
<li class="col-3 menu-item"><a href="/photos/">Photos</a></li>
</ul> </ul>
</div> </div>

View File

@@ -4,19 +4,22 @@
--> -->
<?php <?php
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Home"; $GLOBALS["HEADER_TITLE"] = "Announcements";
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Welcome!</h1> <h1 class="col-12 title">Welcome!</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/home.jpg" alt=""> <img src="/files/media/icons/home.jpg" alt="<<home.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 header center">
<p> <p>
Thank you for visiting my site! My goal is to make the world a Thank you for visiting my site! My goal is to make the world a
better place. Hopefully you find content here which helps empower better place. Hopefully you find content here which helps empower
@@ -24,9 +27,8 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/home/apps.php"; include "subpages/home/announcements.php";
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -8,15 +8,18 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Media</h1> <h1 class="col-12 title">Media</h1>
<!--<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/videos.jpg" alt=""> <img src="/files/media/icons/videos.jpg" alt="<<videos.jpg>>">
</div> </div>
';?>-->
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text center"> <div class="col-12 header center">
<p> <p>
My written works, social platforms, and photos can be found here. My written works, social platforms, and photos can be found here.
</p> </p>
@@ -32,11 +35,18 @@
<p> <p>
I enjoy writing! Find my free eBooks below. I enjoy writing! Find my free eBooks below.
</p> </p>
<ul class="indent"><li> <ul class="indent">
2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a> <li>
</li><li> 2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a> |
2024-03-07: <a href="/health/">My Health Protocol</a> Existing in a statist society with the least amount of friction.
</li></ul> </li>
<li><p><!-- Small Gap --></p></li>
<li>
2024-03-07: <a href="/health/">Hyperling's Health Protocol</a> |
Health is a lifestyle, not a diet. Align yourself with Nature
to receive its blessings.
</li>
</ul>
</div> </div>
</div> </div>
@@ -107,7 +117,6 @@
</li></ul> </li></ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -41,7 +41,7 @@ function start_main_page {
echo -e "\t\t</div>" >> $mainpage echo -e "\t\t</div>" >> $mainpage
echo -e "\t\t<div class='row'>" >> $mainpage echo -e "\t\t<div class='row'>" >> $mainpage
echo -e "\t\t\t<div class='col-12 text'>" >> $mainpage echo -e "\t\t\t<div class='col-12 header'>" >> $mainpage
echo -en "\t\t\t\t<p>You may click on an album name to " >> $mainpage echo -en "\t\t\t\t<p>You may click on an album name to " >> $mainpage
echo -en "view all of its files, or click on a specific image to bring up the " >> $mainpage echo -en "view all of its files, or click on a specific image to bring up the " >> $mainpage
echo -en "full resolution. On the album pages you may also click an image or " >> $mainpage echo -en "full resolution. On the album pages you may also click an image or " >> $mainpage

View File

@@ -8,7 +8,6 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Lists of Resources</h1> <h1 class="col-12 title">Lists of Resources</h1>
</div> </div>
@@ -68,7 +67,6 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -8,12 +8,10 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Resume</h1> <h1 class="col-12 title">Resume</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/home.jpg" alt=""> <!-- TBD use a new photo -->
</div> </div>
<div class="row">
<h2 class="col-12 title center">Current Status : Traveling Full Time</h2> <h2 class="col-12 title center">Current Status : Traveling Full Time</h2>
</div> </div>
<div class="row"> <div class="row">
@@ -21,25 +19,15 @@
<p> <p>
Interested in hiring me? View my resume below! Interested in hiring me? View my resume below!
</p> </p>
<ul class="indent"><li> <!--<ul class="indent"><li>-->
<a href="https://hyperling.com/files/media/documents/Resume.pdf" <a href="https://hyperling.com/files/media/documents/Resume.pdf"
target="_blank" rel="noopener noreferrer" target="_blank" rel="noopener noreferrer"
> >
[PDF] | Direct Download [PDF] | Direct Download
</a> </a>
</li></ul> <!--</li></ul>-->
<!-- For those sneaky folks who look at source code. ;)
<ul class="indent"><li>
<a href="https://hyperling.com/files/media/documents/resume.md"
target="_blank" rel="noopener noreferrer"
>
[Markdown] | Direct Download
</a>
</li></ul>
-->
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -0,0 +1,109 @@
#!/usr/bin/php
<?php
$long = true;
?>
<div class="row" id="obtainium">
<h2 class="col-12 header">Announcements</h2>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/freedom/">2025-09-28</a></strong>
<p>
I wrote another short free eBook, "Voluntary Sovereignty", check it out
<a href="/freedom/">here</a>!
</p>
<?php if ($long) echo "
<p>
It discusses how to live in order to create a truly free society,
as well as how to conduct oneself in today's authoritarian system.
</p>
<p>
Learn what your rights are and how to avoid being harassed by
order followers while living how you were meant to be on the Earth.
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/apps/#expense">2025-03-27</a></strong>
<p>
My new Android app
<a href="/apps/#expense">"Expense Tracker"</a>
has been completed!
</p>
<?php if ($long) echo "
<p>
It allows for tracking recurring expenses against income and static assets,
helping plan for financial planning and savings goals.
</p>
<p>
This is my first app developed using the Flutter framework.
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20250402-HyperVegan-ExpenseTrackerApp:4"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "Expense Tracker App")</a>
</p>
</div>
</a>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/health/">2024-03-07</a></strong>
<p>
Find my free eBook, "Hyperling's Health Protocol",
<a href="/health/">here</a>!
</p>
<?php if ($long) echo "
<p>
It contains a summary of my favorite and most useful lifestyle advice.
</p>
<p>
These range across the basics of food / water / sleep / exercise
as well as less discussed topics of environment and positivity.
</p>
<p>
Reverse chronic disease and live your life full of energy and abundance!
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20240306_MyHealthProtocol-Book:9"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "My Health Protocol | eBook")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/apps/#tictactoe">2024-03-31</a></strong>
<p>
There's a new app in town,
<a href="/apps/#tictactoe">Tic-Tac-Toe</a>!
</p>
<?php if ($long) echo "
<p>
This was written to learn Kotlin style Android programming.
</p>
<p>
It allows playing against a range of automated opponents,
as well as a local human player!
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20240401_NewYearNewApp:1"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "New Year, New App")</a>
</p>
</div>
</div>

View File

@@ -1,244 +0,0 @@
#!/usr/bin/php
<div class="row" id="experience">
<h2 class="col-12 header">My Profession</h2>
</div>
<div class="row">
<div class="col-12 text">
<p>
I'm a professional software engineer who's been playing with
Linux system administration from a young age. Much of my career
has focused on back-end / database systems and optimizing
workflows. In my free time I enjoy learning new languages and
writing apps for Android.
</p>
<!--<p><a href="/resume/">My resume can be found here</a>.</p>-->
</div>
</div>
<div class="row" id="programs">
<h2 class="col-12 header">Public Programs</h2>
</div>
<div class="row">
<div class="col-12 text">
<p>
Please feel welcome to use any of my free software below.
</p>
</div>
</div>
<div class="row" id="android">
<h3 class="col-12 header">Android Apps</h3>
</div>
<div class="row center text">
<div class="col-12 text border" id="expense">
<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/expense.png"
>
<figcaption>
Recurring Expense Tracker
</figcaption>
</figure>
</a>
<p>
Keep track of repeating expenses and
view projections of their effect on your finances.
First app written with Flutter.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="tictactoe">
<a href="https://git.hyperling.com/me/android-tictactoe/releases">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/tictactoe.png"
>
<figcaption>
Tic-Tac-Toe
</figcaption>
</figure>
</a>
<p>
Play against a friend or a range of AIs.
Written to practice Kotlin/Compose.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/android-tictactoe/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-tictactoe/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="ctfu">
<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/ctfu.png"
>
<figcaption>
Carb Up! BETA
</figcaption>
</figure>
</a>
<p>
Calculate cost-effective foods on a High Carb Low Fat lifestyle.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.carbupbeta"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-carb-up/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="timer">
<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/infinitetimer.png"
>
<figcaption>
Infinite Timer
</figcaption>
</figure>
</a>
<p>
Play a notification at your chosen interval.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.infinitetimer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-infinite-timer/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="sleep">
<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/t45mr.png"
>
<figcaption>
45 Minute Rule
</figcaption>
</figure>
</a>
<p>
Determine a good bedtime for waking during light sleep.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.the45minuterule"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-45-minute-rule/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="games">
<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/hypergames.png"
>
<figcaption>
HyperGames
</figcaption>
</figure>
</a>
<p>
Started as a fun project for learning.
Playable but unfinished.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=apps.hyperling.com.platformer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-hypergames/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--
<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>
-->
</div>
</div>
<div class="row" id="obtainium">
<h4 class="col-12 header">Obtainium Configuration</h4>
</div>
<div class="row text">
<div class="col-12 text">
<p>
In order to have the correct version numbers in Obtainium:
</p>
<ul>
<li>Enable <i>"Sort by only the last segment of the link"</i>.</li>
<li>
Set the <i>"Version string extraction RegEx"</i> field to:
<code>[0-9\.]+[0-9]+</code>
</li>
</ul>
<p>
Otherwise, <i>"Take first link"</i> works with pseudo versions.
</p>
</div>
</div>
<div class="row" id="other">
<h3 class="col-12 header">Other Programs</h3>
</div>
<div class="row">
<div class="col-12 text">
<p>
For a full list of software including my Ansible automation,
Docker setup, source code for this website, and other
fun/random toys, check out
<a href="https://git.hyperling.com/me" target="_blank">My Projects</a>.
</p>
</div>
</div>

View File

@@ -50,7 +50,7 @@
<code>me@hyperling.com</code> <code>me@hyperling.com</code>
<br> <br>
<br> <br>
<img src="/files/media/icons/zelle.png" alt=""> <img src="/files/media/icons/zelle.png" alt="<<zelle.png>>">
</div> </div>
<br> <br>

View File

@@ -8,19 +8,21 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Support</h1> <h1 class="col-12 title">Support</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/support.jpg" alt=""> <img src="/files/media/icons/support.jpg" alt="<<support.jpg>>">
</div> </div>
<div class="col-12 text center"> ';?>
<div class="col-12 header center">
<p> <p>
Anything is very much appreciated!! Thank you for considering me! Anything is very much appreciated!! Thank you for considering me!
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/support/donate.php"; include "subpages/support/donate.php";
// 2025-01-04 Not really looking for this type of thing. // 2025-01-04 Not really looking for this type of thing.

56
run.sh
View File

@@ -4,8 +4,14 @@
## Setup ## ## Setup ##
DIR=`dirname $0` DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG=`basename $0` PROG="$(basename -- "${BASH_SOURCE[0]}")"
# Ensure we are executing from this file's directory.
cd $DIR
DIR="`pwd`"
NAME="'$DIR/$PROG'"
echo $NAME
## Functions ## ## Functions ##
@@ -26,6 +32,22 @@ function log {
echo -e "`date` - $message" echo -e "`date` - $message"
} }
log "Local process information:"
ps $$
function check_main {
if [[ -z "$1" ]]; then
echo "ERROR: Subprocess name was not provided. $1"
exit 0
fi
log "Subprocess '$1' checking if main process is still running..."
ps $$ >/dev/null
status=$?
if [[ $status != 0 ]]; then
log "Process '$$' not found, '$1' from '$DIR/$PROG' exiting."
exit 0
fi
}
## Parameters ## ## Parameters ##
while getopts ':p:h' opt; do while getopts ':p:h' opt; do
@@ -47,9 +69,6 @@ fi
## Build Environment ## ## Build Environment ##
# Ensure we are executing from this file's directory.
cd $DIR
sudo="" sudo=""
if [[ -z $LOGNAME ]]; then if [[ -z $LOGNAME ]]; then
LOGNAME="`whoami`" LOGNAME="`whoami`"
@@ -60,21 +79,29 @@ if [[ $LOGNAME != "root" ]]; then
fi fi
log "Check if any system dependencies need installed." log "Check if any system dependencies need installed."
progs=""
if [[ ! `which php` ]]; then if [[ ! `which php` ]]; then
echo "- Installing PHP" echo "- Installing PHP"
$sudo apt-get install -y php-cli progs="$progs php-cli"
fi fi
if [[ ! `which node` ]]; then if [[ ! `which node` ]]; then
echo "- Installing Node" echo "- Installing Node"
$sudo apt-get install -y nodejs progs="$progs nodejs"
fi fi
if [[ ! `which npm` ]]; then if [[ ! `which npm` ]]; then
echo "- Installing NPM" echo "- Installing NPM"
$sudo apt-get install -y npm progs="$progs npm"
fi fi
if [[ ! `which curl` ]]; then if [[ ! `which curl` ]]; then
echo "- Installing Curl" echo "- Installing Curl"
$sudo apt-get install -y curl progs="$progs curl"
fi
if [[ ! `which ps` ]]; then
echo "- Installing PS"
progs="$progs procps"
fi
if [[ -n "$progs" ]]; then
$sudo apt-get install -y $progs
fi fi
# Directories and allowed page types are executable, others are not. # Directories and allowed page types are executable, others are not.
@@ -95,6 +122,7 @@ npm install
log "Removing old index files." log "Removing old index files."
find files/photos/ -name "*".html -print -delete find files/photos/ -name "*".html -print -delete
{ {
check_main photos
count=1 count=1
http_code=0 http_code=0
port="${ports%% *}" port="${ports%% *}"
@@ -120,11 +148,21 @@ find files/photos/ -name "*".html -print -delete
## Main ## ## Main ##
log "Start local cronjob."
while true; do
check_main cronjob
$DIR/cronjob.sh
sleep 30
done &
log "Start website API." log "Start website API."
node ./main.js $ports node ./main.js $ports
status=$? status=$?
## Finish ## ## Finish ##
log "Kill spawned processes."
pkill -eP $$
log "Exiting with status '$status'." log "Exiting with status '$status'."
exit $status exit $status