Compare commits

..

100 Commits

Author SHA1 Message Date
c75d6e6c6a * MOD: change docker base image to alpine:latest
Some checks failed
Build and push / check and test (push) Successful in 10s
Build and push / build_and_push (push) Failing after 1m9s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2025-01-09 09:12:49 +01:00
5e2893c81e * ADD: metabase docker image
All checks were successful
Build and push / check and test (push) Successful in 9s
Build and push / build_and_push (push) Successful in 6m36s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-02-08 20:47:59 +01:00
99dcaecc0e Update .gitea/workflows/test_build_and_push.yaml
All checks were successful
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Successful in 2m28s
2024-02-08 19:03:57 +01:00
8dff38ab9c Update .gitea/workflows/test_build_and_push.yaml
All checks were successful
Build and push / check and test (push) Successful in 7s
Build and push / build_and_push (push) Successful in 2m25s
2024-02-06 22:17:19 +01:00
a33d3dc23a Update .gitea/workflows/test_build_and_push.yaml
Signed-off-by: uleenucks <uwe.hermann@uleenucks.de>
2024-02-06 22:15:25 +01:00
23db79b9fd Update .gitea/workflows/test_build_and_push.yaml
Some checks failed
Build and push / check and test (push) Successful in 7s
Build and push / build_and_push (push) Has been cancelled
2024-02-01 21:57:23 +01:00
89ba33b593 Update .gitea/workflows/test_build_and_push.yaml
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Has been cancelled
2024-02-01 21:55:50 +01:00
f960c0ffd4 Update .gitea/workflows/test_build_and_push.yaml
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 5s
2024-02-01 21:54:35 +01:00
a1155421d2 * MOD: workflow tests
All checks were successful
Build and push / check and test (push) Successful in 7s
Build and push / build_and_push (push) Successful in 2m39s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 17:34:56 +01:00
77283a2077 * MOD: add schedule
All checks were successful
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Successful in 2m34s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 14:32:17 +01:00
efc362cf78 * MOD: add schedule
All checks were successful
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Successful in 2m31s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 14:25:28 +01:00
5a283b8e19 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 14:23:29 +01:00
e655989d33 * MOD: add schedule
All checks were successful
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Successful in 2m28s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 14:01:27 +01:00
9504b924ae * MOD: workflow tests
All checks were successful
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Successful in 2m40s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:55:55 +01:00
ae4c6b8a85 * MOD: workflow tests
All checks were successful
Build and push / build_and_push (push) Successful in 28s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:49:14 +01:00
dcac760df7 * MOD: workflow tests
Some checks failed
Build and push / build_and_push (push) Failing after 16s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:48:36 +01:00
6ce1991464 * MOD: workflow tests
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:48:07 +01:00
f63abc247d * MOD: workflow tests
Some checks failed
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:34:35 +01:00
1bff9d81f1 * MOD: workflow tests
Some checks failed
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:34:12 +01:00
a09a1e4054 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:33:14 +01:00
3737ef0ee3 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:31:42 +01:00
7046ed0d9e * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:31:04 +01:00
02b3cae924 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Failing after 6s
Build and push / build_and_push (push) Failing after 1s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:30:28 +01:00
c265e9b41f * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Failing after 8s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:29:55 +01:00
84b0d50d05 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Failing after 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:29:04 +01:00
a84d82e431 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Failing after 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:27:21 +01:00
38c2b5c2f6 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Failing after 6s
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 13:25:09 +01:00
b6f1f947b4 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 4m7s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:39:17 +01:00
b8fbe97f77 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 6s
Build and push / build_and_push (push) Failing after 5m13s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:20:14 +01:00
8923acae19 * MOD: workflow tests
Some checks failed
Build and push / check and test (push) Successful in 7s
Build and push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:19:46 +01:00
957e4be974 * MOD: workflow tests
All checks were successful
Build and push / test_shellcheck (push) Successful in 6s
Build and push / build_and_push (push) Has been skipped
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:13:54 +01:00
fda895ed93 * MOD: workflow tests
All checks were successful
Build and push / test_shellcheck (push) Successful in 6s
Build and push / build_and_push (push) Has been skipped
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:12:31 +01:00
32de968207 * MOD: workflow tests
Some checks failed
Build and push / test_shellcheck (push) Failing after 6s
Build and push / build_and_push (push) Has been skipped
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:12:04 +01:00
fa5127bbf6 * MOD: workflow tests
Some checks failed
Build and push / test_shellcheck (push) Failing after 6s
Build and push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 10:07:05 +01:00
02bcf1aaac * MOD: workflow tests
Some checks failed
Build and push / test_shellcheck (push) Successful in 6s
Build and push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:53:29 +01:00
8c3f5be513 * MOD: workflow tests
Some checks failed
Build and push / build_and_push (push) Has been cancelled
Build and push / tests (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:51:03 +01:00
85303e709b Merge pull request '* MOD: workflow tests' (#4) from actions_test into main
Some checks failed
Build and push / build_and_push (push) Has been cancelled
Test stage / check and test (push) Has been cancelled
Reviewed-on: #4
2024-01-21 09:46:35 +01:00
114a274da9 Merge branch 'main' into actions_test
All checks were successful
Test stage / check and test (push) Successful in 6s
2024-01-21 09:46:11 +01:00
74165ff48c * MOD: workflow tests
All checks were successful
Test stage / check and test (push) Successful in 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:45:39 +01:00
2c1c026196 Merge pull request '* MOD: workflow' (#3) from actions_test into main
Some checks failed
Build and push / build_and_push (push) Failing after 5m11s
Test stage / check and test (push) Successful in 6s
Reviewed-on: #3
2024-01-21 09:31:09 +01:00
badd53ef83 Merge branch 'main' into actions_test
All checks were successful
Test stage / check and test (push) Successful in 6s
2024-01-21 09:30:29 +01:00
2336af2895 * MOD: workflow
Some checks are pending
Test stage / check and test (push) Waiting to run
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:28:30 +01:00
2b97f16fdd Merge pull request '* MOD: test actions' (#2) from actions_test into main
Some checks failed
Test stage / check and test (push) Has been cancelled
Build and push / build_and_push (push) Failing after 5m44s
Reviewed-on: #2
2024-01-21 09:24:55 +01:00
ba71eb74c9 * MOD: cleanup... again
All checks were successful
Test stage / check and test (push) Successful in 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:24:04 +01:00
e9b8e7d092 * MOD: cleanup... again
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:23:22 +01:00
04c20049e4 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:21:26 +01:00
4b48b3c271 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:19:59 +01:00
000023bb70 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:19:00 +01:00
d4a123c19a * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:17:52 +01:00
8f618de796 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:14:16 +01:00
62c381d5df * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:12:40 +01:00
ce3a704d9e * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:12:04 +01:00
912864c229 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:11:07 +01:00
6044c5a4c0 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 7s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-21 09:10:23 +01:00
212b30ee8b * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:12:36 +01:00
e79cd2f979 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:10:17 +01:00
c4662173ff * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 7s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:09:23 +01:00
fb9040ef07 * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:07:12 +01:00
50d38c328d * MOD: cleanup
Some checks failed
Test stage / check and test (push) Failing after 46s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:04:50 +01:00
03efd0c9de * MOD: again finalize tests stage holy crap#6
Some checks failed
Test stage / check and test (push) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 14:01:08 +01:00
9732fa9f98 * MOD: finalize test stage holy crap #5
Some checks failed
build_and_push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:55:16 +01:00
09e68d3287 * MOD: again finalize tests stage holy crap#4
Some checks failed
build_and_push / build_and_push (push) Failing after 13m40s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:40:48 +01:00
e495b1b6e2 * MOD: again finalize tests stage holy crap#3
Some checks failed
build_and_push / build_and_push (push) Failing after 34s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:37:58 +01:00
d182d86111 * MOD: again finalize tests stage holy crap#2
Some checks failed
build_and_push / build_and_push (push) Failing after 34s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:36:57 +01:00
917a768b74 * MOD: again finalize tests stage holy crap
Some checks failed
build_and_push / build_and_push (push) Failing after 3s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:36:26 +01:00
7c6ec2c701 * MOD: again finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:35:39 +01:00
6ed5830d26 * MOD: again finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:35:22 +01:00
4d79420110 * MOD: again finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:33:32 +01:00
b69c6d2c25 * MOD: finalize tests stage again
Some checks failed
build_and_push / build_and_push (push) Failing after 39s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:25:27 +01:00
9eb41f69eb * MOD: finalize tests stage again
Some checks failed
build_and_push / build_and_push (push) Failing after 34s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:24:17 +01:00
94ff9c4fe8 * MOD: finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:23:08 +01:00
29acf11b72 * MOD: finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:20:07 +01:00
96c7be24eb * MOD: finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Failing after 50s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:16:49 +01:00
817131e7a6 * MOD: finalize tests stage
Some checks failed
build_and_push / build_and_push (push) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:15:34 +01:00
7ae231a204 * MOD: finalize test stage
Some checks failed
build_and_push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 13:14:24 +01:00
e387a7b0b7 * MOD: finalize tests stage
Some checks failed
tests / check and test (push) Failing after 6s
tests / check and test (pull_request) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:41:32 +01:00
965908c1b1 * MOD: shellcheck again
Some checks failed
checks / check and test (push) Failing after 7s
checks / check and test (pull_request) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:39:52 +01:00
4b0ea1dbb3 * MOD: again shellcheck
All checks were successful
checks / check and test (push) Successful in 6s
checks / check and test (pull_request) Successful in 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:39:29 +01:00
dd63eb097e * MOD: again shellcheck
Some checks failed
checks / check and test (push) Failing after 6s
checks / check and test (pull_request) Failing after 6s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:38:57 +01:00
0424181de8 * MOD: again shellcheck
Some checks failed
checks / check and test (push) Failing after 5s
checks / check and test (pull_request) Failing after 5s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:38:31 +01:00
4371ce95ff * MOD: again shellcheck
Some checks failed
checks / check and test (push) Failing after 2s
checks / check and test (pull_request) Failing after 1s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:38:13 +01:00
193102bd97 * MOD: again bash
All checks were successful
checks / check and test (push) Successful in 32s
checks / check and test (pull_request) Successful in 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:36:15 +01:00
f4b10273dd * MOD: again
All checks were successful
checks / check and test (push) Successful in 32s
checks / check and test (pull_request) Successful in 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:33:17 +01:00
391073cc11 * MOD: again
Some checks failed
checks / check and test (push) Has been cancelled
checks / check and test (pull_request) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:32:28 +01:00
958c35cf35 * MOD: again
Some checks failed
checks / check and test (push) Successful in 31s
checks / check and test (pull_request) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:31:36 +01:00
a149557061 * MOD: again
Some checks failed
checks / check and test (push) Failing after 32s
checks / check and test (pull_request) Has been cancelled
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:30:42 +01:00
a740f241b4 * MOD: again
Some checks failed
checks / check and test (push) Failing after 33s
checks / check and test (pull_request) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:27:59 +01:00
5b5336b485 * MOD: again
Some checks failed
checks / check and test (push) Failing after 32s
checks / check and test (pull_request) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:26:18 +01:00
9b4b37efd3 * MOD: again
Some checks failed
checks / check and test (push) Failing after 31s
checks / check and test (pull_request) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:24:32 +01:00
268df39497 * MOD: test actions
Some checks failed
checks / check and test (pull_request) Has been cancelled
checks / check and test (push) Failing after 31s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:23:23 +01:00
f03ca0e6b9 * MOD: test actions
Some checks failed
checks / check and test (push) Has been cancelled
checks / check and test (pull_request) Successful in 31s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:22:57 +01:00
97610a573c * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 32s
checks / check and test (pull_request) Failing after 31s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:21:01 +01:00
f130d186d7 * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 32s
checks / check and test (pull_request) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:19:55 +01:00
26bc3b8b91 * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 31s
checks / check and test (pull_request) Failing after 32s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:18:56 +01:00
8dd9d5343b * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 36s
checks / check and test (pull_request) Failing after 31s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:17:09 +01:00
60908559b6 * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 2s
checks / check and test (pull_request) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:15:14 +01:00
0cfa416cd1 * MOD: test actions
Some checks failed
checks / check and test (push) Failing after 6s
checks / check and test (pull_request) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 12:09:05 +01:00
87e9a5a7eb Merge pull request '* ADD: workflow demo' (#1) from workflow_demo into main
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2s
Reviewed-on: #1
2024-01-20 11:57:25 +01:00
e720c05cfc * MOD: update demo
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
2024-01-20 11:56:54 +01:00
c28b1119f9 * ADD: workflow demo
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 45s
2024-01-20 11:54:10 +01:00
35 changed files with 253 additions and 573 deletions

View File

@@ -0,0 +1,17 @@
---
name: Test stage
on:
push:
branches-ignore:
- main
jobs:
test_shellcheck:
name: Run shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install shellcheck
run: apt update && apt install -y shellcheck
- name: test
run: ./shellcheck.sh

View File

@@ -0,0 +1,134 @@
---
name: Build and push
on:
schedule:
- cron: '0 3 * * *'
push:
branches:
- 'main'
jobs:
test_shellcheck:
name: check and test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install shellcheck
run: apt update && apt install -y shellcheck
- name: test
run: ./shellcheck.sh
buildpush:
name: build_and_push
needs: [tests_shellcheck]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Kaniko build htop
uses: aevea/action-kaniko@master
with:
image: uleenucks/htop
tag: latest
path: htop
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build lynx
uses: aevea/action-kaniko@master
with:
image: uleenucks/lynx
tag: latest
path: lynx
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build mtr
uses: aevea/action-kaniko@master
with:
image: uleenucks/mtr
tag: latest
path: mtr
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build nmap
uses: aevea/action-kaniko@master
with:
image: uleenucks/nmap
tag: latest
path: nmap
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build postgres-backup
uses: aevea/action-kaniko@master
with:
image: uleenucks/postgres-backup
tag: latest
path: postgres-backup
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build pyweb
uses: aevea/action-kaniko@master
with:
image: uleenucks/pyweb
tag: latest
path: pyweb
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build shellcheck
uses: aevea/action-kaniko@master
with:
image: uleenucks/shellcheck
tag: latest
path: shellcheck
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build traceroute
uses: aevea/action-kaniko@master
with:
image: uleenucks/traceroute
tag: latest
path: traceroute
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build vaultwarden-backup
uses: aevea/action-kaniko@master
with:
image: uleenucks/vaultwarden-backup
tag: latest
path: vaultwarden-backup
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup
- name: Kaniko build metabase
uses: aevea/action-kaniko@master
with:
image: uleenucks/metabase
tag: latest
path: metabase
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: false
exra_args: --cleanup

26
Makefile Normal file
View File

@@ -0,0 +1,26 @@
.PHONY: build
build: ## Builds all the dockerfiles in the repository.
@$(CURDIR)/build-all.sh
.PHONY: test
test: shellcheck ## Runs the tests on the repository.
# if this session isn't interactive, then we don't want to allocate a
# TTY, which would fail, but if it is interactive, we do want to attach
# so that the user can send e.g. ^C through.
INTERACTIVE := $(shell [ -t 0 ] && echo 1 || echo 0)
ifeq ($(INTERACTIVE), 1)
DOCKER_FLAGS += -t
endif
.PHONY: shellcheck
shellcheck: ## Runs the shellcheck tests on the scripts.
docker run --rm -i $(DOCKER_FLAGS) \
--name df-shellcheck \
-v $(CURDIR):/usr/src:ro \
--workdir /usr/src \
uleenucks/shellcheck find / -iname '*powershell*'
.PHONY: help
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

View File

@@ -1,97 +0,0 @@
#!/bin/bash
set -e
set -o pipefail
SCRIPT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
REPO_URL="${REPO_URL:-uleenucks}"
JOBS=${JOBS:-2}
DOCKER="$(which docker)"
DOCKERFILESPATH="${HOME}/closed/dockerfiles"
ERRORS="$(pwd)/errors"
dcleanup(){
${DOCKER} rm $(${DOCKER} ps -aq 2>/dev/null) 2>/dev/null
${DOCKER} rm -v $(${DOCKER} ps --filter status=exited -q 2>/dev/null) 2>/dev/null
${DOCKER} rmi $(${DOCKER} images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
build_and_push_kaniko(){
base=$1
suite=$2
build_dir=$3
echo "Building ${REPO_URL}/${base}:${suite} for context ${build_dir}"
docker run \
-v "${HOME}/config.json:/kaniko/.docker/config.json:ro" \
-v "$(pwd)/${build_dir}:/workspace" \
gcr.io/kaniko-project/executor:debug \
--destination "${REPO_URL}/${base}:${suite}" --force \
|| return 1
# on successful build, push the image
echo " --- "
echo "Successfully built and pushed ${base}:${suite} with context ${build_dir}"
echo " --- "
}
dofile() {
f=$1
image=${f%Dockerfile}
base=${image%%\/*}
build_dir=$(dirname "$f")
suite=${build_dir##*\/}
if [[ -z "$suite" ]] || [[ "$suite" == "$base" ]]; then
suite=latest
fi
{
$SCRIPT build_and_push_kaniko "${base}" "${suite}" "${build_dir}"
} || {
# add to errors
echo "${base}:${suite}" >> "$ERRORS"
}
echo
echo
}
prescript(){
cd "${DOCKERFILESPATH}"
rm -f errors
git pull
}
main(){
# get the dockerfiles
IFS=$'\n'
files=( $(find . -iname '*Dockerfile' | sed 's|./||' | sort) )
unset IFS
# build all dockerfiles
echo "Running in parallel with ${JOBS} jobs."
parallel --tag --verbose --ungroup -j"${JOBS}" "$SCRIPT" dofile "{1}" ::: "${files[@]}"
if [[ ! -f $ERRORS ]]; then
echo "No errors, hooray!"
else
echo "[ERROR] Some images did not build correctly, see below." >&2
echo "These images failed: $(cat "$ERRORS")" >&2
exit 1
fi
}
run(){
args=$@
f=$1
if [[ "$f" == "" ]]; then
main "$args"
else
$args
fi
}
prescript
run $@
dcleanup

7
config.json Normal file
View File

@@ -0,0 +1,7 @@
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "dWxlZW51Y2tzOjE2MjY5MGMzLTk3NzUtNDJkZC05MjQ0LWMxOWI3YmM1N2Q5ZA=="
}
}
}

View File

@@ -1,51 +0,0 @@
# Docker-Gitserver
[Docker-Gitserver](https://hub.docker.com/r/uleenucks/gitserver) is a containerized [GIT](https://git-scm.com/) server.
## Requirements
- [Docker](https://www.docker.com/)
- [docker-compose](https://www.docker.com/products/docker-compose)
## Usage
### Starting server
For the initial start, just run the following:
`docker-compose up -d`
Remember the container id (refered to as `$container`),
it's printed as `Creating $container`.
### Starting without docker-compose
If you can't or don't want to use docker-compose, run
```
docker run -d --name git \
-p 22124:22 \
-v "${GIT_DATA}:/home/git/repositories" \
-e "PUBKEY=$(cat ~/.ssh/id_ed25519.pub)" \
uleenucks/gitserver:latest
```
### Stopping server
`docker-compose stop`
### Creating a repo on server
To create a new repo named `$open`, use the following:
#### Open a shell on the server
`docker exec -it $container sh`
The container name `$container` is printed on startup.
#### Create new repository on server
```
create_repo /home/git/repositories/open.git
```
This will create ``open.git`` as a new repository on your server
#### Connecting to your git repository
From any client do the following:
```
git remote add origin ssh://git@<fqdn>:22124/home/git/repositories/open.git
```

View File

@@ -1,17 +0,0 @@
# docker-compose.yml
version: '2'
services:
git:
container_name: git
restart: on-failure:5
image: uleenucks/gitserver
volumes:
- "gitdata:/home/git/repositories"
ports:
- "22124:22"
environment:
- "PUBKEY=$$(cat ~/.ssh/id_ed25519.pub)"
volumes:
gitdata:
driver: local

View File

@@ -1,40 +0,0 @@
FROM alpine:3.18
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"
ENV HOME /root
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community/" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories \
&& apk -U upgrade --no-cache --no-progress \
&& apk --no-cache --no-progress add \
bash \
git \
openssh \
&& sed -i "s/#PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_config \
&& sed -i "s/#PubkeyAuthentication yes/PubkeyAuthentication yes/" /etc/ssh/sshd_config \
&& echo -e "AllowUsers git\n" >> /etc/ssh/sshd_config \
&& echo -e "Port 22\n" >> /etc/ssh/sshd_config \
&& addgroup git \
&& adduser -D -S -s /usr/bin/git-shell -h /home/git -g git git \
&& mkdir -p /home/git/.ssh \
&& chown -R git:git /home/git \
&& passwd -u git \
&& git config --global init.defaultBranch main \
&& mkdir /home/git/repositories \
&& rm -rf /tmp/* /var/cache/apk/*
VOLUME /home/git/repositories
ENV HOME /home/git
EXPOSE 22
WORKDIR $HOME
ADD app /app
COPY ./start.sh /
COPY create_repo /usr/bin/create_repo
HEALTHCHECK CMD [ "/app/healthcheck.sh" ]
ENTRYPOINT [ "/start.sh" ]
CMD [ "/usr/sbin/sshd", "-D", "-e", "-f", "/etc/ssh/sshd_config" ]

View File

@@ -1,7 +0,0 @@
#!/bin/sh
if [ ! -f "/app/health" ]; then
printf 0 > "/app/health"
fi
exit "$(cat /app/health)"

View File

@@ -1,14 +0,0 @@
#!/bin/bash
set -e
set -o pipefail
repo=$1
if [[ "$repo" != *.git ]]; then
repo="${repo}.git"
fi
echo "Creating $repo"
(
cd "$HOME"
git init --bare "$repo"
chown -R git:git "$repo"
)

View File

@@ -1,73 +0,0 @@
#!/bin/sh
set -e
set -o pipefail
[ "$DEBUG" == 'true' ] && set -x
DAEMON=sshd
HOSTKEY=/etc/ssh/ssh_host_ed25519_key
# create the host key if not already created
if [ ! -f "${HOSTKEY}" ]; then
ssh-keygen -A
fi
mkdir -p ${HOME}/.ssh
source /etc/profile
[ "$PUBKEY" ] && echo "$PUBKEY" > ${HOME}/.ssh/authorized_keys
[ "$PUBKEY2" ] && echo "$PUBKEY2" >> ${HOME}/.ssh/authorized_keys
[ "$PUBKEY3" ] && echo "$PUBKEY3" >> ${HOME}/.ssh/authorized_keys
[ "$PUBKEY4" ] && echo "$PUBKEY4" >> ${HOME}/.ssh/authorized_keys
[ "$PUBKEY5" ] && echo "$PUBKEY5" >> ${HOME}/.ssh/authorized_keys
[ "$PUBKEY6" ] && echo "$PUBKEY6" >> ${HOME}/.ssh/authorized_keys
[ "$PUBKEY7" ] && echo "$PUBKEY7" >> ${HOME}/.ssh/authorized_keys
chown -R git:git ${HOME}
chmod -R 755 ${HOME}
# Fix permissions, if writable
if [ -w ${HOME}/.ssh ]; then
chown git:git ${HOME}/.ssh && chmod 700 ${HOME}/.ssh/
fi
if [ -w ${HOME}/.ssh/authorized_keys ]; then
chown git:git ${HOME}/.ssh/authorized_keys
chmod 600 ${HOME}/.ssh/authorized_keys
fi
# Warn if no config
if [ ! -e ${HOME}/.ssh/authorized_keys ]; then
echo "WARNING: No SSH authorized_keys found for git"
fi
# set the default shell
mkdir -p $HOME/git-shell-commands
cat >$HOME/git-shell-commands/no-interactive-login <<\EOF
#!/bin/sh
printf '%s\n' "Hi $USER! You've successfully authenticated, but I do not"
printf '%s\n' "provide interactive shell access."
exit 128
EOF
chmod +x $HOME/git-shell-commands/no-interactive-login
stop() {
echo "Received SIGINT or SIGTERM. Shutting down $DAEMON"
# Get PID
pid=$(cat /var/run/$DAEMON/$DAEMON.pid)
# Set TERM
kill -SIGTERM "${pid}"
# Wait for exit
wait "${pid}"
# All done.
echo "Done."
}
echo "Running $@"
if [ "$(basename $1)" == "$DAEMON" ]; then
trap stop SIGINT SIGTERM
$@ &
pid="$!"
mkdir -p /var/run/$DAEMON && echo "${pid}" > /var/run/$DAEMON/$DAEMON.pid
wait "${pid}" && exit $?
else
exec "$@"
fi

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

View File

@@ -1,90 +0,0 @@
FROM alpine:3.18
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"
#COPY rootfs /
ENV NGINX_VERSION=1.21.4
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community/" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories \
&& set -ex \
&& apk -U upgrade --no-cache --no-progress \
&& apk add --no-cache --no-progress \
ca-certificates \
libressl \
pcre \
zlib \
su-exec \
&& apk add --no-progress --no-cache --virtual .build-deps \
build-base \
linux-headers \
libressl-dev \
pcre-dev \
wget \
zlib-dev \
&& cd /tmp \
&& wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz \
&& tar xzf nginx-${NGINX_VERSION}.tar.gz \
&& cd /tmp/nginx-${NGINX_VERSION} \
&& wget -q https://github.com/nginx-modules/ngx_http_tls_dyn_size/raw/master/nginx__dynamic_tls_records_1.15.5%2B.patch -O dynamic_records.patch \
&& patch -p1 < dynamic_records.patch \
&& ./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/tmp/nginx.pid \
--lock-path=/tmp/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-file-aio \
--with-threads \
--with-stream \
--with-stream_ssl_module \
--with-pcre-jit \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_auth_request_module \
--with-http_slice_module \
--with-mail \
--with-mail_ssl_module \
--with-stream_realip_module \
--without-http_ssi_module \
--without-http_scgi_module \
--without-http_uwsgi_module \
--without-http_geo_module \
--without-http_autoindex_module \
--without-http_split_clients_module \
--without-http_memcached_module \
--without-http_empty_gif_module \
--without-http_browser_module \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
&& mkdir -p /var/cache/nginx \
&& strip -s /usr/sbin/nginx \
&& apk del .build-deps \
&& rm -rf /tmp/* /var/cache/apk/*
EXPOSE 8000 4430
COPY rootfs /
RUN chmod +x /usr/local/bin/run.sh
VOLUME /sites-enabled /conf.d /www /passwds /certs /var/log/nginx
CMD [ "run.sh" ]

View File

@@ -1,46 +0,0 @@
## uleenucks/libre-nginx
![](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/115px-Nginx_logo.svg.png)
#### What is this?
This is nginx statically linked against LibreSSL
#### Features
- Based on Alpine Linux.
- nginx built against **LibreSSL**
- **TLS 1.3** patch : use of TLS 1.3 DRAFT is enforced (haven't found another way yet).
- Built using hardening gcc flags.
- Dynamic TLS records patch (cloudflare).
- TTP/2 (+NPN) support.
- Brotli compression support (and configured).
- AIO Threads support.
- No unnessary modules (except fastcgi).
- PCRE-jit enabled.
- Strong configurations included.
- Anonymous webserver signature (headers-more).
#### Notes
- It is required to change the `listen` directive to 8000/4430 instead of 80/443.
- Linux 3.17+, and the latest Docker stable are recommended.
#### Volumes
- **/sites-enabled** : vhosts files (*.conf)
- **/conf.d** : additional configuration files
- **/certs** : SSL/TLS certificates
- **/var/log/nginx** : nginx logs
- **/passwds** : authentication files
- **/www** : put your websites there
#### Build-time variables
- **NGINX_VERSION** : version of nginx
- **GPG_NGINX** : fingerprint of signing key package
- **BUILD_CORES** : number of cores used during compilation
#### How to use it?
https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration
Some configuration files located in `/etc/nginx/conf` are already provided, you can use them with the `include` directive.
- `ssl_params` : Provides a nice balance between compatibility and security.
- `headers_params` : HSTS (+ preload), XSS protection, etc.
- `proxy_params` : use with `proxy_pass`.

View File

@@ -1,6 +0,0 @@
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'none'; img-src 'self'; style-src 'self'; font-src 'self'; frame-src 'none'; object-src 'none'; frame-ancestors 'self'; base-uri 'none'; form-action 'none'";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header 'Referrer-Policy' 'strict-origin';

View File

@@ -1,6 +0,0 @@
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;

View File

@@ -1,7 +0,0 @@
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:RC4:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 15m;
ssl_session_tickets off;

View File

@@ -1,67 +0,0 @@
worker_processes auto;
pid /tmp/nginx.pid;
daemon off;
pcre_jit on;
events {
worker_connections 2048;
use epoll;
}
http {
limit_conn_zone $binary_remote_addr zone=limit_per_ip:10m;
limit_conn limit_per_ip 128;
limit_req_zone $binary_remote_addr zone=allips:10m rate=150r/s;
limit_req zone=allips burst=150 nodelay;
ssl_dyn_rec_enable on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log crit;
fastcgi_temp_path /tmp/fastcgi 1 2;
proxy_temp_path /tmp/proxy 1 2;
client_body_temp_path /tmp/client_body 1 2;
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;
aio threads;
sendfile on;
keepalive_timeout 15;
keepalive_disable msie6;
keepalive_requests 100;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
gzip on;
gzip_comp_level 5;
gzip_min_length 512;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_vary on;
gzip_disable "msie6";
gzip_types
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
application/vnd.ms-fontobject
font/truetype
font/opentype
image/svg+xml;
include /sites-enabled/*.conf;
}

View File

@@ -1,3 +0,0 @@
#!/bin/sh
chmod -R 700 /certs
exec nginx

View File

@@ -1,6 +1,6 @@
# Run Lynx in a container
#
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

8
metabase/Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM metabase/metabase
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"
RUN mkdir /data/ \
&& wget https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/metabase_sqlite.zip \
&& unzip metabase_sqlite.zip -d /data/ \
&& rm metabase_sqlite.zip

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck source=/dev/null
. /app/includes.sh
function clear_dir() {
@@ -19,8 +20,7 @@ function backup_init() {
function backup_db_postgresql() {
echo "backup postgresql database"
pg_dump -Fc -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -d "${POSTGRES_DB}" -U "${POSTGRES_USER}" -f "${BACKUP_FILE_DB_POSTGRESQL}"
if [[ $? != 0 ]]; then
if ! pg_dump -Fc -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -d "${POSTGRES_DB}" -U "${POSTGRES_USER}" -f "${BACKUP_FILE_DB_POSTGRESQL}"; then
echo "backup postgresql database failed"
exit 1

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck source=/dev/null
. /app/includes.sh
# restore
@@ -14,7 +15,8 @@ if [[ "$1" == "restore" ]]; then
fi
function configure_cron() {
local FIND_CRON_COUNT="$(grep -c 'backup.sh' "${CRON_CONFIG_FILE}" 2> /dev/null)"
local FIND_CRON_COUNT
FIND_CRON_COUNT="$(grep -c 'backup.sh' "${CRON_CONFIG_FILE}" 2> /dev/null)"
if [[ "${FIND_CRON_COUNT}" -eq 0 ]]; then
echo "${CRON} bash /app/backup.sh" >> "${CRON_CONFIG_FILE}"
fi

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck disable=SC2034
ENV_FILE="/.env"
CRON_CONFIG_FILE="${HOME}/crontabs"
BACKUP_DIR="/backups/tmp"
@@ -35,6 +36,7 @@ function check_dir_exist() {
# Arguments:
# None
########################################
# shellcheck disable=SC2153
function configure_postgresql() {
echo "${POSTGRES_HOST}:${POSTGRES_PORT}:${POSTGRES_DB}:${POSTGRES_USER}:${POSTGRES_PASSWORD}" > ~/.pgpass
chmod 0600 ~/.pgpass
@@ -49,11 +51,13 @@ function configure_postgresql() {
# Reference:
# https://gist.github.com/judy2k/7656bfe3b322d669ef75364a46327836#gistcomment-3632918
########################################
# shellcheck source=/dev/null
# shellcheck disable=SC2012
function export_env_file() {
if [[ -f "${ENV_FILE}" ]]; then
echo "find \"${ENV_FILE}\" file and export variables"
set -a
source <(cat "${ENV_FILE}" | sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/DOTENV_\1=\2/')
source <(sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/DOTENV_\1=\2/' "${ENV_FILE}")
set +a
fi
}
@@ -123,7 +127,8 @@ function init_env() {
# TIMEZONE
get_env TIMEZONE
local TIMEZONE_MATCHED_COUNT=$(ls "/usr/share/zoneinfo/${TIMEZONE}" 2> /dev/null | wc -l)
local TIMEZONE_MATCHED_COUNT
TIMEZONE_MATCHED_COUNT=$(find "/usr/share/zoneinfo" -type f -iname "${TIMEZONE}" 2> /dev/null | wc -l)
if [[ "${TIMEZONE_MATCHED_COUNT}" -ne 1 ]]; then
TIMEZONE="UTC"
fi
@@ -143,6 +148,7 @@ function init_env() {
echo "========================================"
}
# shellcheck disable=SC2034
function init_env_db() {
DB_TYPE="POSTGRESQL"

View File

@@ -1,5 +0,0 @@
FROM uleenucks/powershell
RUN pwsh -c "Install-Module -Name AzureRM.NetCore"
# Import-Module -Name AzureRM
ENTRYPOINT [ "pwsh" ]

View File

@@ -1,24 +0,0 @@
FROM debian:bullseye-slim
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"
RUN apt-get update && apt-get install -y -q --no-install-recommends \
curl \
ca-certificates \
apt-transport-https \
gnupg2
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod bullseye main" > /etc/apt/sources.list.d/microsoft.list
RUN apt-get update && apt-get install -y -q --no-install-recommends \
powershell \
&& apt-get purge -y -q \
ca-certificates \
curl \
apt-transport-https \
gnupg2 \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT [ "/usr/bin/pwsh" ]

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

24
shellcheck.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
set -e
set -o pipefail
ERRORS=()
# find all executables and run `shellcheck`
for f in $(find . -type f -not -iwholename '*.git*' -not -name "Dockerfile" | sort -u); do
if file "$f" | grep --quiet shell; then
{
shellcheck "$f" && echo "[OK]: sucessfully linted $f"
} || {
# add to errors
ERRORS+=("$f")
}
fi
done
if [ ${#ERRORS[@]} -eq 0 ]; then
echo "No errors, hooray"
else
echo "These files failed shellcheck: ${ERRORS[*]}"
exit 1
fi

View File

@@ -5,8 +5,8 @@ set -o pipefail
# this is kind of an expensive check, so let's not do this twice if we
# are running more than one validate bundlescript
VALIDATE_REPO='https://github.com/uleenucks/dockerfiles.git'
VALIDATE_BRANCH='master'
VALIDATE_REPO='https://gitea.uleenucks.de/uleenucks/dockerfiles.git'
VALIDATE_BRANCH='main'
VALIDATE_HEAD="$(git rev-parse --verify HEAD)"
@@ -25,6 +25,7 @@ validate_diff() {
# get the dockerfiles changed
IFS=$'\n'
# shellcheck disable=SC2207
files=( $(validate_diff --name-only -- '*Dockerfile') )
unset IFS

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18
FROM alpine:latest
LABEL maintainer.name="Uwe Hermann"\
maintainer.email="uh@uleenucks.de"

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck source=/dev/null
. /app/includes.sh
function clear_dir() {
@@ -25,8 +26,7 @@ function backup_init() {
function backup_db_postgresql() {
echo "backup vaultwarden postgresql database"
pg_dump -Fc -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -d "${POSTGRES_DB}" -U "${POSTGRES_USER}" -f "${BACKUP_FILE_DB_POSTGRESQL}"
if [[ $? != 0 ]]; then
if ! pg_dump -Fc -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -d "${POSTGRES_DB}" -U "${POSTGRES_USER}" -f "${BACKUP_FILE_DB_POSTGRESQL}" ; then
echo "backup vaultwarden postgresql database failed"
exit 1
@@ -46,8 +46,10 @@ function backup_config() {
function backup_rsakey() {
echo "backup vaultwarden rsakey"
local FIND_RSAKEY=$(find "${DATA_RSAKEY_DIRNAME}" -name "${DATA_RSAKEY_BASENAME}*" | xargs -I {} basename {})
local FIND_RSAKEY_COUNT=$(echo "${FIND_RSAKEY}" | wc -l)
local FIND_RSAKEY
FIND_RSAKEY=$(find "${DATA_RSAKEY_DIRNAME}" -name "${DATA_RSAKEY_BASENAME}*" -exec basename {} +)
local FIND_RSAKEY_COUNT
FIND_RSAKEY_COUNT=$(echo "${FIND_RSAKEY}" | wc -l)
if [[ "${FIND_RSAKEY_COUNT}" -gt 0 ]]; then
echo "${FIND_RSAKEY}" | tar -c -C "${DATA_RSAKEY_DIRNAME}" -f "${BACKUP_FILE_RSAKEY}" -T -

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck source=/dev/null
. /app/includes.sh
# restore
@@ -14,7 +15,8 @@ if [[ "$1" == "restore" ]]; then
fi
function configure_cron() {
local FIND_CRON_COUNT="$(grep -c 'backup.sh' "${CRON_CONFIG_FILE}" 2> /dev/null)"
local FIND_CRON_COUNT
FIND_CRON_COUNT="$(grep -c 'backup.sh' "${CRON_CONFIG_FILE}" 2> /dev/null)"
if [[ "${FIND_CRON_COUNT}" -eq 0 ]]; then
echo "${CRON} bash /app/backup.sh" >> "${CRON_CONFIG_FILE}"
fi

View File

@@ -1,5 +1,6 @@
#!/bin/bash
# shellcheck disable=SC2034
ENV_FILE="/.env"
CRON_CONFIG_FILE="${HOME}/crontabs"
BACKUP_DIR="/backups/tmp"
@@ -35,6 +36,7 @@ function check_dir_exist() {
# Arguments:
# None
########################################
# shellcheck disable=SC2153
function configure_postgresql() {
echo "${POSTGRES_HOST}:${POSTGRES_PORT}:${POSTGRES_DB}:${POSTGRES_USER}:${POSTGRES_PASSWORD}" > ~/.pgpass
chmod 0600 ~/.pgpass
@@ -49,11 +51,12 @@ function configure_postgresql() {
# Reference:
# https://gist.github.com/judy2k/7656bfe3b322d669ef75364a46327836#gistcomment-3632918
########################################
# shellcheck source=/dev/null
function export_env_file() {
if [[ -f "${ENV_FILE}" ]]; then
echo "find \"${ENV_FILE}\" file and export variables"
set -a
source <(cat "${ENV_FILE}" | sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/DOTENV_\1=\2/')
source <(sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/DOTENV_\1=\2/' "${ENV_FILE}")
set +a
fi
}
@@ -124,7 +127,8 @@ function init_env() {
# TIMEZONE
get_env TIMEZONE
local TIMEZONE_MATCHED_COUNT=$(ls "/usr/share/zoneinfo/${TIMEZONE}" 2> /dev/null | wc -l)
local TIMEZONE_MATCHED_COUNT
TIMEZONE_MATCHED_COUNT=$(find "/usr/share/zoneinfo" -type f -iname "${TIMEZONE}" 2> /dev/null | wc -l)
if [[ "${TIMEZONE_MATCHED_COUNT}" -ne 1 ]]; then
TIMEZONE="UTC"
fi