Compare commits

...

246 Commits

Author SHA1 Message Date
2c66d6c165 try gitea action
All checks were successful
/ build (push) Successful in 40s
2024-08-02 21:03:54 +02:00
cd025a9291 try gitea action
All checks were successful
/ build (push) Successful in 2m10s
2024-08-02 20:58:47 +02:00
4f5ff56f9e try gitea action
All checks were successful
/ build (push) Successful in 1m26s
2024-08-02 19:41:37 +02:00
728da376f7 try gitea action
Some checks failed
/ build (push) Has been cancelled
2024-08-02 19:40:39 +02:00
e87401928e try gitea action
All checks were successful
/ build (push) Successful in 34s
2024-08-01 22:39:14 +02:00
aa84e6e182 try gitea action
All checks were successful
/ build (push) Successful in 32s
2024-08-01 22:38:16 +02:00
d2085e2305 try gitea action
Some checks failed
/ build (push) Failing after 17s
2024-08-01 22:36:07 +02:00
7fefb3d53b try gitea action
All checks were successful
/ build (push) Successful in 15s
2024-08-01 22:21:08 +02:00
2304d88224 try gitea action
All checks were successful
/ build (push) Successful in 36s
2024-08-01 22:15:39 +02:00
2c3c115517 try gitea action
All checks were successful
/ build (push) Successful in 37s
2024-08-01 22:13:57 +02:00
64191136a2 try gitea action
Some checks failed
/ build (push) Failing after 18s
2024-08-01 22:08:38 +02:00
2798b4f3bd try gitea action
Some checks failed
/ build (push) Failing after 3s
2024-08-01 21:40:52 +02:00
5d4bfe05de try gitea action
Some checks failed
/ build (push) Failing after 3s
2024-08-01 21:36:54 +02:00
e8daa92fba try gitea action
Some checks failed
/ build (push) Failing after 3s
2024-08-01 21:32:56 +02:00
f3317ba2ac try gitea action
Some checks failed
/ build (push) Failing after 4s
2024-08-01 21:27:09 +02:00
ed89f99265 try gitea action
Some checks failed
/ build (push) Failing after 2s
2024-08-01 21:26:24 +02:00
278a4e57e9 try gitea action
Some checks failed
/ build (push) Failing after 2s
2024-08-01 21:25:07 +02:00
6e4c44e746 try gitea action
Some checks failed
/ build (push) Failing after 4s
2024-08-01 21:22:49 +02:00
933d29d395 try gitea action
All checks were successful
/ build (push) Successful in 16s
/ deploy (push) Successful in 51s
2024-07-31 22:32:33 +02:00
6a15af8e82 try gitea action
All checks were successful
/ build (push) Successful in 15s
/ deploy (push) Has been skipped
2024-07-31 22:29:29 +02:00
c2c3763976 try gitea action
All checks were successful
/ build (push) Successful in 16s
/ deploy (push) Has been skipped
2024-07-31 22:25:52 +02:00
bafbda6a6f try gitea action
All checks were successful
/ build (push) Successful in 16s
/ deploy (push) Has been skipped
2024-07-31 22:19:32 +02:00
b4f6b8cc98 try gitea action
All checks were successful
/ build (push) Successful in 15s
/ deploy (push) Successful in 42s
2024-07-31 22:17:57 +02:00
22a456e8b0 try gitea action
All checks were successful
/ build (push) Successful in 15s
2024-07-31 22:10:12 +02:00
a4dcae26c2 try gitea action
Some checks failed
/ deploy (push) Has been skipped
/ build (push) Failing after 21s
2024-07-31 22:07:20 +02:00
4b19c14aae try gitea action
Some checks failed
/ deploy (push) Failing after 9s
/ build (push) Successful in 13s
2024-07-31 21:58:25 +02:00
94485bdb36 try gitea action
All checks were successful
/ build (push) Successful in 1m2s
2024-07-30 22:20:56 +02:00
1137607c76 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog
All checks were successful
/ build (push) Successful in 34s
2024-07-30 22:13:12 +02:00
a5654cc14d try gitea action 2024-07-30 22:13:07 +02:00
94ea21a73f bump to 1.0.201 [ci skip] 2024-07-30 20:10:38 +00:00
5bd92dc914 try gitea action
Some checks failed
/ build (push) Failing after 38s
2024-07-30 22:06:51 +02:00
17e2cb3f0a try gitea action
All checks were successful
/ build (push) Successful in 38s
2024-07-30 21:40:33 +02:00
00f14787d3 try gitea action
Some checks failed
/ build (push) Failing after 19s
2024-07-30 21:35:22 +02:00
a50ceadff2 try gitea action
All checks were successful
/ build (push) Successful in 33s
2024-07-30 21:32:53 +02:00
518bb37bfe try gitea action
Some checks failed
/ build (push) Failing after 18s
2024-07-30 21:28:37 +02:00
598e5996ea try gitea action
Some checks failed
/ build (push) Has been cancelled
2024-07-30 21:28:21 +02:00
c2ae40c859 try gitea action
Some checks failed
/ build (push) Failing after 31s
2024-07-30 21:25:38 +02:00
0d6e5d6e5e try gitea action
All checks were successful
/ build (push) Successful in 15s
2024-07-30 21:22:33 +02:00
1216493667 try gitea action
All checks were successful
/ build (push) Successful in 15s
2024-07-30 21:21:46 +02:00
44c643d9d4 try gitea action
All checks were successful
/ build (push) Successful in 1m20s
2024-07-30 21:19:53 +02:00
2f73fc3dd1 try gitea action
Some checks failed
/ build (push) Failing after 2m56s
2024-07-30 21:13:55 +02:00
c10960326f try gitea action
Some checks failed
/ build (push) Failing after 1m47s
2024-07-30 21:10:56 +02:00
b893e539b3 try gitea action
Some checks failed
/ build (push) Failing after 1m24s
2024-07-30 21:08:48 +02:00
234c4f8500 try gitea action
Some checks failed
/ build (push) Failing after 1m23s
2024-07-30 21:06:06 +02:00
124841452e try gitea action
Some checks failed
/ build (push) Failing after 2m58s
2024-07-30 21:02:26 +02:00
ec2f1b96d2 try gitea action
Some checks failed
/ build (push) Failing after 18s
2024-07-30 20:53:30 +02:00
37e9c90b1b try gitea action
Some checks failed
/ build (push) Failing after 19s
2024-07-30 20:21:30 +02:00
e49c37d92c try gitea action
Some checks failed
/ build (push) Failing after 19s
2024-07-30 20:19:19 +02:00
c0beda72c8 try gitea action
Some checks failed
/ build (push) Failing after 18s
2024-07-30 20:17:49 +02:00
9f13ebfe5e try gitea action
Some checks failed
/ build (push) Failing after 50s
2024-07-30 20:15:40 +02:00
edfa564b04 try gitea action
Some checks failed
/ build (push) Failing after 18s
2024-07-30 20:13:28 +02:00
52c19aff99 try gitea action
Some checks failed
/ build (push) Failing after 44s
2024-07-30 20:01:41 +02:00
6bd545062b try gitea action
All checks were successful
/ build (push) Successful in 14s
2024-07-30 19:37:06 +02:00
5de35478b9 try gitea action
All checks were successful
/ build (push) Successful in 1m18s
2024-07-30 19:35:33 +02:00
e68313b5d4 try gitea action
All checks were successful
/ build (push) Successful in 1m18s
2024-07-30 19:33:52 +02:00
530cf8bac7 try gitea action
All checks were successful
/ build (push) Successful in 1m17s
2024-07-30 19:32:13 +02:00
62939c50b9 try gitea action
Some checks failed
/ build (push) Failing after 37s
2024-07-30 19:26:49 +02:00
d503e7c9fb try gitea action
All checks were successful
/ build (push) Successful in 1m17s
2024-07-30 19:19:51 +02:00
41112b725d try gitea action
All checks were successful
/ build (push) Successful in 1m16s
2024-07-30 19:17:56 +02:00
b3b922eb73 try gitea action
Some checks failed
/ build (push) Failing after 16s
2024-07-30 19:16:30 +02:00
77114a7684 try gitea action
All checks were successful
/ build (push) Successful in 6s
2024-07-30 19:07:07 +02:00
7b752648f2 try gitea action
All checks were successful
/ Explore-Gitea-Actions (push) Successful in 7s
2024-07-30 19:06:00 +02:00
af6d0b2640 try gitea action
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 7s
2024-07-30 19:05:16 +02:00
5fe53742cf try gitea action
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
2024-07-30 19:03:03 +02:00
59d5812ef4 try gitea action
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 38s
2024-07-30 19:01:54 +02:00
3099ef273f try gitea action
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 38s
2024-07-30 18:46:54 +02:00
f7f493e007 bump to 1.0.200 [ci skip] 2024-06-16 16:42:21 +00:00
a05dbbbe93 woodpecker 2024-06-16 17:17:28 +02:00
fa6da5c600 woodpecker 2024-06-16 17:16:46 +02:00
11b9ef8b59 woodpecker
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 17:08:08 +02:00
cc81f4b020 woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 17:02:12 +02:00
43a8afeaa7 woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 16:54:48 +02:00
97355aaecb woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 16:32:57 +02:00
0c602dbd2f woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/manual/woodpecker Pipeline was successful
2024-06-16 15:57:28 +02:00
451695b861 woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 15:56:39 +02:00
1d7af0506d woodpecker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-06-16 15:52:49 +02:00
eeb112557a bump to 1.0.199 [ci skip] 2024-06-09 11:38:10 +00:00
c92cc3655b test 2024-06-09 13:35:56 +02:00
e145ec2e51 test 2024-06-09 13:35:51 +02:00
f596ad54ef bump to 1.0.198 [ci skip] 2024-06-07 18:52:42 +00:00
cf41ae8e4c up ver 2024-06-07 20:49:37 +02:00
105cb0de40 bump to 1.0.197 [ci skip] 2024-05-27 15:27:27 +00:00
52443678bc bump to 1.0.196 [ci skip] 2024-05-25 10:39:55 +00:00
0100eb545e Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-05-25 12:37:16 +02:00
d6e39155d3 use set_list 2024-05-25 12:37:11 +02:00
0afa52c595 bump to 1.0.195 [ci skip] 2024-05-19 20:25:32 +00:00
6a5f2e45cd Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-05-19 22:24:21 +02:00
3712ad0fc4 add real pp 2024-05-19 22:24:17 +02:00
c2328e0df1 bump to 1.0.194 [ci skip] 2024-05-19 15:17:43 +00:00
ac238c9d2e bump to 1.0.193 [ci skip] 2024-05-19 14:48:48 +00:00
62641ed7f8 bump to 1.0.192 [ci skip] 2024-05-19 14:47:37 +00:00
7d61056d6b put badge 2024-05-19 16:42:00 +02:00
43a1d8f914 bump to 1.0.191 [ci skip] 2024-05-15 21:08:21 +00:00
185bbe8b29 add traefik crds 2024-05-15 23:05:57 +02:00
bfd1d1ca03 bump to 1.0.190 [ci skip] 2024-05-13 19:09:25 +00:00
58f9034236 Merge branch 'main' of gitea.okami101.io:adr1enbe4udou1n/blog 2024-05-13 21:06:43 +02:00
6be7706196 up flux v2.3 2024-05-13 21:06:28 +02:00
052815301b bump to 1.0.189 [ci skip] 2024-05-07 19:47:51 +00:00
b0ba21d08d bump to 1.0.188 [ci skip] 2024-04-30 18:34:12 +00:00
ba99a5be09 up traefik v3 2024-04-30 20:32:23 +02:00
f837c8b71b bump to 1.0.187 [ci skip] 2024-04-22 19:22:59 +00:00
dc145a1b4c Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-22 21:17:45 +02:00
650cb92129 loki single binary mode 2024-04-22 21:17:42 +02:00
f0cfc765b1 bump to 1.0.186 [ci skip] 2024-04-18 17:37:38 +00:00
68847d422f Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-18 19:35:30 +02:00
365301d2b6 up theme 2024-04-18 19:35:09 +02:00
88cb4929f9 bump to 1.0.185 [ci skip] 2024-04-18 17:30:29 +00:00
ef30d9fb96 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-18 19:28:46 +02:00
56660d32ba up 2024-04-18 19:28:41 +02:00
6057606a2d bump to 1.0.184 [ci skip] 2024-04-14 10:01:58 +00:00
6e727ac414 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 12:00:55 +02:00
9bc67ea68c up helm vers 2024-04-14 12:00:52 +02:00
ac15d5e4f1 bump to 1.0.183 [ci skip] 2024-04-14 09:56:56 +00:00
43ab62c469 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 11:55:27 +02:00
f943e015ef up helm vers 2024-04-14 11:55:24 +02:00
d8e9b029a0 bump to 1.0.182 [ci skip] 2024-04-14 09:39:54 +00:00
e8584452b0 Merge branches 'main' and 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 11:38:39 +02:00
b97c2c28f7 upgrade to loki v3 2024-04-14 11:38:35 +02:00
ac5d72ebea bump to 1.0.181 [ci skip] 2024-04-14 09:18:59 +00:00
2dfb5944e4 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 11:17:09 +02:00
6c48b0b87c up helm vers 2024-04-14 11:17:05 +02:00
0457a5a46d bump to 1.0.180 [ci skip] 2024-04-14 08:46:36 +00:00
b663158503 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 10:45:39 +02:00
e15002e8bb cleanup 2024-04-14 10:45:35 +02:00
1f8a8cdc9c bump to 1.0.179 [ci skip] 2024-04-14 08:34:34 +00:00
8809f02868 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 10:32:48 +02:00
b1a9642bc4 cleanup 2024-04-14 10:32:45 +02:00
49a984f19a bump to 1.0.178 [ci skip] 2024-04-14 08:24:35 +00:00
b495d5022b Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 10:22:55 +02:00
a454792968 fix labels 2024-04-14 10:22:52 +02:00
1f9e6ab47f bump to 1.0.177 [ci skip] 2024-04-14 08:21:54 +00:00
13aa16f516 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 10:20:08 +02:00
f92b11eb34 fix labels 2024-04-14 10:20:05 +02:00
673dae791a bump to 1.0.176 [ci skip] 2024-04-13 23:25:25 +00:00
fb38f7f3d2 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 01:24:02 +02:00
4a8928e9f6 up vers 2024-04-14 01:23:58 +02:00
6ac2a94dd7 bump to 1.0.175 [ci skip] 2024-04-13 22:53:18 +00:00
593c8950b0 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-14 00:51:22 +02:00
3f5ea711ac up vers 2024-04-14 00:51:19 +02:00
6a641bf71b bump to 1.0.174 [ci skip] 2024-04-13 18:42:05 +00:00
7ed9b159d9 up traefik version 2024-04-13 20:40:40 +02:00
1e0382079f bump to 1.0.173 [ci skip] 2024-04-13 18:30:56 +00:00
b31e739c3f Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-13 20:29:11 +02:00
31bcc0c105 fix system upgrade 2024-04-13 20:29:08 +02:00
d369834ef0 bump to 1.0.172 [ci skip] 2024-04-13 16:57:06 +00:00
87f13fc687 change smtp host scw 2024-04-13 18:55:22 +02:00
9a8c5ce0ab bump to 1.0.171 [ci skip] 2024-04-13 12:20:56 +00:00
c1d32438f7 bump to 1.0.170 [ci skip] 2024-04-03 19:45:02 +00:00
a17c02f82f ccl 2024-04-03 21:43:02 +02:00
fa41a363fa bump to 1.0.169 [ci skip] 2024-04-03 19:27:53 +00:00
06abcda4f3 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-03 21:26:22 +02:00
18a8bd7760 fix loki bottleneck 2024-04-03 21:26:19 +02:00
0abb839ae3 bump to 1.0.168 [ci skip] 2024-04-03 19:24:37 +00:00
49137f84f2 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-03 21:22:44 +02:00
189d883c55 fix loki bottleneck 2024-04-03 21:22:40 +02:00
759c916022 bump to 1.0.167 [ci skip] 2024-04-03 19:08:16 +00:00
58f02c4e9f Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-04-03 21:06:34 +02:00
ffc6628d58 fix worker 2024-04-03 21:06:30 +02:00
f882cef83e bump to 1.0.166 [ci skip] 2024-04-02 21:25:43 +00:00
b227e5bf75 give all config for DIY 2024-04-02 23:24:38 +02:00
3608909712 bump to 1.0.165 [ci skip] 2024-04-01 20:49:16 +00:00
eb9ac1e28e rewrite conclusion 2024-04-01 22:47:50 +02:00
7cad7ec1bf fix finally symfony frankenphp 2024-04-01 21:57:47 +02:00
17fb386b50 bump to 1.0.164 [ci skip] 2024-03-31 15:50:02 +00:00
99d315698d Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-03-31 17:48:51 +02:00
c70128aa0a add octane 2024-03-31 17:48:46 +02:00
0ece9082b2 bump to 1.0.163 [ci skip] 2024-03-30 18:26:49 +00:00
08562ed2e3 bump to 1.0.162 [ci skip] 2024-03-23 14:30:48 +00:00
a06e1642ad Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-03-23 15:25:46 +01:00
c8c7df99fd change laravel openapi pkg 2024-03-23 15:25:41 +01:00
96c5b9d779 bump to 1.0.161 [ci skip] 2024-03-17 15:34:54 +00:00
a089b9d047 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-03-17 16:33:24 +01:00
5a877d009c up theme 2024-03-17 16:33:22 +01:00
ca8aa110b0 bump to 1.0.160 [ci skip] 2024-03-17 15:26:48 +00:00
b18e070571 bump to 1.0.159 [ci skip] 2024-03-17 15:25:54 +00:00
696fe88e58 up theme
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful
2024-03-17 16:20:37 +01:00
308eaf1d2c laravel 11 2024-03-17 16:20:09 +01:00
aed1c6b3e7 bump to 1.0.158 [ci skip] 2024-02-24 15:15:48 +00:00
ae99e271e7 up theme 2024-02-24 16:10:59 +01:00
1e3b2fa6cc bump to 1.0.157 [ci skip] 2024-01-28 10:42:06 +00:00
a2c801ef38 Merge branch 'main' of int.okami101.io:adr1enbe4udou1n/blog 2024-01-28 11:40:39 +01:00
3708d2e63f cl 2024-01-28 11:40:36 +01:00
f12ae7e262 bump to 1.0.156 [ci skip] 2024-01-28 10:38:26 +00:00
ba21e75995 bump to 1.0.155 [ci skip] 2024-01-28 10:37:24 +00:00
281ed1ccb3 redirect 2024-01-28 11:36:38 +01:00
6ac7775750 Merge branch 'main' of int.okami101.io:adr1enbe4udou1n/blog 2024-01-28 11:36:00 +01:00
7cec61b2f3 redirect 2024-01-28 11:35:56 +01:00
87878d1347 bump to 1.0.154 [ci skip] 2024-01-28 10:29:02 +00:00
f31598f640 cleanup 2024-01-28 11:28:16 +01:00
2387612618 bump to 1.0.153 [ci skip] 2024-01-28 10:15:51 +00:00
07af978507 Merge branch 'main' of int.okami101.io:adr1enbe4udou1n/blog 2024-01-28 11:08:05 +01:00
0e985070c7 int vcs 2024-01-28 11:08:01 +01:00
e67aa74eb2 bump to 1.0.152 [ci skip] 2024-01-28 10:06:25 +00:00
36da769f0e int vcs 2024-01-28 11:00:58 +01:00
99a632a891 bump to 1.0.151 [ci skip] 2024-01-09 20:02:38 +00:00
c0b84228f0 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-01-09 21:01:24 +01:00
d7e8336db0 fix toleration 2024-01-09 21:01:21 +01:00
7f28697c08 bump to 1.0.150 [ci skip] 2024-01-07 12:07:30 +00:00
e9bbdd223d Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-01-07 13:06:23 +01:00
b1ee5d0d1f n8n cache 2024-01-07 13:06:16 +01:00
2f5baad20e bump to 1.0.149 [ci skip] 2024-01-07 11:54:42 +00:00
fdcb305cb4 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-01-07 12:53:17 +01:00
1596f0670c fix namespace apiversion 2024-01-07 12:53:11 +01:00
db71e8014d bump to 1.0.148 [ci skip] 2024-01-03 18:06:35 +00:00
a9b40dde4d Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-01-03 19:05:40 +01:00
d9945977d1 fix tls-sans 2024-01-03 19:05:30 +01:00
96ef1da81c bump to 1.0.147 [ci skip] 2024-01-01 13:38:34 +00:00
f577a65e70 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2024-01-01 14:37:28 +01:00
6d3c345e75 add redirects support 2024-01-01 14:37:24 +01:00
4ecb854b2a bump to 1.0.146 [ci skip] 2023-12-28 20:19:59 +00:00
5902732262 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-28 21:19:08 +01:00
850cb48a32 update remarks 2023-12-28 21:19:05 +01:00
47948f2a87 bump to 1.0.145 [ci skip] 2023-12-28 19:48:16 +00:00
b06875819f Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-28 20:47:15 +01:00
1c4d080839 automatized bench data 2023-12-28 20:47:11 +01:00
9a6f7553c0 bump to 1.0.144 [ci skip] 2023-12-28 11:42:02 +00:00
141b2b1ac5 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-28 12:41:02 +01:00
82f975d893 fix k3s inputs 2023-12-28 12:40:58 +01:00
469553a994 bump to 1.0.143 [ci skip] 2023-12-27 16:46:02 +00:00
ac43d0d07a Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 17:45:20 +01:00
84729e0130 typo 2023-12-27 17:45:18 +01:00
3c58db60fd bump to 1.0.142 [ci skip] 2023-12-27 16:03:01 +00:00
10afc1a61d Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 17:01:58 +01:00
25c6d94a3d wip 2023-12-27 17:01:55 +01:00
b9d5b47581 bump to 1.0.141 [ci skip] 2023-12-27 15:51:45 +00:00
b033d5c785 bump to 1.0.140 [ci skip] 2023-12-27 15:51:29 +00:00
92afcff6f9 fix scenario 1 php result 2023-12-27 16:50:49 +01:00
88d7007036 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 16:50:34 +01:00
24949710b7 fix scenario 1 php result 2023-12-27 16:50:31 +01:00
3f4868216b bump to 1.0.139 [ci skip] 2023-12-27 14:55:31 +00:00
9070fe442f Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 15:54:41 +01:00
7ef13c90b9 remove article 2023-12-27 15:54:39 +01:00
1df70303eb bump to 1.0.138 [ci skip] 2023-12-27 14:33:38 +00:00
d00420efb0 Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 15:32:47 +01:00
2331c93cf5 label 2023-12-27 15:32:44 +01:00
5cf088c911 bump to 1.0.137 [ci skip] 2023-12-27 14:24:55 +00:00
3ddc9cf9a6 label 2023-12-27 15:23:59 +01:00
375aec9175 bump to 1.0.136 [ci skip] 2023-12-27 14:19:56 +00:00
25c8c4c5ee Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-27 15:19:05 +01:00
8ba3b480eb fix doctrine mysql testNow it performs slower than with MySQL 2023-12-27 15:19:03 +01:00
16cf5cadd7 bump to 1.0.135 [ci skip] 2023-12-27 00:03:49 +00:00
633813b5b4 Update content/posts/22-web-api-benchmarks-2024/index.md 2023-12-27 00:02:58 +00:00
b1d8d32ba8 bump to 1.0.134 [ci skip] 2023-12-26 18:21:53 +00:00
d6115ba7db Merge branch 'main' of ssh.okami101.io:adr1enbe4udou1n/blog 2023-12-26 19:20:57 +01:00
d6e9170fb9 fix chart resp 2023-12-26 19:20:54 +01:00
a82f292bd7 bump to 1.0.133 [ci skip] 2023-12-26 18:03:42 +00:00
26 changed files with 2599 additions and 999 deletions

View File

@ -0,0 +1,27 @@
on:
push:
branches:
- main
tags:
- "v*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: peaceiris/actions-hugo@v3
with:
extended: true
- uses: actions/cache@v4
with:
path: resources
key: ${{ runner.os }}-resources
- name: Build
run: hugo --minify
- uses: https://gitea.okami101.io/okami101/docker-action@main
if: startsWith(github.ref, 'refs/tags/v')
with:
password: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
node_modules
resources
resources
public

View File

@ -1,3 +1,7 @@
FROM nginx:alpine
RUN sed -i 's/^\(.*\)http {/\1http {\n map_hash_bucket_size 128;\n/' /etc/nginx/nginx.conf
COPY nginx/ /etc/nginx/conf.d/
COPY public /usr/share/nginx/html

View File

@ -52,9 +52,9 @@ Some notes of this blog :
* Kubernetes infrastructure completely managed with [`Terraform`](https://github.com/adr1enbe4udou1n/terraform-kube-okami) 🌴
* **HA** setup using **Hetzner LB**, targeting 2 worker nodes, with **Postgres cluster** (managed on same Kubernetes cluster)
* `Traefik` as reverse proxy, configured for HA 🛣️
* Source code on my own [`Gitea`](https://gitea.okami101.io/adr1enbe4udou1n/blog)
* Compiled by my own [`Concourse`](https://concourse.okami101.io) instance as a final docker container image into self-hosted private registry (**CI** 🏗️)
* Automatically deployed by `Flux CD v2` to the Kubernetes cluster from [central Git source](https://gitea.okami101.io/okami101/flux-source/src/branch/main/okami/deploy-blog.yaml) (**CD** 🚀)
* Source code on my own [`Gitea`](https://about.gitea.com/)
* Compiled by my own [`Concourse`](https://concourse-ci.org/) instance as a final docker container image into self-hosted private registry (**CI** 🏗️)
* Automatically deployed by `Flux CD v2` to the Kubernetes cluster (**CD** 🚀)
* Tracked with [`Umami`](https://umami.is/) 📈
All above tools are 💯% self-hosted ! Just sadly missing my own Homelab with Proxmox because no fiber 😿

View File

@ -1,4 +1,4 @@
[`Laravel 10`](https://laravel.com/) implementation on `PHP 8.3` with extensive usage of last attributes support. The particularity of this framework is to give you almost of all you need for quickly develop any complex application. So minimal external packages need.
[`Laravel 11`](https://laravel.com/) implementation on `PHP 8.3` with extensive usage of last attributes support. The particularity of this framework is to give you almost of all you need for quickly develop any complex application. So minimal external packages need.
I obviously made usage of **Eloquent** as a very expressive **Active Record** ORM, and the Laravel factories system based on [PHP Faker](https://fakerphp.github.io/) is already perfect for dummy data generator.
@ -8,7 +8,7 @@ Main packages involved :
* [PHP JWT](https://github.com/lcobucci/jwt) as JWT implementation, with proper integration to Laravel using custom guard
* [Laravel Routes Attribute](https://github.com/spatie/laravel-route-attributes) for Laravel routing that leverage on last PHP 8 attributes feature
* [Laravel OpenAPI](https://github.com/vyuldashev/laravel-openapi) that also use PHP 8 attributes for API documentation
* [Laravel OpenAPI](https://github.com/DarkaOnLine/L5-Swagger) that also use PHP 8 attributes for API documentation
* [Laravel IDE Helper](https://github.com/barryvdh/laravel-ide-helper) for proper IDE integration, perfectly suited for **VS Code** with [Intelephense](https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client) extension
* [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) as formatter with Laravel style guide
* [Larastan](https://github.com/nunomaduro/larastan), a Laravel wrapper of [PHPStan](https://phpstan.org/), as advanced code static analyzer

View File

@ -12,7 +12,5 @@ Main purpose of this projects is to have personal extensive API training on mult
* Proper seeder / faker for quick starting with filled DB
* Separated RW / RO database connections for maximizing performance between these 2 contexts
* Proper suited QA + production Dockerfile
* Complete CI on Kubernetes with [Concourse](https://concourse.okami101.io/)
* Complete CI on Kubernetes with [Concourse CI](https://concourse-ci.org/)
* Automatic CD on Kubernetes using [Flux](https://fluxcd.io/)
See complete production deployment manifests [here](https://gitea.okami101.io/okami101/flux-source/src/branch/main/conduit), allowing **GitOps** management.

View File

@ -39,7 +39,7 @@ For better fluidity, here is the expected list of variables you'll need to prepa
| `s3_bucket` | kuberocks | |
| `s3_access_key` | xxx | |
| `s3_secret_key` | xxx | |
| `smtp_host` | smtp-relay.brevo.com | |
| `smtp_host` | smtp.tem.scw.cloud | |
| `smtp_port` | 587 | |
| `smtp_user` | <me@kube.rocks> | |
| `smtp_password` | xxx | |
@ -178,7 +178,7 @@ module "hcloud_kube" {
]
control_planes_custom_config = {
tls-sans = ["cp.kube.rocks"]
tls-san = ["cp.kube.rocks"]
disable = ["traefik"]
etcd-s3 = true
etcd-s3-endpoint = "s3.fr-par.scw.cloud"
@ -292,7 +292,7 @@ I also prefer increase the eviction threshold to 250Mi, in order to avoid OS OOM
```tf
control_planes_custom_config = {
tls-sans = ["cp.kube.rocks"]
tls-san = ["cp.kube.rocks"]
disable = ["traefik"]
etcd-s3 = true
etcd-s3-endpoint = "s3.fr-par.scw.cloud"
@ -405,10 +405,10 @@ As input variables, you have the choice to use environment variables or separate
```tf
hcloud_token = "xxx"
my_public_ssh_keys = [
my_ip_addresses = [
"82.82.82.82/32"
]
my_ip_addresses = [
my_public_ssh_keys = [
"ssh-ed25519 xxx"
]
s3_access_key = "xxx"

View File

@ -34,8 +34,8 @@ Let's begin with automatic upgrades management.
Before we go next steps, we need to install critical monitoring CRDs that will be used by many components for monitoring, a subject that will be covered later.
```sh
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.67.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.67.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
ka https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.73.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml --server-side
ka https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.73.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml --server-side
```
### Automatic reboot
@ -47,7 +47,7 @@ When OS kernel is upgraded, the system needs to be rebooted to apply it. This is
```tf
resource "helm_release" "kubereboot" {
chart = "kured"
version = "5.1.0"
version = "5.4.5"
repository = "https://kubereboot.github.io/charts"
name = "kured"
@ -103,8 +103,10 @@ Don't push yourself get fully 100% GitOps everywhere if the remedy give far more
{{< /alert >}}
```sh
k create ns system-upgrade
# installing system-upgrade-controller
ka https://github.com/rancher/system-upgrade-controller/releases/latest/download/system-upgrade-controller.yaml
ka https://github.com/rancher/system-upgrade-controller/releases/latest/download/crd.yaml
# checking system-upgrade-controller deployment status
kg deploy -n system-upgrade
```
@ -195,11 +197,17 @@ You may set the same channel as previous step for hcloud cluster creation.
## External access
Now it's time to expose our cluster to the outside world. We'll use Traefik as ingress controller and cert-manager for SSL certificates management.
Now it's time to expose our cluster to the outside world. We'll use Traefik v3 as ingress controller and cert-manager for SSL certificates management.
### Traefik
Apply following file:
Apply CRDs:
```sh
kak https://github.com/traefik/traefik-helm-chart/traefik/crds/ --server-side
```
Then apply following:
{{< highlight host="demo-kube-k3s" file="traefik.tf" >}}
@ -216,25 +224,31 @@ resource "kubernetes_namespace_v1" "traefik" {
resource "helm_release" "traefik" {
chart = "traefik"
version = "24.0.0"
version = "28.0.0"
repository = "https://traefik.github.io/charts"
name = "traefik"
namespace = kubernetes_namespace_v1.traefik.metadata[0].name
set {
name = "ports.web.redirectTo"
name = "ports.web.redirectTo.port"
value = "websecure"
}
set {
set_list {
name = "ports.websecure.forwardedHeaders.trustedIPs"
value = "{127.0.0.1/32,10.0.0.0/8}"
value = [
"127.0.0.1/32",
"10.0.0.0/8"
]
}
set {
set_list {
name = "ports.websecure.proxyProtocol.trustedIPs"
value = "{127.0.0.1/32,10.0.0.0/8}"
value = [
"127.0.0.1/32",
"10.0.0.0/8"
]
}
set {
@ -261,7 +275,7 @@ resource "helm_release" "traefik" {
{{< /highlight >}}
`ports.web.redirectTo` will redirect all HTTP traffic to HTTPS.
`ports.web.redirectTo.port` will redirect all HTTP traffic to HTTPS.
`forwardedHeaders` and `proxyProtocol` will allow Traefik to get real IP of clients.
@ -333,7 +347,7 @@ One applied, use `hcloud load-balancer list` to get the public IP of the load ba
First we need to install cert-manager for proper distributed SSL management. First install CRDs manually.
```sh
ka https://github.com/cert-manager/cert-manager/releases/download/v1.12.3/cert-manager.crds.yaml
ka https://github.com/cert-manager/cert-manager/releases/download/v1.15.0/cert-manager.crds.yaml
```
Then apply the following Terraform code.
@ -349,7 +363,7 @@ resource "kubernetes_namespace_v1" "cert_manager" {
resource "helm_release" "cert_manager" {
chart = "cert-manager"
version = "v1.12.3"
version = "v1.15.0"
repository = "https://charts.jetstack.io"
name = "cert-manager"
@ -554,9 +568,9 @@ Then apply the following Terraform code:
resource "helm_release" "traefik" {
//...
set {
set_list {
name = "ingressRoute.dashboard.entryPoints"
value = "{websecure}"
value = ["websecure"]
}
set {
@ -611,7 +625,7 @@ resource "kubernetes_manifest" "traefik_middleware_ip" {
namespace = kubernetes_namespace_v1.traefik.metadata[0].name
}
spec = {
ipWhiteList = {
ipAllowList = {
sourceRange = var.whitelisted_ips
}
}
@ -640,7 +654,7 @@ resource "kubernetes_manifest" "traefik_middleware_ip" {
manifest = {
//...
spec = {
ipWhiteList = {
ipAllowList = {
sourceRange = var.whitelisted_ips
ipStrategy = {
depth = 1
@ -676,14 +690,14 @@ locals {
resource "helm_release" "traefik" {
//...
set {
set_list {
name = "ports.websecure.forwardedHeaders.trustedIPs"
value = "{${join(",", local.trusted_ips)}}"
value = local.trusted_ips
}
set {
set_list {
name = "ports.websecure.proxyProtocol.trustedIPs"
value = "{${join(",", local.trusted_ips)}}"
value = local.trusted_ips
}
}
```

View File

@ -200,7 +200,7 @@ resource "kubernetes_secret_v1" "longhorn_backup_credential" {
resource "helm_release" "longhorn" {
chart = "longhorn"
version = "1.5.1"
version = "1.6.1"
repository = "https://charts.longhorn.io"
name = "longhorn"
@ -358,7 +358,7 @@ Type this commands for both storage nodes or use Longhorn UI from **Node** tab:
```sh
# get the default-disk-xxx identifier
kg nodes.longhorn.io okami-storage-01 -n longhorn-system -o yaml
kg nodes.longhorn.io kube-storage-0x -n longhorn-system -o yaml
# patch main default-disk-xxx as fast storage
k patch nodes.longhorn.io kube-storage-0x -n longhorn-system --type=merge --patch '{"spec": {"disks": {"default-disk-xxx": {"tags": ["fast"]}}}}'
# add a new schedulable disk by adding HC_Volume_XXXXXXXX path
@ -477,7 +477,7 @@ resource "kubernetes_secret_v1" "postgresql_auth" {
resource "helm_release" "postgresql" {
chart = "postgresql"
version = var.chart_postgresql_version
version = "15.2.5"
repository = "https://charts.bitnami.com/bitnami"
name = "postgresql"
@ -508,11 +508,6 @@ resource "helm_release" "postgresql" {
value = "replication"
}
set {
name = "architecture"
value = "replication"
}
set {
name = "metrics.enabled"
value = "true"
@ -587,8 +582,8 @@ Now check that PostgreSQL pods are correctly running on storage nodes with `kgpo
```txt
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
postgresql-primary-0 2/2 Running 0 151m 10.42.5.253 okami-storage-01 <none> <none>
postgresql-read-0 2/2 Running 0 152m 10.42.2.216 okami-storage-02 <none> <none>
postgresql-primary-0 2/2 Running 0 151m 10.42.5.253 kube-storage-01 <none> <none>
postgresql-read-0 2/2 Running 0 152m 10.42.2.216 kube-storage-02 <none> <none>
```
And that's it, we have replicated PostgreSQL cluster ready to use ! Go to longhorn UI and be sure that 2 volumes are created on fast disk under **Volume** menu.
@ -641,7 +636,7 @@ resource "kubernetes_secret_v1" "redis_auth" {
resource "helm_release" "redis" {
chart = "redis"
version = "18.0.2"
version = "19.1.0"
repository = "https://charts.bitnami.com/bitnami"
name = "redis"

View File

@ -125,7 +125,8 @@ provider "flux" {
}
resource "flux_bootstrap_git" "this" {
path = "clusters/demo"
path = "clusters/demo"
embedded_manifests = true
components_extra = [
"image-reflector-controller",
@ -152,7 +153,7 @@ Open `demo-kube-flux` project and create helm deployment for sealed secret.
```yaml
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: sealed-secrets
@ -161,7 +162,7 @@ spec:
interval: 1h0m0s
url: https://bitnami-labs.github.io/sealed-secrets
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: sealed-secrets
@ -352,7 +353,7 @@ Let's try some app that require a bit more configuration and real database conne
{{< highlight host="demo-kube-flux" file="clusters/demo/n8n/deploy-n8n.yaml" >}}
```yaml
apiVersion: apps/v1
apiVersion: v1
kind: Namespace
metadata:
name: n8n
@ -423,10 +424,14 @@ spec:
volumeMounts:
- name: n8n-data
mountPath: /home/node/.n8n
- name: n8n-cache
mountPath: /home/node/.cache
volumes:
- name: n8n-data
persistentVolumeClaim:
claimName: n8n-data
- name: n8n-cache
emptyDir: {}
---
apiVersion: v1
kind: PersistentVolumeClaim
@ -517,7 +522,7 @@ Let's try a final candidate with NocoDB, an Airtable-like generator for Postgres
{{< highlight host="demo-kube-flux" file="clusters/demo/nocodb/deploy-nocodb.yaml" >}}
```yaml
apiVersion: apps/v1
apiVersion: v1
kind: Namespace
metadata:
name: nocodb

View File

@ -69,7 +69,7 @@ resource "kubernetes_namespace_v1" "monitoring" {
resource "helm_release" "kube_prometheus_stack" {
chart = "kube-prometheus-stack"
version = "49.2.0"
version = "58.1.0"
repository = "https://prometheus-community.github.io/helm-charts"
name = "kube-prometheus-stack"
@ -112,12 +112,12 @@ resource "helm_release" "kube_prometheus_stack" {
set {
name = "prometheus.prometheusSpec.tolerations[0].key"
value = "node-role.kubernetes.io/storage"
value = "node-role.kubernetes.io/monitor"
}
set {
name = "prometheus.prometheusSpec.tolerations[0].operator"
value = "Exists"
name = "prometheus.prometheusSpec.tolerations[0].effect"
value = "NoSchedule"
}
set {
@ -296,7 +296,7 @@ Create `grafana` database through pgAdmin with same user and according `grafana_
{{< highlight host="demo-kube-k3s" file="terraform.tfvars" >}}
```tf
smtp_host = "smtp.mailgun.org"
smtp_host = "smtp.tem.scw.cloud"
smtp_port = "587"
smtp_user = "xxx"
smtp_password = "xxx"
@ -311,7 +311,7 @@ Apply next configuration to Terraform project:
```tf
resource "helm_release" "grafana" {
chart = "grafana"
version = "6.58.9"
version = "7.3.8"
repository = "https://grafana.github.io/helm-charts"
name = "grafana"
@ -528,11 +528,11 @@ As above config applies only at cluster initialization, you may change directly
Last but not least, we need to add a logging stack. The most popular one is [Elastic Stack](https://www.elastic.co/elastic-stack), but it's very resource intensive. A more lightweight option is to use [Loki](https://grafana.com/oss/loki/), also part of Grafana Labs.
In order to work on scalable mode, we need to have a S3 storage backend. We will reuse same S3 compatible storage as longhorn backup here, but it's recommended to use a separate bucket and credentials.
We need to have a S3 storage backend for long term storage. We will reuse same S3 compatible storage as longhorn backup here, but it's recommended to use a separate bucket and credentials.
### Loki
Let's install it now:
Let's install it on single binary mode:
{{< highlight host="demo-kube-k3s" file="logging.tf" >}}
@ -545,7 +545,7 @@ resource "kubernetes_namespace_v1" "logging" {
resource "helm_release" "loki" {
chart = "loki"
version = "5.15.0"
version = "6.2.0"
repository = "https://grafana.github.io/helm-charts"
name = "loki"
@ -561,6 +561,11 @@ resource "helm_release" "loki" {
value = "true"
}
set {
name = "loki.compactor.delete_request_store"
value = "s3"
}
set {
name = "loki.limits_config.retention_period"
value = "24h"
@ -606,35 +611,74 @@ resource "helm_release" "loki" {
value = "1"
}
set {
name = "loki.schemaConfig.configs[0].from"
value = "2024-01-01"
}
set {
name = "loki.schemaConfig.configs[0].store"
value = "tsdb"
}
set {
name = "loki.schemaConfig.configs[0].object_store"
value = "s3"
}
set {
name = "loki.schemaConfig.configs[0].schema"
value = "v13"
}
set {
name = "loki.schemaConfig.configs[0].index.prefix"
value = "index_"
}
set {
name = "loki.schemaConfig.configs[0].index.period"
value = "24h"
}
set {
name = "deploymentMode"
value = "SingleBinary"
}
set {
name = "read.replicas"
value = "1"
value = "0"
}
set {
name = "backend.replicas"
value = "1"
value = "0"
}
set {
name = "write.replicas"
value = "2"
value = "0"
}
set {
name = "write.tolerations[0].key"
value = "node-role.kubernetes.io/storage"
name = "singleBinary.replicas"
value = "1"
}
set {
name = "write.tolerations[0].effect"
name = "singleBinary.tolerations[0].key"
value = "node-role.kubernetes.io/monitor"
}
set {
name = "singleBinary.tolerations[0].effect"
value = "NoSchedule"
}
set {
name = "write.nodeSelector.node-role\\.kubernetes\\.io/storage"
type = "string"
value = "true"
name = "singleBinary.nodeSelector.node\\.kubernetes\\.io/server-usage"
value = "monitor"
}
set {
@ -661,6 +705,21 @@ resource "helm_release" "loki" {
name = "test.enabled"
value = "false"
}
set {
name = "chunksCache.enabled"
value = "false"
}
set {
name = "resultsCache.enabled"
value = "false"
}
set {
name = "lokiCanary.enabled"
value = "false"
}
}
```
@ -677,7 +736,7 @@ Okay so Loki is running but not fed, for that we'll deploy [Promtail](https://gr
```tf
resource "helm_release" "promtail" {
chart = "promtail"
version = "6.15.0"
version = "6.15.5"
repository = "https://grafana.github.io/helm-charts"
name = "promtail"

View File

@ -73,7 +73,7 @@ resource "kubernetes_namespace_v1" "gitea" {
resource "helm_release" "gitea" {
chart = "gitea"
version = "9.2.0"
version = "10.1.4"
repository = "https://dl.gitea.io/charts"
name = "gitea"
@ -359,7 +359,7 @@ resource "helm_release" "traefik" {
}
set {
name = "ports.ssh.expose"
name = "ports.ssh.expose.default"
value = "true"
}
@ -510,7 +510,7 @@ resource "kubernetes_namespace_v1" "concourse" {
resource "helm_release" "concourse" {
chart = "concourse"
version = "17.2.0"
version = "17.3.1"
repository = "https://concourse-charts.storage.googleapis.com"
name = "concourse"

View File

@ -432,7 +432,7 @@ Let's define the image update automation task for main Flux repository:
{{< highlight host="demo-kube-flux" file="clusters/demo/flux-add-ons/image-update-automation.yaml" >}}
```yaml
apiVersion: image.toolkit.fluxcd.io/v1beta1
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageUpdateAutomation
metadata:
name: flux-system
@ -465,7 +465,7 @@ Now we need to tell Image Reflector how to scan the repository, as well as the a
{{< highlight host="demo-kube-flux" file="clusters/demo/kuberocks/images-demo.yaml" >}}
```yaml
apiVersion: image.toolkit.fluxcd.io/v1beta1
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageRepository
metadata:
name: demo
@ -476,7 +476,7 @@ spec:
secretRef:
name: dockerconfigjson
---
apiVersion: image.toolkit.fluxcd.io/v1beta1
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImagePolicy
metadata:
name: demo

View File

@ -273,7 +273,7 @@ resource "kubernetes_namespace_v1" "tracing" {
resource "helm_release" "tempo" {
chart = "tempo"
version = "1.5.1"
version = "1.7.2"
repository = "https://grafana.github.io/helm-charts"
name = "tempo"

View File

@ -24,12 +24,12 @@ Create dedicated database for SonarQube same as usual, then we can use flux for
{{< highlight host="demo-kube-flux" file="clusters/demo/sonarqube/deploy-sonarqube.yaml" >}}
```yaml
apiVersion: apps/v1
apiVersion: v1
kind: Namespace
metadata:
name: sonarqube
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: sonarqube
@ -38,7 +38,7 @@ spec:
interval: 1h0m0s
url: https://SonarSource.github.io/helm-chart-sonarqube
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: sonarqube

View File

@ -880,7 +880,7 @@ After push all CI should build correctly. Then the image policy for auto update:
{{< highlight host="demo-kube-flux" file="clusters/demo/kuberocks/images-demo-ui.yaml" >}}
```yml
apiVersion: image.toolkit.fluxcd.io/v1beta1
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageRepository
metadata:
name: demo-ui
@ -891,7 +891,7 @@ spec:
secretRef:
name: dockerconfigjson
---
apiVersion: image.toolkit.fluxcd.io/v1beta1
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImagePolicy
metadata:
name: demo-ui
@ -931,7 +931,7 @@ spec:
- name: dockerconfigjson
containers:
- name: front
image: gitea.okami101.io/kuberocks/demo-ui:latest # {"$imagepolicy": "flux-system:image-demo-ui"}
image: gitea.kube.rocks/kuberocks/demo-ui:latest # {"$imagepolicy": "flux-system:image-demo-ui"}
ports:
- containerPort: 80
---

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,64 @@ description: "Some boring stuf."
layout: "simple"
---
## What We Collect and Receive
## Introduction
In order for us to provide you the best possible experience on our websites, we need to collect and process certain information. Depending on your use of the Services, that may include:
Welcome to **Okami101**. We are committed to protecting your privacy. This Privacy Policy explains how we handle any personal data that may be collected when you visit our blog site. While we do not collect user information for tracking or marketing purposes, we use certain third-party services to ensure the security, functionality, and analytics of our site. This policy outlines our approach to privacy and how we ensure compliance with the General Data Protection Regulation (GDPR).
* **Usage data** — when you visit our site, we will store: the website from which you visited us from, the parts of our site you visit, the date and duration of your visit, your anonymized IP address, information from the device (device type, operating system, screen resolution, language, country you are located in, and web browser type) you used during your visit, and more. We process this usage data in Umami for statistical purposes, to improve our site and to recognize and stop any misuse.
## Data Collection
### Personal Data
We do not collect, store, or process any personal data from our users for marketing or tracking purposes. However, we do process user IP addresses strictly for security purposes and use anonymized analytics data.
### IP Addresses
We use IP addresses solely for the purpose of preventing attacks and ensuring the security of our site. This is done through CrowdSec, a participative security solution that offers crowdsourced protection against malicious IPs. Your IP address may be processed to identify and mitigate potential security threats.
### Cookies
Our blog does not use cookies to track or identify visitors for our purposes. However, Cloudflare may use cookies to deliver its services effectively. These cookies are essential for security purposes and to improve site performance. Additionally, Umami, our analytics provider, does not use cookies and ensures user privacy.
### Log Files
We do not maintain log files of visitors to our site. However, Cloudflare and CrowdSec may collect log data for security and operational purposes, including IP addresses, browser types, and other technical information.
## Third-Party Services
### Cloudflare
We use Cloudflare for web security and performance optimization. Cloudflare may collect and process certain data as part of its service. This data processing is governed by Cloudflare's Privacy Policy, which can be found [here](https://www.cloudflare.com/privacypolicy/).
### Crowdsec
We use CrowdSec to enhance our site's security by protecting against malicious IP addresses. CrowdSec processes IP addresses to identify and mitigate security threats. The data handling practices of CrowdSec are governed by CrowdSec's Privacy Policy, which can be found [here](https://crowdsec.net/privacy-policy).
### Umami
We use Umami, a fully GDPR-compliant Google Analytics alternative, to gather anonymized analytics data about our site's usage. Umami does not use cookies or collect personally identifiable information. The data collected by Umami helps us understand site traffic and usage patterns without compromising user privacy. For more information, you can refer to Umami's privacy policy [here](https://umami.is/docs/).
### giscus
We use giscus, a GitHub-based commenting system, to manage comments on our blog posts. When you post a comment using giscus, you are interacting with GitHub's platform. This means your comment data, including your GitHub username and any other information you choose to share, is processed by GitHub. The data handling practices for giscus are governed by GitHub's Privacy Policy, which can be found [here](https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement).
## Third-Party Links
Our blog may contain links to other websites. Please be aware that we are not responsible for the privacy practices of other sites. We encourage you to read the privacy statements of each website that collects personal information.
## Data Protection Rights
Since we only process personal data (IP addresses) for security purposes and use anonymized analytics, your data protection rights are limited in this context. However, for any concerns or questions about data processed by Cloudflare, Crowdsec, giscus (GitHub), or Umami, please refer to their respective privacy policies.
## Contact Us
If you have any questions or concerns about our privacy practices or this policy, please contact us at <adrien@okami101.io>.
## Changes to This Privacy Policy
We may update our Privacy Policy from time to time. Any changes will be posted on this page with an updated effective date. We encourage you to review this policy periodically for any changes.
Effective Date: **19/05/2024**
---
By using our blog, you agree to the terms of this Privacy Policy. Thank you for visiting **Okami101**!

View File

@ -6,13 +6,13 @@
apps:
- name: vue-ts
title: Vue 3 TS Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/vue-ts-realworld-example-app
repo: adr1enbe4udou1n/vue-ts-realworld-example-app
ci: conduit-vue-ts
demo: https://vuetsrealworld.okami101.io
color: green
- name: react-ts
title: React TS Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/react-ts-realworld-example-app
repo: adr1enbe4udou1n/react-ts-realworld-example-app
ci: conduit-react-ts
demo: https://reacttsrealworld.okami101.io
color: blue
@ -22,41 +22,41 @@
apps:
- name: aspnet-core
title: ASP.NET Core Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/aspnetcore-realworld-example-app
repo: adr1enbe4udou1n/aspnetcore-realworld-example-app
ci: conduit-aspnet-core
demo: https://aspnetcorerealworld.okami101.io/api
- name: spring-boot
title: Spring Boot Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/spring-boot-realworld-example-app
repo: adr1enbe4udou1n/spring-boot-realworld-example-app
ci: conduit-spring-boot
demo: https://springbootrealworld.okami101.io/api
color: green
- name: symfony
title: Symfony Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/symfony-realworld-example-app
repo: adr1enbe4udou1n/symfony-realworld-example-app
ci: conduit-symfony
demo: https://symfonyrealworld.okami101.io/api
color: black
- name: laravel
title: Laravel Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/laravel-realworld-example-app
repo: adr1enbe4udou1n/laravel-realworld-example-app
ci: conduit-laravel
demo: https://laravelrealworld.okami101.io/api
color: orange
- name: nestjs
title: NestJS Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/nestjs-realworld-example-app
repo: adr1enbe4udou1n/nestjs-realworld-example-app
ci: conduit-nestjs
demo: https://nestjsrealworld.okami101.io/api
color: red
- name: fastapi
title: FastAPI Realworld
repo: https://gitea.okami101.io/adr1enbe4udou1n/fastapi-realworld-example-app
repo: adr1enbe4udou1n/fastapi-realworld-example-app
ci: conduit-fastapi
demo: https://fastapirealworld.okami101.io/api
color: teal
@ -69,12 +69,12 @@
- name: vuetify-admin
title: Vuetify Admin
date: 11/2020
repo: https://github.com/okami101/vuetify-admin
repo: okami101/vuetify-admin
demo: https://va-demo.okami101.io/
docs: https://www.okami101.io/vuetify-admin
- name: laravel-rad-stack
title: Laravel RAD Stack
date: 10/2021
repo: https://github.com/adr1enbe4udou1n/laravel-rad-stack
repo: adr1enbe4udou1n/laravel-rad-stack
demo: https://laravel-rad-stack.okami101.io/

View File

@ -76,9 +76,8 @@
<div class="flex items-center gap-4">
<img src="/kube.png" width="30" height="30" alt="Kubernetes"
title="Run on K3s over Hetzner Cloud" />
<a href="https://concourse.okami101.io/teams/main/pipelines/okami-blog" target="_blank">
<img src="https://concourse.okami101.io/api/v1/teams/main/pipelines/okami-blog/badge" alt="Blog build status" />
<img src="https://concourse.okami101.io/api/v1/teams/main/pipelines/okami-blog/badge" alt="build" />
</a>
</div>
<div class="hidden lg:block">

View File

@ -1,6 +1,6 @@
<div class="chart">
{{ $id := delimit (shuffle (seq 1 9)) "" }}
<canvas id="{{ $id }}"></canvas>
<canvas id="{{ $id }}" height="350"></canvas>
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", (event) => {
const ctx = document.getElementById("{{ $id }}");
@ -8,6 +8,7 @@
{{ if eq (.Get "type") "timeseries" }}
type: 'line',
options: {
maintainAspectRatio: false,
plugins: {
title: {
display: true,
@ -23,13 +24,15 @@
},
}
},
{{ if .Get "max" }}
y: {
stacked: {{ .Get "stacked" }},
{{ if .Get "stacked" }}
stacked: {{ .Get "stacked" }},
{{ end }}
beginAtZero: true,
{{ if .Get "max" }}
suggestedMax: {{ .Get "max" }},
{{ end }}
}
{{ end }}
},
},
data: {

View File

@ -49,11 +49,7 @@
{{ readFile (print "data/works/" .name ".md") | markdownify }}
</div>
<div class="flex justify-center gap-4">
{{ partial "button.html" (dict "text" (partial "icon.html" "github") "href" .repo "color" .color) }}
{{ if .ci }}
{{ partial "button.html" (dict "text" (partial "icon.html" "bug") "href" (print
"https://concourse.okami101.io/teams/main/pipelines/" .ci) "color" .color) }}
{{ end }}
{{ partial "button.html" (dict "text" (partial "icon.html" "github") "href" (print "https://github.com/" .repo) "color" .color) }}
{{ if .demo }}
{{ partial "button.html" (dict "text" "Demo" "href" .demo "color" .color) }}
{{ end }}

16
nginx/default.conf Normal file
View File

@ -0,0 +1,16 @@
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
if ($new_uri != "") {
rewrite ^(.*)$ $new_uri permanent;
}
}
error_page 404 /404.html;
}

3
nginx/redirects.conf Normal file
View File

@ -0,0 +1,3 @@
map $request_uri $new_uri {
/2023/12/a-2024-benchmark-of-main-web-apis-frameworks/ /2023/12/a-2024-benchmark-of-main-web-api-frameworks/;
}

View File

@ -1 +0,0 @@
1.0.132