diff --git a/src/SiteMonitor/ViewModels/MainWindowViewModel.cs b/src/SiteMonitor/ViewModels/MainWindowViewModel.cs
index 12749d2..30943d6 100644
--- a/src/SiteMonitor/ViewModels/MainWindowViewModel.cs
+++ b/src/SiteMonitor/ViewModels/MainWindowViewModel.cs
@@ -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;
@@ -169,6 +170,11 @@ public string? SshPassword {
///
public ICommand OnRestartCommand { get; set; }
+ ///
+ /// Restarts the remote docker images.
+ ///
+ public ICommand OnRestartImagesCommand { get; set; }
+
///
/// Restarts the remote machine.
///
@@ -179,6 +185,24 @@ private async Task OnRestart() {
using SshCommand? ssh = client.RunCommand($"echo {_sshPassword} | sudo -S {command}");
}
+ ///
+ /// Restarts the docker images.
+ ///
+ 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}");
+ }
+ }
+
///
/// Handles showing the server commands.
///
diff --git a/src/SiteMonitor/Views/MainWindow.axaml b/src/SiteMonitor/Views/MainWindow.axaml
index 3bd39cd..61154e9 100644
--- a/src/SiteMonitor/Views/MainWindow.axaml
+++ b/src/SiteMonitor/Views/MainWindow.axaml
@@ -79,10 +79,16 @@
RevealPassword="False"
Text="{Binding SshPassword}" />
-
+
+
+
+
diff --git a/src/SiteMonitor/Views/MainWindow.axaml.cs b/src/SiteMonitor/Views/MainWindow.axaml.cs
index ff365e1..4a25caa 100644
--- a/src/SiteMonitor/Views/MainWindow.axaml.cs
+++ b/src/SiteMonitor/Views/MainWindow.axaml.cs
@@ -12,6 +12,7 @@
using Avalonia.Threading;
using SiteMonitor.ViewModels;
+
#else
using Avalonia;
#endif