Compare commits

...

16 Commits

Author SHA1 Message Date
9ce7c641af Merge pull request 'BASHrc Upgrades, Backup Script, DWM Enhancements, Hugo Helpers, Branch Controls' (#7) from dev into main
Reviewed-on: #7
2025-12-01 09:50:54 -07:00
71cf71e29b Ignore the /srv/sftp directory when making system backups. 2025-12-01 09:47:43 -07:00
58525e2a5c Fix function exits to be returns. 2025-12-01 09:05:20 -07:00
f7869fd453 Change the timestamp formatting to be optional. 2025-11-30 19:16:50 -07:00
95212b1c73 Add shortcuts for checking code project branches to easily see which have been promoted and which have dev/stage changes. 2025-11-30 17:56:56 -07:00
ad6b9d4794 Remove TBD from commit code by using commit. :) 2025-11-28 15:00:43 -07:00
c6e8290b43 Add commit function to bashrc. 2025-11-28 14:57:22 -07:00
4a9cd06654 Add code for commit function. 2025-11-28 14:07:34 -07:00
c36a689d8f Add TBD. 2025-11-28 13:50:03 -07:00
0790da74dc Add flatpak Xournal++. Remove flatpak Simplex. Improve comments. 2025-11-22 12:21:07 -07:00
7be9c3a82f Add alias for cleaning unused Flatpak dependencies. 2025-11-22 12:13:50 -07:00
650157478d Add a TBD for preventing annoying behavior in gnome-terminal. 2025-11-22 10:55:02 -07:00
f4c3cc8b8e Add a few small docker shortcuts. 2025-11-22 10:19:30 -07:00
8b6e665db3 Update formatting of README. Add comments on which OS's are truly currently supported. 2025-11-21 17:58:52 -07:00
d8a29952f6 Move messaging apps to the end of the favorites bar. 2025-11-21 15:33:40 -07:00
1d699ae4a5 Run pull and build before taking the container down. 2025-11-21 08:29:02 -07:00
6 changed files with 144 additions and 22 deletions

View File

@@ -1,4 +1,5 @@
# ansible
Getting real with system management via ansible-pull.
Per-system configuration is handled via local files to the provisioned machine,
@@ -10,59 +11,124 @@ accessed via the show-config and edit-config aliases.
This setup is specific to the maintainer's devices and needs. You're welcome to
use it as an example for your needs, but do not expect it to work as-is.
## Currently Supported Linux Systems
## Currently Supported Systems
This information is as of 2025-11-21.
### Primary
These are the operating systems used as my daily driver.
#### Debian Trixie
This has been used as my primary server and workstation OS since at least 2024.
The `apt` version of `ansible` in both Bookworm and Trixie are sufficient,
no longer need to use `ansible` out of `pip`.
### Secondary
These are tested via my Docker project's `ProvisionsTests` container but not currently used as daily drivers.
#### Arch
TBD
#### Fedora
TBD
#### OpenSUSE
TBD
#### Ubuntu
TBD
## Previusly Supported Systems
### Debian Family
#### Debian
100%, but only if using a recent enough version of Ansible. `pip` usually has a
better version than `apt`.
#### Ubuntu
100%, both server and desktop.
#### Pop!_OS
100%, have not used for a while though.
#### Mint
100%, but not really used, just tested once for fun.
#### Parrot Security OS (MATE)
100% for a while, but OS did not serve maintainer's needs and 404 errors were
terrible while updating. Ubuntu Rolling Rhino filled the gap.
### Arch Family
#### Arch
100% at some point, including installation and configuration of a Desktop Environment.
#### Manjaro
100% at some point.
### Fedora Family
#### Fedora 35
Workstation: 100%
Workstation: 100%,
Server: 100%
## Suse Family
### openSUSE Tumbleweed v2022-02-17
Generic: 100%
Generic: 100%,
Workstation: 100%
### openSUSE Leap 15.4
Generic: 100%
Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`.
### NixOS
99%, still need to get Telegraf going and refactor local.yml but everything else
is working well. It is automatically implementing git.hyperling.com/me/env-nixos.
## Currently Supported Unix Systems
### FreeBSD 12, 13
100%, although GUI is not working completely on 13 yet (dash-to-dock doesn't compile).
Software choices are slightly more limited since not `flatpak`-enabled and not feeling a `ports` setup.
## Waiting To Be Tested
### Kali Linux
### Arch Linux ARM
Specifically for the Pinephone.
### Arch Linux x86
Would be great to have Arch get built up by this. Used for many years but left
after update problems due to a long computer hiatus.
### Fedora Mobile
Specifically for the Pinephone.
## Future Goals
Eventually some of the scripts and install files will be put into the files
folder. This will allow initializing systems outside of the maintainer's home
network.
@@ -74,6 +140,8 @@ benefit has yet to be seen for some tasks. Shared facts will definitely continue
to exist under the facts tree.
## Other Notes
### Get Setup Values
Use this command to see the variables for a system:
`ansible localhost -m setup --connection=local`.

View File

@@ -39,7 +39,7 @@ echo "*** Creating backup at '$BACKUP' ***"
sudo zip -rv "$BACKUP" \
/etc /var/{log,mail,spool} /srv /boot \
/usr/local/etc $EXTRA \
-x "/srv/backup/*"
-x "/srv/backup/*" -x "/srv/sftp/*"
status="$?"
if [[ "$status" != 0 ]]; then

View File

@@ -28,7 +28,7 @@ function usage() {
# Parameters:
# 1) The exit status to use.
status=$1
echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c]] [-h] [-x]" >&2
echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c]] [-h] [-x] [-t]" >&2
cat <<- EOF
Compress JPG or PNG image(s). Can handle folders and work recursively.
@@ -45,13 +45,14 @@ function usage() {
-A : Resursively Force, Delete, and Clean.
-h : Display this usage text.
-x : Enable BASH debugging.
-t : Format timestamp.
EOF
exit $status
}
## Parameters ##
while getopts ":s:l:rfFdcAhx" opt; do
while getopts ":s:l:rfFdcAhxt" opt; do
case $opt in
s) in_size="$OPTARG" && size="$in_size" ;;
l) location="$OPTARG" ;;
@@ -64,6 +65,7 @@ while getopts ":s:l:rfFdcAhx" opt; do
A) recurse="Y" && search="find" && force="Y" && delete="Y" && expand="Y" ;;
h) usage 0 ;;
x) set -x ;;
t) format_time="Y" ;;
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
esac
done
@@ -130,7 +132,9 @@ $search "$location" | sort | while read image; do
# Date Data
new_image_exp="${TEMP:0:4}-${TEMP:4:2}-${TEMP:6:2}"
# Time Data
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
if [[ "$format_time" == "Y" ]]; then
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
fi
# Remainder Data
if [[ "${TEMP:14:1}" == "." ]]; then
SEP=""

View File

@@ -453,8 +453,8 @@
return 0
fi
docker compose down &&
docker compose build &&
docker compose down &&
docker compose up -d
if [[ -n "$1" ]]; then
@@ -475,9 +475,9 @@
return 0
fi
docker compose down &&
docker compose pull &&
docker compose build &&
docker compose down &&
docker compose up -d
if [[ -n "$1" ]]; then
@@ -519,12 +519,12 @@
docker ps
return;
fi
echo "*** Going Down ***" &&
docker compose down &&
echo "*** Upgrading Images ***" &&
docker compose pull &&
echo "*** Building Containers ***" &&
docker compose build &&
echo "*** Going Down ***" &&
docker compose down &&
echo "*** Starting Daemons ***" &&
docker compose up -d &&
echo "*** Following Log ***" &&
@@ -554,6 +554,10 @@
return 0
}
alias_docker_other: |
alias docker-stop="docker compose down"
alias docker-start="docker compose up -d && docker compose start"
alias docker-prep="docker compose pull && docker compose build"
alias_code_check: |
alias code-check='
echo "Checking ~/Code directory for git changes."
@@ -953,7 +957,7 @@
if [[ "$rcvr" == "main" ]]; then
echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***"
exit 1
return 1
fi
if [[ -z "$base" ]]; then
@@ -963,7 +967,7 @@
base="dev"
else
echo "* Unsure which branch to use for '$rcvr'. Please specify."
exit 1
return 1
fi
echo "* Base was not specified, using '$base' for '$rcvr'."
else
@@ -1007,6 +1011,18 @@
alias reset-prod="load-branch prod main"
alias reset-stage="load-branch stage main"
alias reset-dev="load-branch dev main"
function check-code-branches {
for dir in ~/Code/*/; do
cd $dir
pwd
git ls-remote --heads
echo " "
cd ..
done
}
alias check-branches="check-code-branches"
alias check-branch="git ls-remote --heads"
alias branch-check="check-branch"
alias_reload_bash: |
alias reload-bash="source ~/.bashrc"
alias bash-reload="reload-bash"
@@ -1024,6 +1040,29 @@
. "$global_function"
fi
done
alias_flatpak_clean: |
alias flatpak-clean="flatpak uninstall --unused"
alias_commit: |
function commit_usage {
echo 'Usage: commit "This is a commit message"'
}
function commit {
if [[ -z "$1" ]]; then
echo "ERROR: Message must be provided."
commit_usage
return 1
fi
if [[ "$1" == "-h"* || "$1" == "--h"* ]]; then
commit_usage
fi
message="$1"
git add . &&
git commit -m "$message" &&
git push
status="$?"
return "$status"
}
- name: General | Account Management | Users | Files | Common Variable
set_fact:
@@ -1104,6 +1143,9 @@
{{ alias_reload_bash }}
{{ alias_hugo_server }}
{{ global_functions }}
{{ alias_docker_other }}
{{ alias_flatpak_clean }}
{{ alias_commit }}
- name: General | Account Management | Users | Files | .bashrc
blockinfile:

View File

@@ -36,7 +36,6 @@
flatpaks_generic:
- { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" }
- { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" }
- { app: "chat.simplex.simplex", name: "simplex", extra: "" }
- { app: "org.signal.Signal", name: "signal", extra: "" }
- { app: "im.riot.Riot", name: "element", extra: "" }
- { app: "org.telegram.desktop", name: "telegram", extra: "" }
@@ -44,6 +43,7 @@
- { app: "org.libreoffice.LibreOffice", name: "office", extra: "" }
- { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" }
- { app: "app.grayjay.Grayjay", name: "grayjay", extra: "" }
- { app: "com.github.xournalpp.xournalpp", name: "xournal", extra: "" }
flatpaks_coding:
- { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" }
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
@@ -72,11 +72,12 @@
# 2022-11-20 No longer using any of these and they're taking up a lot of space. #
- { app: "com.jetbrains.PyCharm-Community", name: "pycharm", extra: "" }
# End 2022-11-20 #
- { app: "io.lbry.lbry-app", name: "lbry", extra: "dbus-launch" } # No longer supported, noticed 2023-09-01.
- { app: "chat.delta.desktop", name: "deltachat", extra: "" } # No longer used, removed 2023-12-18.
- { app: "org.gnome.Geary", name: "geary", extra: "" } # No longer used, removed 2024-12-15
- { app: "io.lbry.lbry-app", name: "lbry", extra: "dbus-launch" } # 2023-09-01, Noticed it is no longer supported.
- { app: "chat.delta.desktop", name: "deltachat", extra: "" } # 2023-12-18, No longer used.
- { app: "org.gnome.Geary", name: "geary", extra: "" } # 2024-12-15, No longer used.
- { app: "org.rncbc.qsynth", name: "qsynth", extra: "" } # 2024-12-15, Not worth the setup, use LMMS or VMPK.
- { app: "org.godotengine.Godot", name: "godot", extra: "" } # 20250831 Stopped playing with this months / years ago.
- { app: "org.godotengine.Godot", name: "godot", extra: "" } # 2025-08-31, Stopped playing with this months / years ago. Seemed cool but Flutter is working well for this purpose.
- { app: "chat.simplex.simplex", name: "simplex", extra: "" } # 2025-11-22, Takes a ton of space and does not work without interacting with phone.
# Generic #

View File

@@ -12,9 +12,6 @@
, 'org.gnome.Nautilus.desktop'
, 'io.gitlab.librewolf-community.desktop', 'librewolf.desktop'
, 'org.mozilla.firefox.desktop', 'firefox.desktop'
, 'org.signal.Signal.desktop', 'signal-desktop.desktop'
, 'org.telegram.desktop.desktop'
, 'com.discordapp.Discord.desktop'
, 'com.vscodium.codium.desktop'
, 'codium.desktop'
, 'org.shotcut.Shotcut.desktop'
@@ -24,6 +21,9 @@
, 'com.valvesoftware.Steam.desktop'
, 'net.lutris.Lutris.desktop'
, 'mullvad-vpn.desktop'
, 'org.signal.Signal.desktop', 'signal-desktop.desktop'
, 'org.telegram.desktop.desktop'
, 'com.discordapp.Discord.desktop'
]"
dconf_terminal: gnome-terminal
dconf_theme: Adwaita-dark
@@ -274,6 +274,13 @@
dconf write /org/gnome/desktop/media-handling/autorun-never true && inc_dconf &&
## Gnome Terminal ##
# TBD: Do not start new tabs in previous tab's directory.
# The profile ID is likely unique and will need to be retrieved first.
#/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/preserve-working-directory
#'never'
## Success ##
sleep 0 ||