mirror of
https://github.com/Death916/nixconfig.git
synced 2026-04-10 02:54:39 -07:00
tradingview
This commit is contained in:
parent
e18849cc95
commit
751654408b
3 changed files with 69 additions and 15 deletions
|
|
@ -84,6 +84,7 @@ in
|
||||||
vlc
|
vlc
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
syncterm
|
syncterm
|
||||||
|
tradingview
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
|
|
|
||||||
50
kopiascript.sh
Normal file
50
kopiascript.sh
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
|
||||||
|
# Ensure Kopia is in the PATH for systemd execution
|
||||||
|
PATH=/run/current-system/sw/bin:$PATH
|
||||||
|
|
||||||
|
# Exit on error
|
||||||
|
set -e
|
||||||
|
|
||||||
|
LOG_TAG="kopia-backup-nixos-server"
|
||||||
|
|
||||||
|
# --- Configuration ---
|
||||||
|
# Add full paths to directories you want to back up
|
||||||
|
DIRECTORIES_TO_BACKUP=(
|
||||||
|
"/etc"
|
||||||
|
"/srv"
|
||||||
|
"/var/log"
|
||||||
|
"/home/"
|
||||||
|
"/var/lib/"
|
||||||
|
"/root/"
|
||||||
|
"/storage"
|
||||||
|
# Be specific for home directories if not backing up all of /home
|
||||||
|
# Add more paths as needed
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Backup Logic ---
|
||||||
|
logger -t "$LOG_TAG" "Starting Kopia backup process for NixOS server."
|
||||||
|
|
||||||
|
# Connect to repository (Kopia will use existing config if already connected and valid)
|
||||||
|
# This is a safety check; normally not needed if `kopia repository connect` was successful earlier.
|
||||||
|
# If you encounter issues, you might need to ensure the environment for systemd can find the kopia config.
|
||||||
|
# For simplicity, we assume the `sudo kopia repository connect` in Step 2 established the connection.
|
||||||
|
|
||||||
|
for dir_path in "${DIRECTORIES_TO_BACKUP[@]}"; do
|
||||||
|
if [ -d "$dir_path" ]; then
|
||||||
|
logger -t "$LOG_TAG" "Backing up directory: $dir_path"
|
||||||
|
# The username and hostname from the 'connect' command will be used by default.
|
||||||
|
# You can add specific tags for better organization.
|
||||||
|
kopia snapshot create "$dir_path" --tags "path:$dir_path"
|
||||||
|
logger -t "$LOG_TAG" "Successfully backed up: $dir_path"
|
||||||
|
else
|
||||||
|
logger -t "$LOG_TAG" "Directory not found, skipping: $dir_path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
logger -t "$LOG_TAG" "Kopia backup process completed."
|
||||||
|
|
||||||
|
# Optional: Run Kopia maintenance (can also be a separate timer)
|
||||||
|
# logger -t "$LOG_TAG" "Running Kopia maintenance."
|
||||||
|
#kopia maintenance run --full
|
||||||
|
#logger -t "$LOG_TAG" "Kopia maintenance finished."
|
||||||
|
|
||||||
|
|
@ -3,28 +3,31 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# agenix
|
|
||||||
age.secrets.restic-hetzner.file = ../../secrets/restic-hetzner.age;
|
|
||||||
age.secrets.restic-hetzner-password.file = ../../secrets/restic-hetzner-password.age;
|
|
||||||
|
|
||||||
# ssh known hosts
|
|
||||||
programs.ssh.knownHosts = {
|
|
||||||
"u419690.your-storagebox.de".publicKey = "<the public key>";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.restic.backups = {
|
services.restic.backups = {
|
||||||
remotebackup = {
|
remotebackup = {
|
||||||
|
exclude = [
|
||||||
|
*cache
|
||||||
|
]
|
||||||
initialize = true;
|
initialize = true;
|
||||||
paths = [ # what to backup
|
paths = [ # what to backup
|
||||||
"/persistent"
|
"/etc"
|
||||||
];
|
"/srv"
|
||||||
passwordFile = config.age.secrets.restic-hetzner-password.path; # encryption
|
"/var/log"
|
||||||
repository = "sftp://<boxname>-<subN>@<boxname>.your-storagebox.de/"; @ where to store it
|
"/home"
|
||||||
|
"/var/lib"
|
||||||
extraOptions = [
|
"/root"
|
||||||
# how to connect
|
"/storage"
|
||||||
"sftp.command='${pkgs.sshpass}/bin/sshpass -f ${config.age.secrets.restic-hetzner.path} -- ssh -4 u419690.your-storagebox.de -l u419690-sub1 -s sftp'"
|
|
||||||
];
|
];
|
||||||
|
passwordFile = "/etc/nixos/secrets/restic-password"; # encryption
|
||||||
|
repository = "s3:s3.idrivee2.com/your-bucket-name"; # where to store it
|
||||||
|
environment = {
|
||||||
|
AWS_ACCESS_KEY_ID = "/etc/nixos/secrets/restic-s3-access-key-id";
|
||||||
|
AWS_SECRET_ACCESS_KEY = "/etc/nixos/secrets/restic-s3-secret-access-key";
|
||||||
|
};
|
||||||
timerConfig = { # when to backup
|
timerConfig = { # when to backup
|
||||||
OnCalendar = "00:05";
|
OnCalendar = "00:05";
|
||||||
RandomizedDelaySec = "5h";
|
RandomizedDelaySec = "5h";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue