Added Apprise, Healthchecks, and some more tweaks
This commit is contained in:
parent
4d53b7185b
commit
189f7c11eb
84 changed files with 1039 additions and 150 deletions
|
@ -20,8 +20,8 @@
|
|||
<a href="https://app.slack.com/client/T01ABCG4NK1/C01NN74H0LW/details/" title="Chat with us on Slack" target="_blank">
|
||||
<img alt="Slack" src="https://img.shields.io/badge/Slack-Chat-e01e5a?logo=slack&logoColor=white&style=for-the-badge" />
|
||||
</a>
|
||||
<a href="https://gitter.im/megabyte-labs/community" title="Chat with the community on Gitter" target="_blank">
|
||||
<img alt="Gitter" src="https://img.shields.io/gitter/room/megabyte-labs/community?logo=gitter&logoColor=white&style=for-the-badge" />
|
||||
<a href="https://app.element.io/#/room/#install.doctor:matrix.org" title="Chat with the community via Matrix.org" target="_blank">
|
||||
<img alt="Matrix" src="https://img.shields.io/matrix/install.doctor:matrix.org?logo=matrix&logoColor=white&style=for-the-badge" />
|
||||
</a>
|
||||
<a href="https://github.com/megabyte-labs/install.doctor" title="GitHub mirror" target="_blank">
|
||||
<img alt="GitHub" src="https://img.shields.io/badge/Mirror-GitHub-333333?logo=github&style=for-the-badge" />
|
||||
|
|
|
@ -13,6 +13,7 @@ adobe-creative-cloud curl: (18) HTTP/2 stream 1 was reset
|
|||
- https://github.com/linuxserver/docker-webtop
|
||||
- https://app.warp.dev/referral/7PMXRV
|
||||
- https://github.com/chocolatey/boxstarter
|
||||
- https://nginxui.com/
|
||||
# Create the $HOME/opt destination folder
|
||||
mkdir -p ~/opt
|
||||
# Download the AppImage inside it
|
||||
|
|
|
@ -171,6 +171,7 @@ Unless otherwise specified in the description column, all of the variables in th
|
|||
| `AWS_ACCESS_KEY_ID` | AWS access key ID (used for storing / retrieving from AWS Secret Manager which is used for headless Xcode installations / developer account authentications) |
|
||||
| `AWS_DEFAULT_REGION` | Default AWS region to use when region is not passed in via commands (e.g. `us-east-1`) |
|
||||
| `AWS_SECRET_ACCESS_KEY` | AWS access key secret (used in conjunction with the `AWS_ACCESS_KEY_ID`) |
|
||||
| `CELL_PHONE_NUMBER` | Cell phone number you would like to receive [Twilio notifications from via Apprise](https://github.com/caronc/apprise/wiki/Notify_twilio). The number should follow the format of `13332224444` where the 10-digit phone number is prefixed by the country code. |
|
||||
| `CLOUDFLARE_API_KEY` | CloudFlare administration API key. Used by CloudFlare CLI. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | The CloudFlare account ID |
|
||||
| `CLOUDFLARE_ORIGIN_CA_KEY` | The CloudFlare origin CA key (currently unused) |
|
||||
|
@ -203,8 +204,11 @@ Unless otherwise specified in the description column, all of the variables in th
|
|||
| `HISHTORY_USER_SECRET` | User secret for synchronizing entries cataloged by [Hishtory](https://github.com/ddworken/hishtory). |
|
||||
| `HOARD_API_TOKEN` | The API token for [Hoard]https://github.com/Hyde46/hoard). |
|
||||
| `HOST` | The hostname of the device. Used for a FQDN that resolves to the device when combined with the \_ `PUBLIC_SERVICES_DOMAIN`. |
|
||||
| `IFTTT_WEBHOOK_ID` | Webhook ID from the [Maker webhook on IFTTT](https://ifttt.com/maker_webhooks/settings). This is used to integrate [Apprise with IFTTT integration](https://github.com/caronc/apprise/wiki/Notify_ifttt). |
|
||||
| `JUMPCLOUD_CONNECT_KEY` | JumpCloud device enrollment key. |
|
||||
| `KEYID` | Your GPG key ID available on the MIT or Ubuntu servers. During provisioning, the key will be imported and trusted with an elevated trust level. This can only be passed in as an environment variable or be hardcoded into the `home/.chezmoi.yaml.tmpl` file. |
|
||||
| `MATRIX_PASSWORD` | Password for user account for matrix.org through [Element](https://app.element.io/). Used to integrate [Matrix chatting with Apprise](https://github.com/caronc/apprise/wiki/Notify_matrix). |
|
||||
| `MATRIX_USERNAME` | Username for user account for matrix.org through [Element](https://app.element.io/). Used to integrate [Matrix chatting with Apprise](https://github.com/caronc/apprise/wiki/Notify_matrix). |
|
||||
| `NETDATA_ROOM` | [Netdata](https://www.netdata.cloud/) Cloud room ID to assign the device to. Requires `NETDATA_TOKEN` to also be defined. |
|
||||
| `NETDATA_TOKEN` | [Netdata](https://www.netdata.cloud/) Cloud API token to use when enrolling. Requires `NETDATA_ROOM` to also be defined. |
|
||||
| `NGINX_AMPLIFY_API_KEY` | If NGINX is installed on the system, then this key will be used to join the NGINX Amplify cloud service. |
|
||||
|
@ -219,7 +223,13 @@ Unless otherwise specified in the description column, all of the variables in th
|
|||
| `PRIMARY_EMAIL` | Your primary e-mail address used in things like the Git config and NPM config. You must pass this as an environment variable or hardcode it into the `home/.chezmoi.yaml.tmpl` file. |
|
||||
| `PUBLIC_SERVICES_DOMAIN` | The CloudFlare domain that you would like to use for CloudFlare DNS integration features. _Can only be passed in as an environment variable._ |
|
||||
| `PYPI_TOKEN` | PyPi.org API token stored in `~/.config/shell/private.sh` |
|
||||
| `REDDIT_APP_ID` | Application ID for Reddit app created according to the [Apprise integration documentation](https://github.com/caronc/apprise/wiki/Notify_reddit). |
|
||||
| `REDDIT_APP_SECRET` | Application secret for Reddit app created according to the [Apprise integration documentation](https://github.com/caronc/apprise/wiki/Notify_reddit). |
|
||||
| `REDDIT_PASSWORD` | Password for the Reddit developer account linked to the Reddit app created according to the [Apprise integration documentation](https://github.com/caronc/apprise/wiki/Notify_reddit). |
|
||||
| `REDDIT_USERNAME` | Username for the Reddit developer account linked to the Reddit app created according to the [Apprise integration documentation](https://github.com/caronc/apprise/wiki/Notify_reddit). |
|
||||
| `REPLICATE_API_KEY` | [Replicate API key](https://replicate.com/account/api-tokens) (used for [AgentGPT](https://github.com/reworkd/AgentGPT)) |
|
||||
| `RESTIC_PASSWORD` | Password used to encrypt user-level Restic backups (leveraged by `autorestic`). This includes `$HOME` directory backups and application data backups. |
|
||||
| `RESTIC_SYSTEM_PASSWORD` | Password used to encrypt system-level Restic backups (leveraged by `autorestic`). This includes Docker volume backups and any other types of backups that might require sudo privileges. |
|
||||
| `RESTRICTED_ENVIRONMENT` | Set to `true` if you are setting up a device that should not use sudo / administrator privileges. _This can only be specified as an environment variable._ **This feature is a WIP.** Pull requests welcome. |
|
||||
| `SAMBA_NETBIOS_NAME` | NetBIOS name to use with Samba. Default value is the same value as the `HOSTNAME` variable. _Can only be specified as an environment variable._ |
|
||||
| `SAMBA_WORKGROUP` | Samba workgroup name. Default value is `BETELGEUSE`. _Can only be specified as an environment variable._ |
|
||||
|
@ -228,6 +238,7 @@ Unless otherwise specified in the description column, all of the variables in th
|
|||
| `SFTPGO_DEFAULT_ADMIN_PASSWORD` | Password for default admin user that can login to the [SFTPGo](https://github.com/drakkan/sftpgo) web interface. |
|
||||
| `SFTPGO_DEFAULT_ADMIN_USERNAME` | Username for default admin user that can login to the [SFTPGo](https://github.com/drakkan/sftpgo) web interface. |
|
||||
| `SLACK_API_TOKEN` | Slack API personal access token that populates `~/.config/slack-term/config` so that you can use Slack from your terminal with [slack-term](https://github.com/jpbruinsslot/slack-term). |
|
||||
| `SLACK_BOT_USER_OAUTH_TOKEN` | Slack bot OAuth token. Used by Apprise Slack integration so that user can post to Slack (with support for attachments) from the CLI. |
|
||||
| `SNAPCRAFT_EMAIL` | Snapcraft.io e-mail address associated with the `SNAPCRAFT_MACAROON` and `SNAPCRAFT_UNBOUND_DISCHARGE` (detailed below). Stored in `~/.config/shell/private.sh` so developer API credentials can be loaded by running `source "~/.config/shell/private.sh"`. \*Can only be included as an environment variable or hardcoded into `home/.chezmoi.yaml.tmpl`. | |
|
||||
| `SNAPCRAFT_MACAROON` | Snapcraft.io authentication variable stored in `~/.config/shell/private.sh` so developer API keys can be loaded by running `source "~/.config/shell/private.sh"`. |
|
||||
| `SNAPCRAFT_UNBOUND_DISCHARGE` | Snapcraft.io authentication variable stored in `~/.config/shell/private.sh` so developer API keys can be loaded by running `source "~/.config/shell/private.sh"`. |
|
||||
|
@ -237,6 +248,10 @@ Unless otherwise specified in the description column, all of the variables in th
|
|||
| `SURGE_LOGIN` | The e-mail address associated with your [surge.sh](https://surge.sh/) account. |
|
||||
| `SURGE_TOKEN` | The [surge.sh](https://surge.sh/) authentication token acquired by logging in and running `surge token`. |
|
||||
| `TIMEZONE` | Your timezone in the `America/New_York` format. It should be available in the TZ database. If not passed in as an environment variable, then the device's current timezone will be assumed to be correct. |
|
||||
| `TWILIO_ACCOUNT_SID` | The account SID for Twilio which can be acquired on the bottom of the homepage of the [Twilio console](https://console.twilio.com/). Used for [Apprise integration of Twilio](https://github.com/caronc/apprise/wiki/Notify_twilio). |
|
||||
| `TWILIO_AUTH_TOKEN` | The Twilio auth token found on the bottom of the homepage of the [Twilio console](https://console.twilio.com/). Used for [Apprise integration of Twilio](https://github.com/caronc/apprise/wiki/Notify_twilio). |
|
||||
| `TWILIO_FROM_NUMBER` | The number to send out Twilio messages from. Should be registered in your Twilio account and be in the form `13332224444` with the country code included (e.g. `1` for the US in the sample phone number). |
|
||||
| `TWITTER_ACCESS_TOKEN`, `TWITTER_ACCESS_TOKEN_SECRET`, `TWITTER_API_KEY`, `TWITTER_API_KEY_SECRET` | Various secrets you can generate using the Twitter Developer portal. Integrated into Apprise to allow tweeting from the command-line. Apprise provides [details](https://github.com/caronc/apprise/wiki/Notify_twitter). |
|
||||
| `VAGRANT_CLOUD_TOKEN` | VagrantUp API token stored in `~/.config/shell/private.sh` so developer API keys can be loaded by running `source "~/.config/shell/private.sh"`. |
|
||||
| `VMWARE_WORKSTATION_LICENSE_KEY` | License key used for pre-registering VMWare Pro or VMWare Fusion |
|
||||
| `VNC_PASSWORD` | VNC password used by macOS VNC system utility or TigerVNC on Linux. Default if not passed in is `vncpass`. |
|
||||
|
|
|
@ -137,6 +137,7 @@ gpg:
|
|||
data:
|
||||
host:
|
||||
arch: "{{ .chezmoi.arch }}"
|
||||
autoresticHealthcheckUuid: "AddInFromHealthchecksDashboard"
|
||||
cloudflare:
|
||||
teamsOrg: "{{ $cloudflareTeamsOrg }}"
|
||||
cpu:
|
||||
|
@ -165,6 +166,7 @@ data:
|
|||
home: "{{ .chezmoi.homeDir }}"
|
||||
homeParentFolder: "{{ if eq .chezmoi.os "linux" }}/home{{ else if eq .chezmoi.os "darwin" }}/Users{{ else }}C:\Users{{ end }}"
|
||||
hostname: "{{ $hostname }}"
|
||||
noReplyEmail: no-reply@megabyte.space
|
||||
samba:
|
||||
netbiosName: "{{ $sambaNetBiosName }}"
|
||||
workgroup: "{{ $sambaWorkGroupName }}"
|
||||
|
|
|
@ -25,15 +25,15 @@ docker:
|
|||
healthchecks:
|
||||
allowedHosts: '*'
|
||||
defaultFromEmail: no-reply@megabyte.space
|
||||
siteLogoUrl: https://gitlab.com/megabyte-labs/misc/assets/-/raw/master/logo/color3@10x.png
|
||||
siteName: Megabyte Labs Healthchecks
|
||||
siteLogoUrl: https://raw.githubusercontent.com/megabyte-labs/install.doctor/master/home/dot_local/etc/branding/black-icon-128x128.png
|
||||
siteName: CombineOS Healthchecks
|
||||
siteRoot: '/'
|
||||
portainer:
|
||||
siteLogoUrl: https://gitlab.com/megabyte-labs/misc/assets/-/raw/master/logo/color3@10x.png
|
||||
templatesUrl: ''
|
||||
statping:
|
||||
description: Uptime monitoring for Megabyte Labs managed web services
|
||||
name: Megabyte Labs Uptime Monitoring
|
||||
name: CombineOS Uptime Monitoring
|
||||
wireguard:
|
||||
serverUrl: megabyte.space
|
||||
internalSubnet: 10.93.92.0
|
||||
|
@ -462,6 +462,7 @@ softwareGroups:
|
|||
- p7zip
|
||||
- pigz
|
||||
Communication: &Communication
|
||||
- apprise
|
||||
- irssi
|
||||
Communication-Desktop: &Communication-Desktop
|
||||
- *Communication
|
||||
|
@ -719,6 +720,8 @@ softwareGroups:
|
|||
Logging: &Logging
|
||||
- fuego
|
||||
- papertrail
|
||||
- rsyslog
|
||||
- runitor
|
||||
- sentry-cli
|
||||
- unbuffer
|
||||
Media: &Media
|
||||
|
@ -882,6 +885,7 @@ softwareGroups:
|
|||
- tailscale
|
||||
- warp
|
||||
Orchestration: &Orchestration
|
||||
- dagu
|
||||
- nomad
|
||||
- pm2
|
||||
- robotframework
|
||||
|
|
|
@ -132,12 +132,17 @@ applyRootConfig() {
|
|||
logg warn 'Unable to find root user folder location'
|
||||
fi
|
||||
|
||||
### Copy minimal set of profile configuration files
|
||||
if [ -n "$ROOT_FOLDER" ]; then
|
||||
### Copy minimal set of profile configuration files
|
||||
logg info "Copying ~/.bashrc to $ROOT_FOLDER/.bashrc" && sudo cp -f "$HOME/.bashrc" "$ROOT_FOLDER/.bashrc"
|
||||
logg info "Copying ~/.zshrc to $ROOT_FOLDER/.zshrc" && sudo cp -f "$HOME/.zshrc" "$ROOT_FOLDER/.zshrc"
|
||||
logg info "Ensuring ~/.config folder exists" && sudo mkdir -p "$ROOT_FOLDER/.config"
|
||||
logg info "Copying ~/.config/shell to $ROOT_FOLDER/.config/shell" && sudo mkdir -p "$ROOT_FOLDER/.config" && sudo rm -rf "$ROOT_FOLDER/.config/shell" && sudo cp -rf "$HOME/.config/shell" "$ROOT_FOLDER/.config/shell"
|
||||
|
||||
### Copy Autorestic configurations
|
||||
logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/autorestic/autorestic-system.yml file to $ROOT_FOLDER/.autorestic.yml" && sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/autorestic/autorestic-system.yml" "$ROOT_FOLDER/.autorestic.yml"
|
||||
logg info "Removing ${XDG_CONFIG_HOME:-$HOME/.config}/autorestic/autorestic-system.yml" && sudo rm -f "${XDG_CONFIG_HOME:-$HOME/.config}/autorestic/autorestic-system.yml"
|
||||
logg info "Applying proper permissions to $ROOT_FOLDER/.autorestic.yml" && sudo chmod 600 "$ROOT_FOLDER/.autorestic.yml"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -832,10 +837,16 @@ installDockerRclonePlugin() {
|
|||
# @description
|
||||
# This script loads crontab jobs that are defined and housed in your Install Doctor fork.
|
||||
loadCronjobs() {
|
||||
logg 'Installing crontab jobs'
|
||||
crontab < "${XDG_CONFIG_HOME:-$HOME/.config}/crontab/config" || EXIT_CODE=$?
|
||||
logg info 'Installing user crontab jobs'
|
||||
crontab < "${XDG_CONFIG_HOME:-$HOME/.config}/crontab/config-user" || EXIT_CODE=$?
|
||||
if [ -n "$EXIT_CODE" ]; then
|
||||
logg error 'Failed to load cronjobs'
|
||||
logg error 'Failed to load cronjobs for user'
|
||||
fi
|
||||
|
||||
logg info 'Installing system crontab jobs'
|
||||
sudo crontab < "${XDG_CONFIG_HOME:-$HOME/.config}/crontab/config-system" || EXIT_CODE=$?
|
||||
if [ -n "$EXIT_CODE" ]; then
|
||||
logg error 'Failed to load cronjobs for system'
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
# @file Prepare
|
||||
# @brief Ensures commonly used system packages that are common dependencies of other packages are installed
|
||||
# @description
|
||||
# This script installs required system packages. Each system's required packages are defined in `home/.chezmoitemplates/$DISTRO_ID`,
|
||||
# where `$DISTRO_ID` is equal to the Linux distribution ID found in `/etc/os-release`.
|
||||
|
||||
# @description
|
||||
# This script pipes environment variables and a logger function to a temporary file that is included by other scripts.
|
||||
# It is included as a temporary external file to aid in debugging since if the included files were inlined in scripts
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
{{- if (ne .host.distro.family "windows") -}}
|
||||
#!/usr/bin/env bash
|
||||
# @file Homebrew / Xcode Tools Installation
|
||||
# @brief Ensures Xcode tools are installed on macOS and ensures Homebrew is installed on either Linux or macOS
|
||||
|
@ -171,4 +170,3 @@ fixHomebrewPermissions
|
|||
if [ -f "$HOME/.viminfo" ]; then
|
||||
logg info 'Removing ~/.viminfo' && sudo rm -f "$HOME/.vimino"
|
||||
fi
|
||||
{{ end -}}
|
||||
|
|
7
home/.chezmoitemplates/docker/healthchecks_db_name
Normal file
7
home/.chezmoitemplates/docker/healthchecks_db_name
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFekx0S0JqbkhtSUpldWRW
|
||||
QUFPa21iS2JBYWVqUlpyUW1INThoR0h1NUJzCi9CWmJPNFpQdEhwNzlGMlFtRnkr
|
||||
Z3RyVFAwTkdIZ1UrcVRjTmlIc2ZYT1EKLS0tIGxrWCtWS3RVeHkrcUZVZmM4cVo1
|
||||
R1VTTk1LUUtZNGZ0MGs3akc0OEtBanMK+kyTXeqIqF4qPwv+Fc9OphknufvRv2B8
|
||||
6Jho0+ICC1Bxubwy
|
||||
-----END AGE ENCRYPTED FILE-----
|
8
home/.chezmoitemplates/docker/healthchecks_db_password
Normal file
8
home/.chezmoitemplates/docker/healthchecks_db_password
Normal file
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjMkdRVy91R1crTWlDekJi
|
||||
VmhXWU9va3JqaGYxVjFnQk9Dck1zVzVZQWlzCjVxc0pLYjJDQmt4ZUl0Y0FUZE9w
|
||||
OHZuUHpuRGpNUkpCSFp4djlRWmlVRXMKLS0tICtpL2dpS2lHNHJ3UXkxMS9INmt6
|
||||
TStScWFBRTlYWE1OWTNIL1g3eE9hRncKAjplPmFrrLt7oBZ3f+ar4kOTj35vPE72
|
||||
icxVzmsyzU4EZaFwA7TZjSWYFHqP6djsWGtoId0l/ljuMJjcMqWpTeQXijzvRQKh
|
||||
0Jg9jQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/docker/healthchecks_db_user
Normal file
7
home/.chezmoitemplates/docker/healthchecks_db_user
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6SHBMSVBHWlJTWXo2eTFm
|
||||
bnJYa0NYWW42V0VOWE52MDdwK0N3Q2VZMzNjCmVsWk5mQUlNbWhPanpLU04xQmNS
|
||||
YlZnVTd5OGNybEUwMFNoZ3NjZWVzTncKLS0tIHFVbFIzV0s3MmY2S3ViRUsxTmI3
|
||||
cVpjRjVIMmVLSDJkZ1cwcEZ2SFZGemsKYrXMDabkAh02NX85ZL7U29AGgpaecSir
|
||||
2oDXDv/BEdI3vzLivguQmw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
9
home/.chezmoitemplates/docker/healthchecks_secret_key
Normal file
9
home/.chezmoitemplates/docker/healthchecks_secret_key
Normal file
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvN0Rka3I0b0ZhTHJhUnpL
|
||||
NnhFT2pCSHVic3hZOHBXTDBhV3o1SzRPbG0wCitTTlRnVktrSTJramo2WEtBb0Jl
|
||||
cHlOZmhiZlo4MGx5R1hMWDg3M3hXQ1UKLS0tIElNbWt3VXd5RU9ZNVVLYStzOS9W
|
||||
dFlGWkdPRzFaNzVIQ1ZDbzVQV241aDgKSCr0DeHoJSoGXJXpOBaf7QhTjAaX7V+o
|
||||
gjSPxmuiQnd06it4h67xd8hVK83b67x49jGJH3cJMMgzblOKZsjPCju7ENnBeVBi
|
||||
zDsvBDQ0OWsS5yEmHdAajnriva/Qd3ToTizux5JiUkONqn5FvZVDmCk+idrSeyQL
|
||||
8AHz6fa0ouUg55SENYb1kc3Ja/XmJ1YDHD4=
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3bDQwUCtFN3hmaVlKemlZ
|
||||
Y0FwNmRMaHgyYWJxYk5zV0xLSjZlVXUyVG0wClhYdk9MdHFkbGtzZ0h0Ynh2cTRh
|
||||
OWwzRDMwYUtZL1VocjFGenZ2djVhNlkKLS0tIGtka1B6QXlQTnRlYkxJUk5OLzNa
|
||||
UmtzclBQTWtoWjZydkFJTW12SFFyNzQKc86JTlBUx1wMUEcNrjBl+hNEdXgg9mNe
|
||||
yr+EhPOqRvgsT7LePNwWSaOx2L66RIkl36/WADWRXRGchHS0O2cgsIb6P2KfOwd9
|
||||
9geM1rwWyk3XfQm3yqMKHO+nv6iLJ4jI2hf4+io=
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCR0N1VjhvWE9PcDB5blJT
|
||||
MXBuZ2pIWW9QZDNrSC9iNUd1RStOTk4xdTJ3CkdBUWlaRFoxeW8wVUdhRzhZWFpQ
|
||||
UmRmSmttR2c4dmlBQkk5SmNKYVZhMDQKLS0tIFJwdzFqODRyd1lJV3NoeDFaWity
|
||||
dXpDMXZTOGx1ODJBb284VUxJb3hPeFUKzAmx6mexxKONr+2uA43AtqhU3NdQwCRX
|
||||
frZ4nbux4q5QHsU9hrXdx5OtPFmDYY9EBDkJa1OhVTH/kbo=
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySk50RGJiM01LV0NpSjlV
|
||||
M3ZzTXRVbG1FZE5LQXk2U1BTWThOQ0NZaVN3CjhOR2VleEdoNHAwZVBTYWwwZ2xq
|
||||
ZGVFMG53U2l4dkVrSWRDTEw5SXBLbEEKLS0tIEQvcWh2Ymk4S28vSk1ubDhFSnha
|
||||
cDNmMDUvUk1UUXVCTDJuQUxacmllVkEK4IfrDpJPTFwronieSnmVMhSNK8hdNU/V
|
||||
ko2wuWY4T08HrHBSHPKFxI8p2fbHpZxMXhanvNs9WBCxjm2Ia7hWxA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrOThqUUEyUjFEUTBkUElQ
|
||||
ZDlkcldTWDZGc2wyaldMbkgvcGdlUTdvMjM4CnEvTGlSZVVYSCt2dWZGb3Y1bWM0
|
||||
NStPOS8rcytUWGtFUGczaVNQQUFQY2MKLS0tIFB6OFNJYlEyNTE5alZXeW5TSkpO
|
||||
REJ1NFVXSzRTU1RHc3dRSlZWMkdlS1EKqcmK27xpMAMnzLW+JEhQipSll/0vT59q
|
||||
XoHH/cBJFknH9QQX1cRvlJh8Pjd7+bHaSZRnog==
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5bFJPVmY3RUtMUUk0U2FJ
|
||||
SEJMWmZyVGNtK2YrWnl3QjJQV09UK3N6TmdZCmhDS2FaZ09FcnRVZStCSGF0UHoz
|
||||
K2MvcVpQUkpRVWFiNDlJc0dxZ2RjcXMKLS0tIHAyajRmeldoSFZQdWVRajZuRG5l
|
||||
YWJEYUF4eUdtWWhmTExSREZqV2VqcnMKAULLETSutkcRJzewCsg/1FTskyNHao22
|
||||
H4TYScxA+Fj2LwsyzHMJ7/VHAHbvgA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
34
home/.chezmoitemplates/files/apprise-custom
Normal file
34
home/.chezmoitemplates/files/apprise-custom
Normal file
|
@ -0,0 +1,34 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXL0hNNUNTUmhSK0xkMUVS
|
||||
a2lOUkREeXRuMkxUSTZHSHVQMHViT1Vhb3gwClB1Vjh6TVNiUGZOa1ViWjMwNHR6
|
||||
Q01Scys4UVMzVUhMSTZHYWdMWFNQZzAKLS0tIE4rVnowSE5Zakt5M1AxYVVhRVdI
|
||||
eHhoRGNiKzZiQ3hRblZQTkpMY28yNWMKx2RQ/t17kNrlfipe9EkGzh2mP5YarEUc
|
||||
haLGfJ+9aTWDqPTuCqA0F/WFUdi3WgZ5T9Ku5PMC/71TNyBEucjTu+99NhwUFad7
|
||||
Fs9iRdsvx2ridXTc6czRSjvY3WwAMQofI6y7Sw4zVV8mQIWh/t4AdCrIzlgG+tVx
|
||||
COWqmO9VC1+S2Are1SBXoR4D9oMTUvoGpolBr0yzJtMDlE17Z+qwqARDXxJxdlnd
|
||||
nmZr6EZNlWKpdM11+koJ9f1pHvKDM0W+u8j41hTwkhj85GAtCxRBH+ovP4jz07li
|
||||
y+YqdJEykQOmbvhDNsPoi2j90NUS9zf/0ts9s4P4tF5q45BFJwb+RswIHRfh5zz9
|
||||
5/eb0BBQDz10WoQcKzzjkAeXa5YvOOM1IVA8KY/8/BIJ6hr2HPnJmzNqlO1IbvI0
|
||||
WgwGBVgGQmILveTn/cpQjdFlzpezJ+f70ltZ8IVfA9HUuMkaFjr3W9+wAGeeWpu7
|
||||
fpQuXdhHvJMi9lOLlo9sRPDtFWSJ8mS2lG5mJRzEjTdn5M7m7N72wKJeID9ECHM3
|
||||
zRdRvZOJ/uZeS4XAVHS+EGT2YX8eMaKHXv+r+uBiNJ3WIRV5q9H4qs6XA4EFxNC8
|
||||
sI4LkEcKyct+UTxvGtG4bG/s2kuj+U2Tf37jtzo5d7UV/X8B4ZAGyYXo0AX7iyLG
|
||||
EWZ469zc8JCmhSQ3MH3lLd6nT9V0G+eyQmkH+loYPOCsavggv38Up7R1J1NY9/fW
|
||||
pX/+sWoTj6dnS6d5RUGtfyRVSvb/yL1CxpDmE7fi8WZMrBQCwXyhfiTWLl5hX4mV
|
||||
EnfMA9Q10XM1zOy0YSrmc0H37rOaGBL8sqKat5FWvfgG2XIHgvgdQ5mdSvVSj0t4
|
||||
C9A7f1E8QJSESn5SxSwSw2VH3qbEx4H2qx8F3n8jdTMEhaX8k0XLBmn0qeXTyT0q
|
||||
k2bmMRrTxLtVn/KMMdD6D6vboZSmnP7sczroGSHZ7rdWbhoHeVQV9TXBNf3op02p
|
||||
HQd2nk2OcNHwlpizABtglFE/4PwJ5qoisK+be11OgBDCXVTFv1v8IxAMPLd+PPuO
|
||||
0vKLkwaFqBqvZfkEIr7hTjYouVlkRlLvpfTPROXeFfJdMf3ITnk0LLpS5FW9ZyhV
|
||||
8RvDFfAlAeMC8aL1+BvMRDHRJ28mwaQiG4xEWA+NcQeVRcDyfzzwQh0Vm3hNvKcW
|
||||
0dI8Qjr2kZX+f9niTQj3+h72fylhItCyMEJ556G5x8O8fra/21xLXf7IQzhd6hn8
|
||||
6V4tuFB2RrLS1HqYcK/Cy/E0FlSQ4LrTghRTq3b8aEQoaofBJgdimorVclDGyDh/
|
||||
pjaWvoVVbHi/VC3KdwuOCfcSL0rKn6Cwy+y0cPFSX9aMs2dxu5mIK5E8hQKEM77M
|
||||
EeQjehj72PRrbKOVRYJJvtegVCRimDIxz5FMz60WEGD0jPrffPV/m7Hjvipsxlke
|
||||
o4HPDZ3tEMZVW9FftaNnKGqeU76FOgByRh4w+uTeMfo0lXm6yYYrQ1WyHa4+V6F7
|
||||
dibkHMDy7n4r+nUZk2GR2DWHR0kqJV9BVSVBTz465F/qvPu1Z/amfxhrhUKywI+J
|
||||
y1P01cjnke4tNQIx7RheAYxUxDRR/A65y/VVWFCKLhfnnJpqhGwnXetjUHmbxgms
|
||||
Z5K0XJojJ1DG4F9mxUUQpg+2jRPekopmq9YddMW/nSiCjdr/ZjJmIrlX/YIgCk1N
|
||||
05Ydb1T2NlC8HQhdGo1X647tqNsfYtB+XXCUYkIeEzkTluy9J62XN82cCIjbBP2g
|
||||
T2RN9GgOUjFzAsw2LiRJWo22KUVFjcCclyLkww==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/CELL_PHONE_NUMBER
Normal file
7
home/.chezmoitemplates/secrets/CELL_PHONE_NUMBER
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPTDRzSHB4eTFnV2E2WU8v
|
||||
Y0I1bFhjTzI0OWcvRVJ6N08zYmRsbWlwZVhzCnhoNmpoSFNUbzI5M2ExNVdPM1h6
|
||||
Q2ZTRTNxSjZycHMzSjQzNlNqSGJzR1EKLS0tIDN1U29NT1lkT2JBNnN2VndiK3Jz
|
||||
clRkT3RJSnByeHFGbUVOSGFsVWR2cmsKa6RVel4xTm7C+DfmsLl1JR3RFRr4AYBy
|
||||
1HF0EGUH9N3Jz4D0R30rI5EteA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/GMAIL_PASSWORD
Normal file
7
home/.chezmoitemplates/secrets/GMAIL_PASSWORD
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3dDlwKytlbUZSWjE0MTJn
|
||||
QXNGSXE5cnFEMXZkZHFscnJGT2RIelA2YnhjCmpISXljSDdua2pTNmRQUk16MmEx
|
||||
eHJLZkpjMnU3WklJd0lEMHVlVlU3NWMKLS0tIGdib1lGMlZtVE4xQ2ZIZi9iS1d1
|
||||
UlBoRTRrUVpnYm1Zd3ZzbDRHdkh0MUEKaklKnKjGhUo+hvJhalpKMm3VxhYkxll3
|
||||
6sk6KRuLGFs4vZDm2eomgZs0cnUTjZY0
|
||||
-----END AGE ENCRYPTED FILE-----
|
8
home/.chezmoitemplates/secrets/IFTTT_WEBHOOK_ID
Normal file
8
home/.chezmoitemplates/secrets/IFTTT_WEBHOOK_ID
Normal file
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHUDhKYUJZOCt5OXFjZDVZ
|
||||
NWJjdllHUlBkNEk1Q0dpdGtJYW0vdi9hOFM0CkMrVFVjS2lRdHgrLzVFZHByMVFL
|
||||
WXRyNFZFaDNsNnRtWlVwREJueWdHbTQKLS0tIHJTdHJqSVlMM3g4M05hM0VjQkc3
|
||||
MTUrdFRFS1FlSjBMVmlYamc5QjFkd0UK+yLbeYrnauc25H7yJm3ZBtzOVp2PMuxA
|
||||
YvcxRJA+zsARG5ch79l26tXGiWVz8QSzhr/GURpg8Y+Yl5xSRxXq7Lxc7PmOWDw9
|
||||
xEuE
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/MATRIX_PASSWORD
Normal file
7
home/.chezmoitemplates/secrets/MATRIX_PASSWORD
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4V0JURmtMRVVvQnhpVEtN
|
||||
RGRJeFlHMjFpOVZscTluUmpXbXFQNmlvMkVVCjQ2TGpnYjdHRjNhMTg2dUJQaHBO
|
||||
VDhOWk40THZZME9yV2dzU1BmblhsV28KLS0tIGVPTUxHWC9iMmgrUHFDSitNT1Jy
|
||||
ZVdGM3BheWlLQWNNSGFJMEoyTlMvU0EKE3tWM+XaBySV8JwyXTpzJz6F4pBRfq0T
|
||||
PAp1VDDe8ns1r+xm/yhzEWyqSgTLJQPFSA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/MATRIX_USERNAME
Normal file
7
home/.chezmoitemplates/secrets/MATRIX_USERNAME
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSZlAzd0g2NkhuTzdESVJR
|
||||
Ly9BZHZVaWVjVFA5SmlzdGMrRmI2NXdPU3hZCk0vLzFrTDlqK2FiY0haMmY3d1pY
|
||||
b1kwNTA1czgvMDZ0d1gwZEtBWC9TQlEKLS0tIExpN3JENXlNWXlqRmMxK2NYcTFn
|
||||
dm1KK25lZHE4MjZoQWk4QXFndUNRU28KHoUpywjuPxX5foF7F6qy0Ve6LNKA5/SQ
|
||||
TDEDz8i5CDB8gu2GijTFoNhxQEOCGtoF
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/REDDIT_APP_ID
Normal file
7
home/.chezmoitemplates/secrets/REDDIT_APP_ID
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvZTc4cGNyRDZCQ2hPdmF1
|
||||
dUxzQmp0ZElycFdKVXliSTNiL1RRTHBYK0VjClhQdm1lOFBIK2xPYWg4L3JPZTlI
|
||||
aTlxaEZMOFVRSE13U3lMTjFVUXlxa28KLS0tIE96RHFhZ0lLMWg5b004NGFUZXNZ
|
||||
YWVEUE9GQU9jNWkyTDl0dURhSWlNYW8KZYCJ9ABfOQb4p5MoMT0RzXq3/BEqcL9f
|
||||
iZ0L5U3qol8IHI+9+GbZrLGWC/L0y/8IbmZ8oKs6
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/REDDIT_APP_SECRET
Normal file
7
home/.chezmoitemplates/secrets/REDDIT_APP_SECRET
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiSGlpQzRwTWMxVXhxMHRH
|
||||
ZWFHeDJZbExZUlJUaGRiVHl4NGVsTHdvd0NJCm11TWREYWdsOGRwTlJKeGlCdWE5
|
||||
STZ2UlhjRWtUYnZkdmdUeDk1cmpKWXMKLS0tIE8vekh6YTVhRVZDM203bXBwVmVS
|
||||
Q0JsRXY3SDV3RUw4RTdHcFE2WFhWSk0KEm2bieswbpQG9fDMn85azz/cHV6fK//R
|
||||
qjoViUBBqKyuZM4ci8GfaHew15MszDA0lVTOoEyjpNf1dSp/+ORc
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/REDDIT_PASSWORD
Normal file
7
home/.chezmoitemplates/secrets/REDDIT_PASSWORD
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4YkMzS1p5RUFZV0VGZmJ3
|
||||
YVlxVWNGdytjTHRUYXBvbFZvM2crS2d0RVhjCjdUWmU1ZHNObnhjUFVrTHBBbWkz
|
||||
M0NWc01tanRKRVl3VEFJeDZnUUFxc28KLS0tIEhQTW55ZEEvdXN5RmhocGVKL2Rp
|
||||
dy9HTjVqYUhHWEhiZlVBbEVUQWE1Mk0KnGRbcxe+Spdyo63ZZQ8JMNp0PFDqb/wy
|
||||
H8V31CsS4V4YzH4AvDWh1a/hF8+/uqEXvg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/REDDIT_USERNAME
Normal file
7
home/.chezmoitemplates/secrets/REDDIT_USERNAME
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwTGMzWUxheDRKOEVRWUVs
|
||||
LzRtZzdscFVpUTdqWVg5TE1nQkZmMXlNMmprCmNCQm5keHA3VnV4TGtZVGxuVEI3
|
||||
dDJjclA3RmQ4WnVSUWkxN3lrcTNiOEEKLS0tIExjT0cwMVZJOUZSKzN4RHlMNXR1
|
||||
UGFaK2lZaVNHMFgwRWxUUXc1ZEk1RVEKl3POH0I3o+xEaFsiPWW0Coo+hbtCOcjT
|
||||
vBrafnhG0opqW53cMer4P0D6Y3U=
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/RESTIC_PASSWORD
Normal file
7
home/.chezmoitemplates/secrets/RESTIC_PASSWORD
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmWGpvWXp3aXlvTVpFSkhr
|
||||
YkM4UWNpMkk0LytEQXBkZ2NQMVRkZmxXS0drCktWYTc5M1ZLSzZzV3ZkQlFWN3Q4
|
||||
ekZ6ZmZHR3h0N2x5alJobmE4cWVaNlUKLS0tIFljODhFSi9RV0piNU5ub09ITi80
|
||||
SmNVTjZBN1NEU2EyZnZyZGhLVVUvNkEK+bYhZ6OulkCFT1uR6nCp6uvlKwoxT0xu
|
||||
kavzeRXrGUPGpCiBvRUvrk7in9iW7A==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/RESTIC_SYSTEM_PASSWORD
Normal file
7
home/.chezmoitemplates/secrets/RESTIC_SYSTEM_PASSWORD
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNmJ6dGZwU1U0dE9RSDQr
|
||||
dUphTTRNejE1ZGp2dEdXSmRSOGxmdDZESWxvCkowYnczZEwrMzZJeDV2Q21kWDBM
|
||||
YTdCY3dMQy9FZTc0dERSOVBEY3gwdkkKLS0tIFQ3WTE5TzlVbFNpK3VCQkRiWk1I
|
||||
WlNGeWZMeVNOMWQwR2RtZ2NDZkYvUXcKtmvvZzqqVtbAIindRUBOzNqIPYHHde6p
|
||||
MKSyiRANtAxWgQOtuwc/hKx4XLPlxA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrelZWL0l3bGE3eDB0NUR6
|
||||
bW5wM25SL25EOWxTc3JhbHZOL0UrVUF6ZkE0ClB0S3dvdWFaOFlRZWczOEcrZmND
|
||||
VWEvUzV0ci8xWVl0NUJWK1ViNHA3M2sKLS0tIDVXUDdyNlc1TjVxSEVqM0d2N1VN
|
||||
UitQMWJzdkVMdlpha2gvdUY2dFpraTgK2om7IQr4V1ggJH7Ls+H+k1zQ93QvEnvc
|
||||
V6je1Y4w09FKKLb6smK4jKj6ZFZ7f/RgvGyxkcpvJqAGA7pUyAGRh8Bu9cviFexE
|
||||
lxcfxLBgVlVPHUQUA+jcl50=
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/TWILIO_ACCOUNT_SID
Normal file
7
home/.chezmoitemplates/secrets/TWILIO_ACCOUNT_SID
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEMFpBa3dseXhISTdKR0ZN
|
||||
Z21RQ3NLV1lSRW8wVzlSMmhIZ3lpY3JRVnkwCk1IdmNERlcyWVV6MXJhV29MWWtU
|
||||
N1cybzg3Q0JVTC9oMUV1YTFqL2djZ1EKLS0tIEErZm5KTkJOZmFqWXNoVDVhYVY5
|
||||
MWNiMEp6aG9FdU5rMWJQZUw1eDBLM1UKfa30TyUR2HmpczeYILq8MWWi2ahDpuJ9
|
||||
IQSLbfV/UVWVFJXwZu3Mb/ejm1MTIBddjHQ5OL/ih7v9ui9YF1LEPRhs
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/TWILIO_AUTH_TOKEN
Normal file
7
home/.chezmoitemplates/secrets/TWILIO_AUTH_TOKEN
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCSWp0cmlkU3RLbTZ0SXJ2
|
||||
MVNneGtTRlptVlVqeTZWSFcxZTlxT1V5cncwCmpKZjBlL3k2clVzSnY3QnBzRmtk
|
||||
b2hBMGIvWE5CM0d4YjBoUFNmWmJubmcKLS0tIE14MjI5aTFGdTVJRmdEMFlNbExn
|
||||
R0R0aEw3MWdnUWJJN1pQVzlwQmdTazAKtbAuEbU1/iZA7taqVgA4LUA2V2dZzGHD
|
||||
/FrljRaDQm9yrnS52Q5/m8+4uT+6xJI8ZU+8Hu4u1gtv7v8JFiZCpg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/TWILIO_FROM_NUMBER
Normal file
7
home/.chezmoitemplates/secrets/TWILIO_FROM_NUMBER
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHckxIemV1bUNhbkxKK2Zl
|
||||
bXQxRENjVEYyR3lIcS93Q1RIV3dQOXJlL1dBCmxkVG13UHF4cS9uaU1QcHl3MjB0
|
||||
U2hLUDZMeGQ3cS9NZnBHQWZVZGJ3aFUKLS0tIDBGejhsclZlUUtxSmNNclAyeTIz
|
||||
dHNiR0l4NlE4VHRkQTMzcS9RditXcUUKGuxENmh8UAAaz9W43p8kxJ8alJbTPXLG
|
||||
3fQGzdbva6hvfAAFbpZA9tdYlQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
8
home/.chezmoitemplates/secrets/TWITTER_ACCESS_TOKEN
Normal file
8
home/.chezmoitemplates/secrets/TWITTER_ACCESS_TOKEN
Normal file
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTGFCZ0QwTFJRcUhFc2wx
|
||||
ZWJxR2t2S21wUlI1TmhFZ3R0dHJGbGRoaUdFCm9IQnIwaGkrZE9CUEVjUklFTzJB
|
||||
ZzVTY0xPT1FwKy9hRkdDQjM4Qzd3b1UKLS0tIEdkL0xSd2UyUXkyR2JMclBtV1VB
|
||||
WXF3cjVCNjBiTmh2N05aSzZ6Tlc2eVUKZlVovnodDQlnYfM7KdQcmwz+CiKgP+KB
|
||||
jNbuIB9nAcM1Yck7+2mERWIgyT7/ETx+8mF54W6b17mSN6fxS3p0vaOepMd3H72d
|
||||
ozuPIBUZis9h5w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzS0dYVjBQcmswS3pEcDZS
|
||||
eHc2SkpNNWFZZnpnVEVTc1hOQUxFOHZUL3djCkVHZmZaUkxUYVVoYnVHbHgwT0hv
|
||||
VXJGWEYwaGNQRjB5ODlXZy9VdkcxRFEKLS0tIHcyNko0V3dMOTF4K3BtUXlEcVlT
|
||||
V2pORHBEUWgxU0x4U1dZMXAvaVAxVWMKHst99kXcZkum3O4fve5xcwZe1Z46gGhM
|
||||
fdieq8+35iz0zrjdoaFRoKiDizbvQYr8czukq3wv1fX908xvEtTMvlOyr9v53rNI
|
||||
Qwr7Oq8=
|
||||
-----END AGE ENCRYPTED FILE-----
|
7
home/.chezmoitemplates/secrets/TWITTER_API_KEY
Normal file
7
home/.chezmoitemplates/secrets/TWITTER_API_KEY
Normal file
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYejFwYzdLZExRVFk2dTVW
|
||||
OXZSS0FLaTdpWW9oT0dhVDRyOW0rc0U2T1VFClg2bkpmN0ZnT2JiQjl0MEFidXVv
|
||||
Z3J6MG8yYnljMGZuL2pJWUlXL0RzUTgKLS0tIEVmbEdZTEVOd1J5L0dNbk95TUZM
|
||||
dS9oMXRKb0M5bHErY3lLSnp4Nnd4Y0EK8ZZZOUbKShL0zD2mZH4tmdSgZjQkbmhL
|
||||
BTZuqb0oyXVmRJveHs3tK1Nb2Nzbd50bqaB6fFSIjAT1
|
||||
-----END AGE ENCRYPTED FILE-----
|
8
home/.chezmoitemplates/secrets/TWITTER_API_KEY_SECRET
Normal file
8
home/.chezmoitemplates/secrets/TWITTER_API_KEY_SECRET
Normal file
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTjFYOEtQUWV2VFNvZHJi
|
||||
dXVncmFzNExFUFNvSXZ1YWhyM2VDeHF0OXljClpMM3ZwSnJXTnd5cy9CanFBSkph
|
||||
S1lOS2x4dUJESFVlRUZZcUsvN1Z1d1kKLS0tIHpmb0kvT0tUMXBJcnVBT0ZSSUdj
|
||||
eXF0U1JQZU1iNWVPQmZUNjFTdmM3TVEKmAHM+qRlaynlvlbmkLYM/+MOtzW1xRoV
|
||||
EwwyxdTUVSOcCsQ/64mPhBCKHE3cOeWm501B/cb+9Nl5yAsiuKqHCafo99JCZdhd
|
||||
smrFB76MXqfyIw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
190
home/dot_config/apprise/apprise.yml.tmpl
Normal file
190
home/dot_config/apprise/apprise.yml.tmpl
Normal file
|
@ -0,0 +1,190 @@
|
|||
---
|
||||
version: 1
|
||||
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "files" "apprise-custom")) -}}
|
||||
include:
|
||||
- custom.yml
|
||||
{{ end }}
|
||||
|
||||
# Define an Asset object if you wish (Optional)
|
||||
# asset:
|
||||
# app_id: AppriseTest
|
||||
# app_desc: Apprise Test Notifications
|
||||
# app_url: http://nuxref.com
|
||||
|
||||
groups:
|
||||
- chat: matrix
|
||||
- developer: slack
|
||||
- social: reddit, twitter
|
||||
- owner: sendgrid, twilio, rsyslog, system
|
||||
|
||||
tag: all
|
||||
|
||||
urls:
|
||||
{{- $gmailAppPassword := (default "" (env "GMAIL_PASSWORD")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "GMAIL_PASSWORD")) -}}
|
||||
{{- $gmailAppPassword = includeTemplate "secrets/GMAIL_PASSWORD" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if ne $gmailAppPassword "" -}}
|
||||
### E-mail
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_email
|
||||
# Sends an e-mail with GMail SMTP using GMail username provided in .chezmoi.yaml.tmpl and uses `GMAIL_PASSWORD` (which can be an app password instead of your normal password)
|
||||
- mailto://{{ .user.gmail.username }}:{{- $gmailAppPassword -}}@gmail.com:587?smtp=smtp.gmail.com&from={{ .user.gmail.username }}:
|
||||
- to: "{{ .user.email }}"
|
||||
tag: email, gmail
|
||||
{{ end }}
|
||||
|
||||
{{- $iftttWebhookId := (default "" (env "IFTTT_WEBHOOK_ID")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "IFTTT_WEBHOOK_ID")) -}}
|
||||
{{- $iftttWebhookId = includeTemplate "secrets/IFTTT_WEBHOOK_ID" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if ne $iftttWebhookId "" -}}
|
||||
### IFTTT
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_ifttt
|
||||
# Triggers an IFTTT webhook
|
||||
- ifttt://{{- $iftttWebhookId -}}:
|
||||
- tag: ifttt
|
||||
{{ end }}
|
||||
|
||||
{{- $matrixPassword := (default "" (env "MATRIX_PASSWORD")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "MATRIX_PASSWORD")) -}}
|
||||
{{- $matrixPassword = includeTemplate "secrets/MATRIX_PASSWORD" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $matrixUsername := (default "" (env "MATRIX_USERNAME")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "MATRIX_USERNAME")) -}}
|
||||
{{- $matrixUsername = includeTemplate "secrets/MATRIX_USERNAME" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if and (ne $matrixPassword "") (ne $matrixUsername "") -}}
|
||||
### Matrix
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_matrix
|
||||
# https://app.element.io/#/room/#megabyte.space:matrix.org
|
||||
# Posts a message in a Matrix chatroom
|
||||
- matrix://{{- $matrixUsername -}}:{{- $matrixPassword -}}@matrix.org/#megabyte.space:
|
||||
- tag: chat, matrix, megabyte-labs
|
||||
# https://app.element.io/#/room/#install.doctor:matrix.org
|
||||
- matrix://{{- $matrixUsername -}}:{{- $matrixPassword -}}@matrix.org/#install.doctor:
|
||||
- tag: chat, matrix, install-doctor
|
||||
{{ end }}
|
||||
|
||||
### Microsoft Teams
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_msteams
|
||||
# Note: Microsoft Teams currently requires paid subscriptions of Office 365 for a custom organization
|
||||
|
||||
{{- $redditAppId := (default "" (env "REDDIT_APP_ID")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_APP_ID")) -}}
|
||||
{{- $redditAppId = includeTemplate "secrets/REDDIT_APP_ID" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $redditAppSecret := (default "" (env "REDDIT_APP_SECRET")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_APP_SECRET")) -}}
|
||||
{{- $redditAppSecret = includeTemplate "secrets/REDDIT_APP_SECRET" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $redditPassword := (default "" (env "REDDIT_PASSWORD")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_PASSWORD")) -}}
|
||||
{{- $redditPassword = includeTemplate "secrets/REDDIT_PASSWORD" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $redditUsername := (default "" (env "REDDIT_USERNAME")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_USERNAME")) -}}
|
||||
{{- $redditUsername = includeTemplate "secrets/REDDIT_USERNAME" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if and (ne $redditAppId "") (ne $redditAppSecret "") (ne $redditPassword "") (ne $redditUsername "") -}}
|
||||
### Reddit
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_reddit
|
||||
# TODO - Replace opensource below with appropriate sub-reddit
|
||||
- reddit://{{- $redditUsername -}}:{{- $redditPassword -}}@{{- $redditAppId -}}/{{- $redditAppSecret -}}/{subreddit}:
|
||||
- tag: reddit, post, megabyte-labs
|
||||
{{ end }}
|
||||
|
||||
### RSyslog
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_rsyslog
|
||||
- rsyslog://localhost:
|
||||
- tag: rsyslog, log
|
||||
|
||||
{{- $sendGridApiKey := (default "" (env "SENDGRID_API_KEY")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SENDGRID_API_KEY")) -}}
|
||||
{{- $sendGridApiKey = includeTemplate "secrets/SENDGRID_API_KEY" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if ne $sendGridApiKey "" -}}
|
||||
### SendGrid
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_sendgrid
|
||||
# Sends an e-mail using SendGrid (with templating options)
|
||||
- sendgrid://{{- $sendGridApiKey -}}:{{ .host.noReplyEmail }}:
|
||||
- to: "{{ .user.email }}"
|
||||
tag: email, sendgrid
|
||||
{{ end }}
|
||||
|
||||
{{- $slackBotToken := (default "" (env "SLACK_BOT_USER_OAUTH_TOKEN")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SLACK_BOT_USER_OAUTH_TOKEN")) -}}
|
||||
{{- $slackBotToken = includeTemplate "secrets/SLACK_BOT_USER_OAUTH_TOKEN" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if ne $slackBotToken "" -}}
|
||||
### Slack
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_slack
|
||||
# Posts in Slack chatroom
|
||||
- slack://{{ $slackBotToken }}:
|
||||
- tag: chat, slack
|
||||
{{ end }}
|
||||
|
||||
{{- $twilioAccountSid := (default "" (env "TWILIO_ACCOUNT_SID")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_ACCOUNT_SID")) -}}
|
||||
{{- $twilioAccountSid = includeTemplate "secrets/TWILIO_ACCOUNT_SID" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $twilioAuthToken := (default "" (env "TWILIO_AUTH_TOKEN")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_AUTH_TOKEN")) -}}
|
||||
{{- $twilioAuthToken = includeTemplate "secrets/TWILIO_AUTH_TOKEN" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $twilioFromNumber := (default "" (env "TWILIO_FROM_NUMBER")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_FROM_NUMBER")) -}}
|
||||
{{- $twilioFromNumber = includeTemplate "secrets/TWILIO_FROM_NUMBER" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $cellPhoneNumber := (default "" (env "CELL_PHONE_NUMBER")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CELL_PHONE_NUMBER")) -}}
|
||||
{{- $cellPhoneNumber = includeTemplate "secrets/CELL_PHONE_NUMBER" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if and (ne $twilioAccountSid "") (ne $twilioAuthToken "") (ne $twilioFromNumber "") (ne $cellPhoneNumber "") -}}
|
||||
### Twilio
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_twilio
|
||||
# Sends a text message from Twilio to the `CELL_PHONE_NUMBER`
|
||||
- twilio://{{- $twilioAccountSid -}}:{{- $twilioAuthToken -}}@{{- $twilioFromNumber -}}/{{- $cellPhoneNumber -}}
|
||||
- tag: text, twilio
|
||||
{{ end }}
|
||||
|
||||
{{- $twitterApiKey := (default "" (env "TWITTER_API_KEY")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_API_KEY")) -}}
|
||||
{{- $twitterApiKey = includeTemplate "secrets/TWITTER_API_KEY" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $twitterApiKeySecret := (default "" (env "TWITTER_API_KEY_SECRET")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_API_KEY_SECRET")) -}}
|
||||
{{- $twitterApiKeySecret = includeTemplate "secrets/TWITTER_API_KEY_SECRET" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $twitterAccessToken := (default "" (env "TWITTER_ACCESS_TOKEN")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_ACCESS_TOKEN")) -}}
|
||||
{{- $twitterAccessToken = includeTemplate "secrets/TWITTER_ACCESS_TOKEN" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- $twitterAccessTokenSecret := (default "" (env "TWITTER_ACCESS_TOKEN_SECRET")) -}}
|
||||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_ACCESS_TOKEN_SECRET")) -}}
|
||||
{{- $twitterAccessTokenSecret = includeTemplate "secrets/TWITTER_ACCESS_TOKEN_SECRET" | decrypt | trim -}}
|
||||
{{- end -}}
|
||||
{{- if and (ne $twitterApiKey "") (ne $twitterApiKeySecret "") (ne $twitterAccessToken "") (ne $twitterAccessTokenSecret "") -}}
|
||||
### Twitter
|
||||
# Posts a tweet
|
||||
- twitter://{{- $twitterApiKey -}}/{{- $twitterApiKeySecret -}}/{{- $twitterAccessToken -}}/{{- $twitterAccessTokenSecret -}}?mode=tweet:
|
||||
- tag: post, tweet, megabyte-labs
|
||||
{{ end }}
|
||||
|
||||
### dbus
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_dbus
|
||||
- dbus://:
|
||||
- tag: dbus, system
|
||||
|
||||
### GNOME
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_gnome
|
||||
- gnome://:
|
||||
- tag: gnome, system
|
||||
|
||||
### macOS
|
||||
# Source: https://github.com/caronc/apprise/wiki/Notify_macosx
|
||||
- macosx://:
|
||||
- tag: macos, system
|
||||
|
||||
### Windows
|
||||
# Source:
|
3
home/dot_config/apprise/custom.yml.tmpl
Normal file
3
home/dot_config/apprise/custom.yml.tmpl
Normal file
|
@ -0,0 +1,3 @@
|
|||
{{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "files" "apprise-custom")) -}}
|
||||
{{- includeTemplate "files/apprise-custom" | decrypt -}}
|
||||
{{- end -}}
|
64
home/dot_config/autorestic/autorestic-system.yml
Normal file
64
home/dot_config/autorestic/autorestic-system.yml
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
version: 2
|
||||
|
||||
extras:
|
||||
docker: &docker
|
||||
type: volume
|
||||
to:
|
||||
- docker-local
|
||||
- docker-s3
|
||||
cron: '0 * * * *'
|
||||
hooks:
|
||||
before:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic Docker Volume ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID/start'
|
||||
failure:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic Docker Volume ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID/fail'
|
||||
success:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic Docker Volume ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID'
|
||||
options:
|
||||
backup:
|
||||
exclude:
|
||||
- .venv
|
||||
- node_modules
|
||||
- venv
|
||||
tag:
|
||||
- docker
|
||||
forget:
|
||||
keep-hourly: 24
|
||||
keep-daily: 7
|
||||
keep-weekly: 12
|
||||
keep-monthly: 8
|
||||
keep-yearly: 1
|
||||
|
||||
locations:
|
||||
healthchecks_config:
|
||||
from: healthchecks_config
|
||||
<<: *docker
|
||||
healthchecks_postgres:
|
||||
from: healthchecks_postgres
|
||||
<<: *docker
|
||||
rundeck_data:
|
||||
from: rundeck_data
|
||||
<<: *docker
|
||||
portainer_manager_data:
|
||||
from: portainer_manager_data
|
||||
<<: *docker
|
||||
statping_app:
|
||||
from: statping_app
|
||||
<<: *docker
|
||||
statping_postgres:
|
||||
from: statping_postgres
|
||||
<<: *docker
|
||||
|
||||
backends:
|
||||
docker-local:
|
||||
type: local
|
||||
path: /var/local/backups/docker
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_SYSTEM_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_SYSTEM_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_SYSTEM_PASSWORD") }}{{ end }}
|
||||
docker-s3:
|
||||
type: s3
|
||||
path: {{ .user.cloudflare.r2 }}.r2.cloudflarestorage.com/docker
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_SYSTEM_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_SYSTEM_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_SYSTEM_PASSWORD") }}{{ end }}
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_ID")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_ID" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_ID") }}{{ end }}
|
||||
AWS_SECRET_ACCESS_KEY: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_SECRET")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_SECRET" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_SECRET") }}{{ end }}
|
135
home/dot_config/autorestic/autorestic-user.yml
Normal file
135
home/dot_config/autorestic/autorestic-user.yml
Normal file
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
version: 2
|
||||
|
||||
extras:
|
||||
app: &app
|
||||
to:
|
||||
- apps-local
|
||||
- apps-s3
|
||||
hooks:
|
||||
before:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic App Backup ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID/start'
|
||||
failure:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic App Backup ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID/fail'
|
||||
success:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic App Backup ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/TODO_UUID'
|
||||
options:
|
||||
backup:
|
||||
exclude:
|
||||
- .local
|
||||
- .venv
|
||||
- node_modules
|
||||
- venv
|
||||
tag:
|
||||
- app
|
||||
forget:
|
||||
keep-hourly: 24
|
||||
keep-daily: 7
|
||||
keep-weekly: 14
|
||||
keep-monthly: 3
|
||||
keep-yearly: 2
|
||||
user: &user
|
||||
hooks:
|
||||
before:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic User Home Folder ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/{{ .host.autoresticHealthcheckUuid }}/start'
|
||||
failure:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic User Home Folder ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/{{ .host.autoresticHealthcheckUuid }}/fail'
|
||||
success:
|
||||
- 'curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Autorestic User Home Folder ${AUTORESTIC_LOCATION} BEFORE / Host: ${HOST} / User: ${USER} / Home: ${HOME}" https://healthchecks.{{ .host.domain }}/ping/{{ .host.autoresticHealthcheckUuid }}'
|
||||
options:
|
||||
backup:
|
||||
exclude:
|
||||
- .local
|
||||
- .venv
|
||||
- node_modules
|
||||
- venv
|
||||
- Library
|
||||
tag:
|
||||
- user
|
||||
forget:
|
||||
keep-hourly: 24
|
||||
keep-daily: 7
|
||||
keep-weekly: 14
|
||||
keep-monthly: 3
|
||||
keep-yearly: 2
|
||||
|
||||
locations:
|
||||
altair:
|
||||
from: "$ALTAIR_APPDATA"
|
||||
<<: *app
|
||||
android-studio:
|
||||
from: "$ANDROID_STUDIO_APPDATA"
|
||||
<<: *app
|
||||
brave-browser:
|
||||
from: "$BRAVE_BROWSER_APPDATA"
|
||||
<<: *app
|
||||
ferdium:
|
||||
from: "$FERDIUM_APPDATA"
|
||||
<<: *app
|
||||
firefox:
|
||||
from: "$FIREFOX_APPDATA"
|
||||
<<: *app
|
||||
google-chrome:
|
||||
from: "$GOOGLE_CHROME_APPDATA"
|
||||
<<: *app
|
||||
logi-options-plus:
|
||||
from: "$LOGI_OPTIONS_PLUS_APPDATA"
|
||||
<<: *app
|
||||
mailspring:
|
||||
from: "$MAILSPRING_APPDATA"
|
||||
<<: *app
|
||||
mark-text:
|
||||
from: "$MARK_TEXT_APPDATA"
|
||||
<<: *app
|
||||
microsoft-edge:
|
||||
from: "$MICROSOFT_EDGE_APPDATA"
|
||||
<<: *app
|
||||
notion:
|
||||
from: "$NOTION_APPDATA"
|
||||
<<: *app
|
||||
pieces-os:
|
||||
from: "$PIECES_OS_APPDATA"
|
||||
<<: *app
|
||||
remmina:
|
||||
from: "$REMMINA_APPDATA"
|
||||
<<: *app
|
||||
tor-browser:
|
||||
from: "$TOR_BROWSER_APPDATA"
|
||||
<<: *app
|
||||
warp-terminal:
|
||||
from: "$WARP_TERMINAL_APPDATA"
|
||||
<<: *app
|
||||
home-local:
|
||||
from: ~/
|
||||
to: home-local
|
||||
cron: '0/15 * * * *'
|
||||
<<: *user
|
||||
home-s3:
|
||||
from: ~/
|
||||
to: home-s3
|
||||
cron: '0 * * * *'
|
||||
<<: *user
|
||||
|
||||
backends:
|
||||
apps-local:
|
||||
type: local
|
||||
path: /var/local/backups/user/{{ .user.username }}/apps
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_PASSWORD") }}{{ end }}
|
||||
apps-s3:
|
||||
type: s3
|
||||
path: {{ .user.cloudflare.r2 }}.r2.cloudflarestorage.com/user/{{ .user.username }}/Backups/apps
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_PASSWORD") }}{{ end }}
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_ID_USER")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_ID_USER" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_ID_USER") }}{{ end }}
|
||||
AWS_SECRET_ACCESS_KEY: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_SECRET_USER")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_SECRET_USER" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_SECRET_USER") }}{{ end }}
|
||||
home-local:
|
||||
type: local
|
||||
path: /var/local/backups/user/{{ .user.username }}/home
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_PASSWORD") }}{{ end }}
|
||||
home-s3:
|
||||
type: s3
|
||||
path: {{ .user.cloudflare.r2 }}.r2.cloudflarestorage.com/user/{{ .user.username }}/Backups/home
|
||||
key: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "RESTIC_PASSWORD")) }}{{ includeTemplate "secrets/RESTIC_PASSWORD" | decrypt | trim }}{{ else }}{{ default "" (env "RESTIC_PASSWORD") }}{{ end }}
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_ID_USER")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_ID_USER" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_ID_USER") }}{{ end }}
|
||||
AWS_SECRET_ACCESS_KEY: {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CLOUDFLARE_R2_SECRET_USER")) }}{{ includeTemplate "secrets/CLOUDFLARE_R2_SECRET_USER" | decrypt | trim }}{{ else }}{{ default "" (env "CLOUDFLARE_R2_SECRET_USER") }}{{ end }}
|
|
@ -1,8 +1,6 @@
|
|||
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/opt/homebrew/bin
|
||||
|
||||
|
||||
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
|
||||
|
||||
# 0 8 * * 0 $HOME/.scripts/domingobot.sh 2>&1 >> $HOME/.log/cron.log
|
||||
*/5 * * * * command -v autorestic > /dev/null && autorestic --ci cron > /tmp/autorestic-system.log 2>&1
|
||||
|
||||
# * * * * * command to be executed
|
||||
# ┯ ┯ ┯ ┯ ┯
|
14
home/dot_config/crontab/config-user
Normal file
14
home/dot_config/crontab/config-user
Normal file
|
@ -0,0 +1,14 @@
|
|||
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/opt/homebrew/bin:$HOME/.local/bin
|
||||
|
||||
*/5 * * * * command -v autorestic > /dev/null && . "$HOME/.config/shell/apps.sh" && autorestic -c "$HOME/.config/autorestic/autorestic-user.yml" --ci cron > /tmp/autorestic.log 2>&1
|
||||
* * * * * command -v dagu-cron > /dev/null && dagu-cron
|
||||
* * * * * command -v ghorg > /dev/null && ghorg reclone
|
||||
|
||||
# * * * * * command to be executed
|
||||
# ┯ ┯ ┯ ┯ ┯
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ ╰───── day of week (0 - 6) (Sunday=0)
|
||||
# │ │ │ ╰─────── month (1 - 12)
|
||||
# │ │ ╰───────── day of month (1 - 31)
|
||||
# │ ╰─────────── hour (0 - 23)
|
||||
# ╰───────────── min (0 - 59)
|
26
home/dot_config/dagu/admin.yaml
Normal file
26
home/dot_config/dagu/admin.yaml
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
host: 127.0.0.1 # default: 127.0.0.1
|
||||
port: 8321 # default: 8080
|
||||
|
||||
### Path to the DAGs directory
|
||||
# dags: <the location of DAG configuration files> # default: ${DAGU_HOME}/dags
|
||||
|
||||
### Web UI Color & Title
|
||||
navbarColor: "#119eff" # header color for web UI (e.g. "#ff0000")
|
||||
navbarTitle: CombineOS Dagu # header title for web UI (e.g. "PROD")
|
||||
|
||||
### Basic Auth
|
||||
isBasicAuth: false # enables basic auth
|
||||
# basicAuthUsername: <username for basic auth of web UI> # basic auth user
|
||||
# basicAuthPassword: <password for basic auth of web UI> # basic auth password
|
||||
|
||||
### Base Config
|
||||
# baseConfig: <base DAG config path> # default: ${DAGU_HOME}/config.yaml
|
||||
|
||||
### Working Directory
|
||||
# workDir: <working directory for DAGs> # default: DAG location
|
||||
|
||||
### SSL Configuration
|
||||
# tls:
|
||||
# certFile: <path to SSL certificate file>
|
||||
# keyFile: <path to SSL key file>
|
32
home/dot_config/dagu/config.yaml.tmpl
Normal file
32
home/dot_config/dagu/config.yaml.tmpl
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
### Directory path to save logs from standard output
|
||||
logDir: /var/log/dagu
|
||||
|
||||
### History retention days (default: 30)
|
||||
histRetentionDays: 30
|
||||
|
||||
### Email notification settings
|
||||
mailOn:
|
||||
failure: true
|
||||
success: false
|
||||
|
||||
### SMTP server settings
|
||||
smtp:
|
||||
host: smtp.sendgrid.net
|
||||
port: 587
|
||||
username: apikey
|
||||
password: "{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SENDGRID_API_KEY")) }}{{ includeTemplate "secrets/SENDGRID_API_KEY" | decrypt | trim }}{{ else }}{{ env "SENDGRID_API_KEY" }}{{ end }}"
|
||||
|
||||
### Error mail configuration
|
||||
errorMail:
|
||||
from: "{{ .host.noReplyEmail }}"
|
||||
to: "{{ .user.email }}"
|
||||
prefix: "[Error]"
|
||||
attachLogs: true
|
||||
|
||||
### Info mail configuration
|
||||
infoMail:
|
||||
from: "{{ .host.noReplyEmail }}"
|
||||
to: "{{ .user.email }}"
|
||||
prefix: "[Info]"
|
||||
attachLogs: true
|
|
@ -23,4 +23,5 @@ services:
|
|||
- seccomp:unconfined
|
||||
|
||||
volumes:
|
||||
filestash: {}
|
||||
filestash:
|
||||
name: filestash
|
|
@ -9,7 +9,7 @@ services:
|
|||
PGID: 1000
|
||||
TZ: America/New_York
|
||||
volumes:
|
||||
- ./config/nextcloud:/config
|
||||
- nextcloud_config:/config
|
||||
- /mnt/auxilary/NextCloud:/data
|
||||
ports:
|
||||
- 26777:443
|
||||
|
@ -31,3 +31,7 @@ services:
|
|||
expose:
|
||||
- 3306
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
nextcloud_config:
|
||||
name: nextcloud_config
|
|
@ -12,7 +12,7 @@ services:
|
|||
- nginx_network
|
||||
environment:
|
||||
ALLOWED_HOSTS: "{{ .docker.healthchecks.allowedHosts }}"
|
||||
APPRISE_ENABLED: 'False'
|
||||
APPRISE_ENABLED: 'True'
|
||||
DB_HOST: postgres
|
||||
DB_NAME_FILE: /run/secrets/healthchecks_db_name
|
||||
DB_PASSWORD_FILE: /run/secrets/healthchecks_db_password
|
||||
|
@ -38,6 +38,7 @@ services:
|
|||
SLACK_ENABLED: 'True'
|
||||
SUPERUSER_EMAIL_FILE: /run/secrets/healthchecks_superuser_email
|
||||
SUPERUSER_PASSWORD_FILE: /run/secrets/healthchecks_superuser_password
|
||||
TZ: "{{ .user.timezone }}"
|
||||
WEBHOOKS_ENABLED: 'True'
|
||||
deploy:
|
||||
mode: replicated
|
||||
|
@ -46,6 +47,7 @@ services:
|
|||
- healthchecks_config:/config
|
||||
expose:
|
||||
- 8000
|
||||
- 2525
|
||||
restart: unless-stopped
|
||||
secrets:
|
||||
- healthchecks_db_name
|
||||
|
@ -53,6 +55,8 @@ services:
|
|||
- healthchecks_db_user
|
||||
- healthchecks_secret_key
|
||||
- healthchecks_sendgrid_api_key
|
||||
- healthchecks_slack_client_id
|
||||
- healthchecks_slack_client_secret
|
||||
- healthchecks_superuser_email
|
||||
- healthchecks_superuser_password
|
||||
|
||||
|
@ -95,6 +99,10 @@ secrets:
|
|||
external: true
|
||||
healthchecks_sendgrid_api_key:
|
||||
external: true
|
||||
healthchecks_slack_client_id:
|
||||
external: true
|
||||
healthchecks_slack_client_secret:
|
||||
external: true
|
||||
healthchecks_superuser_email:
|
||||
external: true
|
||||
healthchecks_superuser_password:
|
||||
|
@ -102,4 +110,6 @@ secrets:
|
|||
|
||||
volumes:
|
||||
healthchecks_config:
|
||||
name: healthchecks_config
|
||||
healthchecks_postgres:
|
||||
name: healthchecks_postgres
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
# https://github.com/usememos/memos
|
||||
version: "3.0"
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:latest
|
||||
container_name: memos
|
||||
volumes:
|
||||
- ~/.memos/:/var/opt/memos
|
||||
ports:
|
||||
- 5230:5230
|
|
@ -48,3 +48,4 @@ secrets:
|
|||
|
||||
volumes:
|
||||
portainer_manager_data:
|
||||
name: portainer_manager_data
|
||||
|
|
|
@ -10,7 +10,7 @@ services:
|
|||
MENU_VERSION: 2.0.19 #optional
|
||||
volumes:
|
||||
- $HOME/.ssh:/home/rundeck/.ssh
|
||||
- rundeck-data:/home/rundeck/server/data
|
||||
- rundeck_data:/home/rundeck/server/data
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 69:69/udp
|
||||
|
@ -18,4 +18,5 @@ services:
|
|||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
rundeck-data:
|
||||
rundeck_data:
|
||||
name: rundeck_data
|
||||
|
|
|
@ -72,4 +72,6 @@ secrets:
|
|||
|
||||
volumes:
|
||||
statping_app:
|
||||
name: statping_app
|
||||
statping_postgres:
|
||||
name: statping_postgres
|
||||
|
|
|
@ -2,7 +2,10 @@
|
|||
<service>
|
||||
<short>Plex</short>
|
||||
<description>Plex media center</description>
|
||||
<port protocol="udp" port="1900"/> # Plex DLNA Server
|
||||
<port protocol="tcp" port="32469"/> # Plex DLNA Server
|
||||
<port protocol="udp" port="32410-32414"/> # GDM Network Discovery
|
||||
</service>
|
||||
<port protocol="udp" port="1900"/>
|
||||
<port protocol="tcp" port="3005"/>
|
||||
<port protocol="udp" port="5353"/>
|
||||
<port protocol="tcp" port="8324"/>
|
||||
<port protocol="tcp" port="32400"/>
|
||||
<port protocol="udp" port="32410-32414"/>
|
||||
</service>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<service>
|
||||
<short>xRDP</short>
|
||||
<short>RDP</short>
|
||||
<description>Remote Desktop server</description>
|
||||
<port protocol="tcp" port="3389"/>
|
||||
</service>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<service>
|
||||
<short>rsyslog</short>
|
||||
<description>rsyslog - enhanced, multi-threaded syslogd</description>
|
||||
<port protocol="tcp" port="514"/>
|
||||
</service>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<service>
|
||||
<short>TigerVNC</short>
|
||||
<description>High performance, multi-platform VNC server</description>
|
||||
<short>VNC</short>
|
||||
<description>VNC server</description>
|
||||
<port protocol="tcp" port="5900-5904"/>
|
||||
</service>
|
4
home/dot_config/firewall/etc/ufw/applications.d/ftp
Normal file
4
home/dot_config/firewall/etc/ufw/applications.d/ftp
Normal file
|
@ -0,0 +1,4 @@
|
|||
[FTP]
|
||||
title=FTP
|
||||
description=FTP server
|
||||
ports=21/tcp
|
4
home/dot_config/firewall/etc/ufw/applications.d/jellyfin
Normal file
4
home/dot_config/firewall/etc/ufw/applications.d/jellyfin
Normal file
|
@ -0,0 +1,4 @@
|
|||
[Jellyfin]
|
||||
title=Jellyfin
|
||||
description=Jellyfin media server
|
||||
ports=8096/tcp|8920/tcp|1900/udp|7359/udp
|
|
@ -3,11 +3,6 @@ title=Plex Media Server (Standard)
|
|||
description=The Plex Media Server
|
||||
ports=32400/tcp|3005/tcp|5353/udp|8324/tcp|32410:32414/udp
|
||||
|
||||
[PlexMediaServer DLNA]
|
||||
title=Plex Media Server (DLNA)
|
||||
description=The Plex Media Server (additional DLNA capability only)
|
||||
ports=1900/udp|32469/tcp
|
||||
|
||||
[PlexMediaServer Full]
|
||||
title=Plex Media Server (Standard + DLNA)
|
||||
description=The Plex Media Server (with additional DLNA capability)
|
||||
|
|
4
home/dot_config/firewall/etc/ufw/applications.d/rsyslog
Normal file
4
home/dot_config/firewall/etc/ufw/applications.d/rsyslog
Normal file
|
@ -0,0 +1,4 @@
|
|||
[rsyslog]
|
||||
title=rsyslog
|
||||
description=Enhanced, multi-threaded syslogd
|
||||
ports=514/tcp
|
4
home/dot_config/firewall/etc/ufw/applications.d/vnc
Normal file
4
home/dot_config/firewall/etc/ufw/applications.d/vnc
Normal file
|
@ -0,0 +1,4 @@
|
|||
[VNC]
|
||||
title=VNC
|
||||
description=VNC server
|
||||
ports=5900:5904/tcp
|
|
@ -6,7 +6,7 @@
|
|||
# Which provider to clone from (github, gitlab, gitea or bitbucket)
|
||||
# default: github
|
||||
# flag (--scm, -s) eg: --scm=gitlab
|
||||
GHORG_SCM_TYPE: gitlab
|
||||
GHORG_SCM_TYPE: github
|
||||
|
||||
# How you'd like to clone the repos (https or ssh)
|
||||
# default: https
|
||||
|
@ -18,7 +18,7 @@ GHORG_CLONE_PROTOCOL: https
|
|||
# See https://github.com/gabrie30/ghorg#changing-clone-directories for example
|
||||
# default: YOUR_HOME_DIR/ghorg
|
||||
# flag (--path, -p) eg: --path=/tmp/ghorg
|
||||
GHORG_ABSOLUTE_PATH_TO_CLONE_TO: ~/.local/ghorg
|
||||
GHORG_ABSOLUTE_PATH_TO_CLONE_TO: ~/Projects
|
||||
|
||||
# Folder ghorg will clone all repos into. Cloning will result in: GHORG_ABSOLUTE_PATH_TO_CLONE_TO/GHORG_OUTPUT_DIR/repo
|
||||
# See https://github.com/gabrie30/ghorg#changing-clone-directories for example
|
||||
|
@ -58,7 +58,7 @@ GHORG_PRUNE_NO_CONFIRM: true
|
|||
|
||||
# Color output (enabled, disabled)
|
||||
# flag (--color) eg: --color=disabled
|
||||
GHORG_COLOR: enabled
|
||||
GHORG_COLOR: disabled
|
||||
|
||||
# Skip archived repos, currently github/gitlab/gitea only
|
||||
# flag (--skip-archived)
|
||||
|
@ -70,7 +70,7 @@ GHORG_SKIP_FORKS: false
|
|||
|
||||
# Backup mode, clone as mirror, no working copy (ignores branch parameter)
|
||||
# flag (--backup)
|
||||
GHORG_BACKUP: true
|
||||
# GHORG_BACKUP: false
|
||||
|
||||
# Max goroutines created while cloning
|
||||
# flag (--concurrency)
|
||||
|
@ -99,7 +99,7 @@ GHORG_CONCURRENCY: 25
|
|||
|
||||
# Only clones new repos and does not perform a git clean on existing repos. Useful if you don't want to lose changes made to repos in the org/user directory.
|
||||
# flag (--no-clean)
|
||||
GHORG_NO_CLEAN: false
|
||||
GHORG_NO_CLEAN: true
|
||||
|
||||
# Additionally clone the wiki page for repo
|
||||
# flag (--clone-wiki)
|
||||
|
@ -107,7 +107,7 @@ GHORG_CLONE_WIKI: false
|
|||
|
||||
# Fetches all remote branches for each repo by running a git fetch --all
|
||||
# flag (--fetch-all)
|
||||
GHORG_FETCH_ALL: false
|
||||
GHORG_FETCH_ALL: true
|
||||
|
||||
# If you want to set a path other than $HOME/.config/ghorg/ghorgignore for your ghorgignore
|
||||
# flag (--ghorgignore-path)
|
||||
|
@ -115,7 +115,7 @@ GHORG_FETCH_ALL: false
|
|||
|
||||
# Only emit critical output.
|
||||
# flag (--quiet)
|
||||
GHORG_QUIET: false
|
||||
GHORG_QUIET: true
|
||||
|
||||
# Perform a dry run of the clone; fetches repos but does not clone them.
|
||||
# flag (--dry-run)
|
||||
|
|
7
home/dot_config/ghorg/reclone.yaml
Normal file
7
home/dot_config/ghorg/reclone.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
github:
|
||||
cmd: "ghorg clone megabyte-labs -s github -p ~/GitHub"
|
||||
description: "Clones the GitHub megabyte-labs organization repositories"
|
||||
gitlab:
|
||||
cmd: "ghorg clone megabyte-labs -s gitlab -p ~/GitLab"
|
||||
description: "Clones the GitLab megabyte-labs organization repositories"
|
42
home/dot_config/shell/apps.sh.tmpl
Normal file
42
home/dot_config/shell/apps.sh.tmpl
Normal file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env sh
|
||||
# @file App Backup Variables
|
||||
# @brief Stores variables that instruct various utilities what location to use for private application data
|
||||
# @description
|
||||
# The variables in this file are used to instruct `autorestic` and possibly other utilities about the
|
||||
# location of the private application data for various programs that get backed up.
|
||||
|
||||
if [ -d /Applications ] && [ -d /System ]; then
|
||||
### macOS
|
||||
ALTAIR_APPDATA="$HOME/Library/Application Support/Altair GraphQL Client"
|
||||
ANDROID_STUDIO_APPDATA="TODO"
|
||||
BRAVE_BROWSER_APPDATA="$HOME/Library/Application Support/BraveSoftware/Brave-Browser/Default"
|
||||
FERDIUM_APPDATA="$HOME/Library/Application Support/Ferdium"
|
||||
FIREFOX_APPDATA="$HOME/Library/Application Support/Firefox/Profiles"
|
||||
GOOGLE_CHROME_APPDATA="$HOME/Library/Application Support/Google/Chrome/Default"
|
||||
LOGI_OPTIONS_PLUS_APPDATA="$HOME/Library/Application Support/LogiOptionsPlus"
|
||||
MAILSPRING_APPDATA="$HOME/Library/Application Support/Mailspring"
|
||||
MARK_TEXT_APPDATA="$HOME/Library/Application Support/marktext"
|
||||
MICROSOFT_EDGE_APPDATA="$HOME/Library/Application Support/Microsoft Edge/Default"
|
||||
NOTION_APPDATA="$HOME/Library/Application Support/Notion"
|
||||
PIECES_OS_APPDATA="$HOME/Library/Application Support/com.pieces.os"
|
||||
# REMMINA_APPDATA - Remmina not available on macOS
|
||||
TOR_BROWSER_APPDATA="$HOME/Library/Application Support/TorBrowser-Data/Tor"
|
||||
WARP_TERMINAL_APPDATA="$HOME/Library/Application Support/dev.warp.Warp-Stable"
|
||||
else
|
||||
### Linux
|
||||
# Currently, we assume the Flatpak location whenever possible
|
||||
ANDROID_STUDIO_APPDATA="TODO"
|
||||
ALTAIR_APPDATA="$HOME/snap/altair/current/.config/Altair GraphQL Client"
|
||||
BRAVE_BROWSER_APPDATA="$HOME/.var/app/com.brave.Browser/config/BraveSoftware/Brave-Browser/Default"
|
||||
FERDIUM_APPDATA="$HOME/.var/app/org.ferdium.Ferdium/config/Ferdium"
|
||||
FIREFOX_APPDATA="$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox"
|
||||
GOOGLE_CHROME_APPDATA="$HOME/.var/app/com.google.Chrome/config/google-chrome/Default"
|
||||
MAILSPRING_APPDATA="TODO"
|
||||
MARK_TEXT_APPDATA="TODO"
|
||||
MICROSOFT_EDGE_APPDATA="TODO"
|
||||
NOTION_APPDATA="TODO"
|
||||
PIECES_OS_APPDATA="TODO"
|
||||
REMMINA_APPDATA="$HOME/.var/app/org.remmina.Remmina/config/remmina/remmina.pref"
|
||||
TOR_BROWSER_APPDATA="TODO"
|
||||
WARP_TERMINAL_APPDATA="TODO"
|
||||
fi
|
|
@ -181,6 +181,9 @@ export CONCURRENT_LOG_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/concurrent"
|
|||
### cURL
|
||||
export CURLOPT_ACCEPT_ENCODING=true
|
||||
|
||||
### Dagu
|
||||
export DAGU_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/dagu"
|
||||
|
||||
### Desk
|
||||
export DESK_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/desk"
|
||||
export DESK_DESKS_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/desk/desks"
|
||||
|
|
|
@ -12,6 +12,8 @@ export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|||
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/exports.sh" ] || . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/exports.sh"
|
||||
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliases.sh" ] || . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliases.sh"
|
||||
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/functions.sh" ] || . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/functions.sh"
|
||||
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/apps.sh" ] || . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/apps.sh"
|
||||
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/docker.sh" ] || . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/docker.sh"
|
||||
|
||||
### Bash / ZSH
|
||||
if [ "$BASH_SUPPORT" = 'true' ]; then
|
||||
|
|
20
home/dot_local/bin/executable_dagu-cron
Normal file
20
home/dot_local/bin/executable_dagu-cron
Normal file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
# @file Dagu Cron-Based Daemon Helper
|
||||
# @brief Helper executable used by cron to ensure Dagu is running
|
||||
# @description
|
||||
# This script is utilized by the user-level cronjob runner. Every minute this script is called by the cron
|
||||
# scheduler to ensure that the Dagu service is running. Read more about Dagu on their [GitHub page](https://github.com/dagu-dev/dagu).
|
||||
|
||||
PROCESS="dagu start-all"
|
||||
COMMAND="/usr/bin/dagu start-all"
|
||||
|
||||
### Ensure dagu is installed
|
||||
if command -v dagu > /dev/null; then
|
||||
### Check if process is already running
|
||||
if ps ax | grep -v grep | grep "$PROCESS" > /dev/null; then
|
||||
exit
|
||||
else
|
||||
$COMMAND &
|
||||
fi
|
||||
fi
|
||||
exit
|
|
@ -1,4 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
# @file RClone Mount
|
||||
# @brief Helper utility to aid with mounting RClone S3 buckets to the file system
|
||||
# @description
|
||||
# This script is a helper utility to assist a system service that ensures various
|
||||
# RClone S3 mounts are mounted properly. For more information, take a look at the
|
||||
# RClone files stored in `~/.config/rclone`.
|
||||
|
||||
### Variables
|
||||
TYPE="$1"
|
||||
|
@ -44,7 +50,7 @@ for FOLDER in "$CACHE_FOLDER" "$CONFIG_FOLDER" "$LOG_FOLDER" "$MOUNT_PATH"; do
|
|||
if [ ! -d "$FOLDER" ]; then
|
||||
mkdir -p "$FOLDER"
|
||||
chmod 750 "$FOLDER"
|
||||
chown -f $USER:rclone "$FOLDER"
|
||||
chown -f "$USER:rclone" "$FOLDER"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -54,15 +60,15 @@ if [ ! -f "$RCLONE_IGNORE" ] && [ -f "/etc/rcloneignore" ]; then
|
|||
RCLONE_IGNORE='/etc/rcloneignore'
|
||||
fi
|
||||
|
||||
sudo chown -f root "$CONFIG_FOLDER/rclone.conf"
|
||||
sudo chmod -f 600 "$CONFIG_FOLDER/rclone.conf"
|
||||
chown -f "$USER:rclone" "$CONFIG_FOLDER/rclone.conf"
|
||||
chmod -f 600 "$CONFIG_FOLDER/rclone.conf"
|
||||
|
||||
### Mount
|
||||
unset AWS_CA_BUNDLE
|
||||
export PATH="$PATH:/usr/local/bin:/usr/bin"
|
||||
# TODO: Only launch with --rc-web-gui if the servers hostname is the {{ .kubernetesHost }}
|
||||
# TODO: Add more secure authentication method
|
||||
sudo rclone --config "$CONFIG_FOLDER/rclone.conf" \
|
||||
rclone --config "$CONFIG_FOLDER/rclone.conf" \
|
||||
mount \
|
||||
--allow-other \
|
||||
--buffer-size 4G \
|
||||
|
|
BIN
home/dot_local/etc/branding/black-icon-128x128.png
Normal file
BIN
home/dot_local/etc/branding/black-icon-128x128.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
|
@ -24,6 +24,10 @@ ingress:
|
|||
service: tcp://localhost:2022
|
||||
- hostname: vnc.{{ $baseDomain }}
|
||||
service: tcp://localhost:5901
|
||||
- hostname: dagu.{{ $baseDomain }}
|
||||
service: tcp://localhost:8321
|
||||
- hostname: rsyslog.{{ $baseDomain }}
|
||||
service: tcp://localhost:514
|
||||
{{- if eq .host.softwareGroup "Kubernetes" }}
|
||||
- hostname: k8s.{{ .host.domain }}
|
||||
service: bastion
|
||||
|
|
231
software.yml
231
software.yml
|
@ -422,10 +422,10 @@ softwarePackages:
|
|||
sudo snap connect pieces-os:dotnet-runtime-aspnetcore
|
||||
_app: Pieces.app
|
||||
_note: Waiting for choco package
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/pieces-os"
|
||||
target: "$HOME/Library/Application Support/com.pieces.os"
|
||||
_link:snap: 'TODO'
|
||||
_env:
|
||||
PIECES_OS_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/com.pieces.os"
|
||||
snap: "TODO"
|
||||
appinstaller: https://builds.pieces.app/stages/production/appinstaller/os_server.appinstaller
|
||||
cask: pieces-os
|
||||
exe: https://builds.pieces.app/stages/production/os_server/windows-exe/download
|
||||
|
@ -532,13 +532,11 @@ softwarePackages:
|
|||
_home: https://altairgraphql.dev/
|
||||
_name: Altair GraphQL Client
|
||||
_app: Altair GraphQL Client.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/Altair GraphQL Client"
|
||||
target: "$HOME/Library/Application Support/Altair GraphQL Client"
|
||||
_link:choco: 'TODO'
|
||||
_link:snap:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/Altair GraphQL Client"
|
||||
target: "$HOME/snap/altair/current/.config/Altair GraphQL Client"
|
||||
_env:
|
||||
ALTAIR_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Altair GraphQL Client"
|
||||
choco: "TODO"
|
||||
snap: "$HOME/snap/altair/current/.config/Altair GraphQL Client"
|
||||
cask: altair-graphql-client
|
||||
choco: altair-graphql
|
||||
snap: altair
|
||||
|
@ -609,10 +607,12 @@ softwarePackages:
|
|||
_home: https://developer.android.com/studio
|
||||
_name: Android Studio
|
||||
_app: Android Studio.app
|
||||
_link:cask: 'TODO'
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak: 'TODO'
|
||||
_link:snap: 'TODO'
|
||||
_env:
|
||||
ANDROID_STUDIO_APPDATA:
|
||||
cask: "TODO"
|
||||
choco: "TODO"
|
||||
flatpak: "TODO"
|
||||
snap: "TODO"
|
||||
cask: android-studio
|
||||
choco: androidstudio
|
||||
flatpak: com.google.AndroidStudio
|
||||
|
@ -1179,6 +1179,11 @@ softwarePackages:
|
|||
_github: https://github.com/cupcakearmy/autorestic/
|
||||
_home: https://autorestic.vercel.app/
|
||||
_name: Autorestic
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
sudo mkdir -p /var/local/backups/apps
|
||||
sudo mkdir -p /var/local/backups/home
|
||||
sudo mkdir -p /var/local/backups/docker
|
||||
ansible: professormanhattan.autorestic
|
||||
brew: autorestic
|
||||
awscli:
|
||||
|
@ -1281,10 +1286,10 @@ softwarePackages:
|
|||
_github: false
|
||||
_name: Logi Options+
|
||||
_app: logioptionsplus.app
|
||||
_link:choco: 'TODO'
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/LogiOptionsPlus"
|
||||
target: "$HOME/Library/Application Support/LogiOptionsPlus"
|
||||
_env:
|
||||
LOGI_OPTIONS_PLUS_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/LogiOptionsPlus"
|
||||
choco: "TODO"
|
||||
choco: logioptionsplus
|
||||
cask: logi-options-plus
|
||||
exe: https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe
|
||||
|
@ -1685,6 +1690,25 @@ softwarePackages:
|
|||
_name: MongoDB Atlas
|
||||
brew: mongodb-atlas
|
||||
choco: mongodb-atlas
|
||||
pywin32:
|
||||
_bin: pywin32
|
||||
_name: Pywin32
|
||||
_github: https://github.com/mhammond/pywin32
|
||||
pipx:windows: pywin32
|
||||
terminal-notifier:
|
||||
_bin: terminal-notifier
|
||||
_name: Terminal Notifier
|
||||
_github: https://github.com/julienXX/terminal-notifier
|
||||
brew:darwin: terminal-notifier
|
||||
apprise:
|
||||
_deps:
|
||||
- pywin32
|
||||
- terminal-notifier
|
||||
_bin: apprise
|
||||
_name: Apprise
|
||||
_github: https://github.com/caronc/apprise
|
||||
dnf: apprise
|
||||
pipx: apprise
|
||||
privaxy:
|
||||
_bin: privaxy
|
||||
_desc: Privaxy is the next generation tracker and advertisement blocker. It blocks ads and trackers by MITMing HTTP(s) traffic.
|
||||
|
@ -1704,18 +1728,12 @@ softwarePackages:
|
|||
_home: https://brave.com/
|
||||
_name: Brave Browser
|
||||
_app: Brave Browser.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/BraveSoftware/Brave-Browser/Default"
|
||||
target: "$HOME/Library/Application Support/BraveSoftware/Brave-Browser/Default"
|
||||
_link:choco:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/BraveSoftware/Brave-Browser/Default"
|
||||
target: "%APPDATA%/Local/BraveSoftware/Brave-Browser/User Data"
|
||||
_link:flatpak:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/BraveSoftware/Brave-Browser/Default"
|
||||
target: "$HOME/.var/app/com.brave.Browser/config/BraveSoftware/Brave-Browser/Default"
|
||||
_link:snap:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/BraveSoftware/Brave-Browser/Default"
|
||||
target: "$HOME/snap/brave/current/.config/BraveSoftware/Brave-Browser/Default"
|
||||
_env:
|
||||
BRAVE_BROWSER_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/BraveSoftware/Brave-Browser/Default"
|
||||
choco: "%APPDATA%/Local/BraveSoftware/Brave-Browser/User Data"
|
||||
flatpak: "$HOME/.var/app/com.brave.Browser/config/BraveSoftware/Brave-Browser/Default"
|
||||
snap: "$HOME/snap/brave/current/.config/BraveSoftware/Brave-Browser/Default"
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
# @brief See `google-chrome` `_post` script for more details
|
||||
|
@ -1797,6 +1815,18 @@ softwarePackages:
|
|||
emerge: broot
|
||||
pkgin: broot
|
||||
port: broot
|
||||
rsyslog:
|
||||
_bin: rsyslog
|
||||
_github: https://github.com/rsyslog/rsyslog
|
||||
_name: RSyslog
|
||||
_service: rsyslog
|
||||
_ports:
|
||||
- port: 514
|
||||
proto: tcp
|
||||
apt: rsyslog
|
||||
brew: rsyslog
|
||||
dnf: rsyslog
|
||||
pacman: rsyslog
|
||||
browser-sync:
|
||||
_bin: browser-sync
|
||||
_desc: '[Browsersync](https://browsersync.io/) allows you to keep multiple browsers & devices in sync when building websites'
|
||||
|
@ -2007,12 +2037,10 @@ softwarePackages:
|
|||
_home: https://www.google.com/chrome/
|
||||
_name: Google Chrome
|
||||
_app: Google Chrome.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/google-chrome/Default"
|
||||
target: "$HOME/Library/Application Support/Google/Chrome/Default"
|
||||
_link:flatpak:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/google-chrome/Default"
|
||||
target: "$HOME/.var/app/com.google.Chrome/config/google-chrome/Default"
|
||||
_env:
|
||||
GOOGLE_CHROME_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Google/Chrome/Default"
|
||||
flatpak: "$HOME/.var/app/com.google.Chrome/config/google-chrome/Default"
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
# @file Chrome Settings / Extensions
|
||||
|
@ -2124,11 +2152,11 @@ softwarePackages:
|
|||
_name: Tor Browser
|
||||
_restricted: true
|
||||
_app: Tor Browser.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/tor-browser"
|
||||
target: "$HOME/Library/Application Support/TorBrowser-Data/Tor"
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak: 'TODO'
|
||||
_env:
|
||||
TOR_BROWSER_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/TorBrowser-Data/Tor"
|
||||
choco: "TODO"
|
||||
flatpak: "TODO"
|
||||
cask: tor-browser
|
||||
choco: tor-browser
|
||||
flatpak: com.github.micahflee.torbrowser-launcher
|
||||
|
@ -3965,21 +3993,15 @@ softwarePackages:
|
|||
_home: https://www.mozilla.org/en-US/firefox/new/
|
||||
_name: Mozilla Firefox
|
||||
_app: Firefox.app
|
||||
_link:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/profiles"
|
||||
target: "$HOME/.mozilla/firefox"
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/profiles"
|
||||
target: "$HOME/Library/Application Support/Firefox/Profiles"
|
||||
_link:choco:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/profiles"
|
||||
target: 'TODO'
|
||||
_link:flatpak:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/profiles"
|
||||
target: "$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox"
|
||||
_link:snap:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/firefox/profiles"
|
||||
target: "$HOME/snap/firefox/common/.mozilla/firefox"
|
||||
_env:
|
||||
FIREFOX_APPDATA:
|
||||
apt: "$HOME/.mozilla/firefox"
|
||||
cask: "$HOME/Library/Application Support/Firefox/Profiles"
|
||||
choco: "TODO"
|
||||
dnf: "$HOME/.mozilla/firefox"
|
||||
flatpak: "$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox"
|
||||
pacman: "$HOME/.mozilla/firefox"
|
||||
snap: "$HOME/snap/firefox/common/.mozilla/firefox"
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
# @file Firefox Settings / Add-Ons / Profiles
|
||||
|
@ -4852,6 +4874,9 @@ softwarePackages:
|
|||
_github: https://github.com/gabrie30/ghorg
|
||||
_home: null
|
||||
_name: ghorg
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
ghorg reclone
|
||||
ansible: professormanhattan.ghorg
|
||||
brew: gabrie30/utils/ghorg
|
||||
github: github.com/gabrie30/ghorg
|
||||
|
@ -6883,16 +6908,12 @@ softwarePackages:
|
|||
ferdium:
|
||||
_bin: ferdium
|
||||
_app: Ferdium.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/Ferdium"
|
||||
target: "$HOME/Library/Application Support/Ferdium"
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/Ferdium"
|
||||
target: "$HOME/.var/app/org.ferdium.Ferdium/config/Ferdium"
|
||||
_link:snap:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/Ferdium"
|
||||
target: "$HOME/snap/ferdium/current/.config/Ferdium"
|
||||
_env:
|
||||
FERDIUM_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Ferdium"
|
||||
choco: TODO
|
||||
flatpak: "$HOME/.var/app/org.ferdium.Ferdium/config/Ferdium"
|
||||
snap: "$HOME/snap/ferdium/current/.config/Ferdium"
|
||||
cask: ferdium
|
||||
choco: ferdium
|
||||
flatpak: org.ferdium.Ferdium
|
||||
|
@ -6929,12 +6950,12 @@ softwarePackages:
|
|||
_home: https://getmailspring.com/
|
||||
_name: Mailspring
|
||||
_app: Mailspring.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/mailspring"
|
||||
target: "$HOME/Library/Application Support/Mailspring"
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak: 'TODO'
|
||||
_link:snap: 'TODO'
|
||||
_env:
|
||||
MAILSPRING_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Mailspring"
|
||||
choco: "TODO"
|
||||
flatpak: "TODO"
|
||||
snap: "TODO"
|
||||
cask: mailspring
|
||||
choco: mailspring
|
||||
flatpak: com.getmailspring.Mailspring
|
||||
|
@ -6960,12 +6981,12 @@ softwarePackages:
|
|||
_home: null
|
||||
_name: MarkText
|
||||
_app: MarkText.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/marktext"
|
||||
target: "$HOME/Library/Application Support/marktext"
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak: 'TODO'
|
||||
_link:winget: 'TODO'
|
||||
_env:
|
||||
MARK_TEXT_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/marktext"
|
||||
choco: "TODO"
|
||||
flatpak: "TODO"
|
||||
winget: "TODO"
|
||||
cask: mark-text
|
||||
choco: marktext
|
||||
flatpak: com.github.marktext.marktext
|
||||
|
@ -7038,11 +7059,11 @@ softwarePackages:
|
|||
_home: https://www.microsoft.com/en-us/edge
|
||||
_name: Microsoft Edge
|
||||
_app: Microsoft Edge.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/microsoft-edge/Default"
|
||||
target: "$HOME/Library/Application Support/Microsoft Edge/Default"
|
||||
_link:choco: 'TODO'
|
||||
_link:flatpak: 'TODO'
|
||||
_env:
|
||||
MICROSOFT_EDGE_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Microsoft Edge/Default"
|
||||
choco: "TODO"
|
||||
flatpak: "TODO"
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
# @brief See `google-chrome` `_post` script for more details
|
||||
|
@ -8117,10 +8138,10 @@ softwarePackages:
|
|||
_name: Notion AI
|
||||
_note: Waiting on Linux install alternative.
|
||||
_app: Notion.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/notion"
|
||||
target: "$HOME/Library/Application Support/Notion"
|
||||
_link:choco: 'TODO'
|
||||
_env:
|
||||
NOTION_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/Notion"
|
||||
choco: "TODO"
|
||||
cask: notion
|
||||
choco: notion
|
||||
mas: 1559269364
|
||||
|
@ -8187,9 +8208,9 @@ softwarePackages:
|
|||
_home: https://www.warp.dev/
|
||||
_name: Warp Terminal
|
||||
_app: Warp.app
|
||||
_link:cask:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/warp-terminal"
|
||||
target: "$HOME/Library/Application Support/dev.warp.Warp-Stable"
|
||||
_env:
|
||||
WARP_TERMINAL_APPDATA:
|
||||
cask: "$HOME/Library/Application Support/dev.warp.Warp-Stable"
|
||||
cask: warp
|
||||
figma:
|
||||
_bin: null
|
||||
|
@ -9685,12 +9706,10 @@ softwarePackages:
|
|||
_github: null
|
||||
_home: https://remmina.org/
|
||||
_name: Remmina
|
||||
_link:flatpak:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/remmina/remmina.pref"
|
||||
target: "$HOME/.var/app/org.remmina.Remmina/config/remmina/remmina.pref"
|
||||
_link:snap:
|
||||
- src: "${XDG_CONFIG_HOME:-$HOME/.config}/remmina/remmina.pref"
|
||||
target: "$HOME/snap/remmina/current/.config/remmina/remmina.pref"
|
||||
_env:
|
||||
REMMINA_APPDATA:
|
||||
flatpak: "$HOME/.var/app/org.remmina.Remmina/config/remmina/remmina.pref"
|
||||
snap: "$HOME/snap/remmina/current/.config/remmina/remmina.pref"
|
||||
apt: remmina
|
||||
dnf: remmina
|
||||
flatpak: org.remmina.Remmina
|
||||
|
@ -11616,6 +11635,24 @@ softwarePackages:
|
|||
pipx: termius
|
||||
snap: termius-app
|
||||
yay: termius
|
||||
dagu:
|
||||
_bin: dagu
|
||||
_github:
|
||||
_name: Dagu
|
||||
_post: |
|
||||
#!/usr/bin/env bash
|
||||
sudo mkdir -p /var/log/dagu
|
||||
dagu start-all
|
||||
_boot: |
|
||||
#!/usr/bin/env bash
|
||||
# TODO - Add _boot capability
|
||||
dagu start-all
|
||||
brew: yohamta/tap/dagu
|
||||
runitor:
|
||||
_bin: runitor
|
||||
_github: https://github.com/bdd/runitor
|
||||
_name: Runitor
|
||||
go: bdd.fi/x/runitor/cmd/runitor@latest
|
||||
postfix:
|
||||
_bin: postfix
|
||||
_desc: Postfix is an e-mail server that can be used to send e-mail
|
||||
|
|
Loading…
Reference in a new issue