diff --git a/INSTALLATION.md b/INSTALLATION.md
index 67cb10a..6ad0af6 100644
--- a/INSTALLATION.md
+++ b/INSTALLATION.md
@@ -138,11 +138,11 @@ sudo ufw status
You should now have an up and running BirdsiteLIVE instance!
-## Upgrading
+## Updating
Make sure your data belong outside the containers before migrating (set by default).
-To upgrade your installation to the latest release:
+To update your installation to the latest release:
```
# Edit `docker-compose.yml` to update the version, if you have one specified
@@ -152,6 +152,37 @@ docker-compose pull
docker-compose up -d
```
+## Auto-Updating
+
+To set auto-updates on your deployment, add to the `docker-compose.yml` file this section:
+
+```diff
+version: "3"
+
+networks:
+ birdsitelivenetwork:
+ external: false
+
+services:
+ server:
+ image: nicolasconstant/birdsitelive:latest
+ [...]
+
+ db:
+ image: postgres:9.6
+ [...]
+
++ watchtower:
++ image: containrrr/watchtower
++ restart: always
++ container_name: watchtower
++ environment:
++ - WATCHTOWER_CLEANUP=true
++ volumes:
++ - /var/run/docker.sock:/var/run/docker.sock
++ command: --interval 300
+```
+
## More options
-You can find more options available [here](https://github.com/NicolasConstant/BirdsiteLive/blob/master/VARIABLES.md)
\ No newline at end of file
+You can find more options available [here](https://github.com/NicolasConstant/BirdsiteLive/blob/master/VARIABLES.md)
diff --git a/src/BirdsiteLive/BirdsiteLive.csproj b/src/BirdsiteLive/BirdsiteLive.csproj
index 26df777..8b8febc 100644
--- a/src/BirdsiteLive/BirdsiteLive.csproj
+++ b/src/BirdsiteLive/BirdsiteLive.csproj
@@ -4,7 +4,7 @@
netcoreapp3.1
d21486de-a812-47eb-a419-05682bb68856
Linux
- 0.14.3
+ 0.14.4
diff --git a/src/BirdsiteLive/Services/FederationService.cs b/src/BirdsiteLive/Services/FederationService.cs
index 9acab41..7ff4c1f 100644
--- a/src/BirdsiteLive/Services/FederationService.cs
+++ b/src/BirdsiteLive/Services/FederationService.cs
@@ -13,19 +13,28 @@ namespace BirdsiteLive.Services
{
private readonly IDatabaseInitializer _databaseInitializer;
private readonly IStatusPublicationPipeline _statusPublicationPipeline;
+ private readonly IHostApplicationLifetime _applicationLifetime;
#region Ctor
- public FederationService(IDatabaseInitializer databaseInitializer, IStatusPublicationPipeline statusPublicationPipeline)
+ public FederationService(IDatabaseInitializer databaseInitializer, IStatusPublicationPipeline statusPublicationPipeline, IHostApplicationLifetime applicationLifetime)
{
_databaseInitializer = databaseInitializer;
_statusPublicationPipeline = statusPublicationPipeline;
+ _applicationLifetime = applicationLifetime;
}
#endregion
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
- await _databaseInitializer.InitAndMigrateDbAsync();
- await _statusPublicationPipeline.ExecuteAsync(stoppingToken);
+ try
+ {
+ await _databaseInitializer.InitAndMigrateDbAsync();
+ await _statusPublicationPipeline.ExecuteAsync(stoppingToken);
+ }
+ finally
+ {
+ _applicationLifetime.StopApplication();
+ }
}
}
}
\ No newline at end of file