From 4af9889c9799ceef3a621bca0abb6a6c547b5e54 Mon Sep 17 00:00:00 2001 From: actions-user Date: Sat, 2 Mar 2024 19:35:56 +0000 Subject: [PATCH 01/41] GH Action SHA updated Sat Mar 2 19:35:56 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index a8de113..59b34c2 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:d5bfe7700a6222f4e90c5e19f97330264016b2c81aa73933cad32af9e7282eea""sha256:b3dee2e195ebd0564c5aa09e4e961a95666b0e6a3dbd86612f73b6f2b8346eb2""sha256:ef2e88f79d0cd22b0566517595cf0140cd0ecf23330b5411f1fbf330219b7c48""sha256:933d7cf2eb395103110b2290674913118355c18ab9e89b6989559f03d91f5a6e""sha256:86231e68cad19271c96902b2f4f824f8b9612a91ef521364547bc0d352fa0221" +"sha256:c2fa0cea2884ad2f754e2aab49a251a053b0692ccfcdbb47cee9da3de76ecd06""sha256:5e5df9ecc8e8f85960c2adb1284d47c5719bf1bfb17d397f08227eb5d8de71de""sha256:fc8446ceaee2775137b09143636074dafc91bd6b6853d66ca87c220f7c65bf0f""sha256:ea3d306705e545370324dabc624054c23655b235870f04ebfaf855b70282f1e0""sha256:f58a0753fa3381b26328c5759579999178f1b6a4c75f1541766996085c2d22a4" From ab063dcc70127a2f4d22ce6c46865790d8e53f2e Mon Sep 17 00:00:00 2001 From: actions-user Date: Sat, 2 Mar 2024 21:35:38 +0000 Subject: [PATCH 02/41] GH Action SHA updated Sat Mar 2 21:35:38 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 59b34c2..06c0e8c 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:c2fa0cea2884ad2f754e2aab49a251a053b0692ccfcdbb47cee9da3de76ecd06""sha256:5e5df9ecc8e8f85960c2adb1284d47c5719bf1bfb17d397f08227eb5d8de71de""sha256:fc8446ceaee2775137b09143636074dafc91bd6b6853d66ca87c220f7c65bf0f""sha256:ea3d306705e545370324dabc624054c23655b235870f04ebfaf855b70282f1e0""sha256:f58a0753fa3381b26328c5759579999178f1b6a4c75f1541766996085c2d22a4" +"sha256:51b21e2b1a0d5a6e35ad27709074335b9d520c9ec1b11830b2647bc86e5ec66d""sha256:0bb772ff5707a20d35590e681e89b70ff49a798d6941c1143498c92a2503ab1f""sha256:9ae12595ee2526fb5806ea392bde286d2b2647f2ea3a76f2a444f6abb42149ae""sha256:c199aabf428e5e51fda1059c3edaac923ffcb7a7f71a38f7266c01b1e39d7960""sha256:be74bf1708ebcf589a4e7c4833bc22fd96423d0f4bc1e60a83630a40e2ece387" From ca75904a39359984df9f31476996f21c7b4775ae Mon Sep 17 00:00:00 2001 From: actions-user Date: Sat, 2 Mar 2024 22:12:20 +0000 Subject: [PATCH 03/41] GH Action SHA updated Sat Mar 2 22:12:20 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 06c0e8c..c79e688 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:51b21e2b1a0d5a6e35ad27709074335b9d520c9ec1b11830b2647bc86e5ec66d""sha256:0bb772ff5707a20d35590e681e89b70ff49a798d6941c1143498c92a2503ab1f""sha256:9ae12595ee2526fb5806ea392bde286d2b2647f2ea3a76f2a444f6abb42149ae""sha256:c199aabf428e5e51fda1059c3edaac923ffcb7a7f71a38f7266c01b1e39d7960""sha256:be74bf1708ebcf589a4e7c4833bc22fd96423d0f4bc1e60a83630a40e2ece387" +"sha256:442622792d696bd041c0681b8ef493ba182c2b22af1b554f56c7b52c02fca0e3""sha256:414bd3212909def8fd35edb628acf4fe24ae33f21e8be2fa3aa8e6714c663e17""sha256:40d07ba9476c2b02026b7c3eb2da211523e17c1a5f58f3fd2d2a572e14b88354""sha256:d322ae4da13fd1414acd29c33b28e16a54c0b3ae02357ae7fe226884be6f3df0""sha256:5c1c8663aaa40e996186436aa1229b13912f30e1d788ac5c6dab4e948ecbca7a" From 554d511903342ecb2d9a0a9597fd73dbfff8a84c Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 3 Mar 2024 17:11:01 +0000 Subject: [PATCH 04/41] GH Action SHA updated Sun Mar 3 17:11:01 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index c79e688..9b641cf 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:442622792d696bd041c0681b8ef493ba182c2b22af1b554f56c7b52c02fca0e3""sha256:414bd3212909def8fd35edb628acf4fe24ae33f21e8be2fa3aa8e6714c663e17""sha256:40d07ba9476c2b02026b7c3eb2da211523e17c1a5f58f3fd2d2a572e14b88354""sha256:d322ae4da13fd1414acd29c33b28e16a54c0b3ae02357ae7fe226884be6f3df0""sha256:5c1c8663aaa40e996186436aa1229b13912f30e1d788ac5c6dab4e948ecbca7a" +"sha256:efed61575a8d96203b0fed25e261ada399be378cc2ada7438b76848ddb12de55""sha256:f1e70e2302873960e231378953d8befb59f62d67e4ce93f7f03f6ac9cf147e9e""sha256:1c0cdb4a0d6080e74822a08faf41a97d2f1e0718ed4674837ffd811c4e1e1d17""sha256:565c9723374597bff952b7bf6b3455ffba25f553fafdfa2f3e3ae5751d5be15a""sha256:1121126fffb84a6c22fd4fbc5f8da20ac6ab7a3e3ce8cb9345be5aab929c17c2" From bbea8e06bd6b82ea2ce0aa2b5d8de259f76f4568 Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 3 Mar 2024 21:50:40 +0000 Subject: [PATCH 05/41] GH Action SHA updated Sun Mar 3 21:50:40 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 9b641cf..eb1a9ef 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:efed61575a8d96203b0fed25e261ada399be378cc2ada7438b76848ddb12de55""sha256:f1e70e2302873960e231378953d8befb59f62d67e4ce93f7f03f6ac9cf147e9e""sha256:1c0cdb4a0d6080e74822a08faf41a97d2f1e0718ed4674837ffd811c4e1e1d17""sha256:565c9723374597bff952b7bf6b3455ffba25f553fafdfa2f3e3ae5751d5be15a""sha256:1121126fffb84a6c22fd4fbc5f8da20ac6ab7a3e3ce8cb9345be5aab929c17c2" +"sha256:fbf4f1c655af075ca2e5453465a1009439607c3f34b61ef261b0ed09f1895af6""sha256:1a219e9507b2d500f2f61940e9b53074944125d8170951b3ac190648c32f0807""sha256:7e27f8b2d113175eaaa9ed2b8c9c5c3949ff5270cdf93a73c23d29b1b75dcfca""sha256:7c712e938374c4344bf4826c744365e0039fc525206ee8600dab3f36536c0568""sha256:89a59df62b99f9683cf28567e828955dbaa69ae8412b7b6004bcd9db54e9dd06" From 49cdd41bb916ddb8ec023fee808bbf6f08d216d8 Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 5 Mar 2024 19:36:19 +0000 Subject: [PATCH 06/41] GH Action SHA updated Tue Mar 5 19:36:19 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index eb1a9ef..0e2ba52 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:fbf4f1c655af075ca2e5453465a1009439607c3f34b61ef261b0ed09f1895af6""sha256:1a219e9507b2d500f2f61940e9b53074944125d8170951b3ac190648c32f0807""sha256:7e27f8b2d113175eaaa9ed2b8c9c5c3949ff5270cdf93a73c23d29b1b75dcfca""sha256:7c712e938374c4344bf4826c744365e0039fc525206ee8600dab3f36536c0568""sha256:89a59df62b99f9683cf28567e828955dbaa69ae8412b7b6004bcd9db54e9dd06" +"sha256:61fd580701966dc34158b01333e2994bc2b869bd8455945e88e84fd68e61c27b""sha256:da5774a0eaa589439137bfcca35098330ba2f22fdd931beae278d92c8677a5ab""sha256:dba068feab0f9f7d68b48919037e6d1b300efe0cfa90dde3100fceb025b4542c""sha256:afcc17819ca265d61c8998f3d7f923d21682c0cab829490f7be0c9d4c175346a""sha256:902e64b10d89638dd40c6a840c1b5ff9174a16595b9c55e1973e4f132902b60f" From 0a16ff75baeea10dbee2414ab61d8cddd2aafcac Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 5 Mar 2024 20:24:32 +0000 Subject: [PATCH 07/41] GH Action SHA updated Tue Mar 5 20:24:32 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 0e2ba52..705b5e9 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:61fd580701966dc34158b01333e2994bc2b869bd8455945e88e84fd68e61c27b""sha256:da5774a0eaa589439137bfcca35098330ba2f22fdd931beae278d92c8677a5ab""sha256:dba068feab0f9f7d68b48919037e6d1b300efe0cfa90dde3100fceb025b4542c""sha256:afcc17819ca265d61c8998f3d7f923d21682c0cab829490f7be0c9d4c175346a""sha256:902e64b10d89638dd40c6a840c1b5ff9174a16595b9c55e1973e4f132902b60f" +"sha256:d002f5ab2cc067c1485b63d218cd5f63f4f5a50fdd0d38d110cfd0b1bedaf9d6""sha256:8e9d75ede2ee7d65c26d510bd31afd2f3a3246d7b4dc5a48433aa7434b24bead""sha256:453e59178fe25d9fb0eebd6767f120d6a7ecff3048ddb64a926e1e8c13635fac""sha256:e395827cbe88ff627d17ad6352d343fd87670b45c90acb829206f941c9b1a757""sha256:155133290cbb5217823de64ccbe17e814f6ab62001c1ce088eba32306349339f" From 70e7dae274a9d1fb6fdc42b52f41aec1627fa7ed Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 5 Mar 2024 20:51:20 +0000 Subject: [PATCH 08/41] GH Action SHA updated Tue Mar 5 20:51:20 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 705b5e9..0273fd4 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:d002f5ab2cc067c1485b63d218cd5f63f4f5a50fdd0d38d110cfd0b1bedaf9d6""sha256:8e9d75ede2ee7d65c26d510bd31afd2f3a3246d7b4dc5a48433aa7434b24bead""sha256:453e59178fe25d9fb0eebd6767f120d6a7ecff3048ddb64a926e1e8c13635fac""sha256:e395827cbe88ff627d17ad6352d343fd87670b45c90acb829206f941c9b1a757""sha256:155133290cbb5217823de64ccbe17e814f6ab62001c1ce088eba32306349339f" +"sha256:3d191e4989f909092dacd30ecdc2185548ec3c6ce5e1adebf11daee41e393648""sha256:656c01f0fe51cedf3fc733c6d70fdf3202f0f42ef9640649252cf4415b8cea56""sha256:3d0487fcc8cf25723df40ba19316c8394045e21119309d345f9b9f0a8e05ccd4""sha256:5f3bad4b6f615db5452206afe51be6d7af30844746830a1e4401d4dc3b331f81""sha256:744ba8f105a2891037d344845b2d43ca13d6674ac9edee68faf5d7173bd33cf1" From 0e316534d9cb259c6b84dcac3e30b344f1966647 Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 06:36:39 +0000 Subject: [PATCH 09/41] GH Action SHA updated Wed Mar 6 06:36:39 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 0273fd4..0a15361 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:3d191e4989f909092dacd30ecdc2185548ec3c6ce5e1adebf11daee41e393648""sha256:656c01f0fe51cedf3fc733c6d70fdf3202f0f42ef9640649252cf4415b8cea56""sha256:3d0487fcc8cf25723df40ba19316c8394045e21119309d345f9b9f0a8e05ccd4""sha256:5f3bad4b6f615db5452206afe51be6d7af30844746830a1e4401d4dc3b331f81""sha256:744ba8f105a2891037d344845b2d43ca13d6674ac9edee68faf5d7173bd33cf1" +"sha256:bfb16119a3f2a87ca16877bee6ad31d6882f751187f12b0c1480b29fddef3038""sha256:dd5ba406a1b0327432655052f92507bfbcb904ad3b1dc557b85b01531ee5e50b""sha256:ffe9557f64ce0a5bb6c21aeb5c7b497977fb9868699f11607988b6efaf45934a""sha256:4bf160f9f147e2cba488b9e5f63a33d9c5881455448f8a43cbe0f42a61541810""sha256:c593f0ffecb369025271f1a33f85742a896a401ddde61c9a272be1fb033d4e15" From d1a0cb6e5cbbfc0311eb805333cdae00c4b785b4 Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 07:35:46 +0000 Subject: [PATCH 10/41] GH Action SHA updated Wed Mar 6 07:35:46 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 0a15361..9f39ab6 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:bfb16119a3f2a87ca16877bee6ad31d6882f751187f12b0c1480b29fddef3038""sha256:dd5ba406a1b0327432655052f92507bfbcb904ad3b1dc557b85b01531ee5e50b""sha256:ffe9557f64ce0a5bb6c21aeb5c7b497977fb9868699f11607988b6efaf45934a""sha256:4bf160f9f147e2cba488b9e5f63a33d9c5881455448f8a43cbe0f42a61541810""sha256:c593f0ffecb369025271f1a33f85742a896a401ddde61c9a272be1fb033d4e15" +"sha256:0fe977328bd5bda0c707e3ef85ec7c63bd3aa27eb5921c5c8d769aee60da82d9""sha256:d417318948d40fadb06aaeb60b9236eca349d1698287f2e11ef52b40455c070d""sha256:dd83a0358517fe53cf8dbfb76970bd9b23799880965ffe18b3dfa540094af71a""sha256:83890799164f0fc522e52c364a0c7596fb82d90ac6138ca4224adb6c79f79cb7""sha256:73568e8c0ea9406849a6ee4b589629599f6908fd3feb18c7a1d05fa575d495d5" From 2e79bd4d3b4398479fede0f4a6fa9fac955d8feb Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 07:50:43 +0000 Subject: [PATCH 11/41] GH Action SHA updated Wed Mar 6 07:50:43 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 9f39ab6..3d7b999 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:0fe977328bd5bda0c707e3ef85ec7c63bd3aa27eb5921c5c8d769aee60da82d9""sha256:d417318948d40fadb06aaeb60b9236eca349d1698287f2e11ef52b40455c070d""sha256:dd83a0358517fe53cf8dbfb76970bd9b23799880965ffe18b3dfa540094af71a""sha256:83890799164f0fc522e52c364a0c7596fb82d90ac6138ca4224adb6c79f79cb7""sha256:73568e8c0ea9406849a6ee4b589629599f6908fd3feb18c7a1d05fa575d495d5" +"sha256:87379ecea42e044aadb988ab381ace2657876bc962382c11eda6d74d6d393f4d""sha256:538289890dec868ad70c4a153fa48526c9bb627c234d86c862d1753e68b59cf1""sha256:3ca52d8c0ef6f7b2d3abfbff40a78864d9b4d6cd6ec0b118aef9a016e236f037""sha256:af7067e59f2c57f7c84a80d050565946d24551970ad470f7cf68de609244f05b""sha256:e0eac1ca1f6016c8fc4cff70dd045010eea1fd69df5aed36e72e293f19ce63c6" From d91e0ebfb3f40a44337d01d298d65db975ca2fc2 Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 15:15:02 +0000 Subject: [PATCH 12/41] GH Action SHA updated Wed Mar 6 15:15:02 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 3d7b999..7394b8d 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:87379ecea42e044aadb988ab381ace2657876bc962382c11eda6d74d6d393f4d""sha256:538289890dec868ad70c4a153fa48526c9bb627c234d86c862d1753e68b59cf1""sha256:3ca52d8c0ef6f7b2d3abfbff40a78864d9b4d6cd6ec0b118aef9a016e236f037""sha256:af7067e59f2c57f7c84a80d050565946d24551970ad470f7cf68de609244f05b""sha256:e0eac1ca1f6016c8fc4cff70dd045010eea1fd69df5aed36e72e293f19ce63c6" +"sha256:a4c195aa53e501399597f0e550a3def5eda9230b6c45ffcabcdcd0f2a4078c1c""sha256:721f54c8c3ca50ca892f5e2c24794f3ffe0339e511f33be60535795ab46bc5bd""sha256:abec5f71bb6cf8754cc2e388057a78e0df2f61dc1bbc90ce684250d48c398f23""sha256:e8c8b898c2cafee0fb8f2f2da8dee9f7cc597c52dcefd84b933c4b32bd29d008""sha256:1f3253a00116dc75347ebdf08c9b81583fcedea20ec797f7de3591f9a15f16f2" From 40b9976e4fbd89298b7025b1a7dc0144a889d313 Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 20:13:53 +0000 Subject: [PATCH 13/41] GH Action SHA updated Wed Mar 6 20:13:53 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 7394b8d..7513972 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:a4c195aa53e501399597f0e550a3def5eda9230b6c45ffcabcdcd0f2a4078c1c""sha256:721f54c8c3ca50ca892f5e2c24794f3ffe0339e511f33be60535795ab46bc5bd""sha256:abec5f71bb6cf8754cc2e388057a78e0df2f61dc1bbc90ce684250d48c398f23""sha256:e8c8b898c2cafee0fb8f2f2da8dee9f7cc597c52dcefd84b933c4b32bd29d008""sha256:1f3253a00116dc75347ebdf08c9b81583fcedea20ec797f7de3591f9a15f16f2" +"sha256:7296173f2efcb5a87eb9258e3f74f7cc71ef69d4826cab65684ff515b834208f""sha256:234c072a339336a44423c365a55b87e63881020ac29462f6a6c1e972433adb6f""sha256:60eb5548156f8fdf4baae19594be8712795ec8426806da33caded3264b2939cf""sha256:1b5d574b3c4ece4659c4cff825224dbf62e7ceb38f44bdd70997dee44ed66f8e""sha256:779a5d1c0d4fe644f5f32c38623fe59e7240d1c1f48c8ab5d824e6abfb752a7e" From b4574321e8ba3552abbad84bdae56d848f1267e7 Mon Sep 17 00:00:00 2001 From: actions-user Date: Wed, 6 Mar 2024 20:35:42 +0000 Subject: [PATCH 14/41] GH Action SHA updated Wed Mar 6 20:35:42 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 7513972..f890a22 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:7296173f2efcb5a87eb9258e3f74f7cc71ef69d4826cab65684ff515b834208f""sha256:234c072a339336a44423c365a55b87e63881020ac29462f6a6c1e972433adb6f""sha256:60eb5548156f8fdf4baae19594be8712795ec8426806da33caded3264b2939cf""sha256:1b5d574b3c4ece4659c4cff825224dbf62e7ceb38f44bdd70997dee44ed66f8e""sha256:779a5d1c0d4fe644f5f32c38623fe59e7240d1c1f48c8ab5d824e6abfb752a7e" +"sha256:2e325bf24444a0a9c5ddb427fb14d8f4ed616b95100441da69cd47986af5c1ce""sha256:9287dc9ea5dc924d34bac968bb506be58cac187c7ed889486f6ebe52cb21556e""sha256:c07a62fe6f13bcde679c5351ada3dbdaa6405d27419c3c2f5e252a7839fc5d3b""sha256:7d139090578a93b3226b6a89bd5742b9972b0c924c38105e69fb749266fa13cd""sha256:0a8d1c0ff5e34edaee5b8670884809578c29d394f1d3da456a8b8c588a38cb00" From 30ae21ed1ad7595e19938d98ce0c364c52d26f0e Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 10 Mar 2024 09:14:06 +0000 Subject: [PATCH 15/41] GH Action SHA updated Sun Mar 10 09:14:06 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index f890a22..2c5aec7 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:2e325bf24444a0a9c5ddb427fb14d8f4ed616b95100441da69cd47986af5c1ce""sha256:9287dc9ea5dc924d34bac968bb506be58cac187c7ed889486f6ebe52cb21556e""sha256:c07a62fe6f13bcde679c5351ada3dbdaa6405d27419c3c2f5e252a7839fc5d3b""sha256:7d139090578a93b3226b6a89bd5742b9972b0c924c38105e69fb749266fa13cd""sha256:0a8d1c0ff5e34edaee5b8670884809578c29d394f1d3da456a8b8c588a38cb00" +"sha256:d6454c22994e6190c61301aa38508436e73215d7f064ec3b1eb850b38476dd22""sha256:ba14dcb75280cf83eb67be98f023c6d0eed4b89675a73eed7cc01fcddc674b97""sha256:866061032b96167b50fe31f4b7d07b9c76fc683d436a9028b3ef736d0155867d""sha256:f5937ad2039075c3f52992bd5bcb40d861a0195fba7ae762fcc20263c6662d5c""sha256:93dc02fe25bcf0582468b86b4870072ba5e27f56c682d3c530d847d463be165d" From 36f677e0a8eae60ec209dc72313914a17ad1c022 Mon Sep 17 00:00:00 2001 From: actions-user Date: Mon, 11 Mar 2024 20:50:30 +0000 Subject: [PATCH 16/41] GH Action SHA updated Mon Mar 11 20:50:30 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 2c5aec7..d1926a6 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:d6454c22994e6190c61301aa38508436e73215d7f064ec3b1eb850b38476dd22""sha256:ba14dcb75280cf83eb67be98f023c6d0eed4b89675a73eed7cc01fcddc674b97""sha256:866061032b96167b50fe31f4b7d07b9c76fc683d436a9028b3ef736d0155867d""sha256:f5937ad2039075c3f52992bd5bcb40d861a0195fba7ae762fcc20263c6662d5c""sha256:93dc02fe25bcf0582468b86b4870072ba5e27f56c682d3c530d847d463be165d" +"sha256:85a9f47e757ea581c4d1982ca82ea20cc725ce2e4359f9336a0eac1391a293a6""sha256:418db7d1ffa950b4e52543b5c35f50af7d07bc9bdd6cb5ce11a38e3d18061892""sha256:7f02d0194d7330f400e01722f78ee3dd6b4481dfbf2028af184e516de36e0a18""sha256:8075c40ac71dc0abbe2c8846267349697cfb9f33b753455ecc91de6888f4a28d""sha256:10e236424b8a30b506259147c0c47122dfc7abf4ced7ef3b52238c0d14cf388a" From 89e64243437a328de6a829848a431dc03a3a30c3 Mon Sep 17 00:00:00 2001 From: actions-user Date: Thu, 14 Mar 2024 20:14:05 +0000 Subject: [PATCH 17/41] GH Action SHA updated Thu Mar 14 20:14:05 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index d1926a6..67f1017 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:85a9f47e757ea581c4d1982ca82ea20cc725ce2e4359f9336a0eac1391a293a6""sha256:418db7d1ffa950b4e52543b5c35f50af7d07bc9bdd6cb5ce11a38e3d18061892""sha256:7f02d0194d7330f400e01722f78ee3dd6b4481dfbf2028af184e516de36e0a18""sha256:8075c40ac71dc0abbe2c8846267349697cfb9f33b753455ecc91de6888f4a28d""sha256:10e236424b8a30b506259147c0c47122dfc7abf4ced7ef3b52238c0d14cf388a" +"sha256:33c7f44d05a7500035882175b04ae2c6792b70d5a53059fc2de7e1a33f6bc6a2""sha256:afad30bd1e1547c1435420547ca859fe4be3a14abb17a0c777b1092141927100""sha256:5fe1f50d04ed67ea291e9c0e8f43d3b485f6b8f27598d042633a5c623c76b88b""sha256:e74c96a67e3cba70e98787d1e996ff258ee4c2d1921f36af99b490ba3d0a1430""sha256:f215dce52f9a7d9b4264d73de33f46814723ec36e55dd43a44e644f5a3f89a63""sha256:4a6e1f87d9be84072d132709c6a755369936dbf18e3d036e63d8a4b4fd5be985""sha256:79fd96983dfea93d9fcb2b8c53f76bb70023de8a413a144d117f206e8e2236e2""sha256:b34b95640dfa361e5a74252f1cc3c7eda04203f1dd6a7d6624366335c1958493""sha256:b9b2028934e5fb5b9164ded9d66e9a687f669950cfeb9be353bdef0e6cc9a447""sha256:085ace077e683ab445daab9b4037a8e8ac476ffa50bec25738f92a64e9648b19" From df51323299f0e317ffcbd6b89c35375163b99584 Mon Sep 17 00:00:00 2001 From: actions-user Date: Thu, 14 Mar 2024 21:12:20 +0000 Subject: [PATCH 18/41] GH Action SHA updated Thu Mar 14 21:12:20 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 67f1017..68955a8 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:33c7f44d05a7500035882175b04ae2c6792b70d5a53059fc2de7e1a33f6bc6a2""sha256:afad30bd1e1547c1435420547ca859fe4be3a14abb17a0c777b1092141927100""sha256:5fe1f50d04ed67ea291e9c0e8f43d3b485f6b8f27598d042633a5c623c76b88b""sha256:e74c96a67e3cba70e98787d1e996ff258ee4c2d1921f36af99b490ba3d0a1430""sha256:f215dce52f9a7d9b4264d73de33f46814723ec36e55dd43a44e644f5a3f89a63""sha256:4a6e1f87d9be84072d132709c6a755369936dbf18e3d036e63d8a4b4fd5be985""sha256:79fd96983dfea93d9fcb2b8c53f76bb70023de8a413a144d117f206e8e2236e2""sha256:b34b95640dfa361e5a74252f1cc3c7eda04203f1dd6a7d6624366335c1958493""sha256:b9b2028934e5fb5b9164ded9d66e9a687f669950cfeb9be353bdef0e6cc9a447""sha256:085ace077e683ab445daab9b4037a8e8ac476ffa50bec25738f92a64e9648b19" +"sha256:2b6a7fd2decf4bfddab9f12d4fb026c9e6e7a02c06248b01e4fae0d03d984386""sha256:ab1aa3b60611f77a5a1dda8fb46e315ee28b939f85290f274a38b8a4667a4bc4""sha256:522abb9858c57c36331bb269d54c18f5b6e5dbdc54b665ca875a4f73a4e21755""sha256:57ab14fe803eae8d0e811e1cb5b02980e65e41168c5beacb3a150e06ab619bf7""sha256:085e805b0ab5fb7ff3ebb0f8af6769dd35861323af074b4d107cf860c32e7c3d""sha256:966875968541aa9f48afd8d226adf7fa87e6986364b1fa4abb026f0848ea7849""sha256:03aea44583b099587535121802353de2c0df857ad7caa0b23688edd3588f2697""sha256:67f44cf8e01d39fc087484006e05f43c0982a8a1c2a71a7897e92579b8bca29c""sha256:60c0abd138c51e24a9be21b033356b156b21d3ed27dbe9458987f7f19383cb3c""sha256:7db4861fb45e4298c03a735bcdb61a3b8b85a929b1759327408c2d4de711bbc4" From 15aaff1b369067825b7333d4814088d03acf97fe Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 15 Mar 2024 19:21:42 +0000 Subject: [PATCH 19/41] GH Action SHA updated Fri Mar 15 19:21:42 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 68955a8..869ece0 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:2b6a7fd2decf4bfddab9f12d4fb026c9e6e7a02c06248b01e4fae0d03d984386""sha256:ab1aa3b60611f77a5a1dda8fb46e315ee28b939f85290f274a38b8a4667a4bc4""sha256:522abb9858c57c36331bb269d54c18f5b6e5dbdc54b665ca875a4f73a4e21755""sha256:57ab14fe803eae8d0e811e1cb5b02980e65e41168c5beacb3a150e06ab619bf7""sha256:085e805b0ab5fb7ff3ebb0f8af6769dd35861323af074b4d107cf860c32e7c3d""sha256:966875968541aa9f48afd8d226adf7fa87e6986364b1fa4abb026f0848ea7849""sha256:03aea44583b099587535121802353de2c0df857ad7caa0b23688edd3588f2697""sha256:67f44cf8e01d39fc087484006e05f43c0982a8a1c2a71a7897e92579b8bca29c""sha256:60c0abd138c51e24a9be21b033356b156b21d3ed27dbe9458987f7f19383cb3c""sha256:7db4861fb45e4298c03a735bcdb61a3b8b85a929b1759327408c2d4de711bbc4" +"sha256:beb8e726247a3dffaf8091f0691230faa27c74732c5ba5b343e90c594ccdc9e8""sha256:09f9a57c1e782c00c5b8bfb7faa267c570b3a6ef78fff6138235f05d1122f8e1""sha256:0a96cb092299b68c43c44791307c2b970654f7d48a6473c91b40f1b6d6c5e439""sha256:8993b82a309e154aa01dc5a73588f1170d3366851f8ce9c617b85aff2d1fdd92""sha256:4f8fd04ccf3ebc3c7d53190083eb45dd9f4ce20c4c18a442babc97a7971c197b""sha256:f2a3fdf8273da67b232cc7dca1842e1be58843a273230d7e2330dabc804cef71""sha256:1d2b975d1cb3d22cb2874750f63ab8787e0f76fc9877725eb8511712cd9a43dc""sha256:05b33fac045f66750c4853468c6f9f884f9ddeee296eb6186b6f146921f7e13d""sha256:20c6197e1bcb6d20199fcb743ea1b177cce293f0dc8ed1f31bfb8918a2403f4d""sha256:afca21bbcd9cd30cea463fe8d2255411caccdc09ff33c2637e03ca3c2eb040e3" From c9f663f500471631112f3296e70651c33012c96e Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 15 Mar 2024 20:15:54 +0000 Subject: [PATCH 20/41] GH Action SHA updated Fri Mar 15 20:15:54 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 869ece0..1e65911 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:beb8e726247a3dffaf8091f0691230faa27c74732c5ba5b343e90c594ccdc9e8""sha256:09f9a57c1e782c00c5b8bfb7faa267c570b3a6ef78fff6138235f05d1122f8e1""sha256:0a96cb092299b68c43c44791307c2b970654f7d48a6473c91b40f1b6d6c5e439""sha256:8993b82a309e154aa01dc5a73588f1170d3366851f8ce9c617b85aff2d1fdd92""sha256:4f8fd04ccf3ebc3c7d53190083eb45dd9f4ce20c4c18a442babc97a7971c197b""sha256:f2a3fdf8273da67b232cc7dca1842e1be58843a273230d7e2330dabc804cef71""sha256:1d2b975d1cb3d22cb2874750f63ab8787e0f76fc9877725eb8511712cd9a43dc""sha256:05b33fac045f66750c4853468c6f9f884f9ddeee296eb6186b6f146921f7e13d""sha256:20c6197e1bcb6d20199fcb743ea1b177cce293f0dc8ed1f31bfb8918a2403f4d""sha256:afca21bbcd9cd30cea463fe8d2255411caccdc09ff33c2637e03ca3c2eb040e3" +"sha256:fa4b961687e3dcf5e0c4c14d1f5d49756e0a0f92790c73502d8ff887c244e549""sha256:3cc65dc64ff4ae0b556f91f04eddd4ad4b7fc68870ef2b050615d2a564a0fb49""sha256:3db876d49bf2735eb13b957651ef5177255922e09442d33cf819b92eb7e2f523""sha256:736633fb0f77af6ebba10b34d61ef2a875c43924b6dc34f91405b19971fdb86e""sha256:7ec86c0ef965abc4db6b51ad6548f6e0608bb6809b4f06d99095ec363ec7d172""sha256:c85ce8e657afe447f368e9a24759e3e12ab9470e468f43f48b2c0620f6d1e419""sha256:13397a67a355793fee312cbe90496b327483de89ae1f0355ae23479e2032a0f2""sha256:4a4131d8c82b1d7fd605f894cd931afdf1f0a2e1205dbfc4310d4b0fb1b6c000""sha256:d6d8d4b9bd456241de92ec53ac41f2ef0c83d170fa01b31e943670bc47876374""sha256:0e93fe5cd259602fcfa3d6e9dc1c133052e66d8a8170316aaf2e94a0363afa9f" From 779dbde79b5a85d9c18a6e561671920f0494bfa2 Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:26:09 -0400 Subject: [PATCH 21/41] Major overhaul / repo+container rename, etc (#7) * prep for container move, add addtl config options * update manual builder * update build script * updates * updates * bug fix * bug fix * bug fix * documentation updates * fix a bunch of linter errors (but not all) * Update on_pr.yml * documentation updates * documentation updates * doc updates * documentation updates * documentation and (C) dates updates * linter fix * doc updates * doc updates --- .github/workflows/deploy.yml | 16 +- .github/workflows/markdownlint.yml | 2 +- .github/workflows/on_pr.yml | 1 - .markdownlint.yaml | 7 + Dockerfile.build-aiscatcher | 4 +- README.md | 477 +++++++++++------- buildnow.sh | 13 +- config-examples/.env.sample | 45 +- config-examples/README.md | 137 ----- config-examples/docker-compose.yml.sample | 125 ++--- docker-compose.yml | 36 -- .../etc/s6-overlay/scripts/10-container-init | 2 +- rootfs/etc/s6-overlay/scripts/40-sxfeeder | 27 +- .../etc/s6-overlay/scripts/50-update-plugins | 2 +- .../scripts/60-backup-aiscatcher_bin | 2 +- rootfs/etc/s6-overlay/scripts/aiscatcher | 154 +++++- .../s6-overlay/scripts/check-about-updates | 2 +- .../s6-overlay/scripts/check-plugin-updates | 2 +- rootfs/etc/s6-overlay/scripts/down-aiscatcher | 2 +- rootfs/etc/s6-overlay/scripts/sxfeeder | 5 +- rootfs/scripts/update-plugins | 2 +- 21 files changed, 563 insertions(+), 500 deletions(-) create mode 100644 .markdownlint.yaml delete mode 100644 config-examples/README.md delete mode 100644 docker-compose.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 81e3fc1..580c4d6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,6 +30,7 @@ env: # DOCKERHUB_REPO: sdr-enthusiasts # DOCKERHUB_IMAGE: shipxplorer GHCR_IMAGE: sdr-enthusiasts/shipxplorer + GHCR_IMAGE2: sdr-enthusiasts/docker-shipfeeder GHCR_REGISTRY: ghcr.io jobs: @@ -97,8 +98,8 @@ jobs: with: driver-opts: image=moby/buildkit:v0.10.6 - # Build "latest" - - name: Build & Push - latest + # Build "latest" for org and new package + - name: Build & Push - latest - org package uses: docker/build-push-action@v3 with: context: . @@ -108,3 +109,14 @@ jobs: push: true tags: ghcr.io/${{ env.GHCR_IMAGE }}:latest labels: ${{ steps.meta.outputs.labels }} + + - name: Build & Push - latest - new package + uses: docker/build-push-action@v3 + with: + context: . + file: ./Dockerfile + no-cache: true + platforms: linux/amd64,linux/arm/v7,linux/arm64 + push: true + tags: ghcr.io/${{ env.GHCR_IMAGE2 }}:latest + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index 72115e3..c75fbe5 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -20,4 +20,4 @@ jobs: - name: Pull markdownlint/markdownlint:latest Image run: docker pull markdownlint/markdownlint:latest - name: Run markdownlint against *.md files - run: docker run --rm -i -v "$(pwd)":/workdir --workdir /workdir markdownlint/markdownlint:latest --rules ~MD013,~MD033,~MD026,~MD002,~MD022 $(find . -type f -iname '*.md' | grep -v '/.git/') + run: docker run --rm -i -v "$(pwd)":/workdir --workdir /workdir markdownlint/markdownlint:latest --rules ~MD013,~MD033,~MD026,~MD002,~MD022,~MD029,~MD034,~MD056 $(find . -type f -iname '*.md' | grep -v '/.git/') diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 0b3f13f..8771dab 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -53,7 +53,6 @@ jobs: - linux/amd64 - linux/arm64 - linux/arm/v7 - - linux/i386 steps: diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..5dec587 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,7 @@ +{ + "MD013": false, + "MD033": false, + "MD029": false, + "MD034": false, + "MD056": false +} \ No newline at end of file diff --git a/Dockerfile.build-aiscatcher b/Dockerfile.build-aiscatcher index 71f47d3..f096ccc 100644 --- a/Dockerfile.build-aiscatcher +++ b/Dockerfile.build-aiscatcher @@ -1,9 +1,9 @@ -FROM debian:bullseye-slim AS build +FROM debian:bookwork-slim AS build RUN set -x && \ apt-get update -y && \ apt-get upgrade -y && \ - apt-get install -q -o Dpkg::Options::="--force-confnew" -y \ + apt-get install -q -o Dpkg::Options::="--force-confnew" --no-install-recommends -y \ git make gcc g++ cmake pkg-config librtlsdr-dev libairspy-dev libhackrf-dev libairspyhf-dev libzmq3-dev libsoxr-dev libcurl4-openssl-dev zlib1g-dev && \ git clone --depth=1 -b develop --single-branch https://github.com/jvde-github/AIS-catcher.git /root/AIS-catcher && \ cd /root/AIS-catcher && \ diff --git a/README.md b/README.md index 6582ca4..266bdc1 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,52 @@ -# sdr-enthusiasts/docker-shipxplorer +# sdr-enthusiasts/docker-shipfeeder [![Discord](https://img.shields.io/discord/734090820684349521)](https://discord.gg/sTf9uYF) -- [sdr-enthusiasts/docker-shipxplorer](#sdr-enthusiastsdocker-shipxplorer) +## What's New + +So you came here expecting `docker-shipxplorer`? As of March 15, 2024 (*the Ides of March*!), the `docker-shipxplorer` repo has been renamed to `docker-shipfeeder`. The container can do so much more than just feeding ShipXplorer, and the new name covers the scope of what we're doing much better! + +We're still enthusiastic feeders of AIS data to AirNav's ShipXplorer, and the amount of support that company has provided to the community is much appreciated. No changes there! + +The newly updated container now also allows you to much easier configure feeding the other aggregators, see the [Feeding AIS Aggregator Services](#feeding-ais-aggregator-services) section! + +In adding all these improvements, we didn't forget our current users: the container is fully backwards compatible with the settings and environment variables you are already using. So no change is needed, unless you want to. We're also automatically producing two container images in parallel - they are exactly the same except for their names: `ghcr.io/sdr-enthusiasts/docker-shipfeeder` (new!) and `ghcr.io/sdr-enthusiasts/shipxplorer` (legacy). + +If you need help, feel free to chat with us at the Discord server that is linked elsewhere in this Readme. + +## Table of Contents + +- [sdr-enthusiasts/docker-shipfeeder](#sdr-enthusiastsdocker-shipfeeder) + - [What's New](#whats-new) + - [Table of Contents](#table-of-contents) - [Prerequisites](#prerequisites) - [Multi Architecture Support](#multi-architecture-support) - - [Obtaining a ShipXplorer Sharing Key](#obtaining-a-shipxplorer-sharing-key) - [Up-and-Running with Docker Compose](#up-and-running-with-docker-compose) - - [Claiming Your ShipXplorer Receiver](#claiming-your-shipxplorer-receiver) - [Runtime Environment Variables](#runtime-environment-variables) - - [Feeding Other Service](#feeding-other-service) + - [SDR and Receiver Related Variables](#sdr-and-receiver-related-variables) + - [Website Related Parameters](#website-related-parameters) + - [Feeding AIS Aggregator Services](#feeding-ais-aggregator-services) + - [Easy sharing with other services](#easy-sharing-with-other-services) - [Exchanging data with `aiscatcher.org`](#exchanging-data-with-aiscatcherorg) - - [Feeding Services Using UDP](#feeding-services-using-udp) - - [Feeding Service Using HTTP](#feeding-service-using-http) - - [Feeding `aprs.fi`](#feeding-aprsfi) - - [Feeding `airframes.io`](#feeding-airframesio) + - [Configuring feeding to ShipXplorer](#configuring-feeding-to-shipxplorer) + - [Obtaining a ShipXplorer Sharing Key](#obtaining-a-shipxplorer-sharing-key) + - [Claiming Your ShipXplorer Receiver](#claiming-your-shipxplorer-receiver) + - [Adding Additional Command-line Parameters to `sxfeeder`](#adding-additional-command-line-parameters-to-sxfeeder) + - [Workaround for CPU Serial (only needed when feeding ShipXplorer with non-Raspberry Pi systems)](#workaround-for-cpu-serial-only-needed-when-feeding-shipxplorer-with-non-raspberry-pi-systems) + - [Feeding Additional Services Using UDP](#feeding-additional-services-using-udp) + - [Feeding Additional Services Using HTTP](#feeding-additional-services-using-http) - [Adding an `About` Page to the AIS-Catcher Website](#adding-an-about-page-to-the-ais-catcher-website) - [Logging](#logging) - - [Workaround for CPU Serial (only needed with non-Raspberry Pi systems)](#workaround-for-cpu-serial-only-needed-with-non-raspberry-pi-systems) - - [Feeding other services](#feeding-other-services) - [AIS-Catcher Web Plugin Support and AIS-Catcher Persistency](#ais-catcher-web-plugin-support-and-ais-catcher-persistency) - [Additional Statistics Dashboard with Prometheus and Grafana](#additional-statistics-dashboard-with-prometheus-and-grafana) + - [Configuring 2 SDRs for Reception on Channels AB and CD](#configuring-2-sdrs-for-reception-on-channels-ab-and-cd) - [Aggregating multiple instances of the container](#aggregating-multiple-instances-of-the-container) - [Hardware requirements](#hardware-requirements) - [Getting Help](#getting-help) + - [Acknowledgements](#acknowledgements) + - [License](#license) -Docker container running [AirNav ShipXplorer](https://www.shipxplorer.com)'s `sxfeeder` and `AIS-catcher`. Builds and runs on `arm64`, `armv7/armhf`, and `amd64/x86`. - -`AIS-catcher` pulls AIS information from a RTL-SDR dongle. -`sxfeeder` sends this data to RadarBox. - -You can also use this container to feed other AIS services that take NMEA-formatted AIS data over either UDP or HTTP. See below for details. +Docker container for feeding many AIS aggregators, showing a local map with ships heard, etc. The container uses [AIS-Catcher](https://aiscatcher.org) and also includes [AirNav ShipXplorer](https://www.shipxplorer.com)'s `sxfeeder`. Builds and runs on `arm64`, `armv7/armhf`, and `amd64/x86`. ## Prerequisites @@ -52,236 +68,307 @@ Currently, this image should pull and run on the following architectures: Other architectures (Windows, Mac) are not currently supported, but feel free to see if the container builds and runs for these. In theory, it should work, but I don't have the time nor inclination to test it. -## Obtaining a ShipXplorer Sharing Key - -First-time users should obtain a ShipXplorer sharing key. - -In order to obtain a ShipXplorer sharing key, on the first run of the container, it will generate a sharing key and print this to the container log. If you can't find it, you can also copy and paste this command: - -```bash -timeout 180s docker run \ - --rm \ - -it \ - --entrypoint /usr/bin/get-creds \ - ghcr.io/sdr-enthusiasts/shipxplorer:latest -``` - -This will run the container for 3 minutes, allowing a sharing key to be generated. -Shortly after, you will see something like this: - -```text -WARNING: SHARING_KEY or SERIAL_NUMBER environment variable was not set! -Please make sure you note down the keys generated and update your docker-compose.yml with these values. -Set environment var SHARING_KEY to the new key displayed below - this is the long hex number -Set environment var SERIAL_NUMBER to the Serial Number displayed below - this is the SXTRPIxxxxxx string -They must be set for this container to run. -Please set it and restart the container. - -[2022-11-01 19:48:19] Your new key is f1xxxxxxxxxxxxxxxxxxxxxxxx57 and Serial Number (SN) is SXTRPIxxxxxx. -Please save this key for future use. You will have to know this key to link this receiver to your account -in https://www.shipxplorer.com/. This key is also saved in configuration file (/etc/sxfeeder.ini) -``` - -You can wait for the 3 minutes to pass, or you can press CTRL-C now to finish. -Take a note of the Sharing Key (`f1...57` - yours will be a different number) and the Serial Number (`SXTRPIxxxxxx`), and add these to the `SHARING_KEY` and `SERIAL_NUMBER` parameters of your `docker-compose.yml` file. - -If you're not a first time user and are migrating from another installation, you can retrieve your sharing key by doing this: - -- SSH onto your existing receiver and run the command `cat /etc/sxfeeder.ini` -The `key` and `sn` lines show your current credentials - ## Up-and-Running with Docker Compose -Example `docker-compose.yml` extract +You can find these as files here: [`docker-compose.yml` example](https://github.com/sdr-enthusiasts/docker-shipfeeder/blob/main/config-examples/docker-compose.yml.sample); [`.env` example](https://github.com/sdr-enthusiasts/docker-shipfeeder/blob/main/config-examples/.env.sample) + +
+ <‐‐ Click the arrow to see the docker-compose.yml and .env examples ```yaml version: '3.8' services: - shipxplorer: - image: ghcr.io/sdr-enthusiasts/shipxplorer - container_name: shipxplorer - hostname: shipxplorer + shipfeeder: + image: ghcr.io/sdr-enthusiasts/docker-shipfeeder + container_name: shipfeeder + hostname: shipfeeder restart: always environment: +# general parameters: - VERBOSE_LOGGING= - - SHARING_KEY=${SX_SHARING_KEY} - - SERIAL_NUMBER=${SX_SERIAL_NUMBER} - - RTLSDR_DEVICE_SERIAL=${SX_RTLSDR_DEVICE_SERIAL} - - UDP_FEEDS=${SX_UDP_FEEDS} - - RTLSDR_DEVICE_GAIN=${SX_RTLSDR_GAIN} +# ais-catcher general and website related parameters - AISCATCHER_EXTRA_OPTIONS=${SX_EXTRA_OPTIONS} - - STATION_NAME=${SX_STATION_NAME}${SX_SERIAL_NUMBER} + - STATION_NAME=${STATION_NAME} - STATION_HISTORY=3600 - BACKUP_INTERVAL=5 - - SXFEEDER_LON=${FEEDER_LONG} - - SXFEEDER_LAT=${FEEDER_LAT} - - PROMETHEUS_ENABLE=true - - AISCATCHER_SHAREDATA=true + - FEEDER_LONG=${FEEDER_LONG} + - FEEDER_LAT=${FEEDER_LAT} + - SITESHOW=on + - PROMETHEUS_ENABLE=on + - REALTIME=on +# ais-catcher receiver related parameters + - RTLSDR_DEVICE_SERIAL=${RTLSDR_DEVICE_SERIAL} + - RTLSDR_DEVICE_GAIN=${RTLSDR_DEVICE_GAIN} + - RTLSDR_DEVICE_PPM=${RTLSDR_DEVICE_PPM} + - RTLSDR_DEVICE_BANDWIDTH=${RTLSDR_DEVICE_BANDWIDTH} + - AISCATCHER_DECODER_AFC_WIDE=${AISCATCHER_DECODER_AFC_WIDE} +# aggregrators related parameters + - AIRFRAMES_STATION_ID=${AIRFRAMES_STATION_ID} + - AISCATCHER_FEEDER_KEY=${AISCATCHER_FEEDER_KEY} + - AISHUB_UDP_PORT=${AISHUB_UDP_PORT} + - APRSFI_FEEDER_KEY=${APRSFI_FEEDER_KEY} + - BOATBEACON_SHAREDATA=${BOATBEACON_SHAREDATA} + - HPRADAR_UDP_PORT=${HPRADAR_UDP_PORT} + - MARINETRAFFIC_UDP_PORT=${MARINETRAFFIC_UDP_PORT} + - MYSHIPTRACKING_UDP_PORT=${MYSHIPTRACKING_UDP_PORT} + - RADARVIRTUEL_FEEDER_KEY=${RADARVIRTUEL_FEEDER_KEY} + - RADARVIRTUEL_STATION_ID=${RADARVIRTUEL_STATION_ID} + - SHIPFINDER_SHAREDATA=${SHIPFINDER_SHAREDATA} + - SHIPPINGEXPLORER_UDP_PORT=${SHIPPINGEXPLORER_UDP_PORT} + - SHIPXPLORER_SHARING_KEY=${SHIPXPLORER_SHARING_KEY} + - SHIPXPLORER_SERIAL_NUMBER=${SHIPXPLORER_SERIAL_NUMBER} + - VESSELFINDER_UDP_PORT=${VESSELFINDER_UDP_PORT} + - VESSELTRACKER_UDP_PORT=${VESSELTRACKER_UDP_PORT} + - UDP_FEEDS=${SX_UDP_FEEDS} +# incoming UDP data related parameters: + - AISCATCHER_UDP_INPUTS=${AISCATCHER_UDP_INPUTS} ports: - 90:80 - devices: - - /dev/bus/usb + - 9988:9988/udp + device_cgroup_rules: + - 'c 189:* rwm' tmpfs: - /tmp volumes: - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "/opt/ais/shipxplorer/data:/data" - labels: - - "com.centurylinklabs.watchtower.scope=ais" + - /dev:/dev:rw ``` Example accompanying `.env` file: -```bash -FEEDER_LAT=42.3788502 -FEEDER_LONG=-71.0360718 -SX_SHARING_KEY=0123456789abcdef -SX_SERIAL_NUMBER=SXTRPI000xxx -SX_RTLSDR_DEVICE_SERIAL=sdr_serial_number_here -SX_RTLSDR_GAIN=auto -SX_UDP_FEEDS=ip1:port1,ip2:port2:JSON on,ip3:port3 -SX_EXTRA_OPTIONS=-p 0 -a 192K -m 4 -go AFC_WIDE on -SX_STATION_NAME=My_station_name_single_string_no_spaces_but_html_char_encoding_is_ok_for_example This is Boston Calling +```ini +# ShipFeeder receiver and webpage related parameters: +FEEDER_LAT=xx.xxxxxx +FEEDER_LONG=yy.yyyyyy +RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL +RTLSDR_DEVICE_GAIN=xxx +RTLSDR_DEVICE_PPM=xxx +AISCATCHER_DECODER_AFC_WIDE=on +AISCATCHER_CHANNELS=AB CD +STATION_NAME=My Station Name +# +# keys and params for aggregators: +# If you aren't feeding a specific aggregator, leave the value EMPTY or remove the parameter +AIRFRAMES_STATION_ID=XX-XXXXXXX-AIS +AISCATCHER_FEEDER_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +AISHUB_UDP_PORT=xxxx +APRSFI_FEEDER_KEY=xxxxxxx +APRSFI_STATION_ID=MYCALL +BOATBEACON_SHAREDATA=true +HPRADAR_UDP_PORT=xxxx +MARINETRAFFIC_UDP_PORT=xxxxx +MYSHIPTRACKING_UDP_PORT=xxxxx +RADARVIRTUEL_FEEDER_KEY=xxxxxxxxx +RADARVIRTUEL_STATION_ID=xx +SHIPFINDER_SHAREDATA=true +SHIPPINGEXPLORER_UDP_PORT=xxxxx +SHIPXPLORER_SHARING_KEY=xxxxxxxxxxxxxxxxxxx +SHIPXPLORER_SERIAL_NUMBER=SXTRPI00xxxx +VESSELFINDER_UDP_PORT=xxxx +VESSELTRACKER_UDP_PORT=xxxx ``` -Replace the `SHARING_KEY`, `SERIAL_NUMBER`, and `RTLSDR_DEVICE_SERIAL` with the appropriate values. +Replace these parameters with the appropriate values. You can use `rtl_test` to see which devices and device serials are connected to your machine, or `rtl_eeprom` to rename the device's serial number. -In `SX_EXTRA_OPTIONS`, the `-p` directive indicates the PPM value of your SDR. Adapt it to your needs. - -## Claiming Your ShipXplorer Receiver - -Once your container is up and running, you should claim your receiver. - -1. Go to -2. Create an account or sign in -3. Claim your receiver by visiting and following the instructions - -Note - you will need your `SHARING_KEY` and the location of your feeder (coordinates or pick on map). As of now, it appears that you don't need your SN or Public IP address. +
## Runtime Environment Variables -There are a series of available environment variables: - -| Environment Variable | Purpose | -| ---------------------- | ------------------------------- | -| `SHARING_KEY` | Sharing Key generated by `sxfeeder`. See instructions above. If unset, then no data will be sent to ShipXplorer but the container can still be used to feed other services without feeding ShipXplorer | -| `SERIAL_NUMBER` | Required. Serial Number generated by `sxfeeder`. See instructions above | -| `RTLSDR_DEVICE_SERIAL` | Required. Serial Number of your RTL-SDR dongle. See instructions above | -| `UDP_FEEDS` | Optional. Defines target UDP feeds in addition to ShipExplorer. Format: `UDP_FEEDS=domain1.com:port1[:params],domain2,com:port2[:params],...` | -| `VERBOSE_LOGGING` | Optional. If empty, a summary is displayed every 60 seconds. If set to a number (`0`-`5`), it's set to the `AIS-Catcher -o` [log level](https://github.com/jvde-github/AIS-catcher#usage). Any other non-empty string corresponds to `-o 2`. To silence `AIS-Catcher` logs, set this parameter to `0` | -| `RTLSDR_DEVICE_GAIN` | Optional. SDR device gain. If omitted, default value is 33.3 is used. Can also be set to `auto` | -| `AISCATCHER_EXTRA_OPTIONS` | Optional. Any additional command line parameters you wish to pass to `AIS-catcher`. Default: empty | -| `SXFEEDER_EXTRA_OPTIONS` | Optional. Any additional command line parameters you wish to pass to `sxfeeder`. Default: empty | -| `PLUGINS_FILE` | Optional. Load a file with custom javascript to override parts of the WebUI or add functionality. Map the container `/data` to any volume, place your file inside the volume and put the file name here (for example `plugins.js`) | -| `STYLES_FILE` | Optional. Load a file with custom css to override parts of the WebUI or add functionality. Map the container `/data` to any volume, place your file inside the volume and put the file name here (for example `styles.css`) | -| `STATION_NAME` | Optional. Station name displayed on stat web page. If omitted, it will should your ShipXplorer Serial Number | -| `STATION_LINK` | Optional. URL displayed on stat web page. If omitted, it will show your ShipXplorer URL | -| `STATION_HISTORY` | Optional. The number of seconds of history that will be shown in plots on the website. Default if omitted: `3600` (1 hour) | -| `BACKUP_INTERVAL` | Optional. How often a file with data statistics (`aiscatcher.bin`) will be written to disk, in minutes. In order to make this backup persistent, make sure to map the `/data` directory to a volume. See example in [docker-compose.yml](docker-compose.yml). Default: 2880 minutes (=2 days) | -| `BACKUP_RETENTION_TIME` | Time (in days) to keep backups of `aiscatcher.bin` and plugins. Note - this only affects the backups of these files and not the active `aiscatcher.bin` or active plugins. Default value is `30` (days) | -| `SITESHOW` | Optional. If set to anything non-empty, it will show the station location as a dot on the map | -| `SXFEEDER_LAT` | Optional. Used for calculating ship distances on web page | -| `SXFEEDER_LON` | Optional. Used for calculating ship distances on web page | -| `PROMETHEUS_ENABLE` | Optional. Enables Prometheus data at `/metrics` on the webserver. Empty (disabled) by default | -| `DISABLE_SHOWLASTMSG` | Optional. If set to `true`, the last NMEA0182 message option won't be shown on the website. Default empty (`false`, i.e., last message option is available on website) | -| `DISABLE_WEBSITE` | Optional. If set to `true`, the AIS-Catcher website will not be available. Default empty (`false`, i.e., the website is available) | -| `PLUGIN_UPDATE_INTERVAL` | Optional. Set this to the interval (for example, `30` (secs) or `5m` or `6h` or `3d`) to check the AIS-Catcher github repository for updates to the JavaScript web plugins. Set to `0` or `off` to disable checking. Default value: `6h` | -| `REFRESHRATE` | Refresh rate of the vessel data on the web page, in msec. Larger numbers reduce web page traffic, which can become an issue if there are a large number of vessels. Default value: `2500` (msec) | -| `AISCATCHER_SHAREDATA` | Optional but highly recommended. If set to `true`, share your NMEA AIS data with aiscatcher.org and receive other ship data in return. Only raw NMEA data is shared, no personal information is transmitted. See [here](https://github.com/jvde-github/AIS-catcher#update-join-our-mission-to-enhance-ais-catcher) for more information | - -## Feeding Other Service +### SDR and Receiver Related Variables + +| Environment Variable | Purpose | Default value if omitted | +| ---------------------- | ------------------------------- | --- | +| `RTLSDR_DEVICE_SERIAL` | Serial Number of your RTL-SDR dongle | Empty | +| `RTLSDR_DEVICE_GAIN` | SDR device gain. Can also be set to `auto` | `33` | +| `RTLSDR_DEVICE_PPM`| PPM deviation of your RTLSDR device | Empty | +| `RTLSDR_DEVICE_BANDWIDTH` | Channel bandwitdh of the receiver | `192K` | +| `AISCATCHER_CHANNELS` | Channels flag for `ais-catcher`. Set to `AB`, `CD`, or `AB CD` | Empty | +| `AISCATCHER_DECODER_MODEL` | Decoder model number for `ais-catcher` | `2` | +| `AISCATCHER_DECODER_AFC_WIDE` | `-go AFC_WIDE` flag for `ais-catcher`. Recommended to set to `on` | `on` | +| `AISCATCHER_DECODER_FP_DS` | `-go PF_DS` flag for `ais-catcher` | Empty | +| `AISCATCHER_DECODER_PS_EMA` | `-go PS_EMA` flag for `ais-catcher` | Empty | +| `AISCATCHER_DECODER_SOXR` | `-go SOXR` flag for `ais-catcher` | Empty | +| `AISCATCHER_DECODER_SRC` | `-go SRC` flag for `ais-catcher` | Empty | +| `AISCATCHER_DECODER_DROOP` | `-go DROOP` flag for `ais-catcher` | Empty | +| `AISCATCHER_UDP_INPUTS` | List of comma-separated `hostname:port[:CHANNELS]` combinations of external NMEA AIS data UDP sources. You can use this to feed data between `ais-catcher` or `docker-shipfeeder` instances. The `:CHANNELS` part is optional; channels `AB` will be used if omitted. Examples
`AISCATCHER_UDP_INPUTS=remotehost-1:9999:AB CD,remotehost-2:9988,remotehost-3:8899:CD` | Empty | +| `AISCATCHER_EXTRA_OPTIONS` | Any additional command line parameters you wish to pass to `AIS-catcher` | Empty | +| `VERBOSE_LOGGING` | If set to a number (`0`-`5`), it's set to the `AIS-Catcher -o` [log level](https://github.com/jvde-github/AIS-catcher#usage). Any other non-empty string corresponds to `-o 2`. To silence `AIS-Catcher` logs, set this parameter to `0` | `2` (a summary is displayed every 60 seconds) | + +If the `AISCATCHER_CHANNELS` and `AISCATCHER_DECODER_XXXX` parameters listed above are set, they will overwrite/remove any equivalent parameters added to the `AISCATCHER_EXTRA_OPTIONS` parameter. + +### Website Related Parameters + +| Environment Variable | Purpose | Default value if omitted | +| ---------------------- | ------------------------------- | --- | +| `DISABLE_WEBSITE` | If set to `true`, the AIS-Catcher website will not be available | `false` | +| `PLUGINS_FILE` | Load a file with custom javascript to override parts of the WebUI or add functionality. Map the container `/data` to any volume, place your file inside the volume and put the file name here (for example `plugins.js`) | Empty | +| `STYLES_FILE` | Load a file with custom css to override parts of the WebUI or add functionality. Map the container `/data` to any volume, place your file inside the volume and put the file name here (for example `styles.css`) | Empty | +| `STATION_NAME` | Station name displayed on stat web page | Empty | +| `STATION_LINK` | URL displayed on stat web page | Empty | +| `STATION_HISTORY` | The number of seconds of history that will be shown in plots on the website | `3600` | +| `BACKUP_INTERVAL` | How often a file with data statistics (`aiscatcher.bin`) will be written to disk, in minutes. In order to make this backup persistent, make sure to map the `/data` directory to a volume. See example in [docker-compose.yml](docker-compose.yml). | `2880` (=2 days) | +| `BACKUP_RETENTION_TIME` | Time (in days) to keep backups of `aiscatcher.bin` and plugins. Note - this only affects the backups of these files and not the active `aiscatcher.bin` or active plugins. | `30` (days) | +| `SITESHOW` | If set to anything non-empty, it will show the station location as a dot on the map | Empty | +| `FEEDER_LAT` or `SXFEEDER_LAT` (legacy) | Used for calculating ship distances on web page | Empty | +| `FEEDER_LONG` or `SXFEEDER_LON` (legacy) | Used for calculating ship distances on web page | Empty | +| `DISABLE_SHOWLASTMSG` | If set to `true`, the last NMEA0182 message option won't be shown on the website. | Empty, i.e., last message option is available on website | +| `PLUGIN_UPDATE_INTERVAL` | Optional. Set this to the interval (for example, `30` (secs) or `5m` or `6h` or `3d`) to check the AIS-Catcher github repository for updates to the JavaScript web plugins. Set to `0` or `off` to disable checking. | `6h` | +| `REFRESHRATE` | Refresh rate of the vessel data on the web page, in msec. Larger numbers reduce web page traffic, which can become an issue if there are a large number of vessels | `2500` (msec) | + +## Feeding AIS Aggregator Services + +### Easy sharing with other services + +This table shows which parameters to set and how to obtain credentials for a number of well-known AIS aggregators. A (partial) list of these aggregators and instructions on how to get a key or port for them can be found [here](https://docs.google.com/spreadsheets/d/1W9uuuS2tGHcNENm7Ze3M1UPl2u8tMZv2N_bID6x060Y/edit?usp=sharing) + + | Name | Parameter | Default IP/DNS/URL | Feeding protocol:
UDP/TCP/HTTP/Other | How to register for a key or ID | + | ---- | --------- | ------------------ | --------------------------------------- | ------------------------------- | + | ADSB-Network (RadarVirtuel) | `RADARVIRTUEL_FEEDER_KEY`
`RADARVIRTUEL_STATION_ID` | [https://ais.adsbnetwork.com/ingester/insert/$RADARVIRTUEL_FEEDER_KEY](https://ais.adsbnetwork.com/ingester/insert/$RADARVIRTUEL_FEEDER_KEY) | HTTP | Email with your request to join | + | Airframes | `AIRFRAMES_STATION_ID` | [http://feed.airframes.io:5599](http://feed.airframes.io:5599) | HTTP | No signup needed. `AIRFRAMES_STATION_ID` is a self-chosen ID that has the form of `II-STATIONNAME-AIS`, where `II` are the initials of the owner's name, and `STATIONNAME` is a self-chosen station name (A-Z, 0-9 only please) | + | AIS-Catcher | `AISCATCHER_SHAREDATA=true`
`AISCATCHER_FEEDER_KEY` | | Other | See [Exchanging data with `aiscatcher.org`](#exchanging-data-with-aiscatcherorg) [https://aiscatcher.org/#join](https://aiscatcher.org/#join). In the future, AISCatcher may provide you with an optional UUID that you can set in `AISCATCHER_FEEDER_KEY` | + | AISHub | `AISHUB_UDP_PORT` | [data.aishub.net](http://data.aishub.net) | UDP | [https://www.aishub.net/join-us](https://www.aishub.net/join-us) | + | [APRS.fi](http://APRS.fi) | `APRSFI_FEEDER_KEY`
`APRSFI_STATION_ID` | [http://aprs.fi/jsonais/post/$APRS_FEEDER_KEY](http://aprs.fi/jsonais/post/$APRS_FEEDER_KEY) | HTTP | Get AIS Password (`APRSFI_FEEDER_KEY`) at [https://aprs.fi/?c=account](https://aprs.fi/?c=account). Use your Ham Radio callsign for `APRSFI_STATION_ID`. Both fields are mandatory. | + | BoatBeacon | `BOATBEACON_SHAREDATA=true` | [boatbeaconapp.com:5322](http://boatbeaconapp.com:5322) | UDP | [https://pocketmariner.com/ais-ship-tracking/cover-your-area/set-up-and-ais-shore-station/](https://pocketmariner.com/ais-ship-tracking/cover-your-area/set-up-and-ais-shore-station/) - no keys or IDs are required | + | HPRadar | `HPRADAR_UDP_PORT` | [aisfeed.hpradar.com](http://aisfeed.hpradar.com) | UDP | | + | MarineTraffic | `MARINETRAFFIC_UDP_PORT` | 5.9.207.224 | UDP | [https://www.marinetraffic.com/en/join-us/cover-your-area](https://www.marinetraffic.com/en/join-us/cover-your-area) | + | MyShipTracking | `MYSHIPTRACKING_UDP_PORT` | 178.162.215.175 | UDP | [https://www.myshiptracking.com/help-center/contributors/add-your-station](https://www.myshiptracking.com/help-center/contributors/add-your-station) | + | ShipFinder | `SHIPFINDER_SHAREDATA=true` | [ais.shipfinder.co.uk:4001](http://ais.shipfinder.co.uk:4001/) | UDP | [https://shipfinder.co/about/coverage/](https://shipfinder.co/about/coverage/) | + | ShippingExplorer | `SHIPPINGEXPLORER_UDP_PORT` | 144.76.54.111 | UDP | Request UDP port at [https://www.shippingexplorer.net/en/contact](https://www.shippingexplorer.net/en/contact) | + | ShipXplorer | `SHIPXPLORER_SHARING_KEY` or `SHARING_KEY` (legacy)
`SHIPXPLORER_SERIAL_NUMBER` or `SERIAL_NUMBER` (legacy) | | Other | See [Obtaining a ShipXplorer Sharing Key](#obtaining-a-shipxplorer-sharing-key) | + | VesselFinder | `VESSELFINDER_UDP_PORT` | [ais.vesselfinder.com](http://ais.vesselfinder.com) | UDP | [https://stations.vesselfinder.com/become-partner](https://stations.vesselfinder.com/become-partner) | + | VesselTracker | `VESSELTRACKER_UDP_PORT` | 83.220.137.136 | UDP | [https://www.vesseltracker.com/en/static/antenna-partner.html](https://www.vesseltracker.com/en/static/antenna-partner.html) | + +Note: for all parameters `SERVICE_UDP_PORT`, you may use one of the following formats: + +- `- SERVICE_UDP_PORT=1234` --> use UDP port 1234 +- `- SERVICE_UDP_PORT=hostname:1234` or `- SERVICE_UDP_PORT=ip_addr:1234` --> use the hostname or ip address instead of the one indicated in the table, and UDP port 1234 + +For services that do no need any UDP ports or credentials, you can simply set `- SERVICE_SHAREDATA=true`. However, if you want to use a non-default port and/or hostname/ip, you can set also `SERVICE_UDP_PORT` (as shown above) for that service ### Exchanging data with `aiscatcher.org` -[aiscatcher.org](https://aiscatcher.org) is an exchange of AIS NMEA data. If you share your data with this server, you automatically receive data about other ships in return. We recommend to switch this on for an optimal viewing experience. -You can enable it by simply adding this to the environment section of your `shipxplorer` service section in `docker-compose.yml`: +[aiscatcher.org](https://aiscatcher.org) is an exchange of AIS NMEA data. If you share your data with this server, you automatically receive data about other ships in return. **We recommend to switch this on for an optimal viewing experience.** +You can enable it by simply adding the following to the environment section of your `shipfeeder` service section in `docker-compose.yml`. Note that the `AISCATCHER_SHAREKEY` parameter is optional and will be ignored for now, pending implementation of this feature by AIS-Catcher. ```yaml - AISCATCHER_SHAREDATA=true +- AISCATCHER_SHAREKEY=xxxxxxxx ``` -### Feeding Services Using UDP +### Configuring feeding to ShipXplorer + +#### Obtaining a ShipXplorer Sharing Key + +First-time users should obtain a ShipXplorer sharing key. -Simply add a comma separated list of hostnames/ip addresses and UDP ports to the `SX_UDP_FEEDS` parameter. For example: +In order to obtain a ShipXplorer sharing key, on the first run of the container, it will generate a sharing key and print this to the container log. If you can't find it, you can also copy and paste this command: ```bash -SX_UDP_FEEDS=1.2.3.4:9999,ais.aggregator.org:1234 +timeout 180s docker run \ + --rm \ + -it \ + --entrypoint /usr/bin/get-creds \ + ghcr.io/sdr-enthusiasts/shipxplorer:latest ``` -### Feeding Service Using HTTP - -#### Feeding `aprs.fi` +This will run the container for 3 minutes, allowing a sharing key to be generated. +Shortly after, you will see something like this: -To feed `aprs.fi` using HTTP, you firwst need to create an AIS feeder account at that service. Note that creating accounts is limited to licensed amateur radio operators. With this account, you can create a personalized feeder URL, for example `http://aprs.fi/jsonais/post/aBcDeFgHiJkL`. -To initiate feeding, add the following to the `AISCATCHER_EXTRA_OPTIONS` parameter (replace the URL with your personalized link, and `MY0CALL` with your registered amateur radio callsign): +```text +WARNING: SHARING_KEY or SERIAL_NUMBER environment variable was not set! +Please make sure you note down the keys generated and update your docker-compose.yml with these values. +Set environment var SHARING_KEY to the new key displayed below - this is the long hex number +Set environment var SERIAL_NUMBER to the Serial Number displayed below - this is the SXTRPIxxxxxx string +They must be set for this container to run. +Please set it and restart the container. -```bash -AISCATCHER_EXTRA_OPTIONS=-H http://aprs.fi/jsonais/post/aBcDeFgHiJkL ID MY0CALL PROTOCOL aprs INTERVAL 30 RESPONSE off +[2022-11-01 19:48:19] Your new key is f1xxxxxxxxxxxxxxxxxxxxxxxx57 and Serial Number (SN) is SXTRPIxxxxxx. +Please save this key for future use. You will have to know this key to link this receiver to your account +in https://www.shipxplorer.com/. This key is also saved in configuration file (/etc/sxfeeder.ini) ``` -#### Feeding `airframes.io` +You can wait for the 3 minutes to pass, or you can press CTRL-C now to finish. +Take a note of the Sharing Key (`f1...57` - yours will be a different number) and the Serial Number (`SXTRPIxxxxxx`), and add these to the `SHARING_KEY` and `SERIAL_NUMBER` parameters of your `docker-compose.yml` file. -Since feeding `airframes.io` is still in a private alpha phase, you need to contact them to obtain a URL and be granted access to their private ZeroTier network. Once you have this all squared, you should add the following to the `AISCATCHER_EXTRA_OPTIONS` parameter: +If you're not a first time user and are migrating from another installation, you can retrieve your sharing key by doing this: -```bash -AISCATCHER_EXTRA_OPTIONS=-H http://1.2.3.4/test ID my_station_name INTERVAL 30 RESPONSE off -``` +- SSH onto your existing receiver and run the command `cat /etc/sxfeeder.ini` +The `key` and `sn` lines show your current credentials -Note: if you want to feed multiple HTTP aggregators, you can simply append each feeder string to the `AISCATCHER_EXTRA_OPTIONS` variable. For example: +#### Claiming Your ShipXplorer Receiver -```bash -AISCATCHER_EXTRA_OPTIONS=-H http://aprs.fi/jsonais/post/aBcDeFgHiJkL ID MY0CALL PROTOCOL aprs INTERVAL 30 RESPONSE off -H http://1.2.3.4/test ID my_station_name INTERVAL 30 RESPONSE off -``` +Once your container is up and running, you should claim your receiver. -## Adding an `About` Page to the AIS-Catcher Website +1. Go to +2. Create an account or sign in +3. Claim your receiver by visiting and following the instructions -You can add an About page to the AIS-Catcher Website by placing a file called `about.md` in the `/data` directory of the container. If you mapped this directory to a volume as shown in the example, the file as seen from the host system would be `/opt/ais/shipxplorer/about.md`. -You can format the text in this file using [Markdown](https://www.markdownguide.org/cheat-sheet/). +Note - you will need your `SHARING_KEY` and the location of your feeder (coordinates or pick on map). As of now, it appears that you don't need your SN or Public IP address. -## Logging +#### Adding Additional Command-line Parameters to `sxfeeder` -- All processes are logged to the container's stdout, and can be viewed with `docker logs [-f] container`. +`sxfeeder` is the binary component that is used to feed data to ShipXplorer. Normally, you don't have to interact with it, but exceptional circumstances may arise where you would like to add additional command line parameters to this program. You can do so, by adding them as follows: -## Workaround for CPU Serial (only needed with non-Raspberry Pi systems) +| Environment Variable | Purpose | Default value if omitted | +| --- | --- | --- | +| `SXFEEDER_EXTRA_OPTIONS` | Any additional command line parameters you wish to pass to `sxfeeder` | Empty | + +#### Workaround for CPU Serial (only needed when feeding ShipXplorer with non-Raspberry Pi systems) The `sxfeeder` binary effectively greps for `serial\t\t:` in your `/proc/cpuinfo` file, to determine the RPi's serial number. For systems that don't have a CPU serial number in `/proc/cpuinfo`, we can "fudge" this by generating a replacement `cpuinfo` file with a random serial number. To do this, copy and paste the following on your host machine: ```bash -sudo mkdir -m777 -p /opt/shipxplorer/cpuinfo -sudo install -m 666 /proc/cpuinfo /opt/shipxplorer/cpuinfo/ -echo -e "serial\t\t: $(hexdump -n 8 -e '4/4 "%08X" 1 "\n"' /dev/urandom | tr '[:upper:]' '[:lower:]')" >> /opt/shipxplorer/cpuinfo/cpuinfo +sudo mkdir -m777 -p /opt/shipfeeder/cpuinfo +sudo install -m 666 /proc/cpuinfo /opt/shipfeeder/cpuinfo/ +echo -e "serial\t\t: $(hexdump -n 8 -e '4/4 "%08X" 1 "\n"' /dev/urandom | tr '[:upper:]' '[:lower:]')" >> /opt/shipfeeder/cpuinfo/cpuinfo ``` You can now map this file into your container: -- If using docker run, simply add `-v /opt/shipxplorer/cpuinfo/cpuinfo:/proc/cpuinfo` to your command. -- If using docker-compose, add the following to the `volumes:` section of your shipxplorer container definition: +- If using docker run, simply add `-v /opt/shipfeeder/cpuinfo/cpuinfo:/proc/cpuinfo` to your command. +- If using docker-compose, add the following to the `volumes:` section of your shipfeeder container definition: ```yaml - - /opt/shipxplorer/cpuinfo/cpuinfo:/proc/cpuinfo + - /opt/shipfeeder/cpuinfo/cpuinfo:/proc/cpuinfo ``` -## Feeding other services +### Feeding Additional Services Using UDP + +If you want to feed and additional AIS aggregator that uses a hostname/UDP port and that is not listed above, then simply add a comma separated list of hostnames/ip addresses and UDP ports to the `UDP_FEEDS` parameter. Format: `UDP_FEEDS=domain1.com:port1[:params],domain2,com:port2[:params],...` -You can use the `UDP_FEEDS` parameter to feed additional services, as long as they can accept the UDP data format. for example to feed MarineTraffic: +For example: ```yaml - - UDP_FEEDS=5.9.207.224:5321 +- UDP_FEEDS=1.2.3.4:9999,ais.aggregator.org:1234 ``` -If you signed up and configured a station at their website, please replace the IP:port by the one allocated to your station. You can add multiple comma-separated UDP feeds here. +### Feeding Additional Services Using HTTP -If you have a Ham Radio license, you can also feed to `aprs.fi` via HTTP. In this case, configure `AISCATCHER_EXTRA_OPTIONS` like this: +To feed additional AIS aggregators that are not listed above using HTTP, you first need to create an AIS feeder account at that service. They will provide you with a URL and any additional parameters you need to configure AIS-Catcher. For example: ```yaml - - AISCATCHER_EXTRA_OPTIONS=-H http://aprs.fi/jsonais/post/abcdefghijklmn ID C9LLSIGN PROTOCOL aprs INTERVAL 30 RESPONSE off +- AISCATCHER_EXTRA_OPTIONS=-H http://1.2.3.4/test ID my_station_name INTERVAL 30 RESPONSE off ``` -where you replace `abcdefghijklmn` with the key you get when you sign up at aprs.fi, and `C9LLSIGN` with your Ham Radio callsign. +Note: if you want to feed multiple HTTP aggregators, you can simply append each feeder string to the `AISCATCHER_EXTRA_OPTIONS` variable with a space in between them. For example: + +```yaml +- AISCATCHER_EXTRA_OPTIONS=-H http://5.6.7.8/test/post/aBcDeFgHiJkL ID MYSTATION PROTOCOL aprs INTERVAL 30 RESPONSE off -H http://1.2.3.4/test ID my_station_name INTERVAL 30 RESPONSE off JSON on +``` + +## Adding an `About` Page to the AIS-Catcher Website + +You can add an About page to the AIS-Catcher Website by placing a file called `about.md` in the `/data` directory of the container. If you mapped this directory to a volume as shown in the example, the file as seen from the host system would be `/opt/ais/shipfeeder/about.md`. +You can format the text in this file using [Markdown](https://www.markdownguide.org/cheat-sheet/). + +## Logging + +- All processes are logged to the container's stdout, and can be viewed with `docker logs [-f] container`. ## AIS-Catcher Web Plugin Support and AIS-Catcher Persistency @@ -291,43 +378,49 @@ Web Plugins for AIS-Catcher can be placed in the `/data/plugins` directory. ## Additional Statistics Dashboard with Prometheus and Grafana -See [this readme](README-grafana.md) for information on how to set up and configure a Grafana stats dashboard for use with ShipXplorer. - -## Aggregating multiple instances of the container +See [this readme](README-grafana.md) for information on how to set up and configure a Grafana stats dashboard for use with shipfeeder. +Make sure to set this parameter to enable Prometheus data for the container: -Sometimes it's convenient to aggregate the data of multiple instances of the container into a single one, and then feed the AIS aggregators from this "central" instance. An example of this is when you have a SDR receiving from channels AB in one instance, and a SDR receiving from channels CD in a separate instance. In this case, you'd want to send the data from channels CD to the instance that (also) receives channels AB, and then use the Channel AB instance to disperse the data to the various services. +| Environment Variable | Purpose | Default value if omitted | +| --- | --- | --- | +| `PROMETHEUS_ENABLE` | If set to `true`, enables Prometheus data at `/metrics` on the webserver. | Empty (disabled) | -In this case, do the following. We are assuming that the hostname/container name for the instance receiving channels AB is `shipxplorer_ab` and the hostname/container name for the instance receiving channels CD is `shipxplorer_cd`. Your names may vary. +## Configuring 2 SDRs for Reception on Channels AB and CD -Situation 1: both instances are in the same container stack, on the same machine: +If you want `shipfeeder` to use 2 SDRs to listen to AIS Channels AB and CD at the same time, you can do the following -- In the section of the `docker-compose.yml` file for `shipxplorer_ab`, make sure to add the following to the `UDP_FEEDS` parameter: +- Configure your first SDR (for use with channels AB) via the "normal" [`RTLSDR_DEVICE_XXXX` parameters](#sdr-and-receiver-related-variables) +- Configure the second SDR using the `AISCATCHER_EXTRA_OPTIONS` parameter as follows (replace `SDR2-SERIAL` with the Serial Number of your second SDR): ```yaml - - UDP_FEEDS=.....;shipxplorer_cd:9988 JSON on +- AISCATCHER_EXTRA_OPTIONS=-d SDR2-SERIAL -p 2 -a 192K -c CD -gr tuner auto rtlagc ON -v 60 ``` -- In the section of the `docker-compose.yml` file for `shipxplorer_cd`, make sure to add the following to the `UDP_FEEDS` parameter. Make sure that the name after `-x` matches your container name: +- Subsequently, you can also add separate web pages for each SDR individually. The "normal" web interface on port `80` will show the combined receivers, while the following adds new web interfaces on ports `81` for your Channels AB receiver, and on port `82` for your Channels CD receiver. You can add this to the end of the `AISCATCHER_EXTRA_OPTIONS` parameter, replacing `SDR1_SERIAL` and `SDR2_SERIAL` with the two serial IDs of the SDRs, and adjusting the other parameters as appropriate: ```yaml - - AISCATCHER_EXTRA_OPTIONS=...... -x shipxplorer_cd 9988 -c AB CD +- AISCATCHER_EXTRA_OPTIONS=... -N 81 GROUPS_IN 1 STATION SDR1-SERIAL FILE /data/aiscatcher-ab.bin PLUGIN_DIR /data/plugins BACKUP 5 HISTORY 3600 STATION_LINK https://my.ais-station.com LAT xx.xxxx LON yy.yyyy SHARE_LOC on MESSAGE on REALTIME on -N 82 GROUPS_IN 2 STATION SDR2_SERIAL FILE /data/aiscatcher-cd.bin PLUGIN_DIR /data/plugins BACKUP 5 HISTORY 3600 STATION_LINK https://my.ais-station.com LAT xx.xxxx LON yy.yyyy SHARE_LOC on MESSAGE on REALTIME on ``` -Situation 2: both instances are on different machines or in different stacks on the same machine: +## Aggregating multiple instances of the container + +Sometimes it's convenient to aggregate the data of multiple instances of the container into a single one, and then feed the AIS aggregators from this "central" instance. An example of this is when you have a SDR receiving from channels AB in one instance, and a SDR receiving from channels CD in a separate instance on another machine. (If you have both SDRs on the same machine, you can use a single container instance for both of them as described above). In our case, you'd want to send the data from channels CD to the instance that receives channels AB, and then use that machine to disperse the data to the various services, show its webpage, etc. + +Do the following. We are assuming that the hostname/container name for the instance receiving channels AB is `shipfeeder_ab` and the hostname/container name for the instance receiving channels CD is `shipfeeder_cd`. Your names may vary. -- In the section of the `docker-compose.yml` file for `shipxplorer_ab`, make sure to add the following to the `UDP_FEEDS` parameter. Make sure that you replace `target_machine` with the IP or hostname of the target machine: +- In the section of the `docker-compose.yml` file for `shipfeeder_cd`, make sure to add the following to the `UDP_FEEDS` parameter. Make sure that you replace `target_machine` with the IP or hostname of the machine where `shipfeeder_ab` runs: ```yaml - UDP_FEEDS=.....;target_machine:9988 ``` -- In the section of the `docker-compose.yml` file for `shipxplorer_cd`, make sure to add the following to the `UDP_FEEDS` parameter. Make sure that the name after `-x` matches your container name. (DO NOT USE `localhost` or `127.0.0.1` - that won't work): +- In the section of the `docker-compose.yml` file for `shipfeeder_ab`, make sure to add the following to the `AISCATCHER_UDP_INPUTS` parameter. (DO NOT USE `localhost` or `127.0.0.1` - that won't work): ```yaml - - AISCATCHER_EXTRA_OPTIONS=...... -x shipxplorer_cd 9988 -c AB CD + - AISCATCHER_UDP_INPUTS=shipfeeder_cd:9988:AB CD ``` -- In addition, to the same section of the `docker-compose.yml` file for `shipxplorer_cd`, make sure to forward the UPD port to the container: +- In addition, to the same section of the `docker-compose.yml` file for `shipfeeder_cd`, make sure to forward the UPD port to the container: ```yaml ports: @@ -335,7 +428,7 @@ Situation 2: both instances are on different machines or in different stacks on - 9988:9988/udp ``` -Once you have done this, and after you recreate the containers, the `shipxplorer_cd` instance will now forward its data to `shipxplorer_ab`, and `shipxplorer_ab` will aggregate this data, display it on the AIS-Catcher map and tables, and forward it to any service you may have configured for it. +Once you have done this, and after you recreate the containers, the `shipfeeder_cd` instance will now forward its data to `shipfeeder_ab`, and `shipfeeder_ab` will aggregate this data, display it on the AIS-Catcher map and tables, and forward it to any service you may have configured for it. ## Hardware requirements @@ -345,6 +438,24 @@ Last - the software will run on a Raspberry Pi 3B+ or 4, with Raspberry Pi OS, U ## Getting Help -You can [log an issue](https://github.com/sdr-enthusiasts/docker-shipxplorer/issues) on the project's GitHub. +You can [log an issue](https://github.com/sdr-enthusiasts/docker-shipfeeder/issues) on the project's GitHub. I also have a [Discord channel](https://discord.gg/sTf9uYF), feel free to [join](https://discord.gg/sTf9uYF) and converse. + +## Acknowledgements + +This effort wouldn't exist without much help and advice of the following individuals: + +- [JvdE-Github](https://github.com/jvde-github/ais-catcher), who created the excellent `ais-catcher` package which forms the basis of this container +- [Wiedehopf](https://github.com/wiedehopf) without whose advice we'd all still live in the stone age +- [John Norrbin](https://github.com/Johnex) for his ideas, testing, feature requests, more testing, nagging, pushing, prodding, and overall efforts to make this a high quality container and for the USB "hotplug" configuration +- The community at the [SDR-Enthusiasts Discord Server](https://discord.gg/sTf9uYF) for helping out, testing, asking questions, and generally driving to make this a better productn +- [Pete](https://pliw.co.uk/ais) who provided access and major help testing new features + +## License + +Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/buildnow.sh b/buildnow.sh index 2814271..3a564bd 100755 --- a/buildnow.sh +++ b/buildnow.sh @@ -1,17 +1,17 @@ -#!/bin/bash +#!/usr/bin/env bash # shellcheck disable=SC2086 +echo "Shell: $(bash --version)" [[ "$1" != "" ]] && BRANCH="$1" || BRANCH="$(git branch --show-current)" [[ "$BRANCH" == "main" ]] && TAG="latest" || TAG="$BRANCH" [[ "$ARCHS" == "" ]] && ARCHS="linux/armhf,linux/arm64,linux/amd64" BASETARGET1=ghcr.io/sdr-enthusiasts -BASETARGET2=kx1t - -IMAGE1="$BASETARGET1/$(pwd | sed -n 's|.*/docker-\(.*\)|\1|p'):$TAG" -IMAGE2="$BASETARGET2/$(pwd | sed -n 's|.*/docker-\(.*\)|\1|p'):$TAG" +BASETARGET2=ghcr.io/sdr-enthusiasts +IMAGE1="$BASETARGET1/shipxplorer:$TAG" +IMAGE2="$BASETARGET2/docker-shipfeeder:$TAG" echo "press enter to start building $IMAGE1 and $IMAGE2 from $BRANCH" @@ -31,7 +31,6 @@ else sed -i 's/##BRANCH##/'"$BRANCH"'/g' Dockerfile fi -docker buildx build -f Dockerfile --compress --push $2 --platform $ARCHS --tag "$IMAGE1" . -# [[ $? ]] && docker buildx build --compress --push $2 --platform $ARCHS --tag $IMAGE2 . +docker buildx build -f Dockerfile --compress --push $2 --platform $ARCHS --tag $IMAGE1 ${IMAGE2:+--tag $IMAGE2} . mv -f /tmp/Dockerfile . echo "Total build time: $(( $(date +%s) - starttime )) seconds" diff --git a/config-examples/.env.sample b/config-examples/.env.sample index 0a33557..f4991d2 100644 --- a/config-examples/.env.sample +++ b/config-examples/.env.sample @@ -1,16 +1,29 @@ -FEEDER_LAT=xx.xxxxx -FEEDER_LONG=-yy.yyyyy -SX_SHARING_KEY=fxxxxxxxxxxxxxxxxxxxxxx7 -SX_SERIAL_NUMBER=SXTRPI000000 -SX_RTLSDR_DEVICE_SERIAL=AIS -SX_RTLSDR_GAIN=auto -SX_UDP_FEEDS=5.9.207.224:xxxxx,ais.vesselfinder.com:xxxx,144.76.54.111:xxxxx -SX_EXTRA_OPTIONS=-p -2 -a 192K -H http://aprs.fi/jsonais/post/zxxxxxxV ID MYCALL PROTOCOL aprs INTERVAL 30 RESPONSE off -H http://10.147.20.76:9995/test ID XX-USXXX-AIS INTERVAL 30 RESPONSE off -SX_STATION_NAME=My Station Name Here -VA_MASTODON_SERVER=airwaves.social -VA_MASTODON_ACCESS_TOKEN=9xxxxxxxxxxxxxxxxxxxxxxxxxxxo -VA_MASTODON_SKIP_FILTER=^[9]{2}[0-9]{7}$$|^[0-9]{7}$$ -VA_MASTODON_CUSTOM_FIELD=Join us! https://vesselalert.com -VA_DISCORD_NAME=My AIS - My Location, USA -VA_DISCORD_AVATAR_URL=https://files.airwaves.social/accounts/avatars/xxxxxxxx.jpeg -VA_DISCORD_WEBHOOKS= +# ShipFeeder receiver and webpage related parameters: +FEEDER_LAT=xx.xxxxxx +FEEDER_LONG=yy.yyyyyy +RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL +RTLSDR_DEVICE_GAIN=xxx +RTLSDR_DEVICE_PPM=xxx +AISCATCHER_DECODER_AFC_WIDE=on +AISCATCHER_CHANNELS=AB CD +STATION_NAME=My Station Name +# +# keys and params for aggregators: +# If you aren't feeding a specific aggregator, leave the value EMPTY or remove the parameter +AIRFRAMES_STATION_ID=XX-XXXXXXX-AIS +AISCATCHER_FEEDER_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +AISHUB_UDP_PORT=xxxx +APRSFI_FEEDER_KEY=xxxxxxx +APRSFI_STATION_ID=MYCALL +BOATBEACON_SHAREDATA=true +HPRADAR_UDP_PORT=xxxx +MARINETRAFFIC_UDP_PORT=xxxxx +MYSHIPTRACKING_UDP_PORT=xxxxx +RADARVIRTUEL_FEEDER_KEY=xxxxxxxxx +RADARVIRTUEL_STATION_ID=xx +SHIPFINDER_SHAREDATA=true +SHIPPINGEXPLORER_UDP_PORT=xxxxx +SHIPXPLORER_SHARING_KEY=xxxxxxxxxxxxxxxxxxx +SHIPXPLORER_SERIAL_NUMBER=SXTRPI00xxxx +VESSELFINDER_UDP_PORT=xxxx +VESSELTRACKER_UDP_PORT=xxxx \ No newline at end of file diff --git a/config-examples/README.md b/config-examples/README.md deleted file mode 100644 index 35172ac..0000000 --- a/config-examples/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# Configuration Examples for ShipXplorer - -[![Discord](https://img.shields.io/discord/734090820684349521)](https://discord.gg/sTf9uYF) - -- [Configuration Examples for ShipXplorer](#configuration-examples-for-shipxplorer) - - [Introduction](#introduction) - - [Installing `docker` on your machine](#installing-docker-on-your-machine) - - [Downloading the sample configuration](#downloading-the-sample-configuration) - - [Prep and download the sample configuration files](#prep-and-download-the-sample-configuration-files) - - [Configuring your station](#configuring-your-station) - - [Starting your AIS Feeder](#starting-your-ais-feeder) - - [See ships and station data on your webpage](#see-ships-and-station-data-on-your-webpage) - - [Troubleshooting](#troubleshooting) - - [Advanced configuration](#advanced-configuration) - - [Getting Help](#getting-help) - -## Introduction - -While the main README.md has information on how to configure and set up the container, this README describes how a practical setup could look. -We will cover 4 containers: - -- the ShipXplorer container to decode data and feed to ShipXplorer and many other services -- VesselAlert to send alerts about new vessels to Mastodon or Discord -- AIS-Screenshot, a "helper" container for VesselAlert that provides screenshots of the map for addition to the alert notifications -- WatchTower to ensure that the containers are kept up to date - -Before you go on, you should: - -- Get the Latitude and Longitude of your receiver -- follow the [instructions][shipxplorer] and get a ShipXplorer Sharing Key and Serial Number -- know what serial number of your RTL-SDR dongle is (hint: use `rtl_test` to find out) -- sign up and collect credentials (mostly IP addresses and UDP ports) of any other services you want to feed -- [Get credentials][mastodon] if you want to send notifications to Mastodon -- Get one or more Discord Webhooks. If you want to send notification to our special [`#Vessel-Alerts` Discord Channel](https://discord.gg/UMgZMc2AGp), you can keep the Webhook in the `.env` sample file! -- Last, if your machine is NOT a Raspberry Pi, you should follow [this "work-around for CPU Serial Number"](https://github.com/sdr-enthusiasts/docker-shipxplorer#workaround-for-cpu-serial-only-needed-with-non-raspberry-pi-systems) before doing anything else. - -## Installing `docker` on your machine - -Follow the instructions here: [https://github.com/sdr-enthusiasts/docker-install](https://github.com/sdr-enthusiasts/docker-install) - -## Downloading the sample configuration - -The provided [sample `docker-compose.yml`](docker-compose.yml.sample) and [sample `environment variables`](.env.sample) files can be used as-is, unedited (after renaming them of course). If you use your machine for multiple purposes, we recommend putting your AIS containers in a separate stack from other containers. This is purely for ease of maintenance -- strictly speaking, you *can* put all containers in a single stack. - -Here's what you do: - -## Prep and download the sample configuration files - -Log into your machine with the AIS dongle, and type or copy/paste this: - -```bash -sudo mkdir /opt/ais -sudo chmod a+rwx /opt/ais -cd /opt/ais -curl https://raw.githubusercontent.com/sdr-enthusiasts/docker-shipxplorer/main/config-examples/docker-compose.yml.sample -o docker-compose.yml -curl https://raw.githubusercontent.com/sdr-enthusiasts/docker-shipxplorer/main/config-examples/.env.sample -o .env -``` - -## Configuring your station - -Next thing is to edit the `.env` file and put your data in: - -```bash -nano /opt/ais/.env -``` - -Make the changes based on the description below, and once you are done, you can Save & Exit with CTRL-x - -| Parameter | Description | -|---------------|---------------| -| `FEEDER_LAT` | The latitude (xx.xxxxx) of your station | -| `FEEDER_LONG` | The longitude (xx.xxxxx) of your station | -| `SX_SHARING_KEY` | You ShipXplorer Sharing Key. This is a long string with numbers and letters | -| `SX_SERIAL_NUMBER` | Your ShipXplorer Serial Number. This looks like `SXTRPI000000` | -| `SX_RTLSDR_DEVICE_SERIAL` | The serial string of your AIS RTL-SDR dongle | -| `SX_RTLSDR_GAIN` | The gain of your RTL-SDR dongle. If you don't know what to put, we recommend leaving it set to `auto` | -| `SX_UDP_FEEDS` | If you want to feed any other services using UDP, you can enter them with this parameter. The format is `ip_or_hostname:port` and they are comma separated. See the example in the file. | -| `SX_EXTRA_OPTIONS` | Here you can put additional parameters as described for [Ais-Catcher](https://github.com/jvde-github/AIS-catcher#usage). These are like a command-line: just put spaces between sets of parameter. Examples: | -| | `-p -2` sets the PPM correction to `-2` | -| | `-a 192K` sets the tuner bandwidth to 192 kHz (recommended!) | -| | `-H http://aprs.fi/jsonais/post/zxxxxxxV ID AB1CE PROTOCOL aprs INTERVAL 30 RESPONSE off` uploads data to `aprs.fi` using HTTP | -| | et cetera | -| `SX_STATION_NAME` | Your station name. The text needs to be "web save": instead of spaces, please put ` ` between the words | -| `VA_MASTODON_SERVER` | The Mastodon server your account is on. For example `airwaves.social` | -| `VA_MASTODON_ACCESS_TOKEN` | The Mastodon Access Token you got when you created an app | -| `VA_MASTODON_SKIP_FILTER` | Skips notifications for any MMSI that matches this RegEx. For example, `^[9]{2}[0-9]{7}$$|^[0-9]{7}$$` filters any MMSI of 9 digits that start with `99` (which are Aids-to-Navigation: virtual waypoints) and it also filters any 7-digit MMSI. | -| `VA_MASTODON_CUSTOM_FIELD` | Additional text you want to add to your Mastodon notification | -| `VA_DISCORD_NAME` | Please put something meaningful here, containing both your STATION NAME and the LOCATION. We're a world-wide group! | -| `VA_DISCORD_AVATAR_URL` | Link to a URL that contains your avatar / picture | -| `VA_DISCORD_WEBHOOKS` | Webhook(s) for Discord notifications. If you have multiple channels your want to notify to, you can comma-separate them. We prefilled this field with one for our special [`#Vessel-Alerts` Discord Channel](https://discord.gg/UMgZMc2AGp) | -| `VA_SCREENSHOT_URL` | `http://ais-screenshot:5042` | -| `BACKUP_RETENTION_TIME` | Time (in days) to keep backups of `aiscatcher.bin` and plugins. Note - this only affects the backups of these files and not the active `aiscatcher.bin` or active plugins | `30` (days) | - -## Starting your AIS Feeder - -Do this: - -```bash -cd /opt/ais -docker-compose pull -docker-compose up -d -``` - -The system checks every 30 minutes if there's a new version of any of the container. However, you can also manually check if there are updates by repeating the commands above. - -## See ships and station data on your webpage - -You can browse to `http://my_ip:90` (replace `my_ip` with the IP address of your machine) to see the AIS-Catcher web interface. - -## Troubleshooting - -If things aren't running the way they should be, your first course of action is to check the container logs. They often give hints on what when wrong and how to fix it. - -- If the web page doesn't work, or no data is sent to ShipXplorer, check the `shipxplorer` logs: `docker logs shipxplorer` -- If no notifications are sent, check the `VesselAlert` logs: `docker logs vesselalert` -- If the notification don't include a map, or the map screenshot is not good, check the `ais-screenshot` logs: `docker logs ais-screenshot` -Note -- you can "follow" the logs live by adding `-f` to the command: `docker logs -f shipxplorer` - -## Advanced configuration - -There are a few additional things you can configure by editing `docker-compose.yml`. Those shouldn't need changing under normal circumstances, but here they are in case you feel lucky: - -- Changing the web page port: in the `shipxplorer` section, change the port definition from `- 90:80` to `- xxxx:80`, where `xxxx` is your desired web port number -- Changing the check interval for new software versions: in the `watchtower` section, change the command line from `command: --interval 1800 --scope ais` to `command: --interval xxxx --scope ais`, where `xxxx` is the check interval in seconds -- If the screenshots don't quite render correctly, you may want to increase the render time in the `screenshot-ais` section: change `- LOAD_SLEEP_TIME=15` to ``- LOAD_SLEEP_TIME=30` or so (time in seconds for the container to wait for the web page to render before a screenshot is taken) -- Similarly, you can change the map type for the screenshot in the `screenshot-ais` section: change `OpenStreetMap` in `- MAP_ARGS=map=OpenStreetMap` to any of `Positron`, `Dark%20Matter`, `Voyager`, or `Satellite`. - -After making any of these changes, you should restart the containers with `docker-compose up -d --force-recreate` - -## Getting Help - -You can [log an issue](https://github.com/sdr-enthusiasts/docker-shipxplorer/issues) on the project's GitHub. - -We also have a [Discord channel](https://discord.gg/sTf9uYF), feel free to [join](https://discord.gg/sTf9uYF) and chat with us if you need help or want to exchange experiences. We'd love to hear from you!. - -[mastodon]: https://github.com/sdr-enthusiasts/docker-vesselalert/blob/main/README-Mastodon.md -[shipxplorer]: https://github.com/sdr-enthusiasts/docker-shipxplorer#readme diff --git a/config-examples/docker-compose.yml.sample b/config-examples/docker-compose.yml.sample index efa43c8..118d494 100644 --- a/config-examples/docker-compose.yml.sample +++ b/config-examples/docker-compose.yml.sample @@ -1,93 +1,58 @@ version: '3.8' - services: - shipxplorer: - image: ghcr.io/sdr-enthusiasts/shipxplorer - container_name: shipxplorer - hostname: shipxplorer - restart: unless-stopped + shipfeeder: + image: ghcr.io/sdr-enthusiasts/docker-shipfeeder + container_name: shipfeeder + hostname: shipfeeder + restart: always environment: - - STATION_NAME=${SX_STATION_NAME} - - SXFEEDER_LAT=${FEEDER_LAT} - - SXFEEDER_LON=${FEEDER_LONG} +# general parameters: + - VERBOSE_LOGGING= +# ais-catcher general and website related parameters - AISCATCHER_EXTRA_OPTIONS=${SX_EXTRA_OPTIONS} - - RTLSDR_DEVICE_GAIN=${SX_RTLSDR_GAIN} - - SERIAL_NUMBER=${SX_SERIAL_NUMBER} - - RTLSDR_DEVICE_SERIAL=${SX_RTLSDR_DEVICE_SERIAL} + - STATION_NAME=${STATION_NAME}${SHIPXPLORER_SERIAL_NUMBER} + - STATION_HISTORY=3600 + - BACKUP_INTERVAL=5 + - FEEDER_LONG=${FEEDER_LONG} + - FEEDER_LAT=${FEEDER_LAT} + - SITESHOW=on + - PROMETHEUS_ENABLE=on + - REALTIME=on +# ais-catcher receiver related parameters + - RTLSDR_DEVICE_SERIAL=${RTLSDR_DEVICE_SERIAL} + - RTLSDR_DEVICE_GAIN=${RTLSDR_DEVICE_GAIN} + - RTLSDR_DEVICE_PPM=${RTLSDR_DEVICE_PPM} + - RTLSDR_DEVICE_BANDWIDTH=${RTLSDR_DEVICE_BANDWIDTH} + - AISCATCHER_DECODER_AFC_WIDE=${AISCATCHER_DECODER_AFC_WIDE} +# aggregrators related parameters + - AIRFRAMES_STATION_ID=${AIRFRAMES_STATION_ID} + - AISCATCHER_FEEDER_KEY=${AISCATCHER_FEEDER_KEY} + - AISHUB_UDP_PORT=${AISHUB_UDP_PORT} + - APRSFI_FEEDER_KEY=${APRSFI_FEEDER_KEY} + - BOATBEACON_SHAREDATA=${BOATBEACON_SHAREDATA} + - HPRADAR_UDP_PORT=${HPRADAR_UDP_PORT} + - MARINETRAFFIC_UDP_PORT=${MARINETRAFFIC_UDP_PORT} + - MYSHIPTRACKING_UDP_PORT=${MYSHIPTRACKING_UDP_PORT} + - RADARVIRTUEL_FEEDER_KEY=${RADARVIRTUEL_FEEDER_KEY} + - RADARVIRTUEL_STATION_ID=${RADARVIRTUEL_STATION_ID} + - SHIPFINDER_SHAREDATA=${SHIPFINDER_SHAREDATA} + - SHIPPINGEXPLORER_UDP_PORT=${SHIPPINGEXPLORER_UDP_PORT} + - SHIPXPLORER_SHARING_KEY=${SHIPXPLORER_SHARING_KEY} + - SHIPXPLORER_SERIAL_NUMBER=${SHIPXPLORER_SERIAL_NUMBER} + - VESSELFINDER_UDP_PORT=${VESSELFINDER_UDP_PORT} + - VESSELTRACKER_UDP_PORT=${VESSELTRACKER_UDP_PORT} - UDP_FEEDS=${SX_UDP_FEEDS} - - SHARING_KEY=${SX_SHARING_KEY} +# incoming UDP data related parameters: + - AISCATCHER_UDP_INPUTS=${AISCATCHER_UDP_INPUTS} ports: - 90:80 - devices: - - /dev/bus/usb + - 9988:9988/udp + device_cgroup_rules: + - 'c 189:* rwm' tmpfs: - /tmp volumes: - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "/opt/ais/shipxplorer/data:/data" - - /opt/ais/shipxplorer/cpuinfo/cpuinfo:/proc/cpuinfo - labels: - - com.centurylinklabs.watchtower.scope=ais - - ais-screenshot: - image: ghcr.io/sdr-enthusiasts/screenshot:aiscatcher - tty: true - container_name: ais-screenshot - hostname: ais-screenshot - restart: always - shm_size: 1gb - environment: - - LOAD_SLEEP_TIME=15 - - BASE_URL=http://shipxplorer - - MAXTIME=60 - - MAP_ARGS=map=OpenStreetMap - ports: - - 5043:5042 - labels: - - com.centurylinklabs.watchtower.scope=ais - - vesselalert: - image: ghcr.io/sdr-enthusiasts/vesselalert - container_name: vesselalert - hostname: vesselalert - restart: always - environment: - - AIS_URL=https://shipxplorer - - MASTODON_SERVER=${VA_MASTODON_SERVER} - - MASTODON_ACCESS_TOKEN=${VA_MASTODON_ACCESS_TOKEN} - - MASTODON_SKIP_FILTER=${VA_MASTODON_SKIP_FILTER} - - NOTIFICATION_MIN_DIST=8 - - MASTODON_CUSTOM_FIELD=${VA_MASTODON_CUSTOM_FIELD} - - MASTODON_LINK_SHIPXPLORER=on - - MASTODON_LINK_MARINETRAFFIC=on - - MASTODON_LINK_VESSELFINDER=on - - MASTODON_ONLY_NEW_ON_STARTUP=on - - MASTODON_THROTTLE=on - - NOTIFICATION_MAPURL=on - - DISCORD_NAME=${VA_DISCORD_NAME} - - DISCORD_AVATAR_URL=${VA_DISCORD_AVATAR_URL} - - DISCORD_WEBHOOKS=${VA_DISCORD_WEBHOOKS} - - SCREENSHOT_URL=http://ais-screenshot:5042 - tmpfs: - - /tmp - volumes: - - /opt/ais/vesselalert/data:/data - - "/etc/localtime:/etc/localtime:ro" - - "/etc/timezone:/etc/timezone:ro" - labels: - - com.centurylinklabs.watchtower.scope=ais - - watchtower: - image: containrrr/watchtower - container_name: watchtower-ais - environment: - - TZ=Europe/London - - WATCHTOWER_CLEANUP=true - - WATCHTOWER_ROLLING_RESTART=true - hostname: watchtower-ais - volumes: - - /var/run/docker.sock:/var/run/docker.sock - command: --interval 1800 --scope ais - labels: - - com.centurylinklabs.watchtower.scope=ais \ No newline at end of file + - /dev:/dev:rw \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index c06012f..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3.8' -services: - shipxplorer: - image: ghcr.io/sdr-enthusiasts/shipxplorer - container_name: shipxplorer - hostname: shipxplorer - restart: always - environment: - - SHARING_KEY=${SX_SHARING_KEY} - - SERIAL_NUMBER=${SX_SERIAL_NUMBER} - - RTLSDR_DEVICE_SERIAL=${AIS_device_serial} - - VERBOSE_LOGS=true - - UDP_FEEDS=${SX_UDP_FEEDS} - - RTLSDR_DEVICE_GAIN=${AIS_DEVICE_GAIN} - - SXFEEDER_EXTRA_OPTIONS=${SXFEEDER_EXTRA_OPTIONS} - - AISCATCHER_EXTRA_OPTIONS=${AIS_EXTRA_OPTIONS} - - STATION_NAME='Put your station name here' - - STATION_URL=https://my-ais-url.com - - BACKUP_INTERVAL=10 - - STATION_HISTORY=3600 - - SXFEEDER_LAT=42.12345 - - SXFEEDER_LON=-71.12345 - - AISCATCHER_SHAREDATA=true - - SITESHOW=on - ports: - - 8080:80 - device_cgroup_rules: - - 'c 189:* rwm' - tmpfs: - - /tmp - volumes: - - "/etc/localtime:/etc/localtime:ro" - - "/etc/timezone:/etc/timezone:ro" - - "/opt/ais/shipxplorer/data:/data" - - "/dev:/dev:ro" - # - /opt/shipxplorer/cpuinfo/cpuinfo:/proc/cpuinfo # only for x86 systems - see README.md diff --git a/rootfs/etc/s6-overlay/scripts/10-container-init b/rootfs/etc/s6-overlay/scripts/10-container-init index f33508c..c659855 100755 --- a/rootfs/etc/s6-overlay/scripts/10-container-init +++ b/rootfs/etc/s6-overlay/scripts/10-container-init @@ -6,7 +6,7 @@ APPNAME="10-container-init" s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/40-sxfeeder b/rootfs/etc/s6-overlay/scripts/40-sxfeeder index 5ae8bee..5912089 100755 --- a/rootfs/etc/s6-overlay/scripts/40-sxfeeder +++ b/rootfs/etc/s6-overlay/scripts/40-sxfeeder @@ -4,7 +4,7 @@ source /scripts/common #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -24,17 +24,11 @@ source /scripts/common APPNAME="10-container-init" s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") -if [[ -z "${SHARING_KEY}" ]] && [[ -z "${AISCATCHER_EXTRA_OPTIONS}" ]] && [[ -z "${UDP_FEEDS}" ]] -then - "${s6wrap[@]}" --args echo "WARNING: Container is configured for Local Use Only. At least one of SHARING_KEY, AISCATCHER_EXTRA_OPTIONS, or UDP_FEEDS must be defined for this container to feed a service." - exit 0 -fi +SHARING_KEY="${SHARING_KEY:-${SX_SHARING_KEY:-${SHIPXPLORER_SHARING_KEY}}}" +SERIAL_NUMBER="${SERIAL_NUMBER:-${SX_SERIAL_NUMBER:-${SHIPXPLORER_SERIAL_NUMBER}}}" -if [[ -z "${SHARING_KEY}" ]] -then - "${s6wrap[@]}" --args echo "WARNING: SHARING_KEY is not set. Feeding to ShipXplorer is disabled." - "${s6wrap[@]}" --args echo " If you are attempting to generate a new ShipXplorer sharing key and serial, you can do so by giving this command:" - "${s6wrap[@]}" --args echo " docker exec -it shipxplorer /usr/bin/getcreds" +if [[ -z "${SHARING_KEY}" ]]; then + "${s6wrap[@]}" --args echo "ShipXplorer feeding not enabled. Continuing..." exit 0 fi @@ -44,11 +38,6 @@ then exit 1 fi -if [[ -z "${RTLSDR_DEVICE_SERIAL}" ]] -then - "${s6wrap[@]}" --args echo "WARNING: RTLSDR_DEVICE_SERIAL is not set. The container will run in network-only mode." -fi - # Generate /etc/sxfeeder.ini based on environment variables echo """ [client] @@ -68,7 +57,7 @@ sed -i 's/#SERIALNUMBER/sn='"$SERIAL_NUMBER"'/g' /etc/sxfeeder.ini # Create log dirs mkdir -p /var/run/sxfeeder chmod a+rwx /var/run/sxfeeder -touch /var/log/rbfeeder.log -chmod a+rwx /var/log/rbfeeder.log -truncate --size=0 /var/log/rbfeeder.log +touch /var/log/sxfeeder.log +chmod a+rwx /var/log/sxfeeder.log +truncate --size=0 /var/log/sxfeeder.log chmod a+rw /etc/sxfeeder.ini diff --git a/rootfs/etc/s6-overlay/scripts/50-update-plugins b/rootfs/etc/s6-overlay/scripts/50-update-plugins index f8c222d..1ad20b1 100755 --- a/rootfs/etc/s6-overlay/scripts/50-update-plugins +++ b/rootfs/etc/s6-overlay/scripts/50-update-plugins @@ -4,7 +4,7 @@ source /scripts/common #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/60-backup-aiscatcher_bin b/rootfs/etc/s6-overlay/scripts/60-backup-aiscatcher_bin index f6bbe3d..ff658f3 100755 --- a/rootfs/etc/s6-overlay/scripts/60-backup-aiscatcher_bin +++ b/rootfs/etc/s6-overlay/scripts/60-backup-aiscatcher_bin @@ -4,7 +4,7 @@ source /scripts/common #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/aiscatcher b/rootfs/etc/s6-overlay/scripts/aiscatcher index b605945..5fc321b 100755 --- a/rootfs/etc/s6-overlay/scripts/aiscatcher +++ b/rootfs/etc/s6-overlay/scripts/aiscatcher @@ -6,7 +6,7 @@ APPNAME="aiscatcher" s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -21,6 +21,9 @@ s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") # If not, see . #--------------------------------------------------------------------------------------------- +# Do some parameters housekeeping so both the new and the legacy params are supported: +FEEDER_LAT="${FEEDER_LAT:-$SXFEEDER_LAT}" +FEEDER_LONG="${FEEDER_LONG:-$SXFEEDER_LON}" # check if logging is verbose: if [[ -n "$VERBOSE_LOGGING" ]] @@ -83,21 +86,158 @@ if ! chk_enabled "${DISABLE_WEBSITE}"; then chk_enabled "${PROMETHEUS_ENABLE}" && aiscatcher_command+=("PROME on") || true [[ -n "${STATION_NAME}" ]] && aiscatcher_command+=("STATION $STATION_NAME") || true [[ -n "${STATION_LINK}" ]] && aiscatcher_command+=("STATION_LINK $STATION_LINK") || true - if [[ -n "$SXFEEDER_LAT" ]] && [[ -n "$SXFEEDER_LON" ]] + if [[ -n "$FEEDER_LAT" ]] && [[ -n "$FEEDER_LONG" ]] then - aiscatcher_command+=("LAT $SXFEEDER_LAT LON $SXFEEDER_LON") + aiscatcher_command+=("LAT $FEEDER_LAT LON $FEEDER_LONG") chk_enabled "${SITESHOW}" && aiscatcher_command+=("SHARE_LOC on") || true fi chk_enabled "${DISABLE_SHOWLASTMSG}" && true || aiscatcher_command+=("MESSAGE on") chk_enabled "${REALTIME}" && aiscatcher_command+=("REALTIME on") || true fi -chk_enabled "$AISCATCHER_SHAREDATA" && aiscatcher_command+=("-X") || true + +# Add NMEA UDP inputs if needed: +if [[ -n "$AISCATCHER_UDP_INPUTS" ]]; then + readarray -d "," -t feedsarray <<< "$AISCATCHER_UDP_INPUTS" + for feeds in "${feedsarray[@]}" + do + if [[ -n "$feeds" ]]; then + feeds="${feeds/:/ }" + feeds="${feeds/:/ -c }" + if ! grep -q "\-c" <<< "$feeds"; then + feeds="$feeds -c AB" + fi + aiscatcher_command+=("-x ${feeds}") + fi + done +fi + +# Add a number of well-known feeders: +# ADSBNetwork / RadarVirtuel: +if [[ -n "${RADARVIRTUEL_FEEDER_KEY:+$RADARVIRTUEL_STATION_ID}" ]]; then + aiscatcher_command+=("-H https://ais.adsbnetwork.com/ingester/insert/$RADARVIRTUEL_FEEDER_KEY ID $RADARVIRTUEL_STATION_ID INTERVAL 15 RESPONSE off") +fi + +# AirFrames: +if [[ -n "$AIRFRAMES_STATION_ID" ]]; then + aiscatcher_command+=("-H http://feed.airframes.io:5599 ID $AIRFRAMES_STATION_ID INTERVAL 30 RESPONSE off") +fi + +# AIS-Catcher: +if chk_enabled "$AISCATCHER_SHAREDATA" || [[ -z "$AISCATCHER_FEEDER_KEY" ]]; then + aiscatcher_command+=("-X") + AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-X\s+[0-9]*\s*//g'<<< "$AISCATCHER_EXTRA_OPTIONS")" # Remove any -X from param to avoid duplication +elif [[ -n "$AISCATCHER_FEEDER_KEY" ]]; then + aiscatcher_command+=("-X $AISCATCHER_FEEDER_KEY") + AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-X\s+[0-9]*\s*//g'<<< "$AISCATCHER_EXTRA_OPTIONS")" # Remove any -X from param to avoid duplication +fi + +# AISHub: +if [[ -n "$AISHUB_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$AISHUB_UDP_PORT"; then AISHUB_UDP_PORT="data.aishub.net:$AISHUB_UDP_PORT"; fi + aiscatcher_command+=("-u ${AISHUB_UDP_PORT%%:*} ${AISHUB_UDP_PORT##*:}") +fi + +# aprs.fi: +if [[ -n "${APRSFI_FEEDER_KEY:+$APRSFI_STATION_ID}" ]]; then + aiscatcher_command+=("-H http://aprs.fi/jsonais/post/$APRSFI_FEEDER_KEY ID $APRSFI_STATION_ID PROTOCOL aprs INTERVAL 30 RESPONSE off") +fi + +# BoatBeacon: +if chk_enabled "$BOATBEACON_SHAREDATA"; then + aiscatcher_command+=("-u boatbeaconapp.com 5322") +elif [[ -n "$BOATBEACON_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$BOATBEACON_UDP_PORT"; then BOATBEACON_UDP_PORT="boatbeaconapp.com:$BOATBEACON_UDP_PORT"; fi + aiscatcher_command+=("-u ${BOATBEACON_UDP_PORT/:/ }") +fi + +# HPRadar: +if [[ -n "$HPRADAR_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$HPRADAR_UDP_PORT"; then HPRADAR_UDP_PORT="aisfeed.hpradar.com:$HPRADAR_UDP_PORT"; fi + aiscatcher_command+=("-u ${HPRADAR_UDP_PORT/:/ } JSON on") +fi + +# MarineTraffic: +if [[ -n "$MARINETRAFFIC_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$MARINETRAFFIC_UDP_PORT"; then MARINETRAFFIC_UDP_PORT="5.9.207.224:$MARINETRAFFIC_UDP_PORT"; fi + aiscatcher_command+=("-u ${MARINETRAFFIC_UDP_PORT/:/ }") +fi + +# MyShipTracker: +if [[ -n "$MYSHIPTRACKER_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$MYSHIPTRACKER_UDP_PORT"; then MYSHIPTRACKER_UDP_PORT="178.162.215.175:$MYSHIPTRACKER_UDP_PORT"; fi + aiscatcher_command+=("-u ${MYSHIPTRACKER_UDP_PORT/:/ }") +fi + +# ShippingExplorer: +if [[ -n "$SHIPPINGEXPLORER_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$SHIPPINGEXPLORER_UDP_PORT"; then SHIPPINGEXPLORER_UDP_PORT="144.76.54.111:$SHIPPINGEXPLORER_UDP_PORT"; fi + aiscatcher_command+=("-u ${SHIPPINGEXPLORER_UDP_PORT/:/ }") +fi + +# ShipFinder: +if chk_enabled "$SHIPFINDER_SHAREDATA"; then + aiscatcher_command+=("-u ais.shipfinder.co.uk 4001") +elif [[ -n "$SHIPFINDER_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$SHIPFINDER_UDP_PORT"; then SHIPFINDER_UDP_PORT="ais.shipfinder.co.uk:$SHIPFINDER_UDP_PORT"; fi + aiscatcher_command+=("-u ${SHIPFINDER_UDP_PORT/:/ }") +fi + +# VesselFinder: +if [[ -n "$VESSELFINDER_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$VESSELFINDER_UDP_PORT"; then VESSELFINDER_UDP_PORT="ais.vesselfinder.com:$VESSELFINDER_UDP_PORT"; fi + aiscatcher_command+=("-u ${VESSELFINDER_UDP_PORT/:/ }") +fi + +# VesselTracker: +if [[ -n "$VESSELTRACKER_UDP_PORT" ]]; then + if ! grep -q ":" <<< "$VESSELTRACKER_UDP_PORT"; then VESSELTRACKER_UDP_PORT="83.220.137.136:$VESSELTRACKER_UDP_PORT"; fi + aiscatcher_command+=("-u ${VESSELTRACKER_UDP_PORT/:/ }") +fi + +aiscatcher_command+=("${FEEDSTRING[*]}") aiscatcher_command+=("-u 127.0.0.1 34994") aiscatcher_command+=("-u 127.0.0.1 34995") -aiscatcher_command+=("${FEEDSTRING[*]}") aiscatcher_command+=("$SHOWLOGS") -[[ -n "${RTLSDR_DEVICE_SERIAL}" ]] && aiscatcher_command+=("-d ${RTLSDR_DEVICE_SERIAL}") || true -[[ -n "${RTLSDR_DEVICE_SERIAL}" ]] && aiscatcher_command+=("-gr tuner ${RTLSDR_DEVICE_GAIN} rtlagc ON") +if [[ -n "${RTLSDR_DEVICE_SERIAL}" ]]; then + AISCATCHER_CHANNELS="${AISCATCHER_CHANNELS^^}"; aiscatcher_command+=("-c ${AISCATCHER_CHANNELS:-AB}") + #AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-c\s+[a-dA-D ]+//g' <<< "$AISCATCHER_EXTRA_OPTIONS")" # remove any -c items from param to avoid duplication + aiscatcher_command+=("-d ${RTLSDR_DEVICE_SERIAL}") + aiscatcher_command+=("-gr tuner ${RTLSDR_DEVICE_GAIN} rtlagc ON") + if [[ -n "${RTLSDR_DEVICE_PPM}" ]]; then + aiscatcher_command+=("-p ${RTLSDR_DEVICE_PPM}") + #AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-p\s+[0-9]+\s*//g'<<< "$AISCATCHER_EXTRA_OPTIONS")" # remove any -p items from param to avoid duplication + fi + if [[ -n "${RTLSDR_DEVICE_BANDWIDTH}" ]]; then + aiscatcher_command+=("-a ${RTLSDR_DEVICE_BANDWIDTH}") + #AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-a\s+[0-9]+[A-Za-z]{1}\s*//g'<<< "$AISCATCHER_EXTRA_OPTIONS")" # remove any -a items from param to avoid duplication + elif ! grep -qoE '\-a\s+[0-9]+[A-Za-z]{1}' <<< "$AISCATCHER_EXTRA_OPTIONS"; then + aiscatcher_command+=("-a 192K") + fi + if [[ -n "${AISCATCHER_DECODER_MODEL}" ]]; then + aiscatcher_command+=("-m ${AISCATCHER_DECODER_MODEL}") + fi + if [[ -n "$AISCATCHER_DECODER_AFC_WIDE$AISCATCHER_DECODER_FP_DS$AISCATCHER_DECODER_PS_EMA$AISCATCHER_DECODER_SOXR$AISCATCHER_DECODER_SRC$AISCATCHER_DECODER_DROOP" ]]; then + aiscatcher_command+=("-go") + if chk_enabled "$AISCATCHER_DECODER_AFC_WIDE" || \ + { [[ -z "$AISCATCHER_DECODER_AFC_WIDE" ]] && ! grep -qi 'AFC_WIDE' <<< "$AISCATCHER_EXTRA_OPTIONS"; }; then + aiscatcher_command+=("AFC_WIDE on") + fi + chk_disabled "$AISCATCHER_DECODER_AFC_WIDE" && aiscatcher_command+=("AFC_WIDE off") || true + chk_enabled "$AISCATCHER_DECODER_FP_DS" && aiscatcher_command+=("FP_DS on") || true + chk_disabled "$AISCATCHER_DECODER_FP_DS" && aiscatcher_command+=("FP_DS off") || true + chk_enabled "$AISCATCHER_DECODER_PS_EMA" && aiscatcher_command+=("PS_EMA on") || true + chk_disabled "$AISCATCHER_DECODER_PS_EMA" && aiscatcher_command+=("PS_EMA off") || true + chk_enabled "$AISCATCHER_DECODER_SOXR" && aiscatcher_command+=("SOXR on") || true + chk_disabled "$AISCATCHER_DECODER_SOXR" && aiscatcher_command+=("SOXR off") || true + chk_enabled "$AISCATCHER_DECODER_SRC" && aiscatcher_command+=("SRC on") || true + chk_disabled "$AISCATCHER_DECODER_SRC" && aiscatcher_command+=("SRC off") || true + chk_enabled "$AISCATCHER_DECODER_DROOP" && aiscatcher_command+=("DROOP on") || true + chk_disabled "$AISCATCHER_DECODER_DROOP" && aiscatcher_command+=("DROOP off") || true + elif [[ -z "$AISCATCHER_DECODER_AFC_WIDE" ]] && ! grep -qi 'AFC_WIDE' <<< "$AISCATCHER_EXTRA_OPTIONS"; then + aiscatcher_command+=("-go AFC_WIDE on") + fi +fi + aiscatcher_command+=("$AISCATCHER_EXTRA_OPTIONS") aiscommand="$(echo ${aiscatcher_command[@]} | xargs)" diff --git a/rootfs/etc/s6-overlay/scripts/check-about-updates b/rootfs/etc/s6-overlay/scripts/check-about-updates index 0c3fe84..86e2fac 100755 --- a/rootfs/etc/s6-overlay/scripts/check-about-updates +++ b/rootfs/etc/s6-overlay/scripts/check-about-updates @@ -6,7 +6,7 @@ APPNAME="check-about-updates" s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/check-plugin-updates b/rootfs/etc/s6-overlay/scripts/check-plugin-updates index 5f1e18f..e5a6886 100755 --- a/rootfs/etc/s6-overlay/scripts/check-plugin-updates +++ b/rootfs/etc/s6-overlay/scripts/check-plugin-updates @@ -4,7 +4,7 @@ source /scripts/common #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/down-aiscatcher b/rootfs/etc/s6-overlay/scripts/down-aiscatcher index c48616b..9e684ce 100755 --- a/rootfs/etc/s6-overlay/scripts/down-aiscatcher +++ b/rootfs/etc/s6-overlay/scripts/down-aiscatcher @@ -2,7 +2,7 @@ #shellcheck shell=bash #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff --git a/rootfs/etc/s6-overlay/scripts/sxfeeder b/rootfs/etc/s6-overlay/scripts/sxfeeder index 61a478b..67c05ab 100755 --- a/rootfs/etc/s6-overlay/scripts/sxfeeder +++ b/rootfs/etc/s6-overlay/scripts/sxfeeder @@ -7,7 +7,7 @@ APPNAME="sxfeeder" s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") #--------------------------------------------------------------------------------------------- -# Copyright (C) 2022-2023, Ramon F. Kolb (kx1t) +# Copyright (C) 2022-2024, Ramon F. Kolb (kx1t) # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -22,7 +22,8 @@ s6wrap=(s6wrap --quiet --timestamps --prepend="${APPNAME}") # If not, see . #--------------------------------------------------------------------------------------------- -if [[ -z "${SHARING_KEY}" ]]; then + +if [[ -z "${SHARING_KEY:-${SX_SHARING_KEY:-${SHIPXPLORER_SHARING_KEY}}}" ]] || [[ -z "${SERIAL_NUMBER:-${SX_SERIAL_NUMBER:-${SHIPXPLORER_SERIAL_NUMBER}}}" ]]; then "${s6wrap[@]}" --args echo "ShipXplorer sharing disabled." sleep infinity fi diff --git a/rootfs/scripts/update-plugins b/rootfs/scripts/update-plugins index ccb0424..f424aeb 100755 --- a/rootfs/scripts/update-plugins +++ b/rootfs/scripts/update-plugins @@ -76,7 +76,7 @@ then for file in /tmp/AIS-catcher/plugins/* do file="${file##*/}" - if [[ f /data/plugins/${file} ]] && ! diff "${file}" "/data/plugins/${file}" >/dev/null 2>&1 + if [[ -f /data/plugins/${file} ]] && ! diff "${file}" "/data/plugins/${file}" >/dev/null 2>&1 then # Copy plugin file if it's newer but leave a backup in place cp --backup=numbered -u "/tmp/AIS-catcher/plugins/${file}" "/data/plugins/${file}" From 7069bfc32ba5829bb10825be89a7c0d0eac74120 Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 15 Mar 2024 22:13:06 +0000 Subject: [PATCH 22/41] GH Action SHA updated Fri Mar 15 22:13:06 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 1e65911..e5acef5 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:fa4b961687e3dcf5e0c4c14d1f5d49756e0a0f92790c73502d8ff887c244e549""sha256:3cc65dc64ff4ae0b556f91f04eddd4ad4b7fc68870ef2b050615d2a564a0fb49""sha256:3db876d49bf2735eb13b957651ef5177255922e09442d33cf819b92eb7e2f523""sha256:736633fb0f77af6ebba10b34d61ef2a875c43924b6dc34f91405b19971fdb86e""sha256:7ec86c0ef965abc4db6b51ad6548f6e0608bb6809b4f06d99095ec363ec7d172""sha256:c85ce8e657afe447f368e9a24759e3e12ab9470e468f43f48b2c0620f6d1e419""sha256:13397a67a355793fee312cbe90496b327483de89ae1f0355ae23479e2032a0f2""sha256:4a4131d8c82b1d7fd605f894cd931afdf1f0a2e1205dbfc4310d4b0fb1b6c000""sha256:d6d8d4b9bd456241de92ec53ac41f2ef0c83d170fa01b31e943670bc47876374""sha256:0e93fe5cd259602fcfa3d6e9dc1c133052e66d8a8170316aaf2e94a0363afa9f" +"sha256:c2dbf1514db32a299d2863a01eb5fe048c0039f5dea51bcebd90a668e1653c20""sha256:c1918c9e74a1f04a3005d3861668dcdad8a5dc6189224b83af9c350692c2e9d9""sha256:c68addca1ece0de7ce218cc426483eaa0ca154ee38b7937488e06bdd7daea8c6""sha256:838b1455dbefb20c4ba3b4ff0dbba8c3498f798d0079ec546295f020beaab51b""sha256:4a05056e513a099cda62871dd89bf22eb2c14c2cd5236ea42d4b8d856914758b""sha256:12eb615e39ed56f33928167acb8fa78d4ade9ab9a18f32108ae04b30496ae497""sha256:df541511aa52db0ad05d30ce202452da1bd5719409a002161765764f068fb747""sha256:2d551008151006d3bfeeceb4f561062c5122bcdde0461bdf43fb02c147d935c2""sha256:1be0e4766b8ec20e7ef8f468463181b858f5b43ab2818893f834169803d72bb3""sha256:bb99bafddebb4c9adc722c1749be0538473166c5c01b46ea2897adf690e66234" From 18e3d795135758725fe5b6afe287743f45604585 Mon Sep 17 00:00:00 2001 From: actions-user Date: Mon, 18 Mar 2024 19:11:09 +0000 Subject: [PATCH 23/41] GH Action SHA updated Mon Mar 18 19:11:09 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index e5acef5..daafb90 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:c2dbf1514db32a299d2863a01eb5fe048c0039f5dea51bcebd90a668e1653c20""sha256:c1918c9e74a1f04a3005d3861668dcdad8a5dc6189224b83af9c350692c2e9d9""sha256:c68addca1ece0de7ce218cc426483eaa0ca154ee38b7937488e06bdd7daea8c6""sha256:838b1455dbefb20c4ba3b4ff0dbba8c3498f798d0079ec546295f020beaab51b""sha256:4a05056e513a099cda62871dd89bf22eb2c14c2cd5236ea42d4b8d856914758b""sha256:12eb615e39ed56f33928167acb8fa78d4ade9ab9a18f32108ae04b30496ae497""sha256:df541511aa52db0ad05d30ce202452da1bd5719409a002161765764f068fb747""sha256:2d551008151006d3bfeeceb4f561062c5122bcdde0461bdf43fb02c147d935c2""sha256:1be0e4766b8ec20e7ef8f468463181b858f5b43ab2818893f834169803d72bb3""sha256:bb99bafddebb4c9adc722c1749be0538473166c5c01b46ea2897adf690e66234" +"sha256:50fa65784aa55399719a1bb9646b94bc4ab8141bb669d21ccf29599971f68b70""sha256:96979beb78f4541efe4ee814d8aaf017bc3d6a6f63a36b022396d673b718e2c2""sha256:b60ffd5229efbe499ce63559aaaaf7e578579bd397bb8a5ffa906457692b6393""sha256:dcd8d7d5c8991e75782f3a552b39048464a2695c320273b6a671399ac10abbad""sha256:2146c3da0b46e2e1a61a9fc9e6ae94ac1ad40c8ab8fe57a4c557ede1656993dd""sha256:4b8ac39555c1074b370d48f1e7419eca3363ebbf3ed9f7cbd28e86e1acc90314""sha256:bc8ae2202714ec0ea062132280674c2c95e25c73c5dcb4445f3ca5813970cda7""sha256:647897375bf2dea937c681224720a4e24fdc58afc8bc354cbc8c4e51b9a894a0""sha256:2304d309ec718fa6284a757df96b8dce3e6c42a5226050bd45b976809c921871""sha256:23bf61fdb23040a0dc70bc81a901757c41857885bf95efa0b2bb05de3f4974a4" From d7b32cdc7ce131e60b6d0f2ddf358c2e050e146b Mon Sep 17 00:00:00 2001 From: actions-user Date: Mon, 18 Mar 2024 21:15:18 +0000 Subject: [PATCH 24/41] GH Action SHA updated Mon Mar 18 21:15:18 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index daafb90..2f6293d 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:50fa65784aa55399719a1bb9646b94bc4ab8141bb669d21ccf29599971f68b70""sha256:96979beb78f4541efe4ee814d8aaf017bc3d6a6f63a36b022396d673b718e2c2""sha256:b60ffd5229efbe499ce63559aaaaf7e578579bd397bb8a5ffa906457692b6393""sha256:dcd8d7d5c8991e75782f3a552b39048464a2695c320273b6a671399ac10abbad""sha256:2146c3da0b46e2e1a61a9fc9e6ae94ac1ad40c8ab8fe57a4c557ede1656993dd""sha256:4b8ac39555c1074b370d48f1e7419eca3363ebbf3ed9f7cbd28e86e1acc90314""sha256:bc8ae2202714ec0ea062132280674c2c95e25c73c5dcb4445f3ca5813970cda7""sha256:647897375bf2dea937c681224720a4e24fdc58afc8bc354cbc8c4e51b9a894a0""sha256:2304d309ec718fa6284a757df96b8dce3e6c42a5226050bd45b976809c921871""sha256:23bf61fdb23040a0dc70bc81a901757c41857885bf95efa0b2bb05de3f4974a4" +"sha256:1fc609337ff0514875152c370245043c5a38e5b4e5414ddab24397cf6e46fb50""sha256:93802ff1b2bbdf88ca2d662345003ca949e88517df2541274c5551db9d239b26""sha256:c5079cdd0de8cde0871513f3576aacc3e8acc7adb7464949441c6b8926c28a2d""sha256:10285b1d7a4d1b689ac3317043da7750df7ce7b3c6adad8e6b01d8edf12bab6b""sha256:0f0a7380afbfb0bb0872b0887d071933ae66afad3e9543a411dcc23908741eea""sha256:1de1572abcb056b52d3d8059b7e930276924861c37dc04df836266a623702fa2""sha256:1a26a51c34cd20318f323fcbc639b5d6c23988ff92ab614f11847aa55391958d""sha256:762bd2cfc0d475834f284f4e620b81e8adb57d4b09b13e9de45499366bcd211d""sha256:e5a812f53f702c5350cf4dee7bc7ebaebc78dcafcc2a77ba74edc4bdfcbcd412""sha256:de334f35096d52013cdc653cb945dcbafd40d01568c021d97cc354d0f2189729" From e0f24a858159b7455b2d5773ae1c26fcad376cfe Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 19 Mar 2024 17:50:36 +0000 Subject: [PATCH 25/41] GH Action SHA updated Tue Mar 19 17:50:36 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 2f6293d..5df36b0 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:1fc609337ff0514875152c370245043c5a38e5b4e5414ddab24397cf6e46fb50""sha256:93802ff1b2bbdf88ca2d662345003ca949e88517df2541274c5551db9d239b26""sha256:c5079cdd0de8cde0871513f3576aacc3e8acc7adb7464949441c6b8926c28a2d""sha256:10285b1d7a4d1b689ac3317043da7750df7ce7b3c6adad8e6b01d8edf12bab6b""sha256:0f0a7380afbfb0bb0872b0887d071933ae66afad3e9543a411dcc23908741eea""sha256:1de1572abcb056b52d3d8059b7e930276924861c37dc04df836266a623702fa2""sha256:1a26a51c34cd20318f323fcbc639b5d6c23988ff92ab614f11847aa55391958d""sha256:762bd2cfc0d475834f284f4e620b81e8adb57d4b09b13e9de45499366bcd211d""sha256:e5a812f53f702c5350cf4dee7bc7ebaebc78dcafcc2a77ba74edc4bdfcbcd412""sha256:de334f35096d52013cdc653cb945dcbafd40d01568c021d97cc354d0f2189729" +"sha256:cf5e8faf1b8842f1332f71bb1abaf817509af310adec6be9ecd71e67cacf405d""sha256:052168369641391facfbe5f167c6ce689d31c2b071a8683178f21932b183dc70""sha256:51a16ab1e822b0595276525709fd8b08ba9015dac571115005c973f350fd6f04""sha256:b5a80d64ae655212ca142de03992f92daa59e2908d3ed04fabbd23b519cd3485""sha256:2e54173d7fa991ab55d720238dafc57889ac0314778f67abb76a23b67342d682""sha256:cee3d9655b2a540a08f1073223b8e918d0e0d44f1156dc104e4e12bbdb11d6f4""sha256:f5c46f7292ce588031961aa3cfb4b9f55e34dc2a63db58294ed202cf304718f1""sha256:d33d682c2bc5e6528065c17e69b006fbd5c68cb5a7bfee9af2ba393bc774f49a""sha256:0994cfceb69d31ebbb602b15cdfc3254161735a7bce6cd67bd32c21d4739fafe""sha256:a9296175677e6cfe04c8ce5f5c25b9625fb3610be1b1d20a2ccbb3a8260bc996" From 6529be36ebb8e0ce0fef678f5e2dc501200909ef Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 22 Mar 2024 22:27:34 +0000 Subject: [PATCH 26/41] GH Action SHA updated Fri Mar 22 22:27:34 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 5df36b0..9310a77 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:cf5e8faf1b8842f1332f71bb1abaf817509af310adec6be9ecd71e67cacf405d""sha256:052168369641391facfbe5f167c6ce689d31c2b071a8683178f21932b183dc70""sha256:51a16ab1e822b0595276525709fd8b08ba9015dac571115005c973f350fd6f04""sha256:b5a80d64ae655212ca142de03992f92daa59e2908d3ed04fabbd23b519cd3485""sha256:2e54173d7fa991ab55d720238dafc57889ac0314778f67abb76a23b67342d682""sha256:cee3d9655b2a540a08f1073223b8e918d0e0d44f1156dc104e4e12bbdb11d6f4""sha256:f5c46f7292ce588031961aa3cfb4b9f55e34dc2a63db58294ed202cf304718f1""sha256:d33d682c2bc5e6528065c17e69b006fbd5c68cb5a7bfee9af2ba393bc774f49a""sha256:0994cfceb69d31ebbb602b15cdfc3254161735a7bce6cd67bd32c21d4739fafe""sha256:a9296175677e6cfe04c8ce5f5c25b9625fb3610be1b1d20a2ccbb3a8260bc996" +"sha256:0ac7d7c8bd2af8368fff05c902b41f243bc320968291e7abe8f48089c0334721""sha256:bdfe852b72b1f164cce54d38c7f1e23724c8c654e2bc706e72db9892a6327b07""sha256:79415377f68157ffb661c5500982dcb63923b670b10e7bf6499f020ff7b0a582""sha256:25d73b028ddf44fe7eb0b13096950e0f3516a78fb563a57f3b58cd43b3f7d836""sha256:0b78beea387efad22219e5c1880b02949ea964fc50a4164abbef2dd098c6c04a""sha256:569fd122887178a6f0684f64f31344c866365ce092397f5e2a3e5a26d281de51""sha256:f8919df81be9bd7fbfed843698542f18a088b4f26a6407a8a77147fca3c959c9""sha256:4f1a125d9a5274598e7ff0751462bf2042d04e0c2d5f9b8bcb78d68ad1217e89""sha256:4e7a4be79a6f0a43a9dd5a61978a99457becb5683b1762b5d8fdf5861d3fdfd0""sha256:f32f0b012001ce8b6cb2ae6664b72e4a3ffbe58f5756aab1d3b3708211a8d2fd" From 62632ae15c07427a0015179f71dfcd7e706063bc Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 22 Mar 2024 22:50:39 +0000 Subject: [PATCH 27/41] GH Action SHA updated Fri Mar 22 22:50:39 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 9310a77..8ce9bc3 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:0ac7d7c8bd2af8368fff05c902b41f243bc320968291e7abe8f48089c0334721""sha256:bdfe852b72b1f164cce54d38c7f1e23724c8c654e2bc706e72db9892a6327b07""sha256:79415377f68157ffb661c5500982dcb63923b670b10e7bf6499f020ff7b0a582""sha256:25d73b028ddf44fe7eb0b13096950e0f3516a78fb563a57f3b58cd43b3f7d836""sha256:0b78beea387efad22219e5c1880b02949ea964fc50a4164abbef2dd098c6c04a""sha256:569fd122887178a6f0684f64f31344c866365ce092397f5e2a3e5a26d281de51""sha256:f8919df81be9bd7fbfed843698542f18a088b4f26a6407a8a77147fca3c959c9""sha256:4f1a125d9a5274598e7ff0751462bf2042d04e0c2d5f9b8bcb78d68ad1217e89""sha256:4e7a4be79a6f0a43a9dd5a61978a99457becb5683b1762b5d8fdf5861d3fdfd0""sha256:f32f0b012001ce8b6cb2ae6664b72e4a3ffbe58f5756aab1d3b3708211a8d2fd" +"sha256:a29078831478db1d483e1a37f18dd86d6a1c2aa469a63f683858873cf4159f23""sha256:4b5b393858995da0fb72f35899e675026f10f80b49bd0afb89b7931fd85bd23f""sha256:c464101f3a5e796cdf2ccd3de014fbd22ab407241fa1a91de837c8f5704e732e""sha256:f42e9f1c1b382b1925848f907618223bd972916d248432fe55d82344d4f3834c""sha256:3fb2639c411c00ebf759d78175ac8c02475c85069d9f1351e7301e4b62da2fdf""sha256:46292f161c8b3630384b59d85da8fca8d657833658885b6813f1b905172bb484""sha256:9fc37b26e65bc6637d30d84dcaabcb01d4d1428cd88ea46ba0d3495fad3a3c35""sha256:5552384661d88ef96d47e16448a5ac81112b51abaca28fc9f1ba9ce1fa17a94e""sha256:fdc907ace8a866a8512d6d96324604cec4d046a485f229c0b0469363ebe469ca""sha256:de35df09e70a3ed7b7682436798aa1c801b6fce408fe22bae72fe5e5aeb58fa8" From 844c71c78465b6ce601127923b6109733d4b9984 Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Fri, 22 Mar 2024 22:19:28 -0400 Subject: [PATCH 28/41] Bug fix AISCATCHER feeder --- rootfs/etc/s6-overlay/scripts/aiscatcher | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/s6-overlay/scripts/aiscatcher b/rootfs/etc/s6-overlay/scripts/aiscatcher index 5fc321b..d3da132 100755 --- a/rootfs/etc/s6-overlay/scripts/aiscatcher +++ b/rootfs/etc/s6-overlay/scripts/aiscatcher @@ -123,7 +123,7 @@ if [[ -n "$AIRFRAMES_STATION_ID" ]]; then fi # AIS-Catcher: -if chk_enabled "$AISCATCHER_SHAREDATA" || [[ -z "$AISCATCHER_FEEDER_KEY" ]]; then +if chk_enabled "$AISCATCHER_SHAREDATA" && [[ -z "$AISCATCHER_FEEDER_KEY" ]]; then aiscatcher_command+=("-X") AISCATCHER_EXTRA_OPTIONS="$(sed -E 's/-X\s+[0-9]*\s*//g'<<< "$AISCATCHER_EXTRA_OPTIONS")" # Remove any -X from param to avoid duplication elif [[ -n "$AISCATCHER_FEEDER_KEY" ]]; then From e42c874c2eae2e33387eb916aef24073a78fd9ef Mon Sep 17 00:00:00 2001 From: actions-user Date: Sat, 23 Mar 2024 22:12:22 +0000 Subject: [PATCH 29/41] GH Action SHA updated Sat Mar 23 22:12:22 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 8ce9bc3..d04c952 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:a29078831478db1d483e1a37f18dd86d6a1c2aa469a63f683858873cf4159f23""sha256:4b5b393858995da0fb72f35899e675026f10f80b49bd0afb89b7931fd85bd23f""sha256:c464101f3a5e796cdf2ccd3de014fbd22ab407241fa1a91de837c8f5704e732e""sha256:f42e9f1c1b382b1925848f907618223bd972916d248432fe55d82344d4f3834c""sha256:3fb2639c411c00ebf759d78175ac8c02475c85069d9f1351e7301e4b62da2fdf""sha256:46292f161c8b3630384b59d85da8fca8d657833658885b6813f1b905172bb484""sha256:9fc37b26e65bc6637d30d84dcaabcb01d4d1428cd88ea46ba0d3495fad3a3c35""sha256:5552384661d88ef96d47e16448a5ac81112b51abaca28fc9f1ba9ce1fa17a94e""sha256:fdc907ace8a866a8512d6d96324604cec4d046a485f229c0b0469363ebe469ca""sha256:de35df09e70a3ed7b7682436798aa1c801b6fce408fe22bae72fe5e5aeb58fa8" +"sha256:3c36a8a83385f13842fed60c16e10e4c837fe2abafcc61d3ca5381b76ac58fd0""sha256:bd558028bba1fd71735d2967b5622a3193ee889c81a4544198a8c48e274f08f5""sha256:5e5c610191377e3cf8d6aca865fa565a0d5cbbdced6500f0bc844f704f577a52""sha256:089e955aed43eb784120d3ffee66910dc879ec7949dfc92195bf08bdad27a3f3""sha256:655a8013dbe3ec6e2eba567fcf9373663faafd97ce1708ed0f85d0fafa5c0bf8""sha256:82121a03f60918aaa21d5eccc8a595ffbc3799e8ec6fd197a3dcf1499f093dfa""sha256:d968c24f0fedcfba7a9edb733f81a4760a5a1cd6ac5c4b524239a4b44859c691""sha256:1a1ed63be26bd381d3f4da87ad2f13d3f41a8abb79da4259005da4d4b2a67685""sha256:31a83d8af6f845f0ffafc0f24072d13573b666e1c4167113ade9f399ff88725d""sha256:bdea64b3c28252e1a664dbd0a8265ca6ce92f9058cb6fbe167661cd59a1d84ec" From bcb29ede5dec75a4b243d967b7555a4a94e7d3e5 Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 24 Mar 2024 23:15:21 +0000 Subject: [PATCH 30/41] GH Action SHA updated Sun Mar 24 23:15:21 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index d04c952..d6fead6 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:3c36a8a83385f13842fed60c16e10e4c837fe2abafcc61d3ca5381b76ac58fd0""sha256:bd558028bba1fd71735d2967b5622a3193ee889c81a4544198a8c48e274f08f5""sha256:5e5c610191377e3cf8d6aca865fa565a0d5cbbdced6500f0bc844f704f577a52""sha256:089e955aed43eb784120d3ffee66910dc879ec7949dfc92195bf08bdad27a3f3""sha256:655a8013dbe3ec6e2eba567fcf9373663faafd97ce1708ed0f85d0fafa5c0bf8""sha256:82121a03f60918aaa21d5eccc8a595ffbc3799e8ec6fd197a3dcf1499f093dfa""sha256:d968c24f0fedcfba7a9edb733f81a4760a5a1cd6ac5c4b524239a4b44859c691""sha256:1a1ed63be26bd381d3f4da87ad2f13d3f41a8abb79da4259005da4d4b2a67685""sha256:31a83d8af6f845f0ffafc0f24072d13573b666e1c4167113ade9f399ff88725d""sha256:bdea64b3c28252e1a664dbd0a8265ca6ce92f9058cb6fbe167661cd59a1d84ec" +"sha256:b07b33e2b59a5635bc6fd790c8eb1c51546986c0a405d649529f14b22af2397b""sha256:8bf09a1287e85e29e7e7d4a06466895e7653279c696389e5b9344bc59b270eeb""sha256:7c42fb234321a032dfd4dae9bd2fb6c343e5037b5777a793845002530c80f551""sha256:1ceda6613b71dc22029e4abfd20ee66738dae8a7652841a911587248cff1cc88""sha256:18665a4dfd741b9d160b77693693434e3eba01daa84138e89bdf0c733b4fb8cb""sha256:b842d6e67a742a360045e363cb20f9b03a24e07ff1b373eab22db718f70470ef""sha256:b5ef5e2d8245d534105620b0ec50dac3edb6a1d31d3efd9234bb25be3b11e3af""sha256:43993a1add54d5a46003aa81acd2ed42237c4bd2573705141eea8458403e99dc""sha256:5e8bc3538ad48e27e8523b9838894f31b59d7d0b3a55748b2331cc4444af6ec4""sha256:18e83e10ed109238876c3eef2577ba48a3a673083a70a534030343ef6aae17f8" From 9e0734c5d6178c7d9c102f4f18fe8947e3f1f16c Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 31 Mar 2024 08:36:28 +0000 Subject: [PATCH 31/41] GH Action SHA updated Sun Mar 31 08:36:28 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index d6fead6..65e9cc4 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:b07b33e2b59a5635bc6fd790c8eb1c51546986c0a405d649529f14b22af2397b""sha256:8bf09a1287e85e29e7e7d4a06466895e7653279c696389e5b9344bc59b270eeb""sha256:7c42fb234321a032dfd4dae9bd2fb6c343e5037b5777a793845002530c80f551""sha256:1ceda6613b71dc22029e4abfd20ee66738dae8a7652841a911587248cff1cc88""sha256:18665a4dfd741b9d160b77693693434e3eba01daa84138e89bdf0c733b4fb8cb""sha256:b842d6e67a742a360045e363cb20f9b03a24e07ff1b373eab22db718f70470ef""sha256:b5ef5e2d8245d534105620b0ec50dac3edb6a1d31d3efd9234bb25be3b11e3af""sha256:43993a1add54d5a46003aa81acd2ed42237c4bd2573705141eea8458403e99dc""sha256:5e8bc3538ad48e27e8523b9838894f31b59d7d0b3a55748b2331cc4444af6ec4""sha256:18e83e10ed109238876c3eef2577ba48a3a673083a70a534030343ef6aae17f8" +"sha256:aabb67b88f30435a3783e1651bd2878bb205d22b7fa5f6e198498c6e5057a4db""sha256:00afc7c0f28a37298ca92aed202b941fd5a5c00e21cd398b54e5af10ce8b9f85""sha256:4059a1c58897172e7b1b08c3cdb04aed1990a2cc1fb6f8b8e89d73cab0451dd3""sha256:7887d789cb74a6418e7dfff278da11b4860161eeb3f64a78890f579baa0e8d2a""sha256:7a27efbe37e6a5521e4a7c21a352dc58601667c682fce37d5ba6d961af12604d""sha256:78ea37880ca52bd10672c48c1fecbf3bc3caf0458c7e34badd64c479b2a27815""sha256:b21e17ffd201856298ed0a909904f3e9364922aa4e956eaea18128b3214e4389""sha256:623f54abbe32bb6264c9b3ccb174e130d5da099395d3dd912e36fe8c0a382395""sha256:80a0bf89ea932feea4a12e6b8e6be289e1f8250ad80132ae281a9867309ad46a""sha256:515a766fc39e2ad89421a5dd9e811de0ae08b6f5463d8357ff24e16a1cffa6e3" From 6d6154f4d09763bb58e32e38590c308ec71c2508 Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 31 Mar 2024 09:23:16 +0000 Subject: [PATCH 32/41] GH Action SHA updated Sun Mar 31 09:23:16 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 65e9cc4..df4b06b 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:aabb67b88f30435a3783e1651bd2878bb205d22b7fa5f6e198498c6e5057a4db""sha256:00afc7c0f28a37298ca92aed202b941fd5a5c00e21cd398b54e5af10ce8b9f85""sha256:4059a1c58897172e7b1b08c3cdb04aed1990a2cc1fb6f8b8e89d73cab0451dd3""sha256:7887d789cb74a6418e7dfff278da11b4860161eeb3f64a78890f579baa0e8d2a""sha256:7a27efbe37e6a5521e4a7c21a352dc58601667c682fce37d5ba6d961af12604d""sha256:78ea37880ca52bd10672c48c1fecbf3bc3caf0458c7e34badd64c479b2a27815""sha256:b21e17ffd201856298ed0a909904f3e9364922aa4e956eaea18128b3214e4389""sha256:623f54abbe32bb6264c9b3ccb174e130d5da099395d3dd912e36fe8c0a382395""sha256:80a0bf89ea932feea4a12e6b8e6be289e1f8250ad80132ae281a9867309ad46a""sha256:515a766fc39e2ad89421a5dd9e811de0ae08b6f5463d8357ff24e16a1cffa6e3" +"sha256:dd63c6b96bcc5dbd1b7ee88090813a6639982c409f4b4ba0c5425076064553ad""sha256:1b8216afb1c9414ca1d609dba820497715bc427058146a183fb0ab893133512c""sha256:2ccf07b1764fe062b5c142f0133eca6d6a32a89b9cab9f8f6fda3a47aac5db0f""sha256:494dadc830b8e8dfd71d14f209a0b833c9ce2934dfb392e76109e0d97f890dd5""sha256:e4f486bd746335f4f9f546db5ec340a817246427e6a6327825e4ee5ee68bbd46""sha256:6f523f6e0cbc2a8a253752ccebee2e8fa6fbd1ee71d4985bfa6d4c06d12823af""sha256:75dec9174f4c3db0f8008c71041cf2a0f926c42c7d2cf3cc5c0b3b85c8502f9a""sha256:503072b1d1fdda2e0d779c388c0b84af5f836ac6f9ae4aa4c42b8ec07bd08e5f""sha256:6691d70f31f5b8f8f895d7cbbfe28ab768c9423e5eb2ccbc6584c4c56fdb503b""sha256:3545225198fc45c7c47fc4d63a57608130ee93c7e886c122a913628003240f01" From 37d2d9bcc455edb5675dc2857743ac025f791a24 Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 31 Mar 2024 10:13:31 +0000 Subject: [PATCH 33/41] GH Action SHA updated Sun Mar 31 10:13:31 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index df4b06b..90ea7cf 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:dd63c6b96bcc5dbd1b7ee88090813a6639982c409f4b4ba0c5425076064553ad""sha256:1b8216afb1c9414ca1d609dba820497715bc427058146a183fb0ab893133512c""sha256:2ccf07b1764fe062b5c142f0133eca6d6a32a89b9cab9f8f6fda3a47aac5db0f""sha256:494dadc830b8e8dfd71d14f209a0b833c9ce2934dfb392e76109e0d97f890dd5""sha256:e4f486bd746335f4f9f546db5ec340a817246427e6a6327825e4ee5ee68bbd46""sha256:6f523f6e0cbc2a8a253752ccebee2e8fa6fbd1ee71d4985bfa6d4c06d12823af""sha256:75dec9174f4c3db0f8008c71041cf2a0f926c42c7d2cf3cc5c0b3b85c8502f9a""sha256:503072b1d1fdda2e0d779c388c0b84af5f836ac6f9ae4aa4c42b8ec07bd08e5f""sha256:6691d70f31f5b8f8f895d7cbbfe28ab768c9423e5eb2ccbc6584c4c56fdb503b""sha256:3545225198fc45c7c47fc4d63a57608130ee93c7e886c122a913628003240f01" +"sha256:99078ed6b7c73e3bf385dece0bc684a3766fb66308906ec3395377fe3fe8ff63""sha256:a7d4363d0e4ae14284fe364da8e45ec12a931dedc36052b6dcff6945a74ace1f""sha256:bf6ff363d6adadfd6f1b080f22e4dfd1e81b2d0eb23ac17e6fab93c1642132cf""sha256:9fedecf85adfc74306f32a726ac935a8df3f1353250e82d853626715b6810a7f""sha256:ac165d48bd7fc84b02ab139f819b5f4e54e90c28c0ff33829765ee0a53ac8e78""sha256:dc90dc5740536e112b0b9c63c0d3ec02c351e617fc866d36233710c56ab9c408""sha256:03b82e2529c74d4dcfc4927bdbc3c2c95256795d142d50b054c54515202bbaa4""sha256:e2efbd4aabb93b6203f9b91a6c568715c65b3157213a3d1c426a2ade67c27be5""sha256:9923beb295836a1d45acdac3d04edccebac4fa19f95640b1db5d9a9ffd88f97a""sha256:b0584e76eb02184075c33981e4006370f3d714229188b58dfda96312fe75a007" From 893f9a3cabbe8b293fc765b98ec4f23ba9dac614 Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 2 Apr 2024 16:38:08 +0000 Subject: [PATCH 34/41] GH Action SHA updated Tue Apr 2 16:38:08 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 90ea7cf..6b6a91b 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:99078ed6b7c73e3bf385dece0bc684a3766fb66308906ec3395377fe3fe8ff63""sha256:a7d4363d0e4ae14284fe364da8e45ec12a931dedc36052b6dcff6945a74ace1f""sha256:bf6ff363d6adadfd6f1b080f22e4dfd1e81b2d0eb23ac17e6fab93c1642132cf""sha256:9fedecf85adfc74306f32a726ac935a8df3f1353250e82d853626715b6810a7f""sha256:ac165d48bd7fc84b02ab139f819b5f4e54e90c28c0ff33829765ee0a53ac8e78""sha256:dc90dc5740536e112b0b9c63c0d3ec02c351e617fc866d36233710c56ab9c408""sha256:03b82e2529c74d4dcfc4927bdbc3c2c95256795d142d50b054c54515202bbaa4""sha256:e2efbd4aabb93b6203f9b91a6c568715c65b3157213a3d1c426a2ade67c27be5""sha256:9923beb295836a1d45acdac3d04edccebac4fa19f95640b1db5d9a9ffd88f97a""sha256:b0584e76eb02184075c33981e4006370f3d714229188b58dfda96312fe75a007" +"sha256:98f1972fa5aad8861375f12067cf21a9e7db7fea6c04a174095eb83f77b7006e""sha256:a0ed66ec66dcb703c436fb6ab6ebf52d289fd54661c7c9a20f2f07965a7fadaf""sha256:2315a01bb05ab465d60dec3bd841d1ffb645a404f61d3394e129c47cff3495f9""sha256:308fee109b940d2146c8398e78fd203a5f1f246817b42f7a9c77af79f3371510""sha256:dd173fdb7404a9d31553b14bd3b5a74834a66a0d56d4aa8cedc518d81b7dc8e4""sha256:b2b4d3ee69166350ce0ffce9c481068b69bdf6b49043f8d5f04c0cebc6e221c0""sha256:fcacaff5391e71f6497c5f23443c0709bd695c464dbb5648696461f89780c399""sha256:25b8bf6a9e2c6867d5c3fdbce33b8e3842406bef8fa6da23d7ae9cff6a9c3022""sha256:ba8d019323f378e9bc2907d4600970ab22be279fb7d684c534bf36c982b94cac""sha256:b8a6d311e74156d4e296e09b4d0d516443792992c3573886857b69168638baea" From 4e6b5d0314799cbe56c7f7301d8feff57c3070bf Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 2 Apr 2024 17:50:32 +0000 Subject: [PATCH 35/41] GH Action SHA updated Tue Apr 2 17:50:32 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 6b6a91b..78a1e40 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:98f1972fa5aad8861375f12067cf21a9e7db7fea6c04a174095eb83f77b7006e""sha256:a0ed66ec66dcb703c436fb6ab6ebf52d289fd54661c7c9a20f2f07965a7fadaf""sha256:2315a01bb05ab465d60dec3bd841d1ffb645a404f61d3394e129c47cff3495f9""sha256:308fee109b940d2146c8398e78fd203a5f1f246817b42f7a9c77af79f3371510""sha256:dd173fdb7404a9d31553b14bd3b5a74834a66a0d56d4aa8cedc518d81b7dc8e4""sha256:b2b4d3ee69166350ce0ffce9c481068b69bdf6b49043f8d5f04c0cebc6e221c0""sha256:fcacaff5391e71f6497c5f23443c0709bd695c464dbb5648696461f89780c399""sha256:25b8bf6a9e2c6867d5c3fdbce33b8e3842406bef8fa6da23d7ae9cff6a9c3022""sha256:ba8d019323f378e9bc2907d4600970ab22be279fb7d684c534bf36c982b94cac""sha256:b8a6d311e74156d4e296e09b4d0d516443792992c3573886857b69168638baea" +"sha256:3fe237829bd393597a35a12628fc506e1feb412ada5e6ce392368cec4c60b257""sha256:503326a25f490c9b87e9bbbc3826bab110dba892c0614fd7dedf32c0a64fcbb0""sha256:a7abfa364761913f01785d28968ed939f5e1fbb3d8947b712d3a6e0eb4821476""sha256:15b1b632aac8a075ed24c4676c6f5c2ff97549bd74e947956b41b4e90f419d2d""sha256:707db1a2fd1240d489d791db02438e72971250d9d8e41e786d5214fb5f2ae496""sha256:5d8b3c69dda9dd1b4c7111a5a9ce6bde703dec984b8a64d7a2f41f3031240224""sha256:0065c3a314cce598c2aa851d205a29d8971364af174763ace748158d02bf75a7""sha256:876171c4e8d342463b21b7cd3f442551690c4dbd5210e25c9d52a88068643334""sha256:4900d0478ad102350a5f825aa775df2fb4dc1923306b1ef26883326ed6106014""sha256:5020c695d762c0dde7afdbe05e5b60ebb1a48cac733998f6f9dfb4402e18652f" From d601aa414c72162208da2376be552e51da71f242 Mon Sep 17 00:00:00 2001 From: actions-user Date: Tue, 2 Apr 2024 19:50:35 +0000 Subject: [PATCH 36/41] GH Action SHA updated Tue Apr 2 19:50:35 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index 78a1e40..ad64c7e 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:3fe237829bd393597a35a12628fc506e1feb412ada5e6ce392368cec4c60b257""sha256:503326a25f490c9b87e9bbbc3826bab110dba892c0614fd7dedf32c0a64fcbb0""sha256:a7abfa364761913f01785d28968ed939f5e1fbb3d8947b712d3a6e0eb4821476""sha256:15b1b632aac8a075ed24c4676c6f5c2ff97549bd74e947956b41b4e90f419d2d""sha256:707db1a2fd1240d489d791db02438e72971250d9d8e41e786d5214fb5f2ae496""sha256:5d8b3c69dda9dd1b4c7111a5a9ce6bde703dec984b8a64d7a2f41f3031240224""sha256:0065c3a314cce598c2aa851d205a29d8971364af174763ace748158d02bf75a7""sha256:876171c4e8d342463b21b7cd3f442551690c4dbd5210e25c9d52a88068643334""sha256:4900d0478ad102350a5f825aa775df2fb4dc1923306b1ef26883326ed6106014""sha256:5020c695d762c0dde7afdbe05e5b60ebb1a48cac733998f6f9dfb4402e18652f" +"sha256:2a0813558cf7c2cad5f4d8cc37202ba4845776f030edde88753d7c2785153075""sha256:de851147f20466318b5880b57c66987533609000bed92d9f030ae8719423cb9c""sha256:fbfe180282895d8846e896d93dd2cd3a0f6279079deeed21d4ff592c5461e693""sha256:e8e119f87b8e5d95fd966343143f76256476dc722199dc7dc1e41bd95e04152b""sha256:dccedfa70bd8abbf1c7ab82416b503758b77d7e9401794960272a4457511dcd3""sha256:7d2c66d80526dc23fa65de0a50ab18d99c641bfeb59f179bf26ac09f1aa6e98c""sha256:785c615c2c72c0096674f9b46f1fae27de1314461605d077eb2a57422e83dd6a""sha256:a477abaf5047fa79ff40444819b1f810553c4daaa27749dc62fc7265fe457da6""sha256:351f05eeebf306cd7375f9567b7cd576b7956a85bdfe9a013430d8b735a9e8e9""sha256:18b54678472b22630dccb107507863e50064f8b96f92ecb2c14967851b18f453" From 35be6fde8470d43a7019c5c4989e1bdf16fb976b Mon Sep 17 00:00:00 2001 From: actions-user Date: Sun, 7 Apr 2024 08:35:34 +0000 Subject: [PATCH 37/41] GH Action SHA updated Sun Apr 7 08:35:34 UTC 2024 --- aiscatcher.sha | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiscatcher.sha b/aiscatcher.sha index ad64c7e..a2fc4bc 100644 --- a/aiscatcher.sha +++ b/aiscatcher.sha @@ -1 +1 @@ -"sha256:2a0813558cf7c2cad5f4d8cc37202ba4845776f030edde88753d7c2785153075""sha256:de851147f20466318b5880b57c66987533609000bed92d9f030ae8719423cb9c""sha256:fbfe180282895d8846e896d93dd2cd3a0f6279079deeed21d4ff592c5461e693""sha256:e8e119f87b8e5d95fd966343143f76256476dc722199dc7dc1e41bd95e04152b""sha256:dccedfa70bd8abbf1c7ab82416b503758b77d7e9401794960272a4457511dcd3""sha256:7d2c66d80526dc23fa65de0a50ab18d99c641bfeb59f179bf26ac09f1aa6e98c""sha256:785c615c2c72c0096674f9b46f1fae27de1314461605d077eb2a57422e83dd6a""sha256:a477abaf5047fa79ff40444819b1f810553c4daaa27749dc62fc7265fe457da6""sha256:351f05eeebf306cd7375f9567b7cd576b7956a85bdfe9a013430d8b735a9e8e9""sha256:18b54678472b22630dccb107507863e50064f8b96f92ecb2c14967851b18f453" +"sha256:632c9acfd93532b723b336652bd6545081c85afdfb35e0cc0d85a48be5d2a0a7""sha256:bff80bb19c995f5f3a4aa967d5f5c04769a3ad21974a291cacc9d9ed99726952""sha256:0bd85d5980e9e9172ea372fea70d0adaa5ec776fc365ff99d461df1553521108""sha256:1f7ea93498beeba07394a8940b2dd778ec0e65be8a019211a36ba2f480d8e6da""sha256:5c6eab502917d59ed9d225e6161006096fa7450559acd4f3e4ecf53704518747""sha256:8fa97f6c08d2ccd22032b76e7007b638291f83302b045b0b14b55c7f99829dfc""sha256:c9b4b8bc4352a0200cf24d9030231ea8948144be5818bf57e457a6a77029d73f""sha256:9ec334fe1ccfe8c9a060231fdf67bc1620b6809c1fd321ece72ac1eef1bacae9""sha256:1015563d7558dceb7bf522fe44ea5281834e95192bef442c0f7d84f557e24107""sha256:a3425723cc1cd7d06440d39175c67ac23992ff9653bd77a03aef38c1f0f9cef9" From 713d1565c3478e8c35acec801764e0ae1c7c1a48 Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Mon, 8 Apr 2024 04:46:11 -0400 Subject: [PATCH 38/41] updates and clarifications --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 266bdc1..9ad5f56 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,7 @@ RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL RTLSDR_DEVICE_GAIN=xxx RTLSDR_DEVICE_PPM=xxx AISCATCHER_DECODER_AFC_WIDE=on -AISCATCHER_CHANNELS=AB CD +AISCATCHER_CHANNELS=AB STATION_NAME=My Station Name # # keys and params for aggregators: @@ -271,7 +271,7 @@ timeout 180s docker run \ --rm \ -it \ --entrypoint /usr/bin/get-creds \ - ghcr.io/sdr-enthusiasts/shipxplorer:latest + ghcr.io/sdr-enthusiasts/docker-shipfeeder:latest ``` This will run the container for 3 minutes, allowing a sharing key to be generated. From 9369bf458dc4f4a6df711230b537e9a9d47f13e9 Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Mon, 8 Apr 2024 07:38:32 -0400 Subject: [PATCH 39/41] Update .env.sample --- config-examples/.env.sample | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config-examples/.env.sample b/config-examples/.env.sample index f4991d2..25f29dc 100644 --- a/config-examples/.env.sample +++ b/config-examples/.env.sample @@ -5,7 +5,7 @@ RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL RTLSDR_DEVICE_GAIN=xxx RTLSDR_DEVICE_PPM=xxx AISCATCHER_DECODER_AFC_WIDE=on -AISCATCHER_CHANNELS=AB CD +AISCATCHER_CHANNELS=AB STATION_NAME=My Station Name # # keys and params for aggregators: @@ -26,4 +26,4 @@ SHIPPINGEXPLORER_UDP_PORT=xxxxx SHIPXPLORER_SHARING_KEY=xxxxxxxxxxxxxxxxxxx SHIPXPLORER_SERIAL_NUMBER=SXTRPI00xxxx VESSELFINDER_UDP_PORT=xxxx -VESSELTRACKER_UDP_PORT=xxxx \ No newline at end of file +VESSELTRACKER_UDP_PORT=xxxx From 50c7f31e03564a3b88c6a644f162ffa9de66515a Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:36:03 -0400 Subject: [PATCH 40/41] Update .env.sample --- config-examples/.env.sample | 1 - 1 file changed, 1 deletion(-) diff --git a/config-examples/.env.sample b/config-examples/.env.sample index 25f29dc..93835b6 100644 --- a/config-examples/.env.sample +++ b/config-examples/.env.sample @@ -5,7 +5,6 @@ RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL RTLSDR_DEVICE_GAIN=xxx RTLSDR_DEVICE_PPM=xxx AISCATCHER_DECODER_AFC_WIDE=on -AISCATCHER_CHANNELS=AB STATION_NAME=My Station Name # # keys and params for aggregators: From 86187e257e313d989131cbc0b69395287065f170 Mon Sep 17 00:00:00 2001 From: kx1t <15090643+kx1t@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:42:06 -0400 Subject: [PATCH 41/41] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9ad5f56..baa8dbc 100644 --- a/README.md +++ b/README.md @@ -96,13 +96,13 @@ services: - SITESHOW=on - PROMETHEUS_ENABLE=on - REALTIME=on -# ais-catcher receiver related parameters +# ais-catcher receiver-related parameters - RTLSDR_DEVICE_SERIAL=${RTLSDR_DEVICE_SERIAL} - RTLSDR_DEVICE_GAIN=${RTLSDR_DEVICE_GAIN} - RTLSDR_DEVICE_PPM=${RTLSDR_DEVICE_PPM} - RTLSDR_DEVICE_BANDWIDTH=${RTLSDR_DEVICE_BANDWIDTH} - AISCATCHER_DECODER_AFC_WIDE=${AISCATCHER_DECODER_AFC_WIDE} -# aggregrators related parameters +# aggregrators-related parameters - AIRFRAMES_STATION_ID=${AIRFRAMES_STATION_ID} - AISCATCHER_FEEDER_KEY=${AISCATCHER_FEEDER_KEY} - AISHUB_UDP_PORT=${AISHUB_UDP_PORT} @@ -146,7 +146,6 @@ RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL RTLSDR_DEVICE_GAIN=xxx RTLSDR_DEVICE_PPM=xxx AISCATCHER_DECODER_AFC_WIDE=on -AISCATCHER_CHANNELS=AB STATION_NAME=My Station Name # # keys and params for aggregators: @@ -185,7 +184,7 @@ You can use `rtl_test` to see which devices and device serials are connected to | `RTLSDR_DEVICE_GAIN` | SDR device gain. Can also be set to `auto` | `33` | | `RTLSDR_DEVICE_PPM`| PPM deviation of your RTLSDR device | Empty | | `RTLSDR_DEVICE_BANDWIDTH` | Channel bandwitdh of the receiver | `192K` | -| `AISCATCHER_CHANNELS` | Channels flag for `ais-catcher`. Set to `AB`, `CD`, or `AB CD` | Empty | +| `AISCATCHER_CHANNELS` | Channels flag for `ais-catcher`. Set to `AB` (receive on channel AB, default value if omitted), `CD` (receive on channel CD), or `CD AB` (receive on channel CD but forward this data to aggregators saying it's channel AB; this can be used to send channels CD data to aggregators that can't handle CD data) | Empty (`AB`) | | `AISCATCHER_DECODER_MODEL` | Decoder model number for `ais-catcher` | `2` | | `AISCATCHER_DECODER_AFC_WIDE` | `-go AFC_WIDE` flag for `ais-catcher`. Recommended to set to `on` | `on` | | `AISCATCHER_DECODER_FP_DS` | `-go PF_DS` flag for `ais-catcher` | Empty |