Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions src/SiteMonitor/ViewModels/MainWindowViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class MainWindowViewModel : ViewModelBase {
public MainWindowViewModel() {
OnShowCommandsCommand = ReactiveCommand.Create(OnShowCommands);
OnRestartCommand = ReactiveCommand.Create(OnRestart);
OnRestartImagesCommand = ReactiveCommand.Create(OnRestartImages);
Task.Factory.StartNew(PingServer);
Task.Factory.StartNew(PingSite);
ServerAddress = Configuration.Instance.ServerAddress;
Expand Down Expand Up @@ -169,6 +170,11 @@ public string? SshPassword {
/// </summary>
public ICommand OnRestartCommand { get; set; }

/// <summary>
/// Restarts the remote docker images.
/// </summary>
public ICommand OnRestartImagesCommand { get; set; }

/// <summary>
/// Restarts the remote machine.
/// </summary>
Expand All @@ -179,6 +185,24 @@ private async Task OnRestart() {
using SshCommand? ssh = client.RunCommand($"echo {_sshPassword} | sudo -S {command}");
}

/// <summary>
/// Restarts the docker images.
/// </summary>
private async Task OnRestartImages() {
using SshClient client = new(_serverAddress!, _sshUsername!, _sshPassword!);
await client.ConnectAsync(CancellationToken.None);
string[] command = [
"docker compose -p nullinside-ui restart",
"docker compose -p nullinside-api restart",
"docker compose -p nullinside-api-null restart",
"docker compose -p nullinside-api-twitch-bot restart"
];

foreach (string line in command) {
using SshCommand? ssh = client.RunCommand($"echo {_sshPassword} | sudo -S {line}");
}
}

/// <summary>
/// Handles showing the server commands.
/// </summary>
Expand Down
14 changes: 10 additions & 4 deletions src/SiteMonitor/Views/MainWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,16 @@
RevealPassword="False"
Text="{Binding SshPassword}" />
</Grid>
<Button HorizontalAlignment="Right"
Command="{Binding OnRestartCommand}">
Restart Computer
</Button>
<StackPanel Orientation="Horizontal">
<Button HorizontalAlignment="Right"
Command="{Binding OnRestartCommand}">
Restart Computer
</Button>
<Button HorizontalAlignment="Right"
Command="{Binding OnRestartImagesCommand}">
Restart Services
</Button>
</StackPanel>
</StackPanel>
</StackPanel>
<UniformGrid Grid.Row="3" Margin="0 25 0 0">
Expand Down
1 change: 1 addition & 0 deletions src/SiteMonitor/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using Avalonia.Threading;

using SiteMonitor.ViewModels;

#else
using Avalonia;
#endif
Expand Down