feat: integrates repo's LAN option into the wizard

This commit is contained in:
bsourisse 2023-06-11 15:32:16 +02:00
parent 2eca125974
commit f1fdbc47fc
3 changed files with 71 additions and 30 deletions

View file

@ -5,6 +5,22 @@ import { IconTool, IconAlertCircle } from '@tabler/icons';
import CopyButton from '../../UI/CopyButton/CopyButton'; import CopyButton from '../../UI/CopyButton/CopyButton';
function WizardStep2(props) { function WizardStep2(props) {
////Vars
//Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled.
let HOSTNAME;
let SSH_SERVER_PORT;
if (
props.selectedOption.lanCommand &&
process.env.NEXT_PUBLIC_HOSTNAME_LAN &&
process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN
) {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN;
} else {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT;
}
return ( return (
<div className={classes.container}> <div className={classes.container}>
<h1> <h1>
@ -23,13 +39,12 @@ function WizardStep2(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg init -e repokey-blake2 ssh:// borg init -e repokey-blake2 ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg init -e repokey-blake2 ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}`} dataToCopy={`borg init -e repokey-blake2 ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}`}
/> />
</div> </div>
<div className={classes.note}> <div className={classes.note}>
@ -80,13 +95,12 @@ function WizardStep2(props) {
> >
<div className={classes.code}> <div className={classes.code}>
ssh:// ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
</div> </div>
<CopyButton <CopyButton
dataToCopy={`ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}`} dataToCopy={`ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}`}
/> />
</div> </div>
For more information about the Vorta graphical client, please For more information about the Vorta graphical client, please

View file

@ -5,6 +5,22 @@ import { IconChecks, IconPlayerPlay } from '@tabler/icons';
import CopyButton from '../../UI/CopyButton/CopyButton'; import CopyButton from '../../UI/CopyButton/CopyButton';
function WizardStep3(props) { function WizardStep3(props) {
////Vars
//Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled.
let HOSTNAME;
let SSH_SERVER_PORT;
if (
props.selectedOption.lanCommand &&
process.env.NEXT_PUBLIC_HOSTNAME_LAN &&
process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN
) {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN;
} else {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT;
}
return ( return (
<div className={classes.container}> <div className={classes.container}>
<h1> <h1>
@ -22,14 +38,13 @@ function WizardStep3(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg create ssh:// borg create ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
::archive1 /your/pathToBackup ::archive1 /your/pathToBackup
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg create ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 /your/pathToBackup`} dataToCopy={`borg create ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 /your/pathToBackup`}
/> />
</div> </div>
</div> </div>
@ -70,13 +85,12 @@ function WizardStep3(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg check -v --progress ssh:// borg check -v --progress ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg check -v --progress ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}`} dataToCopy={`borg check -v --progress ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}`}
/> />
</div> </div>
<li>List the remote archives with :</li> <li>List the remote archives with :</li>
@ -89,13 +103,12 @@ function WizardStep3(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg list ssh:// borg list ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg list ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}`} dataToCopy={`borg list ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}`}
/> />
</div> </div>
<li>Download a remote archive with the following command :</li> <li>Download a remote archive with the following command :</li>
@ -108,14 +121,13 @@ function WizardStep3(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg export-tar --tar-filter="gzip -9" ssh:// borg export-tar --tar-filter="gzip -9" ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
::archive1 archive1.tar.gz ::archive1 archive1.tar.gz
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg export-tar --tar-filter="gzip -9" ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 archive1.tar.gz`} dataToCopy={`borg export-tar --tar-filter="gzip -9" ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 archive1.tar.gz`}
/> />
</div> </div>
<li> <li>
@ -131,14 +143,13 @@ function WizardStep3(props) {
> >
<div className={classes.code}> <div className={classes.code}>
borg mount ssh:// borg mount ssh://
{props.selectedOption.unixUser}@ {props.selectedOption.unixUser}@{HOSTNAME}:
{process.env.NEXT_PUBLIC_HOSTNAME}: {SSH_SERVER_PORT}/./
{process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./
{props.selectedOption.repository} {props.selectedOption.repository}
::archive1 /tmp/yourMountPoint ::archive1 /tmp/yourMountPoint
</div> </div>
<CopyButton <CopyButton
dataToCopy={`borg mount ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 /tmp/yourMountPoint`} dataToCopy={`borg mount ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}::archive1 /tmp/yourMountPoint`}
/> />
</div> </div>
<br /> <br />

View file

@ -5,6 +5,22 @@ import { IconWand } from '@tabler/icons';
import CopyButton from '../../UI/CopyButton/CopyButton'; import CopyButton from '../../UI/CopyButton/CopyButton';
function WizardStep4(props) { function WizardStep4(props) {
////Vars
//Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled.
let HOSTNAME;
let SSH_SERVER_PORT;
if (
props.selectedOption.lanCommand &&
process.env.NEXT_PUBLIC_HOSTNAME_LAN &&
process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN
) {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN;
} else {
HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME;
SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT;
}
const configBorgmatic = `location: const configBorgmatic = `location:
# List of source directories to backup. # List of source directories to backup.
source_directories: source_directories:
@ -13,10 +29,10 @@ function WizardStep4(props) {
repositories: repositories:
# Paths of local or remote repositories to backup to. # Paths of local or remote repositories to backup to.
- ssh://${props.selectedOption.unixUser}@${process.env.NEXT_PUBLIC_HOSTNAME}:${process.env.NEXT_PUBLIC_SSH_SERVER_PORT}/./${props.selectedOption.repository} - ssh://${props.selectedOption.unixUser}@${HOSTNAME}:${SSH_SERVER_PORT}/./${props.selectedOption.repository}
storage: storage:
archive_name_format: '{NEXT_PUBLIC_HOSTNAME}-documents-{now}' archive_name_format: '{HOSTNAME}-documents-{now}'
encryption_passphrase: "YOUR PASSPHRASE" encryption_passphrase: "YOUR PASSPHRASE"
retention: retention: