Compare commits

...

842 Commits

Author SHA1 Message Date
qq815776412
754425670e feat(settings-server): upgrade docker node version to 24.0.2 & upgrade nestjs version to 11.1.1 2025-05-19 21:29:50 +08:00
eball
d8a69a146c otel: bump the go auto-instrumentation image version (#1328)
otel: change the go auto-instrumentation image version
2025-05-19 19:30:36 +08:00
eball
7c134bbb1d authelia: replace redis client pool of session provider (#1323)
* authelia: replace redis client pool of session provider

* Update auth_backend_deploy.yaml

* Update auth_backend_deploy.yaml

* feat: add instrumentation to system-server

* Update systemserver_deploy.yaml
2025-05-17 01:20:19 +08:00
aby913
39dbad4ec9 backup-server: queue optimization, backup and restore process adjust (#1326)
backup-server: queue optimization, backup and restore process adjustments
2025-05-16 23:57:26 +08:00
eball
6c1539d65b otel: add arm64 version ubuntu nginx (#1324)
* otel: nginx auto instrumentation config reload bug fix

* otel: add arm64 version ubuntu nginx

* fix: change image tag
2025-05-16 21:00:41 +08:00
hysyeah
a3038f1edb app-service: improve api performance by use k8s informer (#1322) 2025-05-16 00:19:35 +08:00
huaiyuan
a2c7b16382 desktop: improve data refresh logic by socket after network reconnection (#1321)
fix(desktop): improve data refresh logic by socket after network reconnection
2025-05-16 00:19:09 +08:00
huaiyuan
ac598f66fc studio: show installation status in header bar (#1319)
fix(studio): show installation status in header bar
2025-05-16 00:18:18 +08:00
dkeven
6a8cb38940 fix(chart): remove redundant format symbol in template (#1317) 2025-05-15 21:23:29 +08:00
eball
1c1e7dfdf4 otel: nginx instrumentation arm64 version build bug (#1315)
* otel: nginx auto instrumentation config reload bug fix

* otel: nginx instrumentation arm64 version build bug
2025-05-15 21:22:56 +08:00
aby913
21199571ca backup-server: improve url check for snapshots retrieval and restore … (#1316)
backup-server: improve url check for snapshots retrieval and restore interface
2025-05-15 01:47:57 +08:00
dkeven
f5da7693a9 feat(installer): get rid of redundant subcommand and scripts; collect dmesg logs (#1314) 2025-05-14 17:48:26 +08:00
Peng Peng
668fb373bc feat: Let notification server can get users information (#1313) 2025-05-14 17:47:10 +08:00
eball
99a20ca23f otel: nginx auto instrumentation config reload bug fix (#1312) 2025-05-13 00:31:22 +08:00
wiy
07478c96d6 fix(settings): the problem of failure to create sub-account (#1311) 2025-05-13 00:30:52 +08:00
hysyeah
6d6f5c248c bfl: fix sub user delete issue (#1310) 2025-05-12 20:27:36 +08:00
simon
8f3507fd86 knowledge&download: fix twitter download failure & update larepass download (#1308)
knowledge
2025-05-11 10:53:21 +08:00
aby913
108c1392e3 backup-server: restore bug fix, sdk supports backup from file list (#1307)
fix: restore bug fix, sdk supports backup from file list
2025-05-10 00:42:32 +08:00
hysyeah
5cd37a477d app-service: fix pull image progress (#1306) 2025-05-10 00:41:59 +08:00
wiy
b137f96517 settings & files: update settings mirror manager & backup, files support backup (#1304)
feat: update settings support mirror manager
feat: update files support backup
feat: update settings backup
2025-05-10 00:41:10 +08:00
eball
dc4d5666d8 olares: fix go instrumentation resource limit typo (#1302)
* olares: fix go instrumentation resource limit typo

* fix: change to resourceRequirements

* fix: upgrade base image
2025-05-10 00:40:46 +08:00
dkeven
b3cb83de9f olaresd: manage registries and images in containerd (#1303)
* olaresd: manage registries and images in containerd

* feat: supports backing up from a list file

---------

Co-authored-by: aby913 <aby913@163.com>
2025-05-09 22:21:23 +08:00
aby913
862cfc4625 backup-server: fix external binding, improve message pushing (#1301) 2025-05-08 23:53:39 +08:00
eball
fa5ca7432c olares: add otel instrumentation image to manifest (#1300)
* olares: add otel instrumentation image to manifest

* fix: add autoinstrumentation-apache-httpd arm64 image

* fix: add go instrumentation resource limit

* fix: change instrumentation protocol

* fix: add add sampler ratio env
2025-05-08 23:53:12 +08:00
hysyeah
427bff8b45 ks,node_exporter,installer: add some metrics (#1299) 2025-05-08 23:52:56 +08:00
aby913
b8a3c66003 backup-server: check disk free space, api optimization (#1298)
backup-server: check disk free space
2025-05-08 01:19:37 +08:00
eball
92bf361698 olaresd: steamheadless sunshine mdns proxy (#1297) 2025-05-08 01:19:18 +08:00
wiy
de1cee0000 feat(settings): Encrypted transmission of login password (#1296) 2025-05-08 01:18:56 +08:00
eball
cac1978874 olares: add otel instrumentations (#1295)
* olares: add otel instrumentations

* fix: duplicate container name

* fix: move instrumentation before bfl installation

* feat: change openresty base image to ubuntu

---------

Co-authored-by: liuyu <liuy102@gmail.com>
2025-05-08 01:18:24 +08:00
aby913
1083b417b1 backup-server: support external directory (#1294) 2025-05-06 23:50:26 +08:00
dkeven
d9824a7deb feat: upgrade hami and use original libvgpu.so (#1293) 2025-05-06 23:50:02 +08:00
hysyeah
0aa59ab731 feat(login & wizard): Encrypted transmission of login password (#1292) 2025-05-01 22:55:39 +08:00
simon
28edc29240 download&crawler: fix youtube download failure & crawler cache error (#1291)
ytdlp
2025-05-01 01:05:59 +08:00
dkeven
ef77bff611 feat(installer): md5 password 2025-04-30 15:04:26 +08:00
qq815776412
0667481fcf feat:login & wizard Encrypted transmission of login password 2025-04-30 14:40:12 +08:00
lovehunter9
e16ed5ea64 fix: add init container for files-server (#1288) 2025-04-29 23:47:10 +08:00
simon
93d1237a43 fix: change argo and sync run user (#1287)
permission
2025-04-29 20:01:08 +08:00
hysyeah
42ff86e0af studio-server: change cm push url (#1284) 2025-04-29 00:23:49 +08:00
simon
814dce3dec fix: argo archivelog and knowledge feed save bug (#1283)
knowledge v0.12.4
2025-04-28 18:17:20 +08:00
aby913
bfa43257ff backup-server: abnormal restoration state, get space cos stats failed (#1268) 2025-04-26 00:33:19 +08:00
berg
e1c9e9ad20 fix(vault&wise): some known issues (#1281)
* feat: update wise & vault & files new version to v1.3.54

* feat: update 1.3.55

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-04-26 00:09:10 +08:00
hysyeah
1b62d2ae31 lldap,bfl,app-service: user event publish;subnet mask minus 1 (#1277) 2025-04-26 00:07:35 +08:00
berg
51f32c993f profile, market: modify default theme configuration (#1276)
fix: modify default theme configuration
2025-04-26 00:07:05 +08:00
huaiyuan
59749c8b7f desktop: fix iframe hide when zooming the window (#1270) 2025-04-26 00:06:10 +08:00
dkeven
23816103c9 fix: correct minVersion in version.hint to follow semver spec (#1269) 2025-04-26 00:05:44 +08:00
0x7fffff92
62489d4ba4 feat: Tailscale for admin user uses tun interface (#1267)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-04-25 10:58:04 +08:00
huaiyuan
e0803fa6e0 studio: create files err in application page (#1266)
fix: create files err in application page
2025-04-25 10:57:39 +08:00
dkeven
366b81cf46 fix: create crd in helm post-install hook (#1263) 2025-04-25 10:56:18 +08:00
lovehunter9
f7b21a42c7 fix: files-server rename and cut/paste of smb bugfix (#1261) 2025-04-24 15:37:23 +08:00
berg
62ad10d8d8 settings: update settings backup function (#1258)
feat: update settings backup function
2025-04-24 13:53:59 +08:00
huaiyuan
d9cef165ac files: notify message when user cancels upload (#1256) 2025-04-24 00:25:01 +08:00
aby913
7e4b82fff6 backup-server: snapshot progress notification blocking (#1255)
backup-server: snapshot progress notification blocking causing status abnormality
2025-04-24 00:24:34 +08:00
aby913
64c92e5103 fix: lldap usergroup sync, backup notify improve (#1253) 2025-04-23 21:45:27 +08:00
hysyeah
0b7da9bf7a fix: add studio server envoy timeout (#1250)
fix: add studio envoy timeout
2025-04-23 21:08:53 +08:00
eball
c1d5c4e98c olaresd: list more wifi access points (#1249)
* olaresd: list more wifi access points

* Update components
2025-04-23 21:05:58 +08:00
yyh
ae95f1e607 ControlHub: fix workloads operation layout (#1248)
fix(controlHub): fix workloads style disorder in small size
2025-04-22 23:51:06 +08:00
aby913
d772842f4b backup-server: add notification, improve api interface (#1246) 2025-04-22 23:50:01 +08:00
simon
8f7584f719 fix: knowledge feed edit and label save bug (#1245)
knowledge
2025-04-22 23:49:16 +08:00
eball
c0f8b391c6 olaresd: support mounting read-only samba share path (#1243) 2025-04-22 23:47:47 +08:00
dkeven
3ff2d30b48 feat(installer): collect more logs (#1240) 2025-04-22 20:55:03 +08:00
huaiyuan
0a8f0c558d files&files-server: add support mount SMB IP (#1238)
files-server: add support mount SMB IP
2025-04-22 20:54:18 +08:00
wiy
d59eb5856e fix: settings frontend add ACL port ui bug (#1237) 2025-04-22 20:53:55 +08:00
aby913
e90df6cd78 backup-server: fix backup to s3, improve api interface (#1235) 2025-04-22 11:10:10 +08:00
eball
04e3fcd71b olaresd: mark as mounted (#1234) 2025-04-21 21:01:48 +08:00
eball
e74726c5ec tapr: replace nxdomain with noerror (#1232) 2025-04-21 21:01:18 +08:00
eball
e6478aa77c otel: run collector as user 1000 (#1231) 2025-04-21 21:00:55 +08:00
berg
bba3083752 market: Update the error message when the user has insufficient resources during app preflight (#1229)
feat: market v0.3.10 release
2025-04-19 01:18:52 +08:00
aby913
5b6973a6ab backup-server: api interface enhancement (#1227) 2025-04-19 01:17:45 +08:00
huaiyuan
99185c4729 studio&controlHub: coding in olares by studio (#1225)
* studio&controlHub: coding in olares by studio

* feat: studio server image tag

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-04-19 01:16:44 +08:00
eball
bd631167f5 olaresd: allow mounting a subpath of the share point (#1223)
* olaresd: allow mounting a subpath of the share point

* Update components
2025-04-19 01:15:49 +08:00
aby913
8e3ddfb8af backup-server: resolved restoration from space and COS using backupUr… (#1222)
backup-server: resolved restoration from space and COS using backupUrl, enhanced API interface data format
2025-04-17 23:32:27 +08:00
simon
71ccfd34c6 fix(knowledge): recommend install and uninstall error (#1221)
knowledge v0.12.1
2025-04-17 23:31:55 +08:00
eball
54bd129c33 olaresd: list samba share names before mounting (#1218) 2025-04-17 23:30:29 +08:00
hysyeah
c4a88aea86 ks,Installer: node shell add lang env (#1216) 2025-04-16 23:57:20 +08:00
aby913
11aa89687c backup-server: restore params invalid, api response data format (#1215)
backup-server: restore snapshotId invalid, api response data format
2025-04-16 23:56:42 +08:00
simon
ac887e9201 fix(knowledge): redis addr error (#1214)
redis addr
2025-04-16 20:19:40 +08:00
aby913
e8aa4b3521 backup-server: backup loacal path invalid, api response data format (#1213) 2025-04-16 00:44:31 +08:00
simon
6f4a091380 fix(knowledge): argo archivelogs and knowledge service error (#1212)
* mr

* bug fix

* iarchivelogs
2025-04-15 18:06:24 +08:00
eball
939c9671b9 Update check.yaml 2025-04-15 16:05:07 +08:00
eball
a129ea79ca Update daily-lint-check.yaml 2025-04-15 15:51:20 +08:00
eball
ce40d04085 olares: lint errors in values.yaml (#1210)
* olares: lint errors in values.yaml

* remove empty lines

* fix: lint error in appservice_deploy.yaml

* fix: lint error in auth_backend_deploy.yaml

* fix: all lint errors

* fix: lint errors in backup_server.yaml

* fix: lint errors in citus_deployment.yaml

* fix: all lint errors

* fix: all lint errors

---------

Co-authored-by: liuyu <>
2025-04-15 13:18:07 +08:00
aby913
cddc5d1ea9 backup-server: fix backup total size (#1211) 2025-04-15 00:03:36 +08:00
huaiyuan
130bcb2a6a files: update Larepass new version to v1.3.50 (#1208) 2025-04-15 00:01:13 +08:00
Calvin W.
dbb52c5d67 docs: update Olares platform support info (#1207) 2025-04-15 00:00:35 +08:00
eball
c95c9fb9d2 olares: daily lint check all charts files (#1206)
Co-authored-by: liuyu <>
2025-04-14 19:04:11 +08:00
simon
6a686098bd fix(knowledge): db connect error (#1205)
* secret

* secret

* pg_password

* debug

* debug

* secret

* secret add hook

* knowledge
2025-04-14 14:58:12 +08:00
eball
6fb634f3fb olares: add lint check listing changed files scope (#1204)
* olares: add lint check listing changed files scope

* Update appservice_deploy.yaml

* Update check.yaml
2025-04-12 13:19:05 +08:00
simon
c19ee276dc feat: move argo,knowledge and download to os-system (#1198)
* move to os-system

* host path

* test

* debug

* debug

* debug

* debug

* debug

* argo add values

* debug

* debug

* debug

* debug

* remove keyFormat
2025-04-11 20:53:50 +08:00
wiy
76e1981816 fix(settings): network update cloudflare to frp error (#1203) 2025-04-11 00:20:19 +08:00
eball
bc319d8901 tapr: fix corefile updating bug (#1201) 2025-04-11 00:19:16 +08:00
eball
39e4663461 olaresd: add noserverino option to cifs mount (#1199) 2025-04-10 22:10:12 +08:00
eball
4efa2714f0 olares, app-service: fix hami gpu monitoring configuration bug (#1197)
* olares: fix hami gpu monitoring configuration bug

* app-service: underlay namespace labels modified

---------

Co-authored-by: liuyu <>
2025-04-10 20:58:09 +08:00
yyh
7be076b9a6 controlhub/studio: update dialog and fix studio deploy app (#1195)
fix(controlhub/studio): update dialog and fix studio deploy app
2025-04-09 23:19:03 +08:00
aby913
855e634fc5 backup-server: query page, pool with multi users (#1193) 2025-04-09 23:18:05 +08:00
eball
ffce1b6039 olares: hami monitoring api for dashboard (#1192)
* feat: hami monitoring api for dashboard

* fix: values bug

---------

Co-authored-by: liuyu <>
2025-04-09 23:17:38 +08:00
aby913
03fa1f0c88 backup-server: api adjustment, working pool integration (#1191)
backup-server: api adjustment, working pool integration and other improvements
2025-04-08 23:32:01 +08:00
yyh
2a6fed8875 studio: automatically refresh the workloads (#1190)
fix(studio): support automatic refresh of workload
2025-04-08 23:31:32 +08:00
eball
f8554e95dc tapr: ignore deleting the not exists namespace (#1188)
Co-authored-by: liuyu <>
2025-04-08 23:30:33 +08:00
eball
8094e65a2f tapr: add other query type response code (#1186)
fix: add other query type response code

Co-authored-by: liuyu <>
2025-04-08 23:29:51 +08:00
hysyeah
e5e235cc44 app-service: pull image with unpack;del cache dir by call files (#1184)
* app-service: pull image with unpack;del cache dir by call files

* fix: upate image service tag
2025-04-08 11:52:40 +08:00
eball
42f28ba28d olares: mark the market as cluster critical (#1183)
Co-authored-by: liuyu <>
2025-04-07 21:27:48 +08:00
aby913
7243ba8dc0 backup-server: fix bugs in api and worker management (#1179) 2025-04-07 10:53:55 +08:00
salt
013b67acf4 fix: fix cloud drive lock not released when some thread corrupted (#1178)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-04-07 10:53:20 +08:00
berg
00ce2f1183 wise: optimized partial copywriting (#1175)
feat: update wise v1.3.47
2025-04-03 18:00:34 +08:00
huaiyuan
41e6ba6ced studio: update version to v0.2.4 (#1172)
* studio: update version to v0.2.4

* fix: app cache,data dir

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-04-03 17:29:48 +08:00
wiy
bbbd748a63 feat: update files & wise new version to v1.3.46 (#1169) 2025-04-03 11:11:57 +08:00
huaiyuan
2d9f86d30e studio&studio server&app service: fix some bugs (#1167)
* studio,studio-service: bug fix

* studio: fix some bugs

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-04-03 11:11:04 +08:00
huaiyuan
c3908fbb09 desktop: update the display logic for delete icons in Lanchpad (#1163) 2025-04-03 11:09:06 +08:00
hysyeah
ea00dc1528 studio,studio-server: fix some bug (#1161) 2025-04-02 11:11:42 +08:00
berg
c04e8b508b market, app-service: Conflict Resolution, Dependency Check, and App Store Data Integration (#1159)
* feat: update market and app-service version

* fix: upate image tag

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-04-02 11:10:54 +08:00
eball
a1d9e179f4 authelia, notifications: send login msg to notification server from authelia (#1157)
Co-authored-by: liuyu <>
2025-04-01 23:03:29 +08:00
aby913
af26af85ba feat: supporting folder backup and restoration (#1155)
feat: backup-server refactoring
2025-04-01 21:17:39 +08:00
dkeven
452d7260d0 fix(installer): add MARKET_PROVIDER to global envs (#1151) 2025-04-01 21:16:13 +08:00
huaiyuan
936e4a3e36 devbox&devbox server&app server: Initialize Studio (#1143)
* devbox: refactor devbox

* feat: devbox nginx

* feat: upate devbox server tag

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-04-01 00:24:24 +08:00
wiy
832d9a3f28 feat(files-server & files & settings): update files frontend & files server version (#1149)
* fix: files external move folder bug

* fix: display google drive root error

* fix: settings frontend use default language error

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-04-01 00:06:07 +08:00
berg
932cc112b0 market: modify cs app to shared app (#1147)
feat: modify cs app to shared app
2025-04-01 00:04:54 +08:00
eball
2cc485b18d authelia: send user login related message to notification server via nats (#1140)
* feat: send user login related message to notification server via nats

* fix: nats configurations

---------

Co-authored-by: liuyu <>
2025-03-31 21:40:10 +08:00
eball
2a2a3cf695 feat: move notifications server to os-system (#1139)
* feat: move notifications server to os-system

* fix: modified nats request refs app name

* fix: bump notifications-api version to v1.12.0

* fix: remove notification api from system frontend

---------

Co-authored-by: liuyu <>
2025-03-31 16:44:52 +08:00
hysyeah
8e5736dcbc ks: fix a bug and add some log (#1138) 2025-03-29 00:49:38 +08:00
hysyeah
b910e15ed2 market,app-service: merge cs chart to one (#1137)
feat: merge cs chart to one
2025-03-29 00:49:02 +08:00
eball
64e211f090 l4-bfl-proxy, tapr, authelia: fix local domain solution bugs (#1134)
Co-authored-by: liuyu <>
2025-03-28 21:29:40 +08:00
aby913
a5a1956898 fix(installer): add cli command for querying supported backup regions (#1135)
* fix(installer): add cli command for querying supported backup regions

* fix: files-server jsonify message for status 500 (#1129)

fix: files-server jsonify message for 500

---------

Co-authored-by: lovehunter9 <39935488+lovehunter9@users.noreply.github.com>
2025-03-28 21:27:34 +08:00
hysyeah
10ecba5e74 installer,studio: feat move studio back to user space (#1131)
* feat: move studio back to user space

* feat: update permissions
2025-03-28 20:28:56 +08:00
lovehunter9
9a1b5a8e75 fix: files-server jsonify message for status 500 (#1129)
fix: files-server jsonify message for 500
2025-03-28 20:04:07 +08:00
dkeven
a4b46b9ec7 fix(installer): pass the correct coredns service ip (#1128)
* fix(installer): pass the correct coredns service ip

* fix: add privileges of configmap to component sys-event

* fix: update reverse proxy image

---------

Co-authored-by: liuyu <>
2025-03-28 16:02:14 +08:00
hysyeah
66585996b2 app-service: fix nil tailscale in update application (#1127)
Co-authored-by: eball <liuy102@hotmail.com>
2025-03-28 00:11:34 +08:00
dkeven
0c7b1d9d27 feat: support custom domain in both cloudflare and FRP tunnel (#1126)
* feat(bfl): support custom domain in both cloudflare and FRP tunnel

* feat(settings): update settings config third domain

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-03-27 23:17:28 +08:00
eball
67dd2f7e2e bfl, authelia, tapr: new solution for local domain (#1124)
* bfl, authelia, tapr: new solution for local domain

* feat: bump the components version

* feat: ts-routes env

* feat: adjust MagicDNS configuration

* feat(installer): inject coredns service ip to global envs

* feat: add terminus global envs for tailscale

* fix: tailscale envs

---------

Co-authored-by: liuyu <>
Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
Co-authored-by: dkeven <dkvvven@gmail.com>
2025-03-27 23:17:02 +08:00
simon
99e23b6411 feat(knowledge): update knowledge new version to v0.1.68 (#1125)
knowledge v0.1.68
2025-03-27 21:49:53 +08:00
salt
95b1b49dd1 fix: add metadata when return to frontend (#1122)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-03-27 11:13:15 +08:00
salt
88021287b3 fix: fix latest reconstruct awss3 error, mainly about repeat file or … (#1120)
fix: fix latest reconstruct awss3 error, mainly about repeat file or folder and delete error

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-03-27 11:12:15 +08:00
wiy
4f0587ea6f feat(files&wise&files-server): update files & wise new version to v1.3.44 (#1119)
* feat: files add awss3 features support which are left in the last version

* feat: update files support awss3

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-03-27 01:11:43 +08:00
wiy
8c77fa8e0c feat(settings): update settings support vpn config (#1117)
* feat: update settings support vpn config

* feat: tailscale subnet

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-03-27 01:10:44 +08:00
eball
4f64f7b2af tapr: persist kvrocks namespace config (#1116)
fix: persist kvrocks namespace config

Co-authored-by: liuyu <>
2025-03-27 01:09:58 +08:00
hysyeah
6878f4f4e6 app-service: fix upgrade values (#1114) 2025-03-26 21:26:22 +08:00
simon
688a10b637 knowledge: update knowledge to v0.1.67 (#1112)
knowledge v0.1.67
2025-03-26 21:25:33 +08:00
eball
15a9540879 authelia: fix cached redis session provider gc api (#1110)
Co-authored-by: liuyu <>
2025-03-26 21:24:58 +08:00
huaiyuan
cc9ae24140 desktop&login: add intent to support open file in files (#1107) 2025-03-26 01:03:35 +08:00
eball
4981f3c65a olares: uploading last chunk of a file got 504 timeout response (#1105)
Co-authored-by: liuyu <>
2025-03-26 01:02:58 +08:00
dkeven
2e3bbf991f fix(gpu): update libvgpu.so with more tolerant GLIBC requirements (#1104) 2025-03-25 15:45:16 +08:00
eball
708bd25a12 olaresd: change the command collect-logs to olares-cli (#1102) 2025-03-25 10:57:31 +08:00
salt
0139d96a25 feat: basically compelete reconstruct s3 (#1103)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-03-25 10:57:14 +08:00
wiy
6e8d04bf4f feat(Files&Vault): update files & vault to new version to v1.3.43 (#1100)
* feat: update files & vault to new version to v1.3.43

* files-server add awss3 support (with known bugs), permission relative and md5 check of uploader

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-03-22 01:40:53 +08:00
hysyeah
08293c71bc app-service: add download cdn url to helm values (#1098) 2025-03-22 01:39:22 +08:00
eball
ce89430594 olares: fix opentelemetry instrumentation config (#1097)
* olares: fix opentelemetry instrumentation config

* fix: comment out auto instrumentation temporarily

* fix: jaeger collector config

---------

Co-authored-by: liuyu <>
2025-03-22 01:38:59 +08:00
hysyeah
358cd71049 app-service: set upgrade job ttl to 30 days (#1095) 2025-03-21 14:59:56 +08:00
hysyeah
7cca14e288 ks: add pod metric route (#1094) 2025-03-20 17:26:00 +08:00
dkeven
f17a787624 feat(installer): add commands to get logs & start/stop Olares; optimize shutdown performance (#1092) 2025-03-20 01:17:26 +08:00
hysyeah
ef3c7c82cc lldap: change lldap db to postgresql (#1091)
* change lldap db to postgres

* fix: remove some image
2025-03-19 00:24:38 +08:00
eball
c9d25d1f74 olares: add system upgrading apps checking (#1090)
olares: add system upgrading files server checking

Co-authored-by: liuyu <>
2025-03-19 00:24:10 +08:00
dkeven
1ab027b9da feat(frp): add error logs (#1088) 2025-03-18 01:26:41 +08:00
eball
f3b481fbf2 olares: increase envoy idle timeout for files-frontend (#1087)
Co-authored-by: liuyu <>
2025-03-17 21:43:38 +08:00
lovehunter9
f1b8fa5aea feat: files permission relative (#1080) 2025-03-15 00:15:02 +08:00
berg
966ac1d605 wise, file: fixed the issue with resumablejs.js retrying to upload from 0 Merge duplicate upload tasks and wise filter optimize (#1083)
feat: update files and wise version
2025-03-14 23:06:22 +08:00
simon
9331be628b knowledge&download: update knowledge to v0.1.66, download-spider to v0.0.20 (#1082)
knowledge v0.1.66
2025-03-14 23:05:42 +08:00
hysyeah
ab6494049f app-service: revert hostpath chown 1000;remove handle model code (#1079) 2025-03-14 20:48:48 +08:00
wiy
4464dcf2b1 feat(settings): add entrance endpoint url & fix WebSocket keep-alive (#1075)
feat(settings): add entrance endpoint url & fix WebSocket keep-alive error
2025-03-14 00:04:39 +08:00
eball
e00a6ba27a l4-bfl-proxy: optimize l4 proxy gateway performance (#1073)
Co-authored-by: liuyu <>
2025-03-14 00:03:52 +08:00
eball
3a5b53fa57 olares: fix the opentelemetry annotations configuration bugs (#1072)
* olares: fix the opentelemetry annotations configuration bug

* fix: wrong annotation configurations

* fix: wrong annotation configurations

---------

Co-authored-by: liuyu <>
2025-03-14 00:02:56 +08:00
huaiyuan
e0a670628c desktop: request data when socket err or network offline (#1070) 2025-03-12 23:27:23 +08:00
aby913
7ced9702df feat(installer): support data backup, restore in olares-cli (#1069) 2025-03-12 23:26:58 +08:00
eball
09cb6075ad olares: use the pod locahost address as the infisical server address to the infisical sidecar (#1068)
Co-authored-by: liuyu <>
2025-03-12 23:26:19 +08:00
hysyeah
d8ba35adbe tapr,bfl:add tapr-image-role secrets permission;fix create user cpu check (#1066) 2025-03-12 21:24:01 +08:00
eball
da469f4f27 tapr: add missing fields of db table organizations in Infisical sidecar (#1064)
Co-authored-by: liuyu <>
2025-03-12 21:04:15 +08:00
hysyeah
d7265418cd fix: change ks image tag (#1061) 2025-03-12 20:14:06 +08:00
salt
0f12d4e5df fix: optimize google,dropbox direct upload (#1060)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-03-12 20:12:32 +08:00
wiy
f3a76a229f feat(files): update files support google drive & dropbox (#1057) 2025-03-12 15:40:49 +08:00
dkeven
6bc4ec410a fix: add the missing kubernetes image (#1056) 2025-03-12 15:38:38 +08:00
dkeven
cad586985f feat(installer): support swap and zram configurations (#1055) 2025-03-12 14:45:51 +08:00
berg
6f1b1c667a market: reconnect socket and reinitialize data on app return (#1053)
feat: market release v0.3.6 version
2025-03-12 00:03:19 +08:00
lovehunter9
d334a537d1 style: files-server project structure reconstruction (#1051) 2025-03-12 00:02:22 +08:00
hysyeah
744edb7969 fix: add node shell image to pre download (#1050) 2025-03-12 00:01:08 +08:00
eball
3e506527a2 tapr: move infisical secret service to os-system as a singleton instance (#1047)
* tapr: move infisical secret service to os-system as a singleton instance

* fix: middleware configuration

* fix: cluster role bug

---------

Co-authored-by: liuyu <>
2025-03-11 00:28:56 +08:00
hysyeah
58a9264fab app-service: change hostpath with type DirectoryOrCreate owner to 1000 by inject init container (#1046) 2025-03-10 22:19:55 +08:00
yyh
a36ecdddc9 control-hub: fix terminal route path conflict (#1045)
fix(control-hub): fix terminal route path conflict
2025-03-10 21:06:21 +08:00
eball
9b5aa0e550 olares: add opentelemery to cluster to trace the services of cluster (#1042)
* feat: add opentelemetry operator to cluster

* feat: add instrumentation injecting

* fix: add webhook test pod

* fix: update helm hook to install webhook priority

* fix: update priority

* fix: post install otel webhook

* fix: collector bug & post install to wait operator running

* fix: alpine 3.3 has not arm64 version

---------

Co-authored-by: liuyu <>
2025-03-09 21:29:15 +08:00
hysyeah
4567cc4cfe olares: fix special leading char cause helm render error (#1040) 2025-03-07 00:34:37 +08:00
berg
3b49853bd4 wise, knowledge: add reading progress function and fix some bugs (#1039)
feat: update wise and knowledge version
2025-03-07 00:34:11 +08:00
huaiyuan
ad37446fc1 desktop: launch display different icons on different devices (#1037) 2025-03-06 15:49:54 +08:00
dkeven
01644ec8b3 feat: use HAMi with nvshare as GPU plugin (#1033) 2025-03-06 15:47:53 +08:00
wiy
492e56becb files: update files new version to 1.3.39 (#1029)
* fix: seafile remove recv file log for uploading more stable

* fix: upload retry error & sync upload refresh files

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-03-05 23:57:40 +08:00
yyh
0e9d57051f feat(control-hub & ks): add node terminal (#1028)
* feat(control-hub): add node terminal

* feat: handle node default shell to bash

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-03-05 23:57:18 +08:00
huaiyuan
a90ab98631 fix: update @bytetrade/core to 0.2.53 (#1026) 2025-03-05 23:56:08 +08:00
eball
d1232f37c3 fix: increase ingress client body buffer size (#1023) 2025-03-05 23:54:41 +08:00
dkeven
9e9267b4b0 fix(bfl): fetch current user object before every configure operation (#1021) 2025-03-05 23:54:02 +08:00
berg
55bcb45ab2 wise, file: update files & wise new version to 1.3.38 (#1019)
* fix: files changed to feed drive_server 0.0.50 and cache using newest version, uploader offset judging changed for SMB 499 and improve uploading speed

* feat: update files & wise new version

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
Co-authored-by: qq815776412 <815776412@qq.com>
2025-03-04 23:59:54 +08:00
dkeven
710491d8ed feat: upgrade k8s to 1.32 (#1014) 2025-03-04 20:48:09 +08:00
huaiyuan
323dc52e59 login&desktop: open a new tab when on mobile and tablet devices (#1015)
login&desktop: open the app in a new tab when on mobile and tablet devices
2025-03-04 00:05:53 +08:00
dkeven
c02910400e feat(bfl): add watcher to apply reverse proxy (#1013) 2025-03-04 00:05:17 +08:00
eball
0e25eb1d8b olaresd: remove smb mounting blocksize option to use the default value (#1011) 2025-03-04 00:04:29 +08:00
hysyeah
ee1e2abed0 app-service: fix envoy outbound port (#1010) 2025-03-04 00:04:06 +08:00
aby913
ea24c1a33c ci: build restic (#1001) 2025-03-03 21:23:02 +08:00
simon
c993d936be knowledge&download: update knowledge to v0.1.64, download-spider to v0.0.19 (#1007)
knowledge v0.1.64
2025-03-03 12:07:52 +08:00
salt
7ba5b5628a feat: add id-route for file info, fix file size limit when direct upload (#1005)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-03-03 11:07:13 +08:00
huaiyuan
94181ab9db login&desktop: update desktop dock logic and optimize mobile device (#1002)
login&desktop: update update desktop dock logic and optimize mobile device
2025-02-28 23:55:11 +08:00
hysyeah
9f2f390b5a app-service: custom allowed outbound port;tcp udp port (#997)
* app-service: custom allowed outbound port;tcp udp port

* fix: add idle timeout to original_dst cluster

---------

Co-authored-by: liuyu <>
2025-02-27 23:59:46 +08:00
Calvin W.
c514ecec20 docs: fix bad link in readme (#996) 2025-02-27 00:07:51 +08:00
hysyeah
1fcbd0b790 app-service: fix app installation can not be canceled after reboot (#993) 2025-02-26 00:33:31 +08:00
salt
5bb3143f57 feat: cloud drive async upload rename (#992)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-02-26 00:33:05 +08:00
eball
b368735e27 bfl-ingress: increase keepalive requests of ingress (#990) 2025-02-26 00:31:57 +08:00
huaiyuan
e7792c272e files&files server: add support for google drive and dropbox (#989)
* feat: files add support for google drive and dropbox

* fix(files): update google drive and dropbox

* limit version for appdata-backend

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-02-25 13:13:50 +08:00
huaiyuan
f622bec74f desktop: update highlight txt in search (#988) 2025-02-24 23:33:54 +08:00
hysyeah
cc3d8faabf tapr: fix create stream return nil value (#985) 2025-02-24 23:32:34 +08:00
salt
2ec8abe45c fix: fix async upload from terminus to dropbox file size error (#984)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-02-24 23:32:09 +08:00
salt
97e67e4e28 feat: optimization search3 (#981)
* feat: optimization search3

* feat: desktop-server change for search3 merge result

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-02-24 18:50:33 +08:00
simon
ce5120008d knowledge: update knowledge to v0.1.63 (#980)
knowledge v0.1.63
2025-02-21 23:56:20 +08:00
yyh
80003178bf fix(desktop): disable PWA in safari on the desktop (#979) 2025-02-21 23:55:53 +08:00
hysyeah
946598e731 tapr, system-server: fix auth token validate (#977) 2025-02-21 23:54:52 +08:00
berg
e311ab4f72 market: allow paused apps to update (#975)
feat: update market to v0.3.5
2025-02-21 23:53:46 +08:00
simon
678645a243 download&download: update knowledge to v0.1.62, yt-dlp to v0.0.20 (#973)
knowledge update
2025-02-20 23:28:07 +08:00
hysyeah
61344115f2 app-service,kubesphere: get best cnd server in upgrade job; change kubectl image tag (#972)
* app-service,kubesphere: get best cnd server in upgrade job; change kubectl image tag

* Update images

* Update appservice_deploy.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-02-20 23:27:35 +08:00
eball
c227e9ba21 olaresd: optimize smb mount options & add api for oic (#969) 2025-02-20 17:11:52 +08:00
simon
e98c276bf0 download&backend server: update download-spider to v0.0.17, backend to v0.0.26 (#967)
add twitter ,zhihu extract
2025-02-20 00:39:49 +08:00
huaiyuan
4d4f8999d0 larepass&files&files server: update LarePass version to v1.3.31 (#965)
* fix: sync recursive pasting with eacape

* fix(files): block slashes when creating/renaming and update notify msg

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-02-20 00:39:18 +08:00
hysyeah
e1ad84bca5 kubesphere, bfl, authelia, app-service, system-server, installer: ks remove unused code;support lldap auth (#959)
* feat: ks remove unused code;support lldap auth

* fix: update monitoring server

* fix: update cli version
2025-02-20 00:38:36 +08:00
huaiyuan
9587345155 larepass&files&files server: update LarePass version to v1.3.30 (#964)
* fix: pasting to sync with special characters

* fix(files): prompt message when a backslash appears in sync

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-02-18 23:52:10 +08:00
eball
14400a559e files: make the files server running as root (#960) 2025-02-18 23:50:27 +08:00
huaiyuan
65211ba044 larePass&files&files server: update LarePass version to v1.3.29 (#957)
* fix: deal with special characters for dirve/cache/sync, fix uploading process lost problem at restarting for uploader

* fix(files): fix bug of special character error in file name

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-02-18 00:18:21 +08:00
huaiyuan
c4516d19c7 login: display login content on Safari browser (#955)
fix: display login content on Safari browser
2025-02-17 23:51:35 +08:00
yyh
4064ccf393 fix(desktop): fix: fix resource cache in safari browser and some ui bug (#954) 2025-02-17 23:51:01 +08:00
berg
74377bd655 settings: hide user email entry (#952)
feat: update settings v0.2.11
2025-02-17 22:19:41 +08:00
eball
ac33371b57 bfl: increase l4 proxy nginx worker process number to half of cpu cores (#949)
bfl: increase nginx worker process to half of cpu cores
2025-02-17 22:04:26 +08:00
salt
4617d8828a feat: fix knowen dropbox, googledrive problem (#948)
feat:fix knowen dropbox, googledrive problem

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-02-17 10:55:37 +08:00
hysyeah
c117ea6c8f app-service: change user space network policy for ipblock (#946)
fix: change user space network policy for ipblock
2025-02-13 23:42:41 +08:00
hysyeah
c290145ea8 app-service: continue to resume op after restart; envoy inbound tcp proxy (#943)
* app-service: continue to resume op after restart; envoy inbound tcp proxy

* ci: fix upload script bug

---------

Co-authored-by: liuyu <>
2025-02-12 22:51:28 +08:00
dkeven
e56978b164 fix(installer): restart coredns when change ip, raise cri timeout (#941) 2025-02-12 01:12:09 +08:00
eball
afc83d5c85 tapr: add node affinity to citus and kvrocks (#939)
Co-authored-by: liuyu <>
2025-02-11 13:44:33 +08:00
eball
9f324692bd olares: upload the original file with md5 as a backup (#938)
* olares: upload original file with md5 as a backup

* olares: upload original file with md5 as a backup

---------

Co-authored-by: liuyu <>
2025-02-10 20:28:41 +08:00
liuyu
bb471ba463 suspend daily build 2025-01-31 09:59:41 +08:00
eball
b08174353a olares: remove some debug code (#935)
fix: remove some debug codes

Co-authored-by: liuyu <>
2025-01-24 13:41:05 +08:00
eball
60bedc6c46 app-service: remove app cache path on the hosts directly (#936)
* app-service: remove app cache path on the hosts directly

* Update appservice_deploy.yaml
2025-01-24 11:05:07 +08:00
huaiyuan
98984ead44 files: delete notify id in notifyHide (#932)
fix: delete notify id in notifyHide
2025-01-23 23:01:13 +08:00
eball
a578148d5e olaresd: allow mounting an external device to ai path (#929)
olaresd: allow mounting a external device to ai path
2025-01-23 20:23:34 +08:00
eball
35c2072d9c app-service: inject nvshare environment duplicately (#927) 2025-01-23 20:23:01 +08:00
huaiyuan
9b57981490 files&files server: update LarePass version to v1.3.25 (#925)
* uploader v1.0.9 to make final stage of uploading big file invisiable; increase files nginx worker to auto and increase timeout of files nginx and envoy and seafile nginx

* files: notify each operation when pasting

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-01-23 20:21:52 +08:00
aby913
45d32ef568 fix(installer): prompt for the installation location and setup host ip as nat gateway ip for oic (#923) 2025-01-23 20:11:47 +08:00
huaiyuan
01d259870a files&files server: updage LarePass version to v1.3.24 (#919)
* fix: files nginx increase worker and timeout, and pasting temp file invisiable

* fix: fix create new folder in sync and update nginx timeout

* fix: increase the ingress read timeout

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
Co-authored-by: liuyu <>
2025-01-22 21:33:32 +08:00
0x7fffff92
e94c3acf25 fix: let tailscale follow headscale restart (#917)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-01-22 16:58:39 +08:00
aby913
d95c577789 fix(installer): wsl hangs on update (#916) 2025-01-22 15:33:44 +08:00
simon
f72e4b903c knowledge: update version to v0.1.61 (#908)
knowledge
2025-01-22 14:03:16 +08:00
aby913
2c57b6f35a ci: build wsl-msi script fix (#907)
ci: build script fix
2025-01-21 23:31:24 +08:00
yyh
00c44e2797 fix(control-hub): fix pod status sync after delete replicas (#912) 2025-01-21 22:22:52 +08:00
huaiyuan
9fa30c9034 files&files server: disable nats and expand upload size limit to 100G (#909)
* fix: disable nats and expand upload size limit to 100G

* fix: files disable socket and expand upload size limit to 100G

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-01-21 22:22:39 +08:00
aby913
764547abda ci: add build-wsl-package workflow (#901) 2025-01-21 20:55:07 +08:00
huaiyuan
f08b03863d files&files server: update larepass version to v1.3.20 (#905)
* fix: files immediately send events for remove/rename and folder create

* fix: fix files uplaodModal count err and filter md5

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-01-21 19:48:37 +08:00
eball
1a2f45760a olaresd: mounting usb device compatibles with ata bridge (#903) 2025-01-21 19:06:23 +08:00
aby913
ab596896c7 ci: upload wsl2 installation package (#895)
ci: upload wsl-install-msi
2025-01-21 01:33:46 +08:00
simon
4e13cc2f9e download: update yt-dlp download version to v0.0.19 (#900)
yt-dlp
2025-01-21 01:33:15 +08:00
huaiyuan
d17514e94a files&settings&market&files server: update version larepass to v1.3.19 (#898)
fix: files-server memory explode bug by deleting md5 and buffering io.Copy
2025-01-20 23:42:24 +08:00
eball
dcaa0e7755 installer: install cifs-utils for mounting smb path (#893)
fix: install cifs-utils for mounting smb path

Co-authored-by: liuyu <>
2025-01-20 17:08:51 +08:00
hysyeah
1c9dfc702f app-service: support network visit from windows app (#891) 2025-01-20 00:38:15 +08:00
huaiyuan
1977c12c16 files, appdata-gateway,uploader: smb support, md5 function, cache preview and fix a pvc problem (#889)
* files, appdata-gateway and uploader: smb support, md5 function, cache preview and fix a pvc problem

* files, appdata-gateway and uploader: smb support, md5 function, cache preview and fix a pvc problem

* feat: mount smb share file & connect wifi via ble

* Merge branch 'smb_md5_history' of github.com:beclab/olares into smb_md5_history

# Conflicts:
#	apps/files/config/cluster/deploy/files_deploy.yaml

* files: external add smb server and files can view MD5

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
Co-authored-by: hysyeah <hysyeah@gmail.com>
Co-authored-by: liuyu <>
2025-01-18 00:54:41 +08:00
dkeven
4c69c7df7f fix(installer): modified some commands to compatible running In the container (#888) 2025-01-17 22:42:22 +08:00
hysyeah
bd591d106f app-serivce: inject nvshare-debug env (#886) 2025-01-17 21:35:26 +08:00
dkeven
d5ca9826e8 fix(installer): issues in wsl downloading/ssh sudo/containerd install (#884) 2025-01-17 21:30:53 +08:00
Calvin W.
eb1f35f934 docs: update the latest arch diagram (#883) 2025-01-17 19:10:53 +08:00
Calvin W
3007354c76 update the latest version 2025-01-17 13:39:07 +08:00
Calvin W
62a3152574 docs: update the latest arch diagram 2025-01-16 19:21:50 +08:00
eball
f785c89999 olares,bfl: update critical pods priority class (#879)
olares: update critical pods priority class

Co-authored-by: liuyu <>
2025-01-16 16:54:45 +08:00
berg
b502dfc1ef settings, dashboard: restore settings app entrance status notification and dashboard websocket (#876)
* fix: fix dashboard and settings websocket and update application entrance status

* fix: move dashboard ws nignx proxy
2025-01-16 00:16:01 +08:00
eball
baae5a5632 bfl: fix headscale acl api path parameters (#874) 2025-01-16 00:15:31 +08:00
dkeven
5c9a6dfa87 fix(installer): dont wipe juicefs when uninstalling worker (#873) 2025-01-15 21:34:30 +08:00
Calvin W.
86fcaf16c0 docs: remove comparison table and update arch diagram in readme (#871)
* docs: remove comparison table and update arch diagram

* Apply suggestions from code review

Co-authored-by: Yajing <110797546+fnalways@users.noreply.github.com>

---------

Co-authored-by: Yajing <110797546+fnalways@users.noreply.github.com>
2025-01-15 21:33:32 +08:00
berg
3225626ad9 bfl, settings, app-service: add ports and tailscale acl (#870)
* app-service,bfl: app ports acl api

* feat: update settings frontend and settings server

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-01-15 00:18:18 +08:00
dkeven
7ce7f0febe feat: add node to a cluster (#868) 2025-01-14 21:52:28 +08:00
dkeven
0eebaf7ddf feat(installer): add env var to explicitly specify public access (#866) 2025-01-14 21:22:02 +08:00
0x7fffff92
5947cfe42f fix(headscale): use postgres instead of sqlite for headscale rollingupdate (#865)
fix: use postgres instead of sqlite for headscale rollingupdate

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-01-14 21:21:41 +08:00
berg
e0050837ad wise: fix some bugs and update the version to be consistent with olares 1.11 (#858)
feat: update wise version
2025-01-13 22:22:58 +08:00
aby913
61eeb2094f fix(installer): windows user home path (#862) 2025-01-13 22:08:00 +08:00
dkeven
f9546d61ac fix(installer): fix multiple network-related bugs (#859) 2025-01-13 19:47:36 +08:00
dkeven
b044d6ece1 feat(installer): check systemd-resolved and config resolv.conf (#856) 2025-01-10 22:08:49 +08:00
hysyeah
ec416d0206 app-service: delete cache dir when cancel installation;set nvshare env (#855) 2025-01-10 21:18:51 +08:00
dkeven
1c114a4d80 feat(installer): check the validity of resolv.conf before installation (#851) 2025-01-10 16:12:38 +08:00
berg
fddd30916f market, bfl, app-service: added dependency checking mechanism and fixed some bugs (#849)
* feat: added dependency checking for the application and fixed some bugs

* app-service: add mandatory dep check; dequeue when app is initialized

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-01-09 23:52:49 +08:00
dkeven
5c8af06143 feat(installer): support enabling GPU on Debian & Ubuntu24 (#846) 2025-01-09 23:48:35 +08:00
dkeven
f8885ea3db fix(installer): run cuda lib script for WSL, disable uninstall cmd for WSL (#844) 2025-01-08 19:43:50 +08:00
eball
0cdcfcfb7f auth: redirect to login portal following the request of local domain (#841)
fix: redirect to login portal following the request of local domain
2025-01-08 14:45:45 +08:00
dkeven
ae78500731 fix(installer): use a global supported cuda version list (#842) 2025-01-08 14:44:00 +08:00
huaiyuan
71c24d7592 feat(Files&Vault&Wise&Files server): update LarePass new version to v1.3.14 (#836)
* feat: files server send message to frontend with nats when directory changed

* feat: update vault nats

* fix: files-frontend to vault

* feat: files frontend update data when the socket sended and add FilesDialog component

* Update files_deploy.yaml

* fix: vault server yaml

* fix: middleware operator nats mr list

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
Co-authored-by: qq815776412 <815776412@qq.com>
Co-authored-by: eball <liuy102@hotmail.com>
Co-authored-by: liuyu <>
Co-authored-by: hys <hysyeah@gmail.com>
2025-01-08 14:42:01 +08:00
dkeven
c53444b7c7 fix(installer): unify cuda support check in different tasks (#840) 2025-01-08 11:27:05 +08:00
dkeven
cd8498f3a6 fix(installer): multiple GPU-related bugs (#833) 2025-01-07 22:17:18 +08:00
hysyeah
a0e3cd7d8f image-service: fix remove custom mirror connection check;only proxy docker.io (#834) 2025-01-07 22:05:07 +08:00
aby913
a89ad94cfa fix(installer): check if PowerShell is running as an administrator (#832)
no message
2025-01-07 20:38:28 +08:00
dkeven
b20031bd17 fix(installer): invalid gpu node label value, run task without runner (#831) 2025-01-07 15:07:46 +08:00
dkeven
2c91b10136 fix(installer): properly check cuda driver & gpu plugin (#830) 2025-01-07 12:11:00 +08:00
dkeven
96a7579322 feat(installer): add gpu commands (#826)
* feat: add node selector

* feat(installer): install gpu driver & plugin by default

* fix: label bug

* fix: update installer

---------

Co-authored-by: liuyu <>
2025-01-06 23:06:11 +08:00
simon
aae7a4c21d wise: fix nginx configuration and database migration bugs (#827)
knowledge
2025-01-06 21:26:06 +08:00
aby913
2f76f98b69 fix(installer): install olares-cli.exe to the Windows global path (#823)
fix(installer): install olares-cli.exe to the Windows application directory for global access to olares-cli.exe
2025-01-06 20:13:40 +08:00
yyh
13128d2a16 fix(controlhub&dashboard): fix dashboard analytics multiple entrances and controlhub ui (#825)
fix: fix dashboard analytics multiple entrances and controlhub ui
2025-01-06 19:07:56 +08:00
simon
f9a281e789 knowledge and download: add filter and fix download bugs (#822)
knowledge v0.1.59
2025-01-04 19:53:53 +08:00
berg
78fda8a830 wise: updates upload and download functionality (#821)
feat: wise updates upload and download functionality
2025-01-04 02:26:27 +08:00
hysyeah
f7a254b82f app-service: fix api apps missing initializing state (#820) 2025-01-04 02:26:04 +08:00
wiy
cefcdd2690 revert(files-frontend): back files-frontend to files_fe_deploy (#819)
* feat: move files-frontend to system-frontend

* feat: set files-service to files1-service

* fix: files service and secret

* fix: update files-service to files-fe-service

* fix: files-fe-frontend build error

* fix: use tab error

* fix: files.conf error

* fix: files.conf server error

* revert: files_frontend and system-frontend

---------

Co-authored-by: liuyu <>
2025-01-04 02:25:41 +08:00
hysyeah
ad08b09463 app-service: add tailscale acls support for OlaresManifest.yaml (#817) 2025-01-02 23:46:33 +08:00
aby913
b00c93b85c feat(installer): add firewall settings for Windows (#816) 2025-01-02 23:45:40 +08:00
0x7fffff92
08cafd2fb5 feat(headscale): move acl.json to configmap (#815)
* feat: add acl to allow ssh for tailscale

* feat: acl using configmap

* chore: using RollingUpdate for headscale

* chore: add default acl.json configmap

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-01-02 23:45:02 +08:00
wiy
703065750d feat(system-frontend): move files-frontend to system-frontend (#814)
* feat: move files-frontend to system-frontend

* feat: set files-service to files1-service

* fix: files service and secret

* fix: update files-service to files-fe-service

* fix: files-fe-frontend build error

* fix: use tab error

* fix: files.conf error

* fix: files.conf server error

---------

Co-authored-by: liuyu <>
2025-01-02 23:44:11 +08:00
salt
e71ec8d570 feat: recommend optimization (#813)
* feat: recommend optimization

* feat: recommend optimization, frontend part show debug info

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-31 21:13:39 +08:00
fnalways
6932ab655a docs: update wording to clear confusion (#809) 2024-12-27 18:17:19 +08:00
Calvin W
351b0ee938 docs: update wording to clear confusion 2024-12-27 17:50:55 +08:00
hysyeah
f047051140 app-service: fix app suspend in os-system;image download bug (#807) 2024-12-27 15:43:50 +08:00
Ikko Eltociear Ashimine
d9b7b7549c docs: add Japanese README (#806)
I created Japanese translated README.
2024-12-27 14:43:18 +08:00
dkeven
3afd510477 feat(installer): add a separate command for all prechecks (#802)
feat: add a separate command for all prechecks
2024-12-26 20:20:45 +08:00
eball
721b3dad44 olaresd: ignore unknown graphics card (#801) 2024-12-26 20:13:20 +08:00
yyh
6b8a26231a fix(system-frontend): fix app bugs and update some ui (#798) 2024-12-26 11:45:32 +08:00
berg
e1a15039f2 wise, vault, file: fix some ui bugs (#796)
fix: fix some wise, vault, file ui bugs
2024-12-25 00:10:36 +08:00
dkeven
8dcebeeea2 fix(installer): tag k8s images in minikube to avoid destructive reload (#795) 2024-12-24 15:12:44 +08:00
hysyeah
babd97802e app-serivce: fix patch deploy/sts cause pod restart (#794) 2024-12-24 00:01:28 +08:00
berg
49e7006373 wise, vault, file: Optimize the loading speed of the reading detail page. (#791)
feat: Optimize the loading speed of the reading detail page.
2024-12-23 23:59:44 +08:00
dkeven
6e9143bbb9 fix(installer): reset config path of cri plugin in minikube (#790) 2024-12-23 21:10:52 +08:00
dkeven
5f34fa5049 feat(installer): seperate phase & command for storage installation (#789) 2024-12-23 16:48:10 +08:00
eball
2028656a6a olares: typo in nvshare scheduler yaml (#788) 2024-12-23 14:35:42 +08:00
eball
bca084d8f5 olares: fix nvshare files be conflicting with dir (#787)
Co-authored-by: liuyu <>
2024-12-23 11:29:15 +08:00
aby913
dd201f0b89 tapr, knowledge, system-fronted: fix adjust knowledge websocket proxy (#785) 2024-12-21 00:02:39 +08:00
aby913
b45c88ee82 installer: feat get cuda version (#784) 2024-12-21 00:01:57 +08:00
huaiyuan
7b40e65315 files/vault/wise: upgrade larepass version to v1.3.6 (#782)
fix: upgrade larepass version to v1.3.6
2024-12-20 22:13:11 +08:00
huaiyuan
83ca9667f9 style(login&desktop): optimize Login and Desktop ui (#780) 2024-12-20 22:02:19 +08:00
yyh
0f8c074033 style(dashboard&controlhub): optimize dashboard and controlhub styling (#778) 2024-12-20 21:35:07 +08:00
dkeven
51427d6b73 feat(installer): support setting registry mirrors for minikube (#777) 2024-12-20 20:17:13 +08:00
hysyeah
0fe1c04031 app-service: set gpu values (#774) 2024-12-20 20:15:40 +08:00
hysyeah
3e36703327 olares: add init container for nats to generate nats.conf (#773) 2024-12-20 20:14:10 +08:00
eball
f89fb7fd28 olaresd: get default gateway interface ip (#772) 2024-12-19 23:46:24 +08:00
Calvin W.
929ef45cdc docs: fix video link in readme (#770) 2024-12-19 23:45:49 +08:00
berg
dc35515102 setting, profile: replace common component and fix ui details (#768)
fix: update q-toggle component and ui details
2024-12-19 21:26:15 +08:00
aby913
ec2eb83a11 installer: feat support pve lxc (#767)
installer: support pve lxc
2024-12-19 15:01:14 +08:00
Sai
e9edf5e45f market: fix app info inconsistency (#766)
fix app info inconsistency
2024-12-19 11:29:04 +08:00
eball
3063232632 olaresd: watching the ip-changing log modified (#764) 2024-12-18 21:22:54 +08:00
Calvin W.
4f6fa4a3f3 docs: update Ubuntu support version (#763) 2024-12-18 20:50:44 +08:00
Calvin W
b6388980a0 update wording and version info 2024-12-18 19:55:57 +08:00
Calvin W
89a667e2b6 update other support versions 2024-12-18 17:59:35 +08:00
Calvin W
31aab6c3ae docs: update Ubuntu support version 2024-12-18 17:48:03 +08:00
Calvin W.
969cd76ac5 docs: reposition Olares as sovereign cloud OS for local AI (#762)
* docs: reposition Olares as sovereign cloud OS for local AI

* update title

* update benefits wording

* Apply suggestions from code review

Co-authored-by: fnalways <110797546+fnalways@users.noreply.github.com>

* Update README_CN.md

Co-authored-by: fnalways <110797546+fnalways@users.noreply.github.com>

* adjust wording for CN

* restructure readme to make it more intuitive and accessible

---------

Co-authored-by: fnalways <110797546+fnalways@users.noreply.github.com>
2024-12-18 17:14:30 +08:00
wiy
f14dc7398c wizard: approve dns check (#761)
feat: update wizard version to v0.5.12
2024-12-18 11:11:36 +08:00
eball
bc615b8a24 olaresd: compatible with glibc 2.31 (#758) 2024-12-17 21:05:29 +08:00
dkeven
dbbe1419cd ci: use stable runner ubuntu-22.04 rather than latest (#756) 2024-12-17 17:49:33 +08:00
dkeven
454401e64f fix(installer): skip conflicting containerd precheck on cloud instance (#757) 2024-12-17 17:16:05 +08:00
dkeven
b62301c38c fix(installer): add precheck for conflicting containerd and ports (#754)
* fix(installer): ensure no containerd already exists before preparing

* ci: remove useless step

---------

Co-authored-by: liuyu <>
2024-12-17 13:25:31 +08:00
eball
20b491a9f7 Update release.yaml 2024-12-16 19:53:29 +08:00
eball
01f6a152f7 Update release-daily.yaml 2024-12-16 19:52:43 +08:00
simon
517d926917 knowledge and download: support LarePass donload and fix bilibili extract bug (#748)
* knowledge v0.1.57

* knowledge
2024-12-14 22:39:55 +08:00
hysyeah
3d0528e7cc app-service: fix get metric values error in some situation (#747) 2024-12-14 00:17:01 +08:00
eball
50c6f476ab olares: add .DS_Store to gitignore (#744)
* olares: update gitignore

* Delete apps/download/.DS_Store

* Delete apps/download/config/user/helm-charts/.DS_Store

* remove .DS_Store

---------

Co-authored-by: liuyu <>
2024-12-13 13:59:21 +08:00
dkeven
80bad48cc2 installer: detect public ip during installation (#741) 2024-12-12 19:50:27 +08:00
Sai
101cd5f9d0 market, app-service: support old version install app (#738)
The market version will be upgraded to 0.3.0 to support users on non-latest versions of operating systems in accessing historical versions of the app. This upgrade aims to enhance user experience by ensuring that even those on older systems can retrieve the necessary app versions.

Key Changes
Version Upgrade: The market version will be updated to 0.3.0.
Support for Historical Versions: Users on non-latest operating systems will be able to access historical versions of the app.
This upgrade is designed to better meet user needs and ensure that all users can effectively utilize our application.
2024-12-11 16:19:02 +08:00
dkeven
f4e9c6f440 installer: use the logger from std lib at cmd entry (#735)
fix(installer): use the logger from std lib at cmd entry
2024-12-11 16:14:59 +08:00
liuyu
22440df66c olares: update runner tags in workflow action 2024-12-11 14:23:02 +08:00
eball
46fd7de998 olares: revert nvshare to v0.0.1 (#733)
Co-authored-by: liuyu <>
2024-12-10 21:42:03 +08:00
lovehunter9
623822bcef files: fix the bug when copying name with space for src xor dst is sync (#732)
* bugfix: fix the bug when copying name with sapce for src xor dst is sync

* files: fix the decoding issue of folders containing spaces

---------

Co-authored-by: huaiyuan <1029848564@qq.com>
2024-12-10 21:41:35 +08:00
liuyu
1ef0c10a0b olares: bump ci version to 1.12.0 2024-12-10 14:23:19 +08:00
eball
0674b3043b bfl: reset password not applied and user initializing failed state (#731) 2024-12-09 23:38:17 +08:00
huaiyuan
c1f708826e desktop: upgrade to v0.2.45 (#730)
fix: Ppgrade desktop to v0.2.45
2024-12-09 23:37:46 +08:00
dkeven
2c3e5f8be6 installer: when changing ip, only restart pods related to host ip if juicefs disabled (#729) 2024-12-09 21:00:26 +08:00
eball
02f9b17991 olares: compatible with http 1.0 in image upload api (#728)
Co-authored-by: liuyu <>
2024-12-09 20:59:16 +08:00
Peng Peng
ee0cbbf830 settings,profile: merge profile server to settings server (#727)
feat: merge profile server to settings server
2024-12-09 20:58:20 +08:00
hysyeah
6b578cec00 app-service: olares manifest add runasuser config parameter (#726) 2024-12-09 20:57:27 +08:00
dkeven
64b34d0055 installer: upgrade cuda driver to 550 (#724) 2024-12-09 13:36:59 +08:00
dkeven
c45b2991eb build: remove unused scripts (#725)
build: remove unuseful scripts
2024-12-09 13:36:31 +08:00
eball
f1d31e55e7 beclab/nvshare: remove cuCtxSynchronize in cuLaunchKernel to compatib… (#721)
beclab/nvshare: remove cuCtxSynchronize in cuLaunchKernel to compatible with cuda stream

Co-authored-by: liuyu <>
2024-12-06 22:38:28 +08:00
liuyu
1364536687 update pr template 2024-12-06 11:29:36 +08:00
yyh
3bb9ad7415 feat: add control-hub middleware (#716) 2024-12-06 00:21:04 +08:00
dkeven
514dc2e1e9 fix: pioritize default route ip in all scenarios (#715) 2024-12-06 00:20:43 +08:00
salt
41359bf49d feat: all language search use simple config map (#714)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-06 00:20:13 +08:00
hysyeah
40859b6379 fix: revert runasuser (#713) 2024-12-06 00:19:46 +08:00
salt
d003b5c1ac fix: wise video audio search missing (#711)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-05 15:30:37 +08:00
eball
a56a090048 fix: init without unicast ip (#710) 2024-12-05 14:20:10 +08:00
hysyeah
63adf9f349 fix: ignore system frontend (#707)
* fix: ignore system frontend

* fix: propagate space url to upgrade job env

* fix: add upgrade-job image to manifest
2024-12-05 14:19:48 +08:00
dkeven
c5014a67ee feat: configure coreDNS to serve record from node /etc/hosts (#709) 2024-12-05 13:54:04 +08:00
eball
ba63484065 fix: find command nmcli (#708) 2024-12-05 12:10:56 +08:00
salt
4125c6ffba feat: upgrade search3 to v0.0.22, when detect short keyword language … (#706)
feat: upgrade search3 to v0.0.22, when detect short keyword language ,limited language range

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-05 00:31:32 +08:00
berg
29bb027f5f chore: settings v0.1.95 add host address management (#705)
* chore:settings v0.1.95

* Update system-frontend.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-12-05 00:31:08 +08:00
eball
81f2c3b6a3 fix: Ubuntu 20.04 broken installation (#704)
Co-authored-by: liuyu <>
2024-12-04 23:45:48 +08:00
Peng Peng
1303990338 feat: During the wizard process, skip the step of choosing whether to enable reverse proxy. (#703) 2024-12-04 21:40:26 +08:00
hysyeah
a0210296e2 feat: inject runasuser equal 1000 for third party app's pod (#701)
* feat: inject runasuser equal 1000 for third party app's pod

* feat: use proxy for github api
2024-12-04 21:40:03 +08:00
eball
709e7d195d ci: build redis for glibc_2.31 (#702)
Co-authored-by: liuyu <>
2024-12-04 17:15:38 +08:00
hysyeah
c2ed2751c6 fix: bfl ingress add application/x-mpegURL gzip types (#700) 2024-12-03 23:41:59 +08:00
berg
5bb859627d fix: update settings nginx gzip (#699) 2024-12-03 23:41:21 +08:00
eball
af93429a86 fix: optimize log watching (#698) 2024-12-03 21:30:39 +08:00
huaiyuan
70fd8395ef fix: Update learpass to v1.2.69 (#697) 2024-12-03 21:30:12 +08:00
dkeven
d490287b93 fix: store & compare applied dns record of local domain (#696) 2024-12-03 21:29:52 +08:00
salt
b4c8b1aa9c feat: upgrade search to v0.0.21, add chinese token type word to simpk… (#695)
feat: upgrade search to v0.0.21, add chinese token type word to simpke in pg full text search

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-03 21:29:32 +08:00
eball
e8a9fead53 fix: settings nginx conf bug (#694)
* fix: settings nginx conf bug

* feat: add startup probe to system frontend proxy

---------

Co-authored-by: liuyu <>
2024-12-03 12:07:47 +08:00
hysyeah
81baac1e68 fix: bfl ingress http2 (#693) 2024-12-02 21:57:20 +08:00
eball
51cafe9fb2 fix: remove nitro (#692)
Co-authored-by: liuyu <>
2024-12-02 21:56:56 +08:00
berg
3cfa43d4a5 feat: remove settings pod (#690)
* feat: delete setting pods

* fix: remove unless

* fix: some bugs

* Update system-frontend.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
Co-authored-by: liuyu <>
2024-12-02 21:29:28 +08:00
dkeven
b6ef6b779d feat: show progress info when downloading & importing (#691) 2024-12-02 20:44:44 +08:00
dkeven
30341110e9 feat: add env for install.sh to choose between JuiceFS & local fs (#676) 2024-12-02 14:45:27 +08:00
salt
c2ec8085bf feat: s3, dropbox async download and upload task (#689)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-12-02 11:08:46 +08:00
dkeven
fe278d87bb fix: get local IP by the default route (#688) 2024-12-02 11:08:15 +08:00
simon
70613ff7a5 feat: update knowledge to v0.1.54 (#687)
* knowledge

* knowledge
2024-12-02 11:07:43 +08:00
lovehunter9
b4448e23ef fix: external 404 when it is null fixed (#686) 2024-12-02 11:07:12 +08:00
huaiyuan
f40dea2fe9 fix: Larepass v1.2.67 (#685) 2024-12-02 11:06:47 +08:00
Calvin W.
bc44954b5e docs: update platform support info (#683)
* docs: update platform support info

* fix table and improve readability

* improve readability

---------

Co-authored-by: fnalways <110797546+fnalways@users.noreply.github.com>
2024-12-02 11:06:21 +08:00
Sai
99c27ce352 feat: market-backend no local db & cache api data (#682)
* no local db & cache api data

* fix $namespace
2024-12-02 10:59:18 +08:00
hysyeah
e15da6ac8e feat: set default nat gateway ip in prompt for mac (#679) 2024-11-29 11:17:08 +08:00
hysyeah
179e0becf9 fix: choose nat ip as local domain dns record if present (#680) 2024-11-29 11:16:48 +08:00
hysyeah
c22589291a fix: nats auth error after upgrade (#681) 2024-11-29 11:14:37 +08:00
dkeven
fbeabc808e fix: choose nat ip as local domain dns record if present 2024-11-28 19:27:46 +08:00
dkeven
08600a8cc9 feat: set default nat gateway ip in prompt for mac 2024-11-28 18:34:26 +08:00
hysyeah
5f7b6ed0f5 fix: change system upgrade job image pull policy (#678) 2024-11-27 21:54:45 +08:00
aby913
9ce24c40b7 fix: bypass hwclock failure on raspberry (#677) 2024-11-27 21:37:40 +08:00
huaiyuan
0ddd61851c fix: update img size when onResize (#675) 2024-11-27 15:36:45 +08:00
huaiyuan
c109b54766 fix: update preview img for files (#674) 2024-11-27 00:02:45 +08:00
eball
92d1655f48 fix: harmful chown on raspberry pi (#672) 2024-11-26 20:34:38 +08:00
berg
0168a2de78 fix: preload font (#669)
Co-authored-by: liuyu <>
2024-11-26 01:05:54 +08:00
eball
e00f247136 ci: revert upload to cos (#671)
Co-authored-by: liuyu <>
2024-11-25 23:22:03 +08:00
aby913
7bc4792fd6 fix: debian add-apt-repository (#668) 2024-11-25 18:49:53 +08:00
eball
55be0aef85 ci: upload release package to cos (#667)
* ci: upload deps to cos

* ci: upload deps to cos

* fix: cos config

* fix: path env

* fix: path env

* fix: path env

* fix: path env

* fix: upload timeout

* fix: upload timeout

* fix: config coscmd

* ci: upload images to cos

* ci: upload release package to cos

---------

Co-authored-by: liuyu <>
2024-11-25 18:48:00 +08:00
hysyeah
0b6902d304 fix: nvshare switch not update deployment with gpu (#666) 2024-11-25 18:47:27 +08:00
dkeven
4f8f93a708 feat: add support for install.sh to build local release of Olares (#665) 2024-11-25 17:20:50 +08:00
eball
6431c53e90 fix: closed channel causes panic (#664) 2024-11-25 17:06:40 +08:00
eball
45ef076b38 fix: add an ip service provider (#661) 2024-11-22 23:59:38 +08:00
yyh
bac334ad3f fix: preload font (#659)
* fix: market and profile preload font file

* fix: fix window scrollbar and fonts

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-11-22 21:12:57 +08:00
eball
225f1b9aff fix: change ip bug if os not installed (#657) 2024-11-22 18:29:55 +08:00
dkeven
a8541bc0bd fix: add truncate option for different type of logs (#658) 2024-11-22 18:29:39 +08:00
salt
aa30e5480d fix: upgrade knwoledge-api to v0.1.53 for fix recommend reason missing (#655)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-11-22 17:07:43 +08:00
berg
c6c547e4a6 feat: add settings collect logs (#653) 2024-11-21 23:43:53 +08:00
eball
60b54dc5ef feat: ip-changing can be resumed if reboot device (#652) 2024-11-21 23:42:25 +08:00
dkeven
7f514564cb fix: make systemd always restart redis (#651) 2024-11-21 23:42:05 +08:00
yyh
de4cb61130 fix: fix controlHub terminal link (#650) 2024-11-21 00:37:24 +08:00
huaiyuan
ceda764635 fix: update v1.2.62 for larePass (#649) 2024-11-21 00:37:01 +08:00
hysyeah
f31cafed16 feat: image-service add support for http mirror (#648) 2024-11-21 00:36:38 +08:00
Calvin W.
85b35594ca docs: update project position as a sovereign cloud (#647) 2024-11-21 00:36:15 +08:00
hysyeah
ecada279db feat: add custom cpu/memory threshold for suspend app (#645)
* feat: add custom cpu/memory threshold for suspend app

* fix: app state crash
2024-11-19 22:55:34 +08:00
simon
7648e3b69e fix: yt-dlp remove oauth (#646)
yt-dlp
2024-11-19 22:54:59 +08:00
wiy
5528fcc469 fix: settings appearance ui bug (#644)
* fix: settings appearance ui bug

* feat: update vault & files & wise new version
2024-11-18 19:09:35 +08:00
simon
8616134693 feat: update backend to v0.0.23 (#643)
backend
2024-11-18 19:09:03 +08:00
Calvin W.
6f2077d3b1 docs: add a rebranding note in readme to clear confusion (#642) 2024-11-16 15:01:25 +08:00
Calvin W.
50194905de docs: add a rebranding note in readme to clear confusion 2024-11-16 14:55:39 +08:00
simon
4b0a5e5111 fix: update sync and download (#640)
sync v0.0.15
2024-11-15 22:29:59 +08:00
dkeven
1e1d2337fc fix: do not check ks svc connectivity on macOS (#639) 2024-11-15 22:29:18 +08:00
hysyeah
6e1ef8fa83 fix: add rootPath for helm values (#638)
* add OLARES_ROOT_DIR to global envs

* fix: add rootPath for helm values

---------

Co-authored-by: dkeven <dkvvven@gmail.com>
2024-11-15 17:41:03 +08:00
berg
401815c81c fix: theme switch (#635)
* fix: fix the theme following system

* fix: market and profile fix the theme following system

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2024-11-15 17:19:21 +08:00
eball
576b1e6aa9 fix: installing and ip changing state bug (#634) 2024-11-14 17:41:54 +08:00
wiy
4797e00d2e feat: release vault and settings new version (#632) 2024-11-14 00:27:16 +08:00
dkeven
ed2ae29def fix: update CLI version to 0.1.55 (#633) 2024-11-14 00:03:33 +08:00
eball
83051d443c feat: add frp info to status api (#630)
* feat: add frp info to status api

* Update components
2024-11-13 21:29:01 +08:00
dkeven
fa301af05c feat: add API to retrieve the default reverse proxy config (#631) 2024-11-13 21:28:43 +08:00
simon
936cca1e4b feat: wise crawler add headless browser (#629)
* wise add headless

* sync
2024-11-12 20:57:47 +08:00
huaiyuan
9ac91ef71a fix: fixed ui bugs for desktop and login (#628)
fix: fixed desktop ui
2024-11-12 19:47:23 +08:00
eball
44653f5a7f fix: check ip changing result (#627) 2024-11-12 19:38:29 +08:00
Sai
d6b7e97a41 feat: change app config file name, terminus to olares (#626)
* feat: change app cfg name

* TerminusManifest to OlaresManifest

---------

Co-authored-by: hys <hysyeah@gmail.com>
2024-11-12 19:20:14 +08:00
dkeven
8462bbc909 fix: update CLI version to 0.1.54 (#625) 2024-11-12 15:43:40 +08:00
eball
cc9c6cdf32 fix: revert the state olares-running to terminus-running (#624) 2024-11-12 15:38:59 +08:00
dkeven
b801065b5c fix: bump k3s to 1.21.5 (#623) 2024-11-12 13:43:11 +08:00
dkeven
af409f26a9 fix: add startup probe for ks-controller-manager (#622) 2024-11-11 21:56:35 +08:00
Calvin W.
55ebefc67f docs: update license title to Olares (#621)
update license title
2024-11-11 21:05:42 +08:00
aby913
8721f8154a fix: support download cdn url (#619)
fix: support downlotad cdn url
2024-11-11 20:10:16 +08:00
fnalways
ee160d5abf docs: add intro video in readme (#620) 2024-11-11 19:41:06 +08:00
huaiyuan
2808c87d21 fix: update login to v0.1.32 (#618) 2024-11-11 18:05:00 +08:00
dkeven
a47b3bcc82 feat: change brand-related paths to Olares (#617)
* fix: change root path

* fix: bfl,osnode-init,tapr-middleware change root path

* fix: osnode-init image tag

* update CLI to v0.1.48

* fix: update CLI version to 0.1.49

* fix: wsl ps1 upddate

* fix: update terminusd

* fix: wsl ps1 update

---------

Co-authored-by: liuyu <>
Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: aby913 <aby913@163.com>
2024-11-10 12:38:45 +08:00
huaiyuan
1aee84d38e fix: update beclab/login:v0.1.31 (#614)
* fix: update beclab/login:v0.1.31

* feat: update notification to 0.1.25, modify terminus to olares

* fix: beclab/desktop:v0.2.43

---------

Co-authored-by: Peng Peng <billpengpeng@gmail.com>
2024-11-09 23:44:16 +08:00
Peng Peng
57e3d8449e docs: update tech stack CDN link for readme (#616) 2024-11-08 21:31:27 +08:00
Calvin W
2c2cce8e62 update wording and fix link 2024-11-08 21:03:39 +08:00
Calvin W
9a43777c81 docs: update tech stack CDN link for readme 2024-11-08 20:51:26 +08:00
Peng Peng
1ab40e2901 docs: update Olares branding in readme (#615) 2024-11-08 20:32:07 +08:00
Calvin W
96247bf2c0 update Olares branding in readme 2024-11-08 20:26:01 +08:00
eball
cb646acdc4 ci: bump version to 1.11 (#613)
Co-authored-by: liuyu <>
2024-11-08 19:52:04 +08:00
aby913
56b5ed9eb1 fix: add install.ps1 to daily-release (#612)
* fix: add install.ps1 to daily-release

* fix: run ps1 as admin
2024-11-08 19:24:18 +08:00
dkeven
7c341802bb feat: add install script in Windows powershell (#611)
* feat: update CLI version to 0.1.47

* feat: windows install script

---------

Co-authored-by: aby913 <aby913@163.com>
2024-11-08 15:01:37 +08:00
eball
96fd252c8f feat: change terminusd binary name (#610)
* feat: change terminusd binary name

* feat: switch to olares-cli ininstall.sh

* Update components

---------

Co-authored-by: dkeven <dkvvven@gmail.com>
2024-11-08 14:31:07 +08:00
Sai
1938ad2b28 feat: release market v0.2.25 (#609)
MARKET_PROVIDER support "only domain" or "prefix http"
2024-11-07 23:59:52 +08:00
hysyeah
5b353cb49a fix: use helm templating instead of sed replace (#608) 2024-11-07 22:07:48 +08:00
dkeven
b3b678bf7b fix: use helm templating instead of sed replace 2024-11-07 21:37:08 +08:00
dkeven
e28d59bbbe feat: allow scheme in frp server enpoint (#607) 2024-11-07 16:53:36 +08:00
huaiyuan
393537421d fix: update version (#605) 2024-11-07 15:15:03 +08:00
wiy
188e244e73 feat: update market/settings new version support Olares (#603)
* feat: update market version

* feat:  settings support update name to Olares

* feat: update wizard version

* feat: update desktop version

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
Co-authored-by: huaiyuan <1029848564@qq.com>
Co-authored-by: eball <liuy102@hotmail.com>
2024-11-07 00:33:16 +08:00
yyh
d80bd429a0 fix: update Terminus to Olares (#602) 2024-11-07 00:31:38 +08:00
aby913
83f15ae4a0 ci: build Ubuntu2204.appx (#601)
ci: build wsl Ubuntu2204.appx
2024-11-07 00:31:14 +08:00
dkeven
0313ba87f4 feat: add global envs for multiple components (#604) 2024-11-06 23:27:05 +08:00
qq815776412
520a9e73c9 feat: update vault & settings new version 2024-11-06 23:08:07 +08:00
dkeven
209de6556c fix: also add global envs for headscale init 2024-11-06 20:59:12 +08:00
aby913
f7c075d441 feat: backup-server cloud url from env 2024-11-06 19:35:59 +08:00
dkeven
5755990745 feat: update CLI version to 0.1.44 2024-11-06 17:49:56 +08:00
hys
c36faf772d feat: appservice,osnode-init cloud url 2024-11-06 15:40:46 +08:00
dkeven
daafa9a90d feat: add global envs for multiple components 2024-11-06 15:09:36 +08:00
eball
9907eae725 fix: doing the changing ip command via terminus-cli (#599) 2024-11-05 15:34:37 +08:00
dkeven
bb89776dea feat: update CLI version to 0.1.40 (#600) 2024-11-05 15:34:15 +08:00
0x7fffff92
c929f14bc4 feat: custom derpmap url (#598)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-11-05 14:24:00 +08:00
yyh
90d976a9af fix: fix controlHub and dashboard ui (#597) 2024-11-05 00:44:21 +08:00
eball
fc501b792b fix: wrong base dir for install command (#595) 2024-11-02 01:12:31 +08:00
dkeven
386d9b4daa fix: update CLI version to 0.1.39 (#596) 2024-11-02 00:41:57 +08:00
eball
e4844f855d fix: compatible with MacOS Bash and raspbian for the change ip (#594)
Co-authored-by: liuyu <>
2024-11-02 00:41:12 +08:00
lovehunter9
da6e87cd4b feat: uploader retransfers files when uploading folder or multi-files (#593) 2024-11-02 00:40:21 +08:00
dkeven
e6414f682e fix: update CLI version to 0.1.38 (#592) 2024-10-31 23:40:35 +08:00
eball
d3b8d5867a fix: remove useless sudo (#591) 2024-10-31 23:40:15 +08:00
yyh
b81b8547b9 fix: fix dashboard loading (#590) 2024-10-31 23:39:45 +08:00
salt
70eb55a2d4 fix: upgrade drive to v0.0.25 for fix when drive account with type 's… (#585)
fix: upgrade drive to v0.0.25 for fix when drive account with type 'space' missing expires_at field parse error

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-10-31 18:12:21 +08:00
aby913
816e2fbd2c fix: remove password in log (#589) 2024-10-31 17:50:39 +08:00
wiy
d34f4c0063 feat: update settings version to v0.1.88 (#588)
* feat: add websocket sidecar

* feat: update settings version to v0.1.87

* feat: release settings version to v0.1.88

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2024-10-31 17:49:53 +08:00
aby913
f591e33b09 fix: check os type (#587) 2024-10-31 17:48:18 +08:00
eball
89a3a70dff fix: bump l4 proxy version (#586) 2024-10-31 17:40:48 +08:00
eball
c285f3fa4a fix: wrong parameter (#583) 2024-10-31 11:27:00 +08:00
salt
c3c268847e feat: drive upgrade to v0.0.24 for support aws s3 download,ls,getmetadata (#584)
* feat: update drive to v0.0.23 support aws s3 and tencent cos

* feat: upgrade drive to v0.0.24

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-10-31 11:26:42 +08:00
yyh
0b494e3ca9 feat: add websocket sidecar (#580)
* feat: add websocket sidecar

* fix: push app status via websocket

---------

Co-authored-by: liuyu <>
2024-10-31 00:17:01 +08:00
wiy
f5d789ef44 feat: update settings new version to v0.1.87 (#581)
* feat: add websocket sidecar

* feat: update settings version to v0.1.87

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2024-10-30 23:33:56 +08:00
huaiyuan
fe5f41e9db feat: Files add aws s3 (#578) 2024-10-30 21:10:03 +08:00
eball
527ed2bc2b fix: change installation command to cli (#577) 2024-10-30 21:09:32 +08:00
berg
0465f2fa6d feat: update wise to v1.2.50 (#576) 2024-10-30 20:27:10 +08:00
hysyeah
c309afe3ab feat: add udp support (#574)
* feat: add udp support

* Update app.bytetrade.io_applications.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
Co-authored-by: liuyu <>
2024-10-30 20:26:49 +08:00
dkeven
3d3f0aa2ff fix: update CLI version to 0.1.36 (#573)
* fix: update CLI version to 0.1.36

* fix: add support for env var "PREINSTALL" and "REGISTRY_MIRRORS" in install.sh
2024-10-30 16:57:47 +08:00
eball
ff9b6450e7 fix: smooth the installation progress info (#570) 2024-10-29 23:24:03 +08:00
dkeven
95c5334918 feat: use cli to do the actual installation (#572) 2024-10-29 23:23:46 +08:00
huaiyuan
02d312d257 feat: add entrance state for app (#571)
* feat: add entrance state for app

* add ApplicationPermission UserApps

* feat: update market version

* feat: desktop:v0.2.40 and add entrance-state-event

---------

Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: Sai <kldtks@live.com>
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-10-29 23:22:36 +08:00
eball
6632da473a fix: add dependencies for desktop and settings (#569)
Co-authored-by: liuyu <>
2024-10-28 20:17:09 +08:00
dkeven
5ec6e48bba fix: update CLI version to 0.1.34 (#567) 2024-10-26 23:26:07 +08:00
eball
e935657b64 fix: delay changing the installing state to uninitialized (#566) 2024-10-26 00:26:49 +08:00
eball
2da63176b7 feat: collect all pod logs (#565)
* feat: collect all pod logs

* Update components
2024-10-24 23:50:51 +08:00
salt
f299a75700 feat: parallel search (#563)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-127.cluster.local>
2024-10-23 21:21:54 +08:00
aby913
0d07938a86 fix: macos download command (#562)
fix: macos download component
2024-10-23 19:28:46 +08:00
simon
aeb09789ef feat: knowledge v0.1.51 (#561)
knowledge v0.1.51
2024-10-22 23:13:19 +08:00
lovehunter9
092c6ff09e fix: files-server unescape bugfix for GET /api/resources sync support (#560) 2024-10-22 23:12:45 +08:00
lovehunter9
44f74a1c3e fix: files-server won't read header for every files when checking filetype at listing (GET /api/resources) to avoid taking a lot of time for reading content from a downloading file (#559) 2024-10-22 18:58:42 +08:00
huaiyuan
86e575dbed fix: termipass v1.2.49 (#557)
* fix: termipass v1.2.49

* Update files_fe_deploy.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-10-21 23:48:38 +08:00
Sai
efc40282cf fix: timeout cancel in app image downloading (#555)
* fix timeout cancel in app image downloading

* re-run ci
2024-10-21 17:45:20 +08:00
lovehunter9
becf4e7f1a fix: files: skip watcher trying to watch /data/External (#556)
bugfix: files: skip watcher trying to watch /data/External
2024-10-21 17:32:05 +08:00
eball
c07879c8e0 fix: deadlock in jfsnotify-proxy where client watcher crash (#554)
Co-authored-by: liuyu <>
2024-10-21 00:13:59 +08:00
eball
4ef3811413 fix: nil pointer when install error (#553) 2024-10-20 00:03:28 +08:00
dkeven
a6abc93c79 feat: use domestic terminus cert&dns service if set (#551) 2024-10-17 23:23:11 +08:00
eball
815fce9f0f fix: try to download upgrade package from cdn (#550) 2024-10-17 16:43:00 +08:00
hysyeah
f06cb62f93 fix: nats admin password with leading digit cause nats load config error (#549) 2024-10-16 21:01:24 +08:00
simon
4a12cb582a feat: knowledge v0.1.50 (#548)
knowledge v0.1.50
2024-10-16 20:59:19 +08:00
dkeven
39c8a87b75 fix: update bfl to v0.3.47 (#547) 2024-10-16 20:08:25 +08:00
lovehunter9
bf477f16e5 feat: files get resource recursive stream for folder downloading (#545)
feat: files get resource recursive stream for downloading
2024-10-15 23:41:17 +08:00
hysyeah
724aba6892 fix: replace image repo when cwf update (#546) 2024-10-15 23:40:49 +08:00
simon
41db11c638 fix: knowledge v0.1.49 environment variable (#544)
fix knowledge
2024-10-14 10:53:20 +08:00
simon
217e171567 feat: knowledge add nats (#543)
* knowledge nats

* nats
2024-10-13 23:18:00 +08:00
berg
e5034023dc feat: update wise vault version (#540) 2024-10-12 21:51:27 +08:00
salt
e81830bcd2 feat: upgrade search3 to v0.0.18, When detecting languages, if there i… (#542) 2024-10-12 20:04:08 +08:00
Ubuntu
732a9dacb1 feat:upgrade search3 to v0.0.18, When detecting languages, if there is more than one language being detected, exclude the other language' 2024-10-12 11:31:07 +00:00
salt
edd8895c70 feat: upgrade search3 to v0.0.17 for fix content language detection a… (#538)
feat: upgrade search3 to v0.0.17 for fix content language detection and set CONTENT_DEBUG to decide whether return content

Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-132.cluster.local>
2024-10-12 17:19:23 +08:00
eball
57e1836796 fix: resume ip changing if broken in last (#539) 2024-10-12 17:18:55 +08:00
berg
660fe0eb19 feat: market v0.2.21 release (#536) 2024-10-12 13:39:42 +08:00
yyh
5c5e8b2c07 fix: delete control-hub middleware (#535) 2024-10-12 13:38:39 +08:00
eball
e787ca0c1b feat: notification multilingual support (#534)
Co-authored-by: liuyu <>
2024-10-11 21:08:48 +08:00
aby913
d122d55060 fix: token-max-age convert to nanoseconds (#531)
fix: token-max-age convert
2024-10-11 16:07:43 +08:00
salt
b98b83630f feat: upgrade search3 to v0.0.16 for add google cloud search exact match (#530)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-132.cluster.local>
2024-10-11 13:48:00 +08:00
salt
3680061af5 feat: beclab/drive and beclab/driveexecutor upgrade v0.0.11 (#529)
feat:beclab/drive and beclab/driveexecutor upgrade v0.0.11

Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-132.cluster.local>
2024-10-11 13:47:12 +08:00
eball
0ba44ed56c fix: conflict ip address in hosts file (#527) 2024-10-10 19:12:59 +08:00
wiy
2546f92d63 feat: update settings new version v0.1.86 (#525)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons

* feat: release settings new version

* feat: update settings version to v0.1.77

* feat: release settings version to v0.1.85

* fix: settings update auth level error
2024-10-09 21:13:31 +08:00
eball
ce59b07742 fix: juicefs ip changing bug (#523)
* fix: juicefs ip changing bug

* fix: update terminusd

* fix: broadcast dns only when ip changed

---------

Co-authored-by: liuyu <>
2024-10-09 21:13:03 +08:00
simon
c373389d54 fix: knowledge-v0.1.48 (#524)
fix knowledge v0.1.48
2024-10-09 21:12:29 +08:00
aby913
5f2cd0dc51 fix: add MarketProvider (#521) 2024-10-08 23:33:06 +08:00
huaiyuan
48c5d85a89 fix: termipass v1.2.46 (#522) 2024-10-08 23:32:42 +08:00
eball
587c6b3305 Update release.yaml 2024-09-30 20:09:20 +08:00
hysyeah
5e8b65be5e fix: ingress add terminus language for desktop (#520) 2024-09-30 19:21:06 +08:00
Sai
699cfa354d feat: release market v0.2.20 (#519)
Applications in the mirror download state will also be displayed on the desktop
2024-09-30 17:19:22 +08:00
aby913
509e31fdae fix: macos kubeaddons dir not create (#518) 2024-09-30 16:16:21 +08:00
eball
d511c9bd4f fix: update device-plugin.yaml (#517) 2024-09-30 16:15:51 +08:00
wiy
1f39ac1a80 feat: update settings version to v0.1.85 (#516)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons

* feat: release settings new version

* feat: update settings version to v0.1.77

* feat: release settings version to v0.1.85
2024-09-30 14:57:14 +08:00
hysyeah
bc19e6e767 fix: invalid containerd.sock after containerd restart (#514)
* fix: invalid containerd.sock after containerd restart

* fix: add security context privileged true
2024-09-30 14:56:17 +08:00
eball
0afc162161 ci: bump to 1.10.0 (#513)
* ci: bump to 1.10.0

* ci: release yaml bug

---------

Co-authored-by: liuyu <>
2024-09-30 14:55:53 +08:00
eball
b9d72f4351 fix: change ip bug when not installed (#512)
Co-authored-by: liuyu <>
2024-09-30 11:25:38 +08:00
eball
4ba482bc4a Update release.yaml 2024-09-30 10:56:03 +08:00
simon
b5471ffe4c fix: rsshub to v0.0.2 (#511)
rss server
2024-09-29 21:26:04 +08:00
simon
0baec28595 fix: download config path (#510)
fix download
2024-09-28 23:06:32 +08:00
simon
4e11f8e2c5 feat: recommend backend to v0.0.16 (add rsshub cookie) (#509)
rsshub add cookie
2024-09-27 23:53:36 +08:00
eball
929dc856de feat: nvshare managed memory switching (#508)
* fix: running delay bug

* feat: nvshare managed memory switching

---------

Co-authored-by: liuyu <>
2024-09-27 23:33:35 +08:00
wiy
799ecb695d feat: update vault, file, wise, market version (#507)
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-09-27 23:09:19 +08:00
0x7fffff92
92a41316a0 fix: derp list optimization (#506)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-09-27 20:40:07 +08:00
aby913
011724efac fix: cli update to 0.1.29 (#500) 2024-09-26 23:52:03 +08:00
lovehunter9
d127e4d715 feat: external type/unmount & watch /data & basic step for google drive and photos (#501) 2024-09-26 23:51:09 +08:00
hysyeah
b74ebe2492 feat: argo workflow mutate image;more smooth pull progress calculate method (#502)
feat: argo workflow mutate image;more smooth pull progress cal method
2024-09-26 23:48:31 +08:00
huaiyuan
07d96c29cb fix: termipass v1.2.42 (#503) 2024-09-26 23:47:49 +08:00
berg
f2239aca96 feat: release market v0.2.17 (#504) 2024-09-26 23:46:15 +08:00
salt
367034a63b fix: beclab/drive upgrade v0.0.8 for fix certificate problem (#505)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-09-26 23:44:41 +08:00
liuyu
1cfac99a63 fix: change ip bugs 2024-09-26 21:46:16 +08:00
huaiyuan
e6bdbd1515 fix: termipass v1.2.41 (#499) 2024-09-25 23:56:23 +08:00
berg
64acd7b553 feat: market v0.2.16 version (#498) 2024-09-25 23:55:59 +08:00
simon
4040b203c9 fix: sync ,crawler remove from argo (#497)
sync crawler from argo
2024-09-25 23:55:18 +08:00
eball
ebfd6f58f9 feat: add terminusd info to terminus-info api (#495)
* feat: add terminusd info to terminus-info api

* fix: add mount propagation to external path in files

* fix: get shims bug

* fix: change ip even when terminus is not installed

---------

Co-authored-by: liuyu <>
2024-09-25 23:54:43 +08:00
hysyeah
00c26391eb fix: image download progress;image pull retry strategy (#496) 2024-09-25 21:49:19 +08:00
aby913
70358b99a6 fix: restore kubeType (#494) 2024-09-25 14:11:08 +08:00
salt
5140617b91 feat: upgrade beclab/drive to v0.0.5 and beclab/driveexecutor to v0.0.5 (#490)
* feat:google async download task process

* feat: upgrade beclab/drive beclab/driveexecutor to v0.0.5

* Update files_fe_deploy.yaml

* Update files_fe_deploy.yaml

* Update files_fe_deploy.yaml

* Update files_fe_deploy.yaml

* Update files_fe_deploy.yaml

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
Co-authored-by: eball <liuy102@hotmail.com>
2024-09-25 01:22:57 +08:00
aby913
913acb32ec feat: market v0.2.15 (#493)
* feat: update market i18n

* feat: add MARKET_PROVIDER

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-09-24 23:54:41 +08:00
aby913
af23d0a4a9 fix: cli update to 0.1.27 (#492) 2024-09-24 23:28:21 +08:00
dkeven
87102db713 fix: update bfl version to v0.3.43 (#491) 2024-09-24 23:27:53 +08:00
dkeven
44b745f715 fix: update reverse proxy image version to v0.1.3 (#489) 2024-09-24 23:27:15 +08:00
liuyu
a355d76e42 fix: change ip bug and install dir modified 2024-09-24 21:36:00 +08:00
huaiyuan
f91c8f6144 fix: termipass v1.2.37 & profile v1.0.2 & settings v0.1.83 (#488)
fix: termipass v1.2.37 & profile v1.0.2 & settings v0.1.82
2024-09-23 23:50:03 +08:00
simon
2fefc5c23e fix: knowledge to v0.1.48 (#487)
knowledget to v0.1.48
2024-09-23 23:49:24 +08:00
aby913
184317f95e fix: cli update to 0.1.26 (#486) 2024-09-23 23:48:48 +08:00
eball
e16126f322 fix: ignore notification error when login (#485)
* fix: ignore notification error when login

* fix: bump version

---------

Co-authored-by: liuyu <>
2024-09-23 23:47:26 +08:00
aby913
5dfabd5cb4 fix: cli update to 0.1.25 (#483) 2024-09-23 21:14:03 +08:00
salt
1fee28601a feat: upgrade search3 to v0.0.15 and add space property word for process (#484)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-09-23 16:01:55 +08:00
eball
ffd069a583 fix: terminusd v0.0.8 (#482) 2024-09-21 14:47:59 +08:00
aby913
5339f65a7e fix: cli update to 0.1.24 (#481) 2024-09-21 01:06:20 +08:00
hysyeah
16c13a024b fix: image download use mirror registry (#480)
fix: image download user mirror registry
2024-09-21 01:05:58 +08:00
aby913
2b33ae34a8 fix: update cli to 0.1.22 (#478)
* fix: update cli to 0.1.22

* Update install.sh

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-09-20 00:08:49 +08:00
huaiyuan
57cb7314de fix: termipass v1.2.35 (#479) 2024-09-19 23:06:40 +08:00
berg
f51857407b feat: knowledge v0.1.47 (#477)
* knowledge v0.1.47

* feat: update wise to v1.2.35

---------

Co-authored-by: simon <ljx1680535@163.com>
2024-09-19 23:06:16 +08:00
eball
e49c7be37c feat: usb mount (#476)
Co-authored-by: liuyu <>
2024-09-19 21:58:12 +08:00
hysyeah
dc437664be feat: auth add internal auth-level (#475) 2024-09-19 21:57:54 +08:00
huaiyuan
9644da8440 fix: update i18n (#474) 2024-09-19 21:35:33 +08:00
eball
0bbb8bb357 fix: update images tag (#473) 2024-09-19 21:35:08 +08:00
dkeven
7466de9bf0 fix: update bfl to v0.3.42 (#472) 2024-09-19 21:34:49 +08:00
yyh
84281afdd6 fix: update dashboard i18n (#471) 2024-09-19 00:38:10 +08:00
eball
6b39af2e5e fix: nvshare lib revert (#470) 2024-09-18 16:58:08 +08:00
dkeven
791be29777 fix: wrong path of install.sh (#469) 2024-09-18 16:32:36 +08:00
dkeven
ab6244dd33 fix: copy back install.sh after version string is injected (#466) 2024-09-18 14:40:41 +08:00
yyh
93076df4f2 fix: fix dashboard cluster source panel (#467) 2024-09-18 14:40:22 +08:00
eball
2616124757 fix: jfsnotify proxy nil pointer bug (#468)
Co-authored-by: liuyu <>
2024-09-18 14:23:40 +08:00
simon
896ece5975 feat: update knowledge to v0.1.46 (#465)
knowledge v0.1.46
2024-09-16 20:57:24 +08:00
berg
db980fc230 feat: update wise to v1.2.33 (#464) 2024-09-14 23:59:13 +08:00
dkeven
c83ab6cbe0 feat: support switching and turning off reverse proxy (#463) 2024-09-14 22:31:46 +08:00
aby913
1ed8d8acad fix: cli 0.1.21 (#460)
* fix: cli 0.1.21

* fix: cli 0.1.21

* fix: install reverse proxy config

---------

Co-authored-by: liuyu <>
2024-09-14 22:31:21 +08:00
eball
335c67427d fix: release archive package (#459)
Co-authored-by: liuyu <>
2024-09-14 21:24:12 +08:00
hysyeah
d3075b1024 fix: eviction from kubelet (#461) 2024-09-14 21:23:31 +08:00
eball
46852d411f fix: migrate the authelia storage to postgres (#458)
Co-authored-by: liuyu <>
2024-09-14 19:04:17 +08:00
hysyeah
3879f196ca fix: envoy set probes route to path;envoy timeout (#457) 2024-09-13 23:53:08 +08:00
eball
12e963f60a fix: reset password bug (#455)
* fix: reset password bug

* Update bfl_deploy.yaml
2024-09-13 23:52:42 +08:00
eball
013d52d244 fix: terminusd uninstall bug (#456) 2024-09-13 21:28:46 +08:00
aby913
864e34e6ec fix: cli 0.1.20 (#454) 2024-09-13 20:25:50 +08:00
yyh
b50aab4c4e fix: fix controlhub restart pod 404 (#453) 2024-09-13 17:27:46 +08:00
simon
4fa240a107 feat: update wise to wise:v1.2.30 and use rsshub docker (#452)
* feat: update wise v1.2.30

* knowledge v0.1.45

* rsshub

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-09-12 23:42:53 +08:00
aby913
862448872c fix: cli 0.1.19 (#450) 2024-09-12 23:42:23 +08:00
eball
f54929902b fix: change ip log (#449)
Co-authored-by: liuyu <>
2024-09-12 23:41:57 +08:00
huaiyuan
397784c9d7 fix: update search i18n for desktop (#448)
* fix: update search i18n for desktop

* fix: update i18n for wizard
2024-09-12 18:13:14 +08:00
hysyeah
1149f93da5 fix: envoy outbound suport websocket upgrade;system frontend configmap format (#447)
fix: envoy outbound suport websocket;system frontend configmap format
2024-09-12 18:12:33 +08:00
eball
e4c6888280 fix: nvshare cuMemAlloc modified (#446)
Co-authored-by: liuyu <>
2024-09-12 12:12:48 +08:00
wiy
1e3f2ae594 feat: update files & vault version to v1.2.28 (#445)
fixed: termipass v1.2.28

Co-authored-by: huaiyuan <1029848564@qq.com>
2024-09-11 23:18:19 +08:00
eball
2d980fe9b4 feat: change host ip (#444) 2024-09-11 23:17:50 +08:00
berg
144e8079d4 feat: knowledge v0.1.44 (#443)
* 0.1.44

* feat: update wise version

---------

Co-authored-by: simon <ljx1680535@163.com>
2024-09-11 23:17:34 +08:00
eball
3556725046 feat: delay sending write msg in 1s (#442)
* feat: delay sending write msg in 1s

* feat: delay sending write msg in 1s

---------

Co-authored-by: liuyu <>
2024-09-11 23:17:03 +08:00
aby913
069078576c fix: terminus-cli 0.1.18 (#440) 2024-09-11 22:37:28 +08:00
yyh
66d71b9c02 fix: fix controlhub and dashboard bugs (#439)
* fix: fix controlhub pods and namespace list link

* fix: fix dashboard app list data
2024-09-11 16:25:11 +08:00
0x7fffff92
b4bbf74c29 fix: crash when clearing segments (#438)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-09-11 16:24:49 +08:00
aby913
1c034aa8f3 fix: wsl natgateway (#436) 2024-09-11 16:15:35 +08:00
eball
5ad1e9fa7c feat: get terminus name in terminusd (#435)
feat: get terminus name in terminusd and fix some bugs
2024-09-11 16:13:21 +08:00
aby913
557c8b174a fix: terminus-cli 0.1.17 (#434) 2024-09-10 15:43:57 +08:00
eball
b05b678d4a fix: helm upgrade retry bug (#433)
* fix: helm upgrade retry bug

* Update check.yaml

---------

Co-authored-by: liuyu <>
2024-09-09 23:51:04 +08:00
aby913
efd9b72ff3 fix: terminus-cli 0.1.16 (#432) 2024-09-09 23:27:54 +08:00
eball
e430e762f8 Update check.yaml 2024-09-09 14:27:32 +08:00
eball
e4b73edf86 ci: installer package refactor (#427)
* ci: build redis

* ci: build redis

* fix: wrong file name

* fix: install make

* fix: s3 cp

* fix: sudo apt install

* Update build-redis.yaml

* Update build-redis.yaml

* Update build-redis.yaml

* Update build-redis.yaml

* Update build-redis.yaml

* ci: generate installation manifest

* fix: absolute path

* fix: for loop

* fix: bug

* fix: bug

* fix: re-upload

* fix: bug

* fix: bug

* fix: ignore empty line

* fix: manifest error

* fix: set -e

* fix: path

* fix: scripts modified

* fix: add common.sh

* fix: improve

* fix: improve

* fix: log path

* fix: add get_random_string func

* fix: add source common function

* add file id to manifest

* update pkgs

* update pkgs

* refactor: terminus-cli test

* fix: install

* fix: terminus-cli path

* remove uninstall script

* test commit

* test commit

* fix: macos install imporve

* bug fix

* fix: execute minikube script

* fix: terminus space installation

* fix: remove unused scripts

* fix: velero install path

* fix: workflows

* fix: bug fix

* fix: remove installer latest script

* fix: tar velero

* fix: remove minio operator

* fix: terminus cli new version

---------

Co-authored-by: liuyu <>
Co-authored-by: aby913 <aby913@163.com>
2024-09-09 13:50:55 +08:00
wiy
bac3392c4e feat: disable settings upgrade & fix some bugs (#431)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons

* feat: release settings new version

* feat: update settings version to v0.1.77
2024-09-09 11:38:49 +08:00
hysyeah
f2a1676831 feat: set deploy/sts replicas to 0, when eviction occur on one node cluster (#430)
feat: set deploy/sts replicas to 0, when eviction occured on one node cluster
2024-09-06 22:16:57 +08:00
yyh
26fcb947dd feat: add controlhub and dashboard i18n zh-CN (#429) 2024-09-06 22:16:40 +08:00
0x7fffff92
eb41929aed feat: supports playing media files in external storage (#428)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-09-06 22:16:07 +08:00
eball
b31fe7ca2d Update check.yaml 2024-09-06 21:14:54 +08:00
lovehunter9
48d8b02a07 fix: uploader cors bug (#426) 2024-09-06 20:13:41 +08:00
salt
8380ca2d2c feat: upgrade search3 to v0.0.12 (#425)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-09-06 17:32:31 +08:00
lovehunter9
804d93e40f fix: rpcserver will init in a goroutine (#424) 2024-09-06 17:32:11 +08:00
hysyeah
d83bd11491 feat: image service support use custom mirrors endpoint pull image (#423)
feat: image service support use custom mirros endpoint pull image
2024-09-06 17:30:13 +08:00
eball
a68c8aa2f0 fix: increase http header max size (#422)
* fix: increase http header max size

* fix: oidc bug

---------

Co-authored-by: liuyu <>
2024-09-06 00:21:35 +08:00
hysyeah
3d0dc7e5ae feat: move headscale frontend to system-frontend (#421) 2024-09-06 00:20:36 +08:00
berg
25b35f47af feat: update profile v2 (#420) 2024-09-05 21:40:42 +08:00
huaiyuan
5bdec435fa fix: Support language meta (#419) 2024-09-05 21:35:21 +08:00
eball
ed31144145 fix: numeric username bug (#418)
Co-authored-by: liuyu <>
2024-09-05 15:56:14 +08:00
lovehunter9
b7114bf254 feat: files external support (#416)
* feat: files external support

* Update files_deploy.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-09-05 00:44:29 +08:00
huaiyuan
f3446a0a31 feat: update termipass v1.2.26 (#417) 2024-09-04 23:36:42 +08:00
hysyeah
9c822995b2 feat: bfl-ingress inject terminus-language (#415) 2024-09-04 23:34:33 +08:00
berg
f02c5f5923 feat: release market v0.2.14 (#414) 2024-09-03 23:55:19 +08:00
eball
99853d028b feat: add memory cache to redis session storage (#413) 2024-09-03 21:53:47 +08:00
Calvin W.
654ed4feb3 docs: remove Proxmox from the comparison table (#412) 2024-09-03 21:53:24 +08:00
lovehunter9
fd85a6e40c feat: disable nitro for the time being (#411) 2024-09-03 21:52:49 +08:00
lovehunter9
f68892b45d feat: files only watches drive while not watching Data, Cache and External (#410) 2024-09-03 21:11:05 +08:00
simon
8a905e668b feat: download add cookie (#409)
add cookie
2024-09-03 00:07:20 +08:00
Peng Peng
f171c701b1 feat: add cookie legacy provider (#408) 2024-09-02 21:55:50 +08:00
huaiyuan
9a53290227 feat: add cookie upload page (#407) 2024-09-02 21:55:28 +08:00
aby913
4ea6cc984c feat: zfs support (#406) 2024-09-02 21:55:02 +08:00
Peng Peng
e3b26526b5 fix: modify the prompt (#405) 2024-08-30 21:11:12 +08:00
lovehunter9
1e3da0e25b feat: seahub authenticate with X-Bfl-User (no need login/token/session again) (#404)
feat: authenticate with X-Bfl-User (no need login/token/session again)
2024-08-30 16:31:11 +08:00
aby913
dc44d13e25 fix: add registry-mirrors (#403) 2024-08-30 16:30:24 +08:00
hysyeah
8c65bdea78 feat: inject window push state script (#401)
* feat: inject window push state script

* feat: set entrance window push state

* fix: fixed preview and transfer

---------

Co-authored-by: huaiyuan <1029848564@qq.com>
2024-08-30 16:29:57 +08:00
eball
d4026c7c9c Update install_macos.sh 2024-08-30 16:29:14 +08:00
eball
d62b10fb7f fix: modify the prompt 2024-08-30 16:26:59 +08:00
simon
89b6885955 feat: wise to v0.1.43 (#402)
knowledge to v0.1.43
2024-08-30 00:14:54 +08:00
eball
d96322bccc feat: add shared lib path (#400)
* feat: add shared lib path to files

* feat: add sharedlib path for app-service env

---------

Co-authored-by: liuyu <>
Co-authored-by: hys <hysyeah@gmail.com>
2024-08-30 00:14:24 +08:00
eball
99b3ce6d12 fix: validate host ip on macos (#398) 2024-08-30 00:13:36 +08:00
lovehunter9
bb4aa3ba78 fix: change buffer location to fix a new found copy bug after running as user 1000 (#396) 2024-08-29 13:36:29 +08:00
eball
2e0f27899d fix: ignore localhost ip as node ip (#395) 2024-08-29 13:36:04 +08:00
huaiyuan
3f366e2336 fix: Listen message for Iframe (#394) 2024-08-28 21:45:36 +08:00
hysyeah
f2e9c54d83 feat: move wise frontend to system frontend (#392) 2024-08-28 21:45:14 +08:00
salt
aba7792087 fix: update search to v0.0.11 which fix detect short language error (#391)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-08-28 21:44:36 +08:00
Peng Peng
90feed19e7 docs: add chinese version readme (#393) 2024-08-28 21:11:23 +08:00
fnalways
83cd8160a8 Update README_CN.md
Co-authored-by: Calvin W. <wenghao@bytetrade.io>
2024-08-28 21:07:21 +08:00
wangyajing
81473fc539 docs: fix alt text in readme 2024-08-28 20:53:32 +08:00
wangyajing
8dba4024e1 docs: update readme 2024-08-28 20:37:06 +08:00
wiy
4fd8b156d9 fix: settings server save cookie error (#389)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons

* feat: release settings new version

* feat: update settings version to v0.1.77
2024-08-27 23:38:43 +08:00
eball
410728abb1 fix: bump juicefs-ext to 11.1.1 (#388)
* fix: bump juicefs-ext to 11.1.1

* fix: bump juicefs-ext to 11.1.1

---------

Co-authored-by: liuyu <>
2024-08-27 23:38:18 +08:00
huaiyuan
ef1b4e741d feat: Add Sync for Search and spell checker (#387) 2024-08-27 21:22:12 +08:00
aby913
8f1c2d052c fix: update redis-server download url for arm64 (#386) 2024-08-27 20:46:05 +08:00
Calvin W.
3de41a706d docs: fix Discord link (#383) 2024-08-27 19:17:14 +08:00
aby913
02d08ed0e6 fix: uninstall script (#385)
fix: uninstall
2024-08-27 19:16:39 +08:00
hysyeah
40fe7f31e4 feat: move profile to system frontend deployment (#384) 2024-08-27 15:55:34 +08:00
eball
daa435d005 fix: jfsnotify daemon crash (#382) 2024-08-27 15:54:38 +08:00
simon
359b669904 fix: sync memory (#381)
sync memory
2024-08-26 23:50:29 +08:00
hysyeah
869167d734 feat: add allocatable pod check for user create;config system api (#380) 2024-08-26 23:50:03 +08:00
aby913
0168dffb23 fix: Improve the validation of the pve (#379)
* fix: Improve the validation of the pve

* fix: log location
2024-08-26 23:49:39 +08:00
aby913
d8a50ad795 fix: add proxmox support (#377) 2024-08-26 20:37:34 +08:00
eball
6e751a4e94 ci: build redis (#378)
Co-authored-by: liuyu <>
2024-08-26 19:19:49 +08:00
aby913
f37182fd07 fix: remove cluster for prepared (#376) 2024-08-26 19:15:41 +08:00
simon
d146ee5f24 fix: sync memory (#374)
* sync use root

* fix sync

* fix sync
2024-08-25 22:43:46 +08:00
eball
e6c14e188b fix: numeric user name (#371)
Co-authored-by: liuyu <>
2024-08-24 00:20:02 +08:00
aby913
1db3ddbc53 fix: uninstall for .prepared (#370) 2024-08-23 20:37:46 +08:00
eball
18445447e5 Update release.yaml 2024-08-23 10:58:02 +08:00
wiy
4b479a4500 feat: update settings version to v0.1.75 (#365)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons

* feat: release settings new version
2024-08-23 00:20:59 +08:00
lovehunter9
661c8ba14b feat: all folders watched in Drive, with special folder also parsed content (#364) 2024-08-22 20:57:58 +08:00
aby913
580f800e74 feat: add pre_install check (#363)
fix: add .prepared check
2024-08-22 20:57:34 +08:00
eball
35585f8223 fix: create rss data directory automatically (#361) 2024-08-22 19:58:10 +08:00
0x7fffff92
4f08c40523 fix: problems with uid 1000 (#360)
fix: problems  with uid 1000

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-08-22 16:46:05 +08:00
simon
ecd218fa91 fix: remove sync, crawler from argo (#358)
remove sync,crawler from argo
2024-08-22 11:24:19 +08:00
aby913
72c459c09b fix: use compiled redis (#357) 2024-08-22 11:22:53 +08:00
yyh
985fe33283 fix: fix controlhub Terminal and Log permissions (#356) 2024-08-22 11:21:21 +08:00
aby913
4efc1d47be fix: update deps manifest (#355) 2024-08-22 11:20:54 +08:00
huaiyuan
30b2698442 fix: update google drive (#354) 2024-08-20 23:24:11 +08:00
salt
6a4ffe2527 fix: fix google drive list, refactor google drive operation (#353)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-08-20 23:23:43 +08:00
salt
f91329e9a8 fix: fix english chinese search together (#352)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-08-20 23:23:21 +08:00
yyh
50a71812a2 fix: update controlhub toolbar actions style (#351) 2024-08-20 23:22:49 +08:00
eball
b9eed799ce fix: retry for built-in app installation (#349) 2024-08-20 23:22:23 +08:00
wiy
eade1b318e feat: update files new version to v1.2.22 (#348)
feat: update files version to v1.2.22
2024-08-19 23:22:14 +08:00
lovehunter9
2b057e1cf8 feat: uploader change (#347) 2024-08-19 23:21:20 +08:00
eball
31faed5bfb feat: force all pods running as user 1000 (#346)
* feat: force all pods running as user 1000

* fix: run wise as root

* fix: remove orinx gpu

* download root change

* aria2-pro root change

* change aria2 security

---------

Co-authored-by: liuyu <>
Co-authored-by: simon <ljx1680535@163.com>
2024-08-19 20:45:31 +08:00
yyh
47a7e4c5af feat: update edit and view YAML type (#345)
* style: update edit and view YAML type

* Update system-frontend.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-08-16 22:54:06 +08:00
aby913
3f18373505 fix: nats imagePullPolicy (#344)
fix: nats pullPolicy
2024-08-16 20:39:08 +08:00
hysyeah
3158235789 feat: webhook for crd imagemanager (#342) 2024-08-16 20:38:47 +08:00
hysyeah
a302ced454 fix: can not connect to containerd in k3s (#343) 2024-08-16 16:25:03 +08:00
aby913
c0f7860623 fix: .installed path (#341) 2024-08-16 13:43:11 +08:00
huaiyuan
8b82aa5f8f fix: login add notify when login err and update ui of desktop (#340)
* feat: search upgrade for desktop

* feat: Search Upgrade

* fix: update textSearch

* fix: Fixed some bug for text search

* fix: login add notify when login err and update ui of desktop
2024-08-15 22:35:23 +08:00
hysyeah
caa8c69fc1 fix: add apiextensions permission for second user (#339) 2024-08-15 22:34:56 +08:00
simon
f237c2043e feat: download version updated to v0.0.4 (#338)
* feat recommend add model

* download update
2024-08-15 22:34:28 +08:00
hysyeah
4aa6c83b80 feat: system-frontend merge dashboard,controlhub;set auth default policy follow system auth policy (#337)
feat: system-frontend merge dashboard,controlhub;auth default policy follow system auth policy

Co-authored-by: liuyu <>
2024-08-15 01:02:20 +08:00
yyh
8022993267 fix: fix controlhub some bugs (#336) 2024-08-15 00:07:59 +08:00
aby913
72b00dc853 fix: nvidia-ctk use external containerd (#334)
* fix: nvidia-ctk use external containerd

* Update install_cmd.sh

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-08-15 00:07:31 +08:00
aby913
9aeeeeb55a fix: remove unrelated directory operations (#335) 2024-08-14 21:26:27 +08:00
eball
ae9ac35a0e fix: change the path of installed lock file (#332)
* fix: change the path of installed lock file

* fix: update public script

---------

Co-authored-by: liuyu <>
2024-08-14 13:28:57 +08:00
simon
fdf65f3071 feat: add recommend model (#331)
feat recommend add model
2024-08-13 23:56:44 +08:00
huaiyuan
75c85bbe5e fix: fixed some bug for text search (#329)
* feat: search upgrade for desktop

* feat: Search Upgrade

* fix: update textSearch

* fix: Fixed some bug for text search
2024-08-13 22:47:51 +08:00
yyh
be2f61ddc3 fix: fix controlhub multiple users permissions (#330) 2024-08-13 22:31:57 +08:00
aby913
5fb1a724a8 feat: install a separate containerd service for k3s (#327)
* feat: install a separate containerd service for k3s

* fix: remove install-wizard
2024-08-13 20:57:52 +08:00
eball
cfe07f5c43 Update install.sh 2024-08-13 11:53:37 +08:00
eball
81e2bbbb4f Update build.sh 2024-08-13 11:40:49 +08:00
yyh
d6dd1defa9 fix: optimized controlhub and dashboard (#325)
* fix: fix controlhub/browse/*,storage/* bugs

* fix: fix dashboard/analytics i18n
2024-08-12 23:08:55 +08:00
aby913
20a8ea6512 fix: remove s3 mount (#323) 2024-08-12 20:37:53 +08:00
salt
44d8670db1 feat: knowledge version updated to v0.1.42 (#322)
Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-08-10 22:14:24 +08:00
berg
91a8069353 feat: update knowledge to v0.1.42 (#320) 2024-08-09 23:57:31 +08:00
huaiyuan
a6c5dd216c fix: update textSearch (#319)
* feat: search upgrade for desktop

* feat: Search Upgrade

* fix: update textSearch
2024-08-09 21:21:05 +08:00
aby913
730c8a2fb3 feat: uninstall using terminus-cli (#317) 2024-08-09 20:29:16 +08:00
eball
001dae8557 fix: clear the anonymous session (#316)
* fix: clear the anonymous session

* fix: make sure clear libnvshare.so

* fix: file deployment typo

---------

Co-authored-by: liuyu <>
2024-08-09 20:27:07 +08:00
eball
47923f95a2 fix: set fs type when system app installing (#315)
Co-authored-by: liuyu <>
2024-08-09 00:23:48 +08:00
huaiyuan
39c1d95c7c feat: Search Upgrade (#314)
* feat: search upgrade for desktop

* feat: Search Upgrade
2024-08-09 00:23:29 +08:00
hysyeah
03e58644dc fix: delete unmanaged-pvc;change imagemangers update retry strategy (#312)
fix: delete unamaged-pvc;change imagemangers update retry strategy

Co-authored-by: eball <liuy102@hotmail.com>
2024-08-09 00:22:59 +08:00
salt
a6fe353dde feat: wise entry submit to search3 with meta (#311)
* feat: wise entry submit to search3 with meta

* fix: knowledge submit entry to search3, the author is not empty in wise but empty in search

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-08-08 21:29:45 +08:00
0x7fffff92
420a1ec314 fix: audio-only media not playing (#310)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-08-08 21:29:14 +08:00
aby913
d7f345af98 feat: downloading image files (#313)
* ci: optimize installer package

* ci: add preloading images

* ci: add preloading images

* fix: remove useless annotation

* fix: add push-arm64 job

* fix: update images.mf

* fix: update images.mf

* fix: update images.mf

* fix: update installer

* fix: update images.mf

* fix: check if the image directory exists

* fix: add TERMINUS_IS_CLOUD_VERSION parm

---------

Co-authored-by: liuyu <>
2024-08-08 21:27:58 +08:00
huaiyuan
0ef8f34caa feat: search upgrade for desktop (#306) 2024-08-07 23:34:22 +08:00
berg
86a00454dc fix: update market app details ui (#307) 2024-08-07 23:33:54 +08:00
huaiyuan
283f1e1926 feat: termipass v1.2.19 (#309) 2024-08-07 23:33:00 +08:00
aby913
d576cf1046 fix: raspberry pi os validation (#301) 2024-08-06 23:59:37 +08:00
yyh
138db31ab4 fix: update controlhub and dashboard disk unit (#302) 2024-08-06 23:59:06 +08:00
simon
0ae1794d44 fix: download bug (#304)
download fix
2024-08-06 23:58:13 +08:00
eball
9f06fc8706 fix: add cuda lib fixing to k3s service as a pre-task (#299)
fix: add cuda lib fixing to k3s service as pre-task

Co-authored-by: liuyu <>
2024-08-06 19:55:13 +08:00
lovehunter9
4f995f4e1f fix: jfsnotify os-system bug (#296) 2024-08-06 19:31:22 +08:00
eball
119c248997 fix: add kubesphere redis to the dependencies of authelia (#295)
Co-authored-by: liuyu <>
2024-08-06 13:01:12 +08:00
eball
dcb55638f3 fix: change ip bug on wsl (#292)
Co-authored-by: liuyu <>
2024-08-05 22:53:13 +08:00
lovehunter9
f2333a811b feat: files watch /Home/Documents for search3 (#290) 2024-08-05 22:05:00 +08:00
hysyeah
3448599d8b fix: download image obey image pullpolicy;fire an error when containerd is down (#291) 2024-08-05 22:04:26 +08:00
0x7fffff92
00413ffa40 feat: support playing videos in Sync (#289)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-08-02 21:10:20 +08:00
hysyeah
4763bfb771 fix: change nat export to arrary;all user app list api (#287) 2024-08-02 20:34:38 +08:00
eball
336b765ce1 fix: oidc bug & authelia crash on start up (#288)
Co-authored-by: liuyu <>
2024-08-02 20:34:14 +08:00
hysyeah
bdd4346912 feat: add support for nats (#286) 2024-08-01 23:44:45 +08:00
aby913
df4bef2835 fix: velero resource adjustment (#285) 2024-08-01 20:56:47 +08:00
aby913
924f78fe5f fix: kubectl path and k8s preload images path (#283) 2024-08-01 19:50:04 +08:00
eball
21a472b6d0 Update check.yaml 2024-08-01 16:44:47 +08:00
eball
6483ddc913 Update check.yaml 2024-08-01 16:43:15 +08:00
Peng Peng
9ed823cc98 docs: fix bad links and fold tables in readme (#282) 2024-08-01 16:01:54 +08:00
Calvin W
5950605d28 fix bad links and fold tables 2024-08-01 15:54:08 +08:00
aby913
a3e0cc82cd fix: velero resource (#281) 2024-08-01 13:44:04 +08:00
aby913
a3670938f2 fix: image update (#280) 2024-08-01 10:57:01 +08:00
eball
98db8caecc ci: bump to 1.8.0 (#279)
Co-authored-by: liuyu <>
2024-07-31 22:23:29 +08:00
yyh
a2310619bf fix: fix controlhub/jobs job actions (#277) 2024-07-31 21:39:07 +08:00
huaiyuan
1087de1c7a feat: files_1.7 (#278)
* feat: File supports video

* feat: files_1.7
2024-07-31 21:38:44 +08:00
simon
dcf284fb62 feat: add knowledge download (#276)
* feat: update wise to v0.1.37 and update download dir path

* fix: update download dir

* add download

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2024-07-31 20:36:46 +08:00
0x7fffff92
c637f44ff5 feat: support playing videos in Data and Cache (#275)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-07-31 19:49:52 +08:00
aby913
1e55ec7878 fix: upgrade installer (#274) 2024-07-31 16:56:00 +08:00
0x7fffff92
7f468b6530 fix: hide pvc in play path, service bug (#273)
* fix: for special characters in path

* fix: optimize the memory usage of media-server

* fix: video-only media, 301 urlencode

* fix: move media-server to os-system namespace

* fix: hide pvc in play path

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-07-30 23:10:17 +08:00
aby913
ee95db908f fix: minikube install (#272) 2024-07-30 21:56:12 +08:00
eball
ce4b81fc84 fix: optimize the os restart process (#271)
* fix: optimize the os restart process

* fix: add infisical-service as dependency of settings

---------

Co-authored-by: liuyu <>
2024-07-30 21:03:00 +08:00
aby913
dbdec3dbb6 fix: modify l4 imagePullPolicy (#270) 2024-07-30 20:00:10 +08:00
eball
183465123f fix: ntpdate error (#266)
* fix: ntpdate error

* fix: hwclock

---------

Co-authored-by: liuyu <>
2024-07-30 01:10:58 +08:00
lovehunter9
6bcfe007d3 fix: files_os_system bugs (#269) 2024-07-30 01:10:42 +08:00
wiy
7334f10c60 feat: update settings application providers and permissons (#268)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71

* feat: update settings application  providers and permissons
2024-07-29 21:35:48 +08:00
eball
6d8f978a1f feat: support switching jfsnotify to fsnotify (#264)
* feat: support switching to fsnotify

* fix: clear nvshare files on os reboot

---------

Co-authored-by: liuyu <>
2024-07-29 21:35:18 +08:00
hysyeah
96a78f33b1 feat: get provider registry list by appname (#267) 2024-07-29 21:34:50 +08:00
salt
6b1058eadd feat: 1.knowledge submit entry to search, using pure content extracte… (#265)
feat: 1.knowledge submit entry to search, using pure content extracted from full_content 2.search add matched_term field for document hid 3.search fix chinese content found less when search

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-247.cluster.local>
2024-07-29 20:06:33 +08:00
0x7fffff92
7bead984b0 fix: move media-server to os-system namespace (#263)
* fix: for special characters in path

* fix: optimize the memory usage of media-server

* fix: video-only media, 301 urlencode

* fix: move media-server to os-system namespace

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-07-29 10:46:15 +08:00
aby913
4d1af80c91 feat: support minikube (#262)
* feat: support minikube

* fix: update scripts

* fix: update scripts

* fix: update terminus-cli url

---------

Co-authored-by: liuyu <>
2024-07-27 23:43:19 +08:00
Peng Peng
240644f8d7 feat: support gdrive and dropbox drive (#260) 2024-07-26 23:46:30 +08:00
eball
f579f7bad6 fix: apt update failed with wrong clock time (#261)
Co-authored-by: liuyu <>
2024-07-26 23:34:08 +08:00
qq815776412
e60dcd3dfa feat: update settings version to v0.1.73 2024-07-26 23:16:46 +08:00
qq815776412
ccc387d291 Merge branch 'main' into feat/support-drive 2024-07-26 23:14:01 +08:00
yyh
1a33b2b2d9 feat: add controlhub/jobs and controlhub/browse/pod monitoring (#258) 2024-07-26 22:09:36 +08:00
lovehunter9
fb2d6057b4 feat: files to os-system (#259) 2024-07-26 22:09:09 +08:00
hysyeah
5268ea00d1 feat: add cluster arch for helm values (#257) 2024-07-26 21:22:11 +08:00
hysyeah
2424ce6c5e feat: system-server proxy add support for sse/x-ndjson (#256) 2024-07-26 21:21:45 +08:00
Peng Peng
ffeb88c2ee Update files_deploy.yaml 2024-07-26 21:19:38 +08:00
eball
a35dfd63ef fix: installing gpu bugs on wsl (#255)
* fix: install gpu bugs on wsl

* fix: script bug

* fix: change cp to ln

---------

Co-authored-by: liuyu <>
Co-authored-by: aby913 <aby913@163.com>
2024-07-26 15:38:51 +08:00
wiy
b32e1b1444 feat: update files version to v1.2.14 (#253) 2024-07-25 23:26:24 +08:00
eball
3f20bfc98a feat: add explicit runtime class for nvidia to support wsl (#254)
* fix: add explicit runtime class for nvidia

* fix: gpu-limit-inject webhook add runtime_class_name for nvidia gpu type

---------

Co-authored-by: liuyu <>
Co-authored-by: hys <hysyeah@gmail.com>
2024-07-25 23:25:55 +08:00
aby913
f14ebe1b2f fix: check raspberry (#252) 2024-07-25 22:04:09 +08:00
0x7fffff92
a23adfa8fa fix: video-only media, 301 urlencode (#251)
* fix: for special characters in path

* fix: optimize the memory usage of media-server

* fix: video-only media, 301 urlencode

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-07-25 21:42:21 +08:00
salt
fe9749f97f feat: 1. add library entry to search pg 2. add get resource by uri router (#250)
* feat: 1.support content_language,title_language update 2.add meta field 3.add router support language

* feat: 1.add library entry to search pg 2.add get document by resource uri

* feat: check pg start

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-135.cluster.local>
2024-07-25 11:57:19 +08:00
eball
194037cd28 feat: installation optimize (#249)
* feat: installation optimize

* fix: ip check

---------

Co-authored-by: liuyu <>
2024-07-24 23:00:17 +08:00
eball
97cac44b42 feat: installation optimize (#247)
* fix: optimize installing on raspbian

* feat: add terminus-cli

* feat: upgrade authelia to support localhost access

* feat: add nat ip annotation to bfl on wsl

* fix: nat gateway

* fix: create velero crds retry

* feat: upgrade bfl to support nat gateway

* fix: remove registry-mirrors

---------

Co-authored-by: liuyu <>
Co-authored-by: aby913 <aby913@163.com>
2024-07-24 13:38:45 +08:00
Peng Peng
4f22d1e74a feat: update desktop&login&settings bg pictures (#248) 2024-07-23 23:05:38 +08:00
qq815776412
8c555cd6e4 feat: update desktop&login&settings bg pictures 2024-07-23 22:28:33 +08:00
wiy
8bde07c9d0 feat: update settings version to v0.1.71 (#246)
* feat: settings add dark theme

* feat: update settings version to v0.1.69

* feat: update vault & files version to v1.2.6

* feat: update profile to version to v0.3.22

* feat: update settings version to v0.1.71

feat: update settings version to v0.1.71
2024-07-23 21:13:30 +08:00
hysyeah
d6a44f5800 feat: add options for set envoy outbound and inbound timeout (#245)
feat: add options for set envoy outbound and inbound timeout in TerminusManifest.yaml
2024-07-23 20:02:54 +08:00
aby913
de7e22f8c3 fix: add velero create crds retries (#240)
* no message

* fix: update velero version
2024-07-23 15:37:48 +08:00
salt
a6751deffe feat: 1.support content_language,title_language update 2.add meta fie… (#243)
feat: 1.support content_language,title_language update 2.add meta field 3.add router support language

Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-135.cluster.local>
2024-07-23 10:53:26 +08:00
Peng Peng
b1bccea98a feat: Added a script to check the size of all images in the installation package. (#238) 2024-07-22 11:16:17 +08:00
Peng Peng
c93bffd4cb feat: Added initial support for Google Drive and Dropbox in Files. (#239) 2024-07-22 11:14:36 +08:00
salt
a40a8e491e feat: init search3 (#228)
* feat: init search3

* fix: fix  missing runtime .so

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-135.cluster.local>
2024-07-20 14:31:25 +08:00
yyh
a3d3d3eec8 feat: add controlhub/storages (#237) 2024-07-19 23:08:56 +08:00
berg
fddb920b10 feat: update market version to v0.2.10 (#236)
* feat: update market to v0.2.8

* feat: update market to v0.2.9

* feat: update market version to v0.2.10
2024-07-19 23:08:22 +08:00
yyh
48ec40a078 fix: fix dashboard layout bug in windows (#231) 2024-07-19 20:56:41 +08:00
Peng Peng
aa792699a4 docs: further fix Web3 related wording and other formatting issues (#227) 2024-07-19 20:36:19 +08:00
Peng Peng
b0eda9a737 feat: Modify the quick installation script to resolve the issue of du… (#233)
* feat: Modify the quick installation script to resolve the issue of duplicate image downloads.

1.  Resolve the issue where each execution of the installation command requires re-downloading all images.
2. Perform an uninstallation first before each installation.

* Update uninstall_cmd.sh

---------

Co-authored-by: eball <liuy102@hotmail.com>
2024-07-19 19:08:25 +08:00
Calvin W
b6e1e0ca49 fix typo 2024-07-18 21:33:31 +08:00
Calvin W
9b44632304 further fix Web3 related wording and other formatting issues 2024-07-18 21:30:32 +08:00
Peng Peng
b56df26692 docs: adjust readme message for home cloud positioning and other updates (#226) 2024-07-18 21:13:07 +08:00
Calvin W.
e3072a5823 Merge branch 'main' into docs/adjust-readme-message 2024-07-18 21:12:39 +08:00
Calvin W
5a68496fb7 Further unify Terminus usage and refine opening 2024-07-18 21:00:36 +08:00
eball
30bfb65638 fix: downloading the wrong package (#225)
fix: downloading wrong package

Co-authored-by: liuyu <>
2024-07-18 17:33:34 +08:00
eball
c2195a7dbe Update images 2024-07-18 16:49:47 +08:00
eball
7a44768bd8 fix: os arch check for macos (#224)
Co-authored-by: liuyu <>
2024-07-18 16:10:45 +08:00
eball
007cad75cd Update upload-full.yaml 2024-07-18 13:01:54 +08:00
eball
3e32281b2f fix: change ip for wsl (#223)
Co-authored-by: liuyu <>
2024-07-18 11:24:45 +08:00
0x7fffff92
425facfdf0 fix: Optimize the memory usage of media-server (#222)
* fix: for special characters in path

* fix: optimize the memory usage of media-server

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2024-07-18 11:24:09 +08:00
eball
72b5b64c98 Update release-daily.yaml 2024-07-18 11:18:08 +08:00
berg
da99e73764 feat: update market to version v0.2.9 (#219)
* feat: update market to v0.2.8

* feat: update market to v0.2.9
2024-07-17 20:20:09 +08:00
Calvin W.
bcb317f89f docs: update home cloud as project positioning (#218)
* docs: update home cloud as project positioning

* fix formatting and wording

* update title and TermiPass description
2024-07-17 20:19:51 +08:00
eball
32ebdd19e3 feat: quick install script for macos & wsl & Raspberry Pi (#221)
Co-authored-by: liuyu <>
2024-07-17 20:19:34 +08:00
salt
4fe0f23dcd fix: fix knowledge auto restart (#220)
fix: fix knowledge start

Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-135.cluster.local>
2024-07-17 17:03:11 +08:00
Calvin W
4dbf9d3c56 update title and TermiPass description 2024-07-16 14:45:32 +08:00
Calvin W
01673e39f0 fix formatting and wording 2024-07-16 14:13:33 +08:00
Calvin W
b56ea35987 docs: update home cloud as project positioning 2024-07-16 14:07:55 +08:00
hysyeah
4ac0ce8e28 feat: remove zinc server from terminus (#217) 2024-07-15 22:05:14 +08:00
simon
833d6eaf37 fix: download env (#216)
env
2024-07-15 00:40:34 +08:00
simon
ca2c8d5f9a feat: remove knowledge zinc (#215)
remove zinc
2024-07-14 00:12:42 +08:00
simon
105d628143 feat: add download module (#214)
* download

* download

* download

* download

* knowledge
2024-07-13 23:03:59 +08:00
hysyeah
2b058a842d fix: app inter call sidecar inject;update vectors to 0.3.0 (#213) 2024-07-13 00:13:04 +08:00
eball
74257eb8c8 feat: support open id connect (#211)
* feat: support open id connect

* Update auth_backend_deploy.yaml

---------

Co-authored-by: liuyu <>
2024-07-11 20:51:16 +08:00
288 changed files with 30298 additions and 12057 deletions

View File

@@ -1,23 +1,17 @@
* **Please check if the PR fulfills these requirements**
- [ ] The commit message follows our guidelines
- [ ] Tests for the changes have been added (for bug fixes / features)
- [ ] Docs have been added / updated (for bug fixes / features)
Title: <subsystem>: <what changed>
<!-- If the changes affect two subsystems, use a comma (and a whitespace) to separate them like util/codec, util/types:. -->
* **Background**
<!-- Provide background information about the changes here -->
* **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...)
* **Target Version for Merge**
<!-- Specify the version to which these changes need to be merged -->
* **Related Issues**
<!-- Reference any related issues here, if applicable -->
* **What is the current behavior?** (You can also link to an open issue here)
* **What is the new behavior (if this is a feature change)?**
* **Does this PR introduce a breaking change?** (What changes might users need to make in their application due to this PR?)
* **PRs Involving Sub-Systems**
<!-- List any PRs involving sub-systems, if applicable -->
* **Other information**:

20
.github/workflows/build-redis-231.yaml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Build and Upload Redis
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-20.04
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-redis.sh linux/amd64 glibc-231

43
.github/workflows/build-redis.yaml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Build and Upload Redis
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-redis.sh linux/amd64
push-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: Clean
run: |
sudo rm -rf redis*
- name: "Checkout source code"
uses: actions/checkout@v3
- name: Install tools
run: |
sudo apt install -y make gcc
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
sudo -E sh -c "bash scripts/build-redis.sh linux/arm64 && rm -rf redis*"

20
.github/workflows/build-ubuntu2204.yaml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Build and Upload WSL Ubuntu2204
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-ubuntu2204.sh

20
.github/workflows/build-wsl2326.yaml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Build and Upload WSL MSI
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-wsl-install-msi.sh

View File

@@ -13,18 +13,12 @@ jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: PR Conventional Commit Validation
uses: ytanikin/PRConventionalCommits@1.1.0
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
with:
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
add_label: 'true'
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Set up Helm
uses: azure/setup-helm@v3
@@ -43,17 +37,8 @@ jobs:
run: |
bash scripts/package.sh
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --chart-dirs build/installer/wizard/config --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --chart-dirs build/installer/wizard/config --check-version-increment=false --target-branch ${{ github.event.repository.default_branch }}
run: ct lint --chart-dirs build/installer/wizard/config,build/installer/wizard/config/apps,build/installer/wizard/config/gpu --check-version-increment=false --all
# - name: Create kind cluster
# if: steps.list-changed.outputs.changed == 'true'
@@ -63,8 +48,92 @@ jobs:
# if: steps.list-changed.outputs.changed == 'true'
# run: ct install --chart-dirs wizard/charts,wizard/config --target-branch ${{ github.event.repository.default_branch }}
push-image:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
push-image-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf linux/arm64
push-deps:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
push-deps-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Install coscmd
run: pip install coscmd
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/deps-manifest.sh linux/arm64 && bash scripts/upload-deps.sh linux/arm64
install-test:
needs: lint-test
needs: [lint-test, push-image, push-image-arm64, push-deps, push-deps-arm64]
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -72,11 +141,12 @@ jobs:
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: 'Test tag version'
id: vars
run: |
v=1.7.0-$(echo $RANDOM)
v=1.12.0-$(echo $RANDOM)
echo "tag_version=$v" >> $GITHUB_OUTPUT
- name: Package installer
@@ -89,6 +159,8 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
md5sum install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz > install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt && \
aws s3 cp install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt s3://terminus-os-install/install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz s3://terminus-os-install/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz --acl=public-read

37
.github/workflows/daily-lint-check.yaml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Lint Check Charts
on:
schedule:
# This is a UTC time
- cron: "30 1 * * *"
workflow_dispatch:
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.12.1
- uses: actions/setup-python@v4
with:
python-version: '3.9'
check-latest: true
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.0
- name: Pre package
run: |
bash scripts/package.sh
- name: Run chart-testing (lint)
run: |
ct lint --chart-dirs build/installer/wizard/config,build/installer/wizard/config/apps,build/installer/wizard/config/gpu --check-version-increment=false --all

View File

@@ -3,21 +3,67 @@ name: Push deps to S3
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
- name: Install coscmd
run: pip install coscmd
- name: Configure coscmd
env:
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
COS_BUCKET: ${{ secrets.COS_BUCKET }}
COS_REGION: ${{ secrets.COS_REGION }}
END_POINT: ${{ secrets.END_POINT }}
run: |
coscmd config -a $TENCENT_SECRET_ID \
-s $TENCENT_SECRET_KEY \
-b $COS_BUCKET \
-r $COS_REGION
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
push-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
- name: Install coscmd
run: pip install coscmd
- name: Configure coscmd
env:
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
COS_BUCKET: ${{ secrets.COS_BUCKET }}
COS_REGION: ${{ secrets.COS_REGION }}
END_POINT: ${{ secrets.END_POINT }}
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
coscmd config -m 10 -p 10 -a $TENCENT_SECRET_ID \
-s $TENCENT_SECRET_KEY \
-b $COS_BUCKET \
-r $COS_REGION
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/deps-manifest.sh linux/arm64 && bash scripts/upload-deps.sh linux/arm64

View File

@@ -1,23 +0,0 @@
name: Push gpu-deps to S3
on:
workflow_dispatch:
inputs:
environment:
description: 'Set OS: ubuntu-20.04, ubuntu-22.04'
required: true
jobs:
push:
runs-on: ${{ github.event.inputs.environment }}
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
bash scripts/upload-gpu-deps.sh

View File

@@ -3,21 +3,66 @@ name: Push images to S3
on:
workflow_dispatch:
jobs:
push:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: 'Checkout source code'
- name: "Checkout source code"
uses: actions/checkout@v3
- name: Install coscmd
run: pip install coscmd
- name: Configure coscmd
env:
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
COS_BUCKET: ${{ secrets.COS_BUCKET }}
COS_REGION: ${{ secrets.COS_REGION }}
END_POINT: ${{ secrets.END_POINT }}
run: |
coscmd config -a $TENCENT_SECRET_ID \
-s $TENCENT_SECRET_KEY \
-b $COS_BUCKET \
-r $COS_REGION
# test
- env:
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
push-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
- name: Install coscmd
run: pip install coscmd
- name: Configure coscmd
env:
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
COS_BUCKET: ${{ secrets.COS_BUCKET }}
COS_REGION: ${{ secrets.COS_REGION }}
END_POINT: ${{ secrets.END_POINT }}
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
coscmd config -m 10 -p 10 -a $TENCENT_SECRET_ID \
-s $TENCENT_SECRET_KEY \
-b $COS_BUCKET \
-r $COS_REGION
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf linux/arm64

View File

@@ -9,33 +9,84 @@ on:
workflow_dispatch:
jobs:
upload-full:
push-images:
runs-on: ubuntu-22.04
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
push-images-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf linux/arm64
push-deps:
runs-on: ubuntu-latest
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 21200
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
push-deps-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: "Checkout source code"
uses: actions/checkout@v3
# test
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/deps-manifest.sh linux/arm64 && bash scripts/upload-deps.sh linux/arm64
upload-package:
needs: [push-images, push-images-arm64, push-deps, push-deps-arm64]
runs-on: ubuntu-latest
steps:
- name: 'Daily tag version'
id: vars
run: |
v=1.7.0-$(date +"%Y%m%d")
v=1.12.0-$(date +"%Y%m%d")
echo "tag_version=$v" >> $GITHUB_OUTPUT
echo "latest_version=1.4.4" >> $GITHUB_OUTPUT
- name: 'Checkout source code'
uses: actions/checkout@v3
- name: Package installer
run: |
bash scripts/build-full.sh ${{ steps.vars.outputs.tag_version }}
bash scripts/build.sh ${{ steps.vars.outputs.tag_version }}
- name: Upload to S3
env:
@@ -43,10 +94,13 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
md5sum install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz > install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt && \
aws s3 cp install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt s3://terminus-os-install/install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz s3://terminus-os-install/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz --acl=public-read
release:
needs: upload-full
needs: [upload-package]
runs-on: ubuntu-latest
steps:
@@ -56,40 +110,26 @@ jobs:
- name: 'Daily tag version'
id: vars
run: |
v=1.7.0-$(date +"%Y%m%d")
v=1.12.0-$(date +"%Y%m%d")
echo "tag_version=$v" >> $GITHUB_OUTPUT
echo "latest_version=1.4.4" >> $GITHUB_OUTPUT
- name: Package installer
run: |
bash scripts/package.sh
echo "version_md5sum=$(curl -sSfL https://dc3p1870nn3cj.cloudfront.net/install-wizard-v${v}.md5sum.txt|awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Update version
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/wizard/config/settings/templates/terminus_cr.yaml'
placeholder: '#__VERSION__'
tag: ${{ steps.vars.outputs.tag_version }}
- name: Update release version
- name: Update checksum
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/install.sh'
placeholder: '#__VERSION__'
tag: ${{ steps.vars.outputs.tag_version }}
- name: Update latest installer
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/publicInstaller.latest'
placeholder: '#{{LATEST_VERSION}}'
tag: ${{ steps.vars.outputs.latest_version }}
placeholder: '#__MD5SUM__'
tag: ${{ steps.vars.outputs.version_md5sum }}
- name: Package installer
run: |
bash scripts/build.sh ${{ steps.vars.outputs.tag_version }}
- name: 'Archives'
working-directory: ./build/installer
run: |
mkdir -p /tmp/build
tar --exclude=wizard/tools --exclude=.git -zcvf /tmp/build/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz .
cp .dist/install-wizard/install.sh build/installer
cp build/installer/install.sh build/installer/publicInstaller.sh
cp .dist/install-wizard/install.ps1 build/installer
- name: Release public files
uses: softprops/action-gh-release@v1
@@ -97,11 +137,11 @@ jobs:
name: v${{ steps.vars.outputs.tag_version }} Release
tag_name: ${{ steps.vars.outputs.tag_version }}
files: |
/tmp/build/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz
install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz
build/installer/publicInstaller.sh
build/installer/publicInstaller.latest
build/installer/uninstall_cmd.sh
build/installer/install.sh
build/installer/install.ps1
build/installer/joincluster.sh
build/installer/publicAddnode.sh
build/installer/version.hint
build/installer/publicRestoreInstaller.sh

View File

@@ -1,94 +0,0 @@
name: Weekly Release
on:
# schedule:
# This is a UTC time
# - cron: "30 7 * * 1"
workflow_dispatch:
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: 'Checkout source code'
uses: actions/checkout@v4
with:
fetch-depth: '0'
fetch-tags: 'true'
- name: setup python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: 'Release new branch and rc'
id: vars
run: |
python -m pip install --upgrade pip
pip install semantic_version==2.10.0
python scripts/release.py
if [ -f /tmp/latest_tag_version ]; then
tag=$(</tmp/latest_tag_version)
[[ $tag =~ ^[0-9.]*-rc.0$ ]] || {
echo 'no available tag version'
exit 1
}
echo "tag_version=$tag" >> $GITHUB_OUTPUT
fi
- name: Package installer
run: |
bash scripts/package.sh
- name: Update version
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/wizard/config/settings/templates/terminus_cr.yaml'
placeholder: '#__VERSION__'
tag: ${{ steps.vars.outputs.tag_version }}
- name: Update env
working-directory: ./build/installer
run: |
echo 'DEBUG_VERSION="false"' > .env
- name: Update latest installer
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/publicInstaller.latest'
placeholder: '#{{LATEST_VERSION}}'
tag: ${{ steps.vars.outputs.tag_version }}
- name: 'Archives'
working-directory: ./build/installer
run: |
mkdir -p /tmp/build
tar --exclude=wizard/tools --exclude=.git -zcvf /tmp/build/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz .
- name: Release public files
uses: softprops/action-gh-release@v1
with:
name: v${{ steps.vars.outputs.tag_version }} Release
tag_name: ${{ steps.vars.outputs.tag_version }}
files: |
/tmp/build/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz
build/installer/publicInstaller.sh
build/installer/publicInstaller.latest
build/installer/uninstall_cmd.sh
build/installer/publicAddnode.sh
build/installer/version.hint
build/installer/publicRestoreInstaller.sh
# prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -9,7 +9,41 @@ on:
description: 'Release Tags'
jobs:
release:
push:
runs-on: ubuntu-22.04
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
push-arm64:
runs-on: [self-hosted, linux, ARM64]
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf linux/arm64
upload-package:
needs: [push, push-arm64]
runs-on: ubuntu-latest
steps:
@@ -20,32 +54,56 @@ jobs:
- name: Package installer
run: |
bash scripts/package.sh
bash scripts/build.sh ${{ github.event.inputs.tags }}
- name: Update version
uses: eball/write-tag-to-version-file@latest
- name: Upload to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
md5sum install-wizard-v${{ github.event.inputs.tags }}.tar.gz > install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt && \
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt s3://terminus-os-install/install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.tar.gz s3://terminus-os-install/install-wizard-v${{ github.event.inputs.tags }}.tar.gz --acl=public-read
release:
runs-on: ubuntu-latest
needs: [upload-package]
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
filename: 'build/installer/wizard/config/settings/templates/terminus_cr.yaml'
placeholder: '#__VERSION__'
tag: ${{ github.event.inputs.tags }}
ref: ${{ github.event.inputs.tags }}
- name: Update env
working-directory: ./build/installer
run: |
echo 'DEBUG_VERSION="false"' > .env
- name: Update latest installer
- name: Get checksum
id: vars
run: |
echo "version_md5sum=$(curl -sSfL https://dc3p1870nn3cj.cloudfront.net/install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt|awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Update checksum
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/publicInstaller.latest'
placeholder: '#{{LATEST_VERSION}}'
tag: ${{ github.event.inputs.tags }}
filename: 'build/installer/install.sh'
placeholder: '#__MD5SUM__'
tag: ${{ steps.vars.outputs.version_md5sum }}
- name: 'Archives'
working-directory: ./build/installer
- name: Package installer
run: |
mkdir -p /tmp/build
tar --exclude=wizard/tools --exclude=.git -zcvf /tmp/build/install-wizard-v${{ github.event.inputs.tags }}.tar.gz .
bash scripts/build.sh ${{ github.event.inputs.tags }}
- name: 'Archives'
run: |
cp .dist/install-wizard/install.sh build/installer
cp build/installer/install.sh build/installer/publicInstaller.sh
cp build/installer/install.sh build/installer/publicInstaller.latest
cp .dist/install-wizard/install.ps1 build/installer
cp build/installer/install.ps1 build/installer/publicInstaller.latest.ps1
- name: Release public files
uses: softprops/action-gh-release@v1
@@ -53,13 +111,16 @@ jobs:
name: v${{ github.event.inputs.tags }} Release
tag_name: ${{ github.event.inputs.tags }}
files: |
/tmp/build/install-wizard-v${{ github.event.inputs.tags }}.tar.gz
install-wizard-v${{ github.event.inputs.tags }}.tar.gz
build/installer/publicInstaller.sh
build/installer/publicInstaller.latest
build/installer/uninstall_cmd.sh
build/installer/install.sh
build/installer/publicInstaller.latest.ps1
build/installer/install.ps1
build/installer/publicAddnode.sh
build/installer/joincluster.sh
build/installer/version.hint
build/installer/publicRestoreInstaller.sh
# prerelease: true
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,41 +0,0 @@
name: Upload Full Package
on:
workflow_dispatch:
inputs:
tags:
description: 'Release Tags'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 21200
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- name: Package installer
run: |
bash scripts/build-full.sh ${{ github.event.inputs.tags }}
- name: Upload to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
run: |
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.tar.gz s3://terminus-os-install/install-wizard-v${{ github.event.inputs.tags }}.tar.gz --acl=public-read

2
.gitignore vendored
View File

@@ -24,5 +24,7 @@ go.work
.dist
.manifest
install-wizard-*.tar.gz
olares-cli-*.tar.gz
!ks-console-*.tgz
.vscode
.DS_Store

View File

@@ -1,4 +1,4 @@
# Terminus License
# Olares License
## Acceptance

347
README.md
View File

@@ -1,256 +1,195 @@
<div align="center">
# Terminus OS - Your Free, Self-Hosted Operating System Based on Kubernetes <!-- omit in toc -->
# Olares: An Open-Source Sovereign Cloud OS for Local AI<!-- omit in toc -->
[![Mission](https://img.shields.io/badge/Mission-Let%20people%20own%20their%20data%20again-purple)](#)<br />
[![Last Commit](https://img.shields.io/github/last-commit/beclab/terminus)](https://github.com/beclab/terminus/commits/main)
![Build Status](https://github.com/beclab/terminus/actions/workflows/release-daily.yaml/badge.svg)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/beclab/terminus)](https://github.com/beclab/terminus/releases)
[![GitHub Repo stars](https://img.shields.io/github/stars/beclab/terminus?style=social)](https://github.com/beclab/terminus/stargazers)
[![Mission](https://img.shields.io/badge/Mission-Let%20people%20own%20their%20data%20again-purple)](#)<br/>
[![Last Commit](https://img.shields.io/github/last-commit/beclab/olares)](https://github.com/beclab/olares/commits/main)
![Build Status](https://github.com/beclab/olares/actions/workflows/release-daily.yaml/badge.svg)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/beclab/olares)](https://github.com/beclab/olares/releases)
[![GitHub Repo stars](https://img.shields.io/github/stars/beclab/olares?style=social)](https://github.com/beclab/olares/stargazers)
[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.com/invite/BzfqrgQPDK)
[![License](https://img.shields.io/badge/License-Terminus-darkblue)](https://github.com/beclab/terminus/blob/main/LICENSE.md)
[![License](https://img.shields.io/badge/License-Olares-darkblue)](https://github.com/beclab/olares/blob/main/LICENSE.md)
<p>
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
<a href="./README_CN.md"><img alt="Readme in Chinese" src="https://img.shields.io/badge/简体中文-FFFFFF"></a>
<a href="./README_JP.md"><img alt="Readme in Japanese" src="https://img.shields.io/badge/日本語-FFFFFF"></a>
</p>
</div>
![cover](https://file.bttcdn.com/github/terminus/desktop-dark.jpeg)
https://github.com/user-attachments/assets/3089a524-c135-4f96-ad2b-c66bf4ee7471
*Build your local AI assistants, sync data across places, self-host your workspace, stream your own media, and more—all in your sovereign cloud made possible by Olares.*
<p align="center">
<a href="https://www.jointerminus.com">Website</a> ·
<a href="https://docs.jointerminus.com">Documentation</a> ·
<a href="https://docs.jointerminus.com/how-to/termipass/overview.html#download">Download TermiPass</a> ·
<a href="https://github.com/beclab/apps">Terminus Apps</a> ·
<a href="https://space.jointerminus.com">Terminus Space</a>
<a href="https://olares.xyz">Website</a> ·
<a href="https://docs.olares.xyz">Documentation</a> ·
<a href="https://olares.xyz/larepass">Download LarePass</a> ·
<a href="https://github.com/beclab/apps">Olares Apps</a> ·
<a href="https://space.olares.xyz">Olares Space</a>
</p>
## Table of Contents <!-- omit in toc -->
- [Introduction](#introduction)
- [Motivation and Design](#motivation-and-design)
- [Features](#features)
- [Feature Comparison](#feature-comparison)
- [Getting Started](#getting-started)
- [Project Navigation](#project-navigation)
- [Contributing to Terminus OS](#contributing-to-terminus-os)
- [Community \& Contact](#community--contact)
- [Staying Ahead](#staying-ahead)
- [Special Thanks](#special-thanks)
> [!IMPORTANT]
> We just finished our rebranding from Terminus to Olares recently. For more information, refer to our [rebranding blog](https://blog.olares.xyz/terminus-is-now-olares/).
## Introduction
Terminus OS is a free, self-hosted operating system built on Kubernetes. It is designed as a one-stop self-hosted solution for user-owned edge devices. Our goal is to enable users to securely store their most important data on their own hardware ad access services based on this private data from anywhere in the world. Typical use cases include
Convert your hardware into an AI home server with Olares, an open-source sovereign cloud OS built for local AI.
- 💻 **Self-hosted**: Terminus OS serves as a one-stop self-hosted solution where users can host and manage their data, operations, and digital life effectively, with full data ownership.
- 🤖 **Local AI**: Build local AI agents with Terminus OS without writing code.
- 🤝 **User-owned decentralized social media**: Easily install decentralized social media apps such as Mastodon, Ghost, and WordPress on Terminus OS, allowing you to build a personal brand without the risk of being banned or paying platform commissions.
- **Run leading AI models on your term**s: Effortlessly host powerful open AI models like LLaMA, Stable Diffusion, Whisper, and Flux.1 directly on your hardware, giving you full control over your AI environment.
- **Deploy with ease**: Discover and install a wide range of open-source AI apps from Olares Market in a few clicks. No more complicated configuration or setup.
- **Access anytime, anywhere**: Access your AI apps and models through a browser whenever and wherever you need them.
- **Integrated AI for smarter AI experience**: Using a [Model Context Protocol](https://spec.modelcontextprotocol.io/specification/) (MCP)-like mechanism, Olares seamlessly connects AI models with AI apps and your private data sets. This creates highly personalized, context-aware AI interactions that adapt to your needs.
## Motivation and Design
We believe the current state of the internet, where user data is centralized and exploited by monopolistic corporations, is deeply flawed. Our goal is to empower individuals with true data ownership and control.
> 🌟 *Star us to receive instant notifications about new releases and updates.*
This vision is rooted in what we call the "BEC" (Blockchain, Edge, Client) model, where applications and data reside at the edge, secrets are stored on clients, identities on blockchain. By distributing data across personal Edge nodes rather than centralized servers, Terminus OS aims to restore user sovereignty over their digital information, communications, and online activities.
## Why Olares?
As an instantiation of the BEC model, the Terminus ecosystem is composed of three integral components:
Here is why and where you can count on Olares for private, powerful, and secure sovereign cloud experience:
- **Snowinning Protocol**: A decentralized identity and reputation system that integrates decentralized identifiers (DIDs), verifiable credentials (VCs), and reputation data into blockchain smart contracts. Learn more in [documentation](https://docs.jointerminus.com/overview/snowinning/overview.html).
![Snowinning Protocol](https://file.bttcdn.com/github/terminus/snowinning-protocol.jpg)
- **Terminus OS**: An one-stop self-hosted OS running on edge devices.
![Tech Stacks](https://file.bttcdn.com/github/terminus/v2/tech-stack.jpeg)
- **TermiPass**: A comprehensive client software that operates across multiple platforms. It securely stores users' private keys and manages their identities and data across various Edge devices. Learn more in [documentation](https://docs.jointerminus.com/how-to/termipass/overview.html).
🤖 **Edge AI**: Run cutting-edge open AI models locally, including large language models, computer vision, and speech recognition. Create private AI services tailored to your data for enhanced functionality and privacy. <br>
📊 **Personal data repository**: Securely store, sync, and manage your important files, photos, and documents across devices and locations.<br>
🚀 **Self-hosted workspace**: Build a free collaborative workspace for your team using secure, open-source SaaS alternatives.<br>
🎥 **Private media server**: Host your own streaming services with your personal media collections. <br>
🏡 **Smart Home Hub**: Create a central control point for your IoT devices and home automation. <br>
🤝 **User-owned decentralized social media**: Easily install decentralized social media apps such as Mastodon, Ghost, and WordPress on Olares, allowing you to build a personal brand without the risk of being banned or paying platform commissions.<br>
📚 **Learning platform**: Explore self-hosting, container orchestration, and cloud technologies hands-on.
## Getting started
### System compatibility
Olares has been tested and verified on the following Linux platforms:
- Ubuntu 20.04 LTS or later
- Debian 11 or later
> **Other installation options**
> Olares can also be installed on other platforms like macOS, Windows, PVE, and Raspberry Pi, or installed via docker compose on Linux. However, these are only for **testing and development purposes**. For detailed instructions, visit [Additional installation options](https://docs.olares.xyz/developer/install/additional-installations.html).
### Set up Olares
To get started with Olares on your own device, follow the [Getting Started Guide](https://docs.olares.xyz/manual/get-started/) for step-by-step instructions.
## Architecture
Olares' architecture is based on two core principles:
- Adopts an Android-like approach to control software permissions and interactivity, ensuring smooth and secure system operations.
- Leverages cloud-native technologies to manage hardware and middleware services efficiently.
![Olares Architecture](https://file.bttcdn.com/github/terminus/v2/olares-arch-3.png)
For detailed description of each component, refer to [Olares architecture](https://docs.olares.xyz/manual/system-architecture.html).
## Features
Terminus OS offers a wide array of features designed to enhance security, ease of use, and development flexibility:
Olares offers a wide array of features designed to enhance security, ease of use, and development flexibility:
- **Enterprise-grade security**: Simplified network configuration using Tailscale, Headscale, Cloudflare Tunnel, and FRP.
- **Secure and permissionless application ecosystem**: Sandboxing ensures application isolation and security.
- **Unified filesystem and database**: Automated scaling, backups, and high availability.
- **Single sign-on**: Log in once to access all applications within Terminus OS with a shared authentication service.
- **Unified file system and database**: Automated scaling, backups, and high availability.
- **Single sign-on**: Log in once to access all applications within Olares with a shared authentication service.
- **AI capabilities**: Comprehensive solution for GPU management, local AI model hosting, and private knowledge bases while maintaining data privacy.
- **Built-in applications**: Includes file manager, sync drive, vault, reader, app market, settings, and dashboard.
- **Seamless anywhere access**: Access your devices from anywhere using dedicated clients for mobile, desktop, and browsers.
- **Development tools**: Comprehensive development tools for effortless application development and porting.
Here are some screenshots from the UI for a sneak peek:
## Project navigation
| DesktopAI-Powered Personal Desktop | **Files**A Secure Home to Your Data
| :--------: | :-------: |
| ![Desktop](https://file.bttcdn.com/github/terminus/v2/desktop.jpg) | ![Files](https://file.bttcdn.com/github/terminus/v2/files.jpg) |
| **Vault1Password for the Web3 Era**|**MarketApp Ecosystem in Your Control** |
| ![vault](https://file.bttcdn.com/github/terminus/v2/vault.jpg) | ![market](https://file.bttcdn.com/github/terminus/v2/market.jpg) |
|**WiseYour Digital Secret Garden** | **SettingsManaging Terminus Efficiently** |
| ![settings](https://file.bttcdn.com/github/terminus/v2/wise.jpg) | ![](https://file.bttcdn.com/github/terminus/v2/settings.jpg) |
|**DashboardConstant Terminus Monitoring** | **ProfileCustomized Web3 Homepage** |
| ![dashboard](https://file.bttcdn.com/github/terminus/v2/dashboard.jpg) | ![profile](https://file.bttcdn.com/github/terminus/v2/profile.jpg) |
| **DevboxDeveloping, Debugging, and Deploying**|**ControlhubManaging Kubernetes Clusters Easily** |
| ![Devbox](https://file.bttcdn.com/github/terminus/v2/devbox.jpg) | ![Controlhub](https://file.bttcdn.com/github/terminus/v2/controlhub.jpg)|
Olares consists of numerous code repositories publicly available on GitHub. The current repository is responsible for the final compilation, packaging, installation, and upgrade of the operating system, while specific changes mostly take place in their corresponding repositories.
</div>
The following table lists the project directories under Olares and their corresponding repositories. Find the one that interests you:
### Feature Comparison
<details>
<summary><b>Framework components</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [frameworks/app-service](https://github.com/beclab/olares/tree/main/frameworks/app-service) | <https://github.com/beclab/app-service> | A system framework component that provides lifecycle management and various security controls for all apps in the system. |
| [frameworks/backup-server](https://github.com/beclab/olares/tree/main/frameworks/backup-server) | <https://github.com/beclab/backup-server> | A system framework component that provides scheduled full or incremental cluster backup services. |
| [frameworks/bfl](https://github.com/beclab/olares/tree/main/frameworks/bfl) | <https://github.com/beclab/bfl> | Backend For Launcher (BFL), a system framework component serving as the user access point and aggregating and proxying interfaces of various backend services. |
| [frameworks/GPU](https://github.com/beclab/olares/tree/main/frameworks/GPU) | <https://github.com/grgalex/nvshare> | GPU sharing mechanism that allows multiple processes (or containers running on Kubernetes) to securely run on the same physical GPU concurrently, each having the whole GPU memory available. |
| [frameworks/l4-bfl-proxy](https://github.com/beclab/olares/tree/main/frameworks/l4-bfl-proxy) | <https://github.com/beclab/l4-bfl-proxy> | Layer 4 network proxy for BFL. By prereading SNI, it provides a dynamic route to pass through into the user's Ingress. |
| [frameworks/osnode-init](https://github.com/beclab/olares/tree/main/frameworks/osnode-init) | <https://github.com/beclab/osnode-init> | A system framework component that initializes node data when a new node joins the cluster. |
| [frameworks/system-server](https://github.com/beclab/olares/tree/main/frameworks/system-server) | <https://github.com/beclab/system-server> | As a part of system runtime frameworks, it provides a mechanism for security calls between apps. |
| [frameworks/tapr](https://github.com/beclab/olares/tree/main/frameworks/tapr) | <https://github.com/beclab/tapr> | Olares Application Runtime components. |
</details>
To help you understand how Terminus OS stands out in the landscape, we've created a comparison table that highlights its features alongside those of other leading solutions in the market.
<details>
<summary><b>System-Level Applications and Services</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [apps/analytic](https://github.com/beclab/olares/tree/main/apps/analytic) | <https://github.com/beclab/analytic> | Developed based on [Umami](https://github.com/umami-software/umami), Analytic is a simple, fast, privacy-focused alternative to Google Analytics. |
| [apps/market](https://github.com/beclab/olares/tree/main/apps/market) | <https://github.com/beclab/market> | This repository deploys the front-end part of the application market in Olares. |
| [apps/market-server](https://github.com/beclab/olares/tree/main/apps/market-server) | <https://github.com/beclab/market> | This repository deploys the back-end part of the application market in Olares. |
| [apps/argo](https://github.com/beclab/olares/tree/main/apps/argo) | <https://github.com/argoproj/argo-workflows> | A workflow engine for orchestrating container execution of local recommendation algorithms. |
| [apps/desktop](https://github.com/beclab/olares/tree/main/apps/desktop) | <https://github.com/beclab/desktop> | The built-in desktop application of the system. |
| [apps/devbox](https://github.com/beclab/olares/tree/main/apps/devbox) | <https://github.com/beclab/devbox> | An IDE for developers to port and develop Olares applications. |
| [apps/vault](https://github.com/beclab/olares/tree/main/apps/vault) | <https://github.com/beclab/termipass> | A free alternative to 1Password and Bitwarden for teams and enterprises of any size Developed based on [Padloc](https://github.com/padloc/padloc). It serves as the client that helps you manage DID, Olares ID, and Olares devices. |
| [apps/files](https://github.com/beclab/olares/tree/main/apps/files) | <https://github.com/beclab/files> | A built-in file manager modified from [Filebrowser](https://github.com/filebrowser/filebrowser), providing management of files on Drive, Sync, and various Olares physical nodes. |
| [apps/notifications](https://github.com/beclab/olares/tree/main/apps/notifications) | <https://github.com/beclab/notifications> | The notifications system of Olares |
| [apps/profile](https://github.com/beclab/olares/tree/main/apps/profile) | <https://github.com/beclab/profile> | Linktree alternative in Olares|
| [apps/rsshub](https://github.com/beclab/olares/tree/main/apps/rsshub) | <https://github.com/beclab/rsshub> | A RSS subscription manager based on [RssHub](https://github.com/DIYgod/RSSHub). |
| [apps/settings](https://github.com/beclab/olares/tree/main/apps/settings) | <https://github.com/beclab/settings> | Built-in system settings. |
| [apps/system-apps](https://github.com/beclab/olares/tree/main/apps/system-apps) | <https://github.com/beclab/system-apps> | Built based on the _kubesphere/console_ project, system-service provides a self-hosted cloud platform that helps users understand and control the system's runtime status and resource usage through a visual Dashboard and feature-rich ControlHub. |
| [apps/wizard](https://github.com/beclab/olares/tree/main/apps/wizard) | <https://github.com/beclab/wizard> | A wizard application to walk users through the system activation process. |
</details>
**Legend:**
- 🚀: **Auto**, indicates that the system completes the task automatically.
- ✅: **Yes**, indicates that users without a developer background can complete the setup through the product's UI prompts.
- 🛠️: **Manual Configuration**, indicates that even users with an engineering background need to refer to tutorials to complete the setup.
- ❌: **No**, indicates that the feature is not supported.
| | Terminus OS | Synology | TrueNAS | CasaOS | Proxmox | Unraid |
| --- | --- | --- | --- | --- | --- | --- |
| Source Code License | Terminus License | Closed | GPL 3.0 | Apache 2.0 | MIT | Closed |
| Built On | Kubernetes | Linux | Kubernetes | Docker | LXC/VM | Docker |
| Multi-Node | ✅ | ❌ | ✅ | ❌ | 🛠️ | ❌ | ❌ |
| Build-in Apps | ✅ (Rich desktop apps) | ✅ (Rich desktop apps) | ❌ (CLI) | ✅ (Simple desktop apps) | ✅ (Dashboard)| ✅ (Dashboard) |
| Free Domain Name | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Auto SSL Certificate | 🚀 | ✅ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Reverse Proxy | 🚀 | ✅ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| VPN Management | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Graded App Entrance | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Multi-User Management | ✅ User management <br>🚀 Resource isolation | ✅ User management<br>🛠️ Resource isolation | ✅ User management<br>🛠️ Resource isolation | ❌ | ✅ User management <br>🛠️ Resource isolation | ✅ User management <br>🛠️ Resource isolation |
| Single Login for All Apps | 🚀 | ❌ | ❌ | ❌ | ❌ | ❌ |
| Cross-Node Storage | 🚀 (Juicefs+<br>MinIO) | ❌ | ❌ | ❌ | ❌ | ❌ |
| Database Solution | 🚀 (Built-in cloud-native solution) | 🛠️ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Disaster Recovery | 🚀 (MinIO's [**Erasure Coding**](https://min.io/docs/minio/linux/operations/concepts/erasure-coding.html)**)** | ✅ RAID | ✅ RAID | ✅ RAID | ❌ | ✅ Unraid Storage |
| Backup | ✅ App Data <br>✅ User Data | ✅ User Data | ✅ User Data | ✅ User Data | ✅ User Data | ✅ User Data |
| App Sandboxing | ✅ | ❌ | ❌ (K8S's namespace) | ❌ | ❌ | ❌ |
| App Ecosystem | ✅ (Official + third-party) | ✅ (Majorly official apps) | ✅ (Official + third-party submissions) | ✅ Majorly official apps | ❌ | ✅ (Community app market) |
| Developer Friendly | ✅ IDE <br>✅ CLI <br>✅ SDK <br>✅ Doc | ✅ CLI <br>✅ SDK <br>✅ Doc | ✅ CLI <br>✅ Doc | ✅ CLI <br>✅ Doc | ✅ SDK <br>✅ Doc | ✅ Doc |
| Local LLM Hosting | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Local LLM app development | 🚀 (Dify integrated) | 🛠️ | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Client Platforms | ✅ Android <br>✅ iOS <br>✅ Windows <br>✅ Mac <br>✅ Chrome Plugin | ✅ Android <br>✅ iOS | ❌ | ❌ | ❌ | ❌ |
| Client Functionality | ✅ (All-in-one client app) | ✅ (14 separate client apps) | ❌ | ❌ | ❌ | ❌ |
## Getting Started
Before you get started, make sure your hardware meet the following minimum system requirements:
- Hardware configurations:
- CPU >= 4 Core
- RAM >= 8GB
- Free Disk >= 100GB
- Supported systems:
| Linux Version | Architecture |
| -------------- | ------ |
| Ubuntu 24.04 | x86-64, amd64 |
| Ubuntu 22.04 | x86-64, amd64 |
| Ubuntu 20.04 | x86-64, amd64 |
| Debian 12 | amd64 |
| Debian 11 | amd64 |
Take the following steps to install Terminus OS:
1. [Apply for A Terminus Name](https://docs.jointerminus.com/how-to/termipass/account/#create-terminus-name).
2. Install Terminus OS in your machine with the following command:
```
curl -fsSL https://terminus.sh | bash -
```
For more detailed instructions, see [Install Terminus OS with commands](https://docs.jointerminus.com/how-to/terminus/setup/install.html#install).
3. Access the URL required for Terminus OS activation in the browser, and complete the initial setups and system activation following the on-screen instructions. For more detailed instructions, see the [Activation Guide](../../how-to/terminus/setup/wizard.md).
4. Log in with the password you reset during activation and complete two-step verification on TermiPass. For more detailed instructions, see the [Login Doc](../../how-to/terminus/setup/login.md).
5. [Back up your mnemonic phrase](../../how-to/termipass/account/index.md#backup-mnemonic-phrase.md) to ensure account and data security.
## Project Navigation
Terminus OS consists of numerous code repositories publicly available on GitHub. The current repository is responsible for the final compilation, packaging, installation, and upgrade of the OS, while specific changes mostly take place in their corresponding repositories.
The following table lists the project directories under Terminus OS and their corresponding repositories. Find the one that interests you:
<b>Framework components</b>
<details>
<summary><b>Third-party Components and Services</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [frameworks/app-service](https://github.com/beclab/terminus/tree/main/frameworks/app-service) | <https://github.com/beclab/app-service> | A system framework component that provides lifecycle management and various security controls for all apps in the system. |
| [frameworks/backup-server](https://github.com/beclab/terminus/tree/main/frameworks/backup-server) | <https://github.com/beclab/backup-server> | A system framework component that provides scheduled full or incremental cluster backup services. |
| [frameworks/bfl](https://github.com/beclab/terminus/tree/main/frameworks/bfl) | <https://github.com/beclab/bfl> | Backend For Launcher (BFL), a system framework component serving as the user access point and aggregating and proxying interfaces of various backend services. |
| [frameworks/GPU](https://github.com/beclab/terminus/tree/main/frameworks/GPU) | <https://github.com/grgalex/nvshare> | GPU sharing mechanism that allows multiple processes (or containers running on Kubernetes) to securely run on the same physical GPU concurrently, each having the whole GPU memory available. |
| [frameworks/l4-bfl-proxy](https://github.com/beclab/terminus/tree/main/frameworks/l4-bfl-proxy) | <https://github.com/beclab/l4-bfl-proxy> | Layer 4 network proxy for BFL. By prereading SNI, it provides a dynamic route to pass through into the user's Ingress. |
| [frameworks/osnode-init](https://github.com/beclab/terminus/tree/main/frameworks/osnode-init) | <https://github.com/beclab/osnode-init> | A system framework component that initializes node data when a new node joins the cluster. |
| [frameworks/system-server](https://github.com/beclab/terminus/tree/main/frameworks/system-server) | <https://github.com/beclab/system-server> | As a part of system runtime frameworks, it provides a mechanism for security calls between apps. |
| [frameworks/tapr](https://github.com/beclab/terminus/tree/main/frameworks/tapr) | <https://github.com/beclab/tapr> | Terminus Application Runtime components. |
| [third-party/authelia](https://github.com/beclab/olares/tree/main/third-party/authelia) | <https://github.com/beclab/authelia> | An open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. |
| [third-party/headscale](https://github.com/beclab/olares/tree/main/third-party/headscale) | <https://github.com/beclab/headscale> | An open source, self-hosted implementation of the Tailscale control server in Olares to manage Tailscale in LarePass across different devices. |
| [third-party/infisical](https://github.com/beclab/olares/tree/main/third-party/infisical) | <https://github.com/beclab/infisical> | An open-source secret management platform that syncs secrets across your teams/infrastructure and prevents secret leaks. |
| [third-party/juicefs](https://github.com/beclab/olares/tree/main/third-party/juicefs) | <https://github.com/beclab/juicefs-ext> | A distributed POSIX file system built on top of Redis and S3, allowing apps on different nodes to access the same data via POSIX interface. |
| [third-party/ks-console](https://github.com/beclab/olares/tree/main/third-party/ks-console) | <https://github.com/kubesphere/console> | Kubesphere console that allows for cluster management via a Web GUI. |
| [third-party/ks-installer](https://github.com/beclab/olares/tree/main/third-party/ks-installer) | <https://github.com/beclab/ks-installer-ext> | Kubesphere installer component that automatically creates Kubesphere clusters based on cluster resource definitions. |
| [third-party/kube-state-metrics](https://github.com/beclab/olares/tree/main/third-party/kube-state-metrics) | <https://github.com/beclab/kube-state-metrics> | kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. |
| [third-party/notification-manager](https://github.com/beclab/olares/tree/main/third-party/notification-manager) | <https://github.com/beclab/notification-manager-ext> | Kubesphere's notification management component for unified management of multiple notification channels and custom aggregation of notification content. |
| [third-party/predixy](https://github.com/beclab/olares/tree/main/third-party/predixy) | <https://github.com/beclab/predixy> | Redis cluster proxy service that automatically identifies available nodes and adds namespace isolation. |
| [third-party/redis-cluster-operator](https://github.com/beclab/olares/tree/main/third-party/redis-cluster-operator) | <https://github.com/beclab/redis-cluster-operator> | A cloud-native tool for creating and managing Redis clusters based on Kubernetes. |
| [third-party/seafile-server](https://github.com/beclab/olares/tree/main/third-party/seafile-server) | <https://github.com/beclab/seafile-server> | The backend service of Seafile (Sync Drive) for handling data storage. |
| [third-party/seahub](https://github.com/beclab/olares/tree/main/third-party/seahub) | <https://github.com/beclab/seahub> | The front-end and middleware service of Seafile (Sync Drive) for handling file sharing, data synchronization, etc. |
| [third-party/tailscale](https://github.com/beclab/olares/tree/main/third-party/tailscale) | <https://github.com/tailscale/tailscale> | Tailscale has been integrated in LarePass of all platforms. |
</details>
<b>System-Level Applications and Services</b>
<details>
<summary><b>Additional libraries and components</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [apps/agent](https://github.com/beclab/terminus/tree/main/apps/agent) | <https://github.com/beclab/dify> | The LLM app development platform ported from [Dify.ai](https://github.com/langgenius/dify), with integrations of Terminus Accounts, local knowledge base, and local models. |
| [apps/analytic](https://github.com/beclab/terminus/tree/main/apps/analytic) | <https://github.com/beclab/analytic> | Developed based on [Umami](https://github.com/umami-software/umami), Analytic is a simple, fast, privacy-focused alternative to Google Analytics. |
| [apps/market](https://github.com/beclab/terminus/tree/main/apps/market) | <https://github.com/beclab/market> | This repository deploys the front-end part of the application market in Terminus OS. |
| [apps/market-server](https://github.com/beclab/terminus/tree/main/apps/market-server) | <https://github.com/beclab/market> | This repository deploys the back-end part of the application market in Terminus OS. |
| [apps/argo](https://github.com/beclab/terminus/tree/main/apps/argo) | <https://github.com/argoproj/argo-workflows> | A workflow engine for orchestrating container execution of local recommendation algorithms. |
| [apps/desktop](https://github.com/beclab/terminus/tree/main/apps/desktop) | <https://github.com/beclab/desktop> | The built-in desktop application of the system. |
| [apps/devbox](https://github.com/beclab/terminus/tree/main/apps/devbox) | <https://github.com/beclab/devbox> | An IDE for developers to port and develop Terminus applications. |
| [apps/TermiPass](https://github.com/beclab/terminus/tree/main/apps/TermiPass) | <https://github.com/beclab/TermiPass> | A free alternative to 1Password and Bitwarden for teams and enterprises of any size Developed based on [Padloc](https://github.com/padloc/padloc). It serves as the client that helps you manage DID, Terminus Name, and Terminus devices. |
| [apps/files](https://github.com/beclab/terminus/tree/main/apps/files) | <https://github.com/beclab/files> | A built-in file manager modified from [Filebrowser](https://github.com/filebrowser/filebrowser), providing management of files on Drive, Sync, and various Terminus physical nodes. |
| [apps/knowledgebase](https://github.com/beclab/terminus/tree/main/apps/knowledgebase) | <https://github.com/Above-Os/knowledgebase> | A built-in application that stores articles, PDFs, and eBooks collected through RSS subscriptions, TermiPass, and recommendations by local algorithms. |
| [apps/mynitro](https://github.com/beclab/terminus/tree/main/apps/mynitro) | <https://github.com/beclab/mynitro> | A wrapper of the official [Nitro](https://github.com/janhq/nitro) project that hosts LLMs locally, specifically, provides services to Dify's agents on Terminus OS. |
| [apps/notifications](https://github.com/beclab/terminus/tree/main/apps/notifications) | <https://github.com/beclab/notifications> | The notifications system of Terminus OS |
| [apps/profile](https://github.com/beclab/terminus/tree/main/apps/profile) | <https://github.com/beclab/profile> | Alternative to Linkertree in Terminus OS to create Web3.0 profiles for users. |
| [apps/rsshub](https://github.com/beclab/terminus/tree/main/apps/rsshub) | <https://github.com/beclab/rsshub> | A RSS subscription manager based on [RssHub](https://github.com/DIYgod/RSSHub). |
| [apps/dify-gateway](https://github.com/beclab/terminus/tree/main/apps/dify-gateway) | <https://github.com/beclab/dify-gateway> | A gateway service that establishes the connection between Dify and other services such as Files and Agent. |
| [apps/settings](https://github.com/beclab/terminus/tree/main/apps/settings) | <https://github.com/beclab/settings> | Built-in system settings. |
| [apps/system-apps](https://github.com/beclab/terminus/tree/main/apps/system-apps) | <https://github.com/beclab/system-apps> | Built based on the _kubesphere/console_ project, system-service provides a self-hosted cloud platform that helps users understand and control the system's runtime status and resource usage through a visual Dashboard and feature-rich ControlHub. |
| [apps/wise](https://github.com/beclab/terminus/tree/main/apps/wise) | <https://github.com/Above-Os/knowledgebase> | A reader for users to read articles stored by users from RSS subscriptions, collections, and recommendation algorithms. |
| [apps/wizard](https://github.com/beclab/terminus/tree/main/apps/wizard) | <https://github.com/beclab/wizard> | A wizard application to walk users through the system activation process. |
| [build/installer](https://github.com/beclab/olares/tree/main/build/installer) | | The template for generating the installer build. |
| [build/manifest](https://github.com/beclab/olares/tree/main/build/manifest) | | Installation build image list template. |
| [libs/fs-lib](https://github.com/beclab/olares/tree/main/libs) | <https://github.com/beclab/fs-lib> | The SDK library for the iNotify-compatible interface implemented based on JuiceFS. |
| [scripts](https://github.com/beclab/olares/tree/main/scripts) | | Assisting scripts for generating the installer build. |
</details>
<b>Third-party Components and Services</b>
| Directory | Repository | Description |
| --- | --- | --- |
| [third-party/authelia](https://github.com/beclab/terminus/tree/main/third-party/authelia) | <https://github.com/beclab/authelia> | An open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. |
| [third-party/headscale](https://github.com/beclab/terminus/tree/main/third-party/headscale) | <https://github.com/beclab/headscale> | An open source, self-hosted implementation of the Tailscale control server in Terminus to manage Tailscale in TermiPass across different devices. |
| [third-party/infisical](https://github.com/beclab/terminus/tree/main/third-party/infisical) | <https://github.com/beclab/infisical> | An open-source secret management platform that syncs secrets across your teams/infrastructure and prevents secret leaks. |
| [third-party/juicefs](https://github.com/beclab/terminus/tree/main/third-party/juicefs) | <https://github.com/beclab/juicefs-ext> | A distributed POSIX file system built on top of Redis and S3, allowing apps on different nodes to access the same data via POSIX interface. |
| [third-party/ks-console](https://github.com/beclab/terminus/tree/main/third-party/ks-console) | <https://github.com/kubesphere/console> | Kubesphere console that allows for cluster management via a Web GUI. |
| [third-party/ks-installer](https://github.com/beclab/terminus/tree/main/third-party/ks-installer) | <https://github.com/beclab/ks-installer-ext> | Kubesphere installer component that automatically creates Kubesphere clusters based on cluster resource definitions. |
| [third-party/kube-state-metrics](https://github.com/beclab/terminus/tree/main/third-party/kube-state-metrics) | <https://github.com/beclab/kube-state-metrics> | kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. |
| [third-party/notification-mananger](https://github.com/beclab/terminus/tree/main/third-party/notification-manager) | <https://github.com/beclab/notification-manager-ext> | Kubesphere's notification management component for unified management of multiple notification channels and custom aggregation of notification content. |
| [third-party/predixy](https://github.com/beclab/terminus/tree/main/third-party/predixy) | <https://github.com/beclab/predixy> | Redis cluster proxy service that automatically identifies available nodes and adds namespace isolation. |
| [third-party/redis-cluster-operator](https://github.com/beclab/terminus/tree/main/third-party/redis-cluster-operator) | <https://github.com/beclab/redis-cluster-operator> | A cloud-native tool for creating and managing Redis clusters based on Kubernetes. |
| [third-party/seafile-server](https://github.com/beclab/terminus/tree/main/third-party/seafile-server) | <https://github.com/beclab/seafile-server> | The backend service of Seafile (Sync Drive) for handling data storage. |
| [third-party/seahub](https://github.com/beclab/terminus/tree/main/third-party/seahub) | <https://github.com/beclab/seahub> | The front-end and middleware service of Seafile (Sync Drive) for handling file sharing, data synchronization, etc. |
| [third-party/tailscale](https://github.com/beclab/terminus/tree/main/third-party/tailscale) | <https://github.com/tailscale/tailscale> | Tailscale has been integrated in TermiPass of all platforms. |
**Additional Libraries and Components**
| Directory | Repository | Description |
| --- | --- | --- |
| [build/installer](https://github.com/beclab/terminus/tree/main/build/installer) | | The template for generating the installer build. |
| [build/manifest](https://github.com/beclab/terminus/tree/main/build/manifest) | | Installation build image list template. |
| [libs/fs-lib](https://github.com/beclab/terminus/tree/main/libs) | <https://github.com/beclab/fs-lib> | The SDK library for the iNotify-compatible interface implemented based on JuiceFS. |
| [scripts](https://github.com/beclab/terminus/tree/main/scripts) | | Assisting scripts for generating the installer build. |
## Contributing to Terminus OS
## Contributing to Olares
We are welcoming contributions in any form:
- If you want to develop your own applications on Terminus OS, refer to:<br>
https://docs.jointerminus.com/developer/develop/
- If you want to develop your own applications on Olares, refer to:<br>
https://docs.olares.xyz/developer/develop/
- If you want to help improve Terminus OS, refer to:<br>
https://docs.jointerminus.com/developer/contribute/terminus-os.html
- If you want to help improve Olares, refer to:<br>
https://docs.olares.xyz/developer/contribute/olares.html
## Community & Contact
## Community & contact
* [**Github Discussion**](https://github.com/beclab/terminus/discussions). Best for sharing feedback and asking questions.
* [**GitHub Issues**](https://github.com/beclab/terminus/issues). Best for filing bugs you encounter using Terminus and submitting feature proposals.
* [**Discord**](https://discord.gg/ShjkCBs2). Best for sharing anything Terminus.
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions). Best for sharing feedback and asking questions.
* [**GitHub Issues**](https://github.com/beclab/olares/issues). Best for filing bugs you encounter using Olares and submitting feature proposals.
* [**Discord**](https://discord.com/invite/BzfqrgQPDK). Best for sharing anything Olares.
## Staying Ahead
## Special thanks
Star the Terminus OS project to receive instant notifications about new releases and updates.
![star us](https://file.bttcdn.com/github/terminus/terminus.git.v2.gif)
## Special Thanks
The Terminus OS project has incorporated numerous third-party open source projects, including: [Kubernetes](https://kubernetes.io/), [Kubesphere](https://github.com/kubesphere/kubesphere), [Padloc](https://padloc.app/), [K3S](https://k3s.io/), [JuiceFS](https://github.com/juicedata/juicefs), [MinIO](https://github.com/minio/minio), [Envoy](https://github.com/envoyproxy/envoy), [Authelia](https://github.com/authelia/authelia), [Infisical](https://github.com/Infisical/infisical), [Dify](https://github.com/langgenius/dify), [Seafile](https://github.com/haiwen/seafile),[HeadScale](https://headscale.net/), [tailscale](https://tailscale.com/), [Redis Operator](https://github.com/spotahome/redis-operator), [Nitro](https://nitro.jan.ai/), [RssHub](http://rsshub.app/), [predixy](https://github.com/joyieldInc/predixy), [nvshare](https://github.com/grgalex/nvshare), [LangChain](https://www.langchain.com/), [Quasar](https://quasar.dev/), [TrustWallet](https://trustwallet.com/), [Restic](https://restic.net/), [ZincSearch](https://zincsearch-docs.zinc.dev/), [filebrowser](https://filebrowser.org/), [lego](https://go-acme.github.io/lego/), [Velero](https://velero.io/), [s3rver](https://github.com/jamhall/s3rver), [Citusdata](https://www.citusdata.com/).
The Olares project has incorporated numerous third-party open source projects, including: [Kubernetes](https://kubernetes.io/), [Kubesphere](https://github.com/kubesphere/kubesphere), [Padloc](https://padloc.app/), [K3S](https://k3s.io/), [JuiceFS](https://github.com/juicedata/juicefs), [MinIO](https://github.com/minio/minio), [Envoy](https://github.com/envoyproxy/envoy), [Authelia](https://github.com/authelia/authelia), [Infisical](https://github.com/Infisical/infisical), [Dify](https://github.com/langgenius/dify), [Seafile](https://github.com/haiwen/seafile),[HeadScale](https://headscale.net/), [tailscale](https://tailscale.com/), [Redis Operator](https://github.com/spotahome/redis-operator), [Nitro](https://nitro.jan.ai/), [RssHub](http://rsshub.app/), [predixy](https://github.com/joyieldInc/predixy), [nvshare](https://github.com/grgalex/nvshare), [LangChain](https://www.langchain.com/), [Quasar](https://quasar.dev/), [TrustWallet](https://trustwallet.com/), [Restic](https://restic.net/), [ZincSearch](https://zincsearch-docs.zinc.dev/), [filebrowser](https://filebrowser.org/), [lego](https://go-acme.github.io/lego/), [Velero](https://velero.io/), [s3rver](https://github.com/jamhall/s3rver), [Citusdata](https://www.citusdata.com/).

193
README_CN.md Normal file
View File

@@ -0,0 +1,193 @@
<div align="center">
# Olares - 为本地 AI 打造的开源私有云操作系统<!-- omit in toc -->
[![Mission](https://img.shields.io/badge/Mission-Let%20people%20own%20their%20data%20again-purple)](#)<br/>
[![Last Commit](https://img.shields.io/github/last-commit/beclab/terminus)](https://github.com/beclab/olares/commits/main)
![Build Status](https://github.com/beclab/olares/actions/workflows/release-daily.yaml/badge.svg)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/beclab/terminus)](https://github.com/beclab/olares/releases)
[![GitHub Repo stars](https://img.shields.io/github/stars/beclab/terminus?style=social)](https://github.com/beclab/olares/stargazers)
[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.com/invite/BzfqrgQPDK)
[![License](https://img.shields.io/badge/License-Olares-darkblue)](https://github.com/beclab/olares/blob/main/LICENSE.md)
<p>
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
<a href="./README_CN.md"><img alt="Readme in Chinese" src="https://img.shields.io/badge/简体中文-FFFFFF"></a>
<a href="./README_JP.md"><img alt="Readme in Japanese" src="https://img.shields.io/badge/日本語-FFFFFF"></a>
</p>
</div>
https://github.com/user-attachments/assets/3089a524-c135-4f96-ad2b-c66bf4ee7471
*Olares 让你体验更多可能:构建个人 AI 助理、随时随地同步数据、自托管团队协作空间、打造私人影视厅——无缝整合你的数字生活。*
<p align="center">
<a href="https://olares.xyz">网站</a> ·
<a href="https://docs.olares.xyz">文档</a> ·
<a href="https://docs.olares.xyz/larepass">下载 LarePass</a> ·
<a href="https://github.com/beclab/apps">Olares 应用</a> ·
<a href="https://space.olares.xyz">Olares Space</a>
</p>
## 介绍
Olares 是为本地端侧 AI 打造的开源私有云操作系统,可轻松将您的硬件转变为 AI 家庭服务器。
- 运行领先 AI 模型:在您的硬件上轻松部署并掌控 LLaMA、Stable Diffusion、Whisper 和 Flux.1 等顶尖开源 AI 模型。
- 轻松部署 AI 应用:通过 Olares 应用市场,轻松部署丰富多样的开源 AI 应用。无需复杂繁琐的配置。
- 随心访问:通过浏览器随时随地访问你的 AI 应用。
- 更智能的专属 AI 体验:通过类似[模型上下文协议](https://spec.modelcontextprotocol.io/specification/)Model Context Protocol, MCP的机制Olares 可让 AI 模型无缝连接 AI 应用与您的私人数据集,提供基于任务场景的个性化 AI 体验。
> 为 Olares 点亮 🌟 以及时获取新版本和更新的通知。
## 为什么选择 Olares?
在以下场景中Olares 为您带来私密、强大且安全的私有云体验:
🤖**本地 AI 助手**:在本地部署运行顶级开源 AI 模型,涵盖语言处理、图像生成和语音识别等领域。根据个人需求定制 AI 助手,确保数据隐私和控制权均处于自己手中。<br>
💻**个人数据仓库**:所有个人文件,包括照片、文档和重要资料,都可以在这个安全的统一平台上存储和同步,随时随地都能方便地访问。<br>
🛠️**自托管工作空间**:利用开源 SaaS 平替方案,无需成本即可为家庭或工作团队搭建一个功能强大的工作空间。<br>
🎥**私人媒体服务器**:用自己的视频和音乐库搭建一个私人流媒体服务,随时享受个性化的娱乐体验。<br>
🏡**智能家居中心**:将所有智能设备和自动化系统集中在一个易于管理的控制中心,实现家庭智能化的简便操作。<br>
🤝**独立的社交媒体平台**:在 Olares 上部署去中心化社交媒体应用,如 Mastodon、Ghost 和 WordPress自由建立和扩展个人品牌无需担忧封号或支付额外费用。<br>
📚**学习探索**:深入学习自托管服务、容器技术和云计算,并上手实践。<br>
## 快速开始
### 系统兼容性
Olares 已在以下 Linux 平台完成测试与验证:
- Ubuntu 20.04 LTS 及以上版本
- Debian 11 及以上版本
> **其他安装方式**
> Olares 也支持在 macOS、Windows、PVE、树莓派等平台上运行或通过 Docker Compose 在 Linux 上部署。但请注意,这些方式**仅适用于开发和测试环境**。详细安装指南请参阅[其他安装方式](https://docs.joinolares.cn/zh/developer/install/additional-installations.html)。
### 安装 Olares
参考[快速上手指南](https://docs.joinolares.cn/zh/manual/get-started/)安装并激活 Olares。
## 系统架构
Olares 的架构设计遵循两个核心原则:
- 参考 Android 模式,控制软件权限和交互性,确保系统的流畅性和安全性。
- 借鉴云原生技术,高效管理硬件和中间件服务。
![架构](https://file.bttcdn.com/github/terminus/v2/olares-arch-3.png)
详细描述请参考 [Olares 架构](https://docs.joinolares.cn/zh/manual/system-architecture.html)文档。
## 功能特性
Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及开发的灵活性:
- **企业级安全**:使用 Tailscale、Headscale、Cloudflare Tunnel 和 FRP 简化网络配置,确保安全连接。
- **安全且无需许可的应用生态系统**:应用通过沙箱化技术实现隔离,保障应用运行的安全性。
- **统一文件系统和数据库**:提供自动扩展、数据备份和高可用性功能,确保数据的持久安全。
- **单点登录**:用户仅需一次登录,即可访问 Olares 中所有应用的共享认证服务。
- **AI 功能**:包括全面的 GPU 管理、本地 AI 模型托管及私有知识库,同时严格保护数据隐私。
- **内置应用程序**:涵盖文件管理器、同步驱动器、密钥管理器、阅读器、应用市场、设置和面板等,提供全面的应用支持。
- **无缝访问**:通过移动端、桌面端和网页浏览器客户端,从全球任何地方访问设备。
- **开发工具**:提供全面的工具支持,便于开发和移植应用,加速开发进程。
## 项目目录
Olares 包含多个在 GitHub 上公开可用的代码仓库。当前仓库负责操作系统的最终编译、打包、安装和升级,而特定的更改主要在各自对应的仓库中进行。
以下表格列出了 Olares 下的项目目录及其对应的仓库。
<details>
<summary><b>框架组件</b></summary>
| 路径 | 仓库 | 说明 |
| --- | --- | --- |
| [frameworks/app-service](https://github.com/beclab/olares/tree/main/frameworks/app-service) | <https://github.com/beclab/app-service> | 系统框架组件,负责提供全系统应用的生命周期管理及多种安全控制。 |
| [frameworks/backup-server](https://github.com/beclab/olares/tree/main/frameworks/backup-server) | <https://github.com/beclab/backup-server> | 系统框架组件,提供定时的全量或增量集群备份服务。 |
| [frameworks/bfl](https://github.com/beclab/olares/tree/main/frameworks/bfl) | <https://github.com/beclab/bfl> | 启动器后端Backend For Launcher, BFL作为用户访问点的系统框架组件整合并代理各种后端服务的接口。 |
| [frameworks/GPU](https://github.com/beclab/olares/tree/main/frameworks/GPU) | <https://github.com/grgalex/nvshare> | GPU共享机制允许多个进程或运行在 Kubernetes 上的容器)安全地同时在同一物理 GPU 上运行,每个进程都可访问全部 GPU 内存。 |
| [frameworks/l4-bfl-proxy](https://github.com/beclab/olares/tree/main/frameworks/l4-bfl-proxy) | <https://github.com/beclab/l4-bfl-proxy> | 针对 BFL 的第4层网络代理。通过预读服务器名称指示SNI提供一条动态路由至用户的 Ingress。 |
| [frameworks/osnode-init](https://github.com/beclab/olares/tree/main/frameworks/osnode-init) | <https://github.com/beclab/osnode-init> | 系统框架组件,用于初始化新节点加入集群时的节点数据。 |
| [frameworks/system-server](https://github.com/beclab/olares/tree/main/frameworks/system-server) | <https://github.com/beclab/system-server> | 作为系统运行时框架的一部分,提供应用间安全通信的机制。 |
| [frameworks/tapr](https://github.com/beclab/olares/tree/main/frameworks/tapr) | <https://github.com/beclab/tapr> | Olares 应用运行时组件。 |
</details>
<details>
<summary><b>系统级应用程序和服务</b></summary>
| 路径 | 仓库 | 说明 |
| --- | --- | --- |
| [apps/analytic](https://github.com/beclab/olares/tree/main/apps/analytic) | <https://github.com/beclab/analytic> | 基于 [Umami](https://github.com/umami-software/umami) 开发的 Analytic是一个简单、快速、注重隐私的 Google Analytics 替代品。 |
| [apps/market](https://github.com/beclab/olares/tree/main/apps/market) | <https://github.com/beclab/market> | 此代码库部署了 Olares 应用市场的前端部分。 |
| [apps/market-server](https://github.com/beclab/olares/tree/main/apps/market-server) | <https://github.com/beclab/market> | 此代码库部署了 Olares 应用市场的后端部分。 |
| [apps/argo](https://github.com/beclab/olares/tree/main/apps/argo) | <https://github.com/argoproj/argo-workflows> | 用于协调本地推荐算法容器执行的工作流引擎。 |
| [apps/desktop](https://github.com/beclab/olares/tree/main/apps/desktop) | <https://github.com/beclab/desktop> | 系统内置的桌面应用程序。 |
| [apps/devbox](https://github.com/beclab/olares/tree/main/apps/devbox) | <https://github.com/beclab/devbox> | 为开发者提供的 IDE用于移植和开发 Olares 应用。 |
| [apps/vault](https://github.com/beclab/olares/tree/main/apps/vault) | <https://github.com/beclab/termipass> | 基于 [Padloc](https://github.com/padloc/padloc) 开发的团队和企业的免费 1Password 和 Bitwarden 替代品,作为客户端帮助您管理 DID、Olares ID和 Olares 设备。 |
| [apps/files](https://github.com/beclab/olares/tree/main/apps/files) | <https://github.com/beclab/files> | 基于 [Filebrowser](https://github.com/filebrowser/filebrowser) 修改的内置文件管理器,管理 Drive、Sync 和各种 Olares 物理节点上的文件。|
| [apps/notifications](https://github.com/beclab/olares/tree/main/apps/notifications) | <https://github.com/beclab/notifications> | Olares 的通知系统。 |
| [apps/profile](https://github.com/beclab/olares/tree/main/apps/profile) | <https://github.com/beclab/profile> | Olares 中的 Linktree 替代品。|
| [apps/rsshub](https://github.com/beclab/olares/tree/main/apps/rsshub) | <https://github.com/beclab/rsshub> | 基于 [RssHub](https://github.com/DIYgod/RSSHub) 的 RSS 订阅管理器。 |
| [apps/settings](https://github.com/beclab/olares/tree/main/apps/settings) | <https://github.com/beclab/settings> | 内置系统设置。 |
| [apps/system-apps](https://github.com/beclab/olares/tree/main/apps/system-apps) | <https://github.com/beclab/system-apps> | 基于 *kubesphere/console* 项目构建的 system-service 提供一个自托管的云平台,通过视觉仪表板和功能丰富的 ControlHub 帮助用户了解和控制系统的运行状态和资源使用。 |
| [apps/wizard](https://github.com/beclab/olares/tree/main/apps/wizard) | <https://github.com/beclab/wizard> | 向用户介绍系统激活过程的向导应用程序。 |
</details>
<details>
<summary><b>第三方组件和服务</b></summary>
| 路径 | 仓库 | 说明 |
| --- | --- | --- |
| [third-party/authelia](https://github.com/beclab/olares/tree/main/third-party/authelia) | <https://github.com/beclab/authelia> | 一个开源的认证和授权服务器通过网络门户为应用程序提供双因素认证和单点登录SSO。 |
| [third-party/headscale](https://github.com/beclab/olares/tree/main/third-party/headscale) | <https://github.com/beclab/headscale> | 在 Olares 中的 Tailscale 控制服务器的开源自托管实现,用于管理 LarePass 中不同设备上的 Tailscale。|
| [third-party/infisical](https://github.com/beclab/olares/tree/main/third-party/infisical) | <https://github.com/beclab/infisical> | 一个开源的密钥管理平台,可以在团队/基础设施之间同步密钥并防止泄露。 |
| [third-party/juicefs](https://github.com/beclab/olares/tree/main/third-party/juicefs) | <https://github.com/beclab/juicefs-ext> | 基于 Redis 和 S3 之上构建的分布式 POSIX 文件系统,允许不同节点上的应用通过 POSIX 接口访问同一数据。 |
| [third-party/ks-console](https://github.com/beclab/olares/tree/main/third-party/ks-console) | <https://github.com/kubesphere/console> | Kubesphere 控制台,允许通过 Web GUI 进行集群管理。 |
| [third-party/ks-installer](https://github.com/beclab/olares/tree/main/third-party/ks-installer) | <https://github.com/beclab/ks-installer-ext> | Kubesphere 安装组件,根据集群资源定义自动创建 Kubesphere 集群。 |
| [third-party/kube-state-metrics](https://github.com/beclab/olares/tree/main/third-party/kube-state-metrics) | <https://github.com/beclab/kube-state-metrics> | kube-state-metricsKSM是一个简单的服务监听 Kubernetes API 服务器并生成关于对象状态的指标。 |
| [third-party/notification-manager](https://github.com/beclab/olares/tree/main/third-party/notification-manager) | <https://github.com/beclab/notification-manager-ext> | Kubesphere 的通知管理组件,用于统一管理多个通知渠道和自定义聚合通知内容。 |
| [third-party/predixy](https://github.com/beclab/olares/tree/main/third-party/predixy) | <https://github.com/beclab/predixy> | Redis 集群代理服务,自动识别可用节点并添加命名空间隔离。 |
| [third-party/redis-cluster-operator](https://github.com/beclab/olares/tree/main/third-party/redis-cluster-operator) | <https://github.com/beclab/redis-cluster-operator> | 一个基于 Kubernetes 的云原生工具,用于创建和管理 Redis 集群。 |
| [third-party/seafile-server](https://github.com/beclab/olares/tree/main/third-party/seafile-server) | <https://github.com/beclab/seafile-server> | Seafile同步驱动器的后端服务用于处理数据存储。 |
| [third-party/seahub](https://github.com/beclab/olares/tree/main/third-party/seahub) | <https://github.com/beclab/seahub> | Seafile同步驱动器的前端和中间件服务用于处理文件共享、数据同步等。 |
| [third-party/tailscale](https://github.com/beclab/olares/tree/main/third-party/tailscale) | <https://github.com/tailscale/tailscale> | Tailscale 已在所有平台的 LarePass 中集成。 |
</details>
<details>
<summary><b>其他库和组件</b></summary>
| 路径 | 仓库 | 说明 |
| --- | --- | --- |
| [build/installer](https://github.com/beclab/olares/tree/main/build/installer) | | 用于生成安装程序构建的模板。 |
| [build/manifest](https://github.com/beclab/olares/tree/main/build/manifest) | | 安装构建镜像列表模板。 |
| [libs/fs-lib](https://github.com/beclab/olares/tree/main/libs) | <https://github.com/beclab/fs-lib> | 基于 JuiceFS 实现的 iNotify 兼容接口的SDK库。 |
| [scripts](https://github.com/beclab/olares/tree/main/scripts) | | 生成安装程序构建的辅助脚本。 |
</details>
## 社区贡献
我们欢迎任何形式的贡献!
- 如果您想在 Olares 上开发自己的应用,请参考:<br>
https://docs.olares.xyz/developer/develop/
- 如果您想帮助改进 Olares请参考<br>
https://docs.olares.xyz/developer/contribute/olares.html
## 社区支持
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions) - 讨论 Olares 使用过程中的疑问。
* [**GitHub Issues**](https://github.com/beclab/olares/issues) - 报告 Olares 的遇到的问题或提出功能改进建议。
* [**Discord**](https://discord.com/invite/BzfqrgQPDK) - 日常交流,分享经验,或讨论与 Olares 相关的任何主题。
## 特别感谢
Olares 项目整合了许多第三方开源项目,包括:[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。

193
README_JP.md Normal file
View File

@@ -0,0 +1,193 @@
<div align="center">
# Olares: ローカルAIのためのオープンソース主権クラウドOS<!-- omit in toc -->
[![Mission](https://img.shields.io/badge/Mission-Let%20people%20own%20their%20data%20again-purple)](#)<br/>
[![Last Commit](https://img.shields.io/github/last-commit/beclab/olares)](https://github.com/beclab/olares/commits/main)
![Build Status](https://github.com/beclab/olares/actions/workflows/release-daily.yaml/badge.svg)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/beclab/olares)](https://github.com/beclab/olares/releases)
[![GitHub Repo stars](https://img.shields.io/github/stars/beclab/olares?style=social)](https://github.com/beclab/olares/stargazers)
[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.com/invite/BzfqrgQPDK)
[![License](https://img.shields.io/badge/License-Olares-darkblue)](https://github.com/beclab/olares/blob/main/LICENSE.md)
<p>
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
<a href="./README_CN.md"><img alt="Readme in Chinese" src="https://img.shields.io/badge/简体中文-FFFFFF"></a>
<a href="./README_JP.md"><img alt="Readme in Japanese" src="https://img.shields.io/badge/日本語-FFFFFF"></a>
</p>
</div>
https://github.com/user-attachments/assets/3089a524-c135-4f96-ad2b-c66bf4ee7471
*Olaresを使って、ローカルAIアシスタントを構築し、データを場所を問わず同期し、ワークスペースをセルフホストし、独自のメディアをストリーミングし、その他多くのことを実現できます。*
<p align="center">
<a href="https://olares.xyz">ウェブサイト</a> ·
<a href="https://docs.olares.xyz">ドキュメント</a> ·
<a href="https://olares.xyz/larepass">LarePassをダウンロード</a> ·
<a href="https://github.com/beclab/apps">Olaresアプリ</a> ·
<a href="https://space.olares.xyz">Olares Space</a>
</p>
> [!IMPORTANT]
> 最近、TerminusからOlaresへのリブランディングを完了しました。詳細については、[リブランディングブログ](https://blog.olares.xyz/terminus-is-now-olares/)をご覧ください。
Olaresを使用して、ハードウェアをAIホームサーバーに変換します。Olaresは、ローカルAIのためのオープンソース主権クラウドOSです。
- **最先端のAIモデルを自分の条件で実行**: LLaMA、Stable Diffusion、Whisper、Flux.1などの強力なオープンAIモデルをハードウェア上で簡単にホストし、AI環境を完全に制御します。
- **簡単にデプロイ**: Olares Marketから幅広いオープンソースAIアプリを数クリックで発見してインストールします。複雑な設定やセットアップは不要です。
- **いつでもどこでもアクセス**: ブラウザを通じて、必要なときにAIアプリやモデルにアクセスします。
- **統合されたAIでスマートなAI体験**: [Model Context Protocol](https://spec.modelcontextprotocol.io/specification/)MCPに似たメカニズムを使用して、OlaresはAIモデルとAIアプリ、およびプライベートデータセットをシームレスに接続します。これにより、ニーズに応じて適応する高度にパーソナライズされたコンテキスト対応のAIインタラクションが実現します。
> 🌟 *新しいリリースや更新についての通知を受け取るために、スターを付けてください。*
## なぜOlaresなのか
以下の理由とシナリオで、Olaresはプライベートで強力かつ安全な主権クラウド体験を提供します
🤖 **エッジAI**: 最先端のオープンAIモデルをローカルで実行し、大規模言語モデル、コンピュータビジョン、音声認識などを含みます。データに合わせてプライベートAIサービスを作成し、機能性とプライバシーを向上させます。<br>
📊 **個人データリポジトリ**: 重要なファイル、写真、ドキュメントを安全に保存し、デバイスや場所を問わず同期および管理します。<br>
🚀 **セルフホストワークスペース**: 安全なオープンソースSaaS代替品を使用して、チームのための無料のコラボレーションワークスペースを構築します。<br>
🎥 **プライベートメディアサーバー**: 個人のメディアコレクションをホストし、独自のストリーミングサービスを提供します。<br>
🏡 **スマートホームハブ**: IoTデバイスやホームオートメーションの中央制御ポイントを作成します。<br>
🤝 **ユーザー所有の分散型ソーシャルメディア**: Mastodon、Ghost、WordPressなどの分散型ソーシャルメディアアプリをOlaresに簡単にインストールし、プラットフォームの手数料やアカウント停止のリスクなしに個人ブランドを構築します。<br>
📚 **学習プラットフォーム**: セルフホスティング、コンテナオーケストレーション、クラウド技術を実践的に学びます。
## はじめに
### システム互換性
Olaresは以下のLinuxプラットフォームで動作検証を完了しています
- Ubuntu 20.04 LTS 以降
- Debian 11 以降
> **追加インストール手順**
> Olares は macOS、Windows、PVE、Raspberry Pi などのプラットフォームや、Linux 上での Docker Compose を用いたインストールにも対応しています。>ただし、これらの方法は開発およびテスト環境専用です。詳しくは[追加インストール手順](https://docs.olares.xyz/developer/install/additional-installations.html)をご参照ください。
### Olaresのセットアップ
自分のデバイスでOlaresを始めるには、[はじめにガイド](https://docs.olares.xyz/manual/get-started/)に従ってステップバイステップの手順を確認してください。
## アーキテクチャ
Olaresのアーキテクチャは、次の2つの基本原則に基づいています
- Androidの設計思想を取り入れ、ソフトウェアの権限と対話性を制御することで、システムの安全かつ円滑な運用を実現します。
- クラウドネイティブ技術を活用し、ハードウェアとミドルウェアサービスを効率的に管理します。
![Olaresのアーキテクチ](https://file.bttcdn.com/github/terminus/v2/olares-arch-3.png)
各コンポーネントの詳細については、[Olares アーキテクチャ](https://docs.olares.xyz/manual/system-architecture.html)(英語版)をご参照ください。
## 機能
Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上させるための幅広い機能を提供します
- **エンタープライズグレードのセキュリティ**: Tailscale、Headscale、Cloudflare Tunnel、FRPを使用してネットワーク構成を簡素化します。
- **安全で許可のないアプリケーションエコシステム**: サンドボックス化によりアプリケーションの分離とセキュリティを確保します。
- **統一ファイルシステムとデータベース**: 自動スケーリング、バックアップ、高可用性を提供します。
- **シングルサインオン**: 一度ログインするだけで、Olares内のすべてのアプリケーションに共有認証サービスを使用してアクセスできます。
- **AI機能**: GPU管理、ローカルAIモデルホスティング、プライベートナレッジベースの包括的なソリューションを提供し、データプライバシーを維持します。
- **内蔵アプリケーション**: ファイルマネージャー、同期ドライブ、ボールト、リーダー、アプリマーケット、設定、ダッシュボードを含みます。
- **どこからでもシームレスにアクセス**: モバイル、デスクトップ、ブラウザ用の専用クライアントを使用して、どこからでもデバイスにアクセスできます。
- **開発ツール**: アプリケーションの開発と移植を容易にする包括的な開発ツールを提供します。
## プロジェクトナビゲーション
Olaresは、GitHubで公開されている多数のコードリポジトリで構成されています。現在のリポジトリは、オペレーティングシステムの最終コンパイル、パッケージング、インストール、およびアップグレードを担当しており、特定の変更は主に対応するリポジトリで行われます。
以下の表は、Olaresのプロジェクトディレクトリと対応するリポジトリを一覧にしたものです。興味のあるものを見つけてください
<details>
<summary><b>フレームワークコンポーネント</b></summary>
| ディレクトリ | リポジトリ | 説明 |
| --- | --- | --- |
| [frameworks/app-service](https://github.com/beclab/olares/tree/main/frameworks/app-service) | <https://github.com/beclab/app-service> | システムフレームワークコンポーネントで、システム内のすべてのアプリのライフサイクル管理とさまざまなセキュリティ制御を提供します。 |
| [frameworks/backup-server](https://github.com/beclab/olares/tree/main/frameworks/backup-server) | <https://github.com/beclab/backup-server> | システムフレームワークコンポーネントで、定期的なフルまたは増分クラスターのバックアップサービスを提供します。 |
| [frameworks/bfl](https://github.com/beclab/olares/tree/main/frameworks/bfl) | <https://github.com/beclab/bfl> | ランチャーのバックエンドBFL、ユーザーアクセスポイントとして機能し、さまざまなバックエンドサービスのインターフェースを集約およびプロキシします。 |
| [frameworks/GPU](https://github.com/beclab/olares/tree/main/frameworks/GPU) | <https://github.com/grgalex/nvshare> | 複数のプロセスまたはKubernetes上で実行されるコンテナが同じ物理GPU上で同時に安全に実行できるようにするGPU共有メカニズムで、各プロセスが全GPUメモリを利用できます。 |
| [frameworks/l4-bfl-proxy](https://github.com/beclab/olares/tree/main/frameworks/l4-bfl-proxy) | <https://github.com/beclab/l4-bfl-proxy> | BFLの第4層ネットワークプロキシ。SNIを事前に読み取ることで、ユーザーのIngressに通過する動的ルートを提供します。 |
| [frameworks/osnode-init](https://github.com/beclab/olares/tree/main/frameworks/osnode-init) | <https://github.com/beclab/osnode-init> | 新しいノードがクラスターに参加する際にノードデータを初期化するシステムフレームワークコンポーネント。 |
| [frameworks/system-server](https://github.com/beclab/olares/tree/main/frameworks/system-server) | <https://github.com/beclab/system-server> | システムランタイムフレームワークの一部として、アプリ間のセキュリティコールのメカニズムを提供します。 |
| [frameworks/tapr](https://github.com/beclab/olares/tree/main/frameworks/tapr) | <https://github.com/beclab/tapr> | Olaresアプリケーションランタイムコンポーネント。 |
</details>
<details>
<summary><b>システムレベルのアプリケーションとサービス</b></summary>
| ディレクトリ | リポジトリ | 説明 |
| --- | --- | --- |
| [apps/analytic](https://github.com/beclab/olares/tree/main/apps/analytic) | <https://github.com/beclab/analytic> | [Umami](https://github.com/umami-software/umami)に基づいて開発されたAnalyticは、Google Analyticsのシンプルで高速、プライバシー重視の代替品です。 |
| [apps/market](https://github.com/beclab/olares/tree/main/apps/market) | <https://github.com/beclab/market> | このリポジトリは、Olaresのアプリケーションマーケットのフロントエンド部分をデプロイします。 |
| [apps/market-server](https://github.com/beclab/olares/tree/main/apps/market-server) | <https://github.com/beclab/market> | このリポジトリは、Olaresのアプリケーションマーケットのバックエンド部分をデプロイします。 |
| [apps/argo](https://github.com/beclab/olares/tree/main/apps/argo) | <https://github.com/argoproj/argo-workflows> | ローカル推奨アルゴリズムのコンテナ実行をオーケストレーションするワークフローエンジン。 |
| [apps/desktop](https://github.com/beclab/olares/tree/main/apps/desktop) | <https://github.com/beclab/desktop> | システムの内蔵デスクトップアプリケーション。 |
| [apps/devbox](https://github.com/beclab/olares/tree/main/apps/devbox) | <https://github.com/beclab/devbox> | Olaresアプリケーションの移植と開発のための開発者向けIDE。 |
| [apps/vault](https://github.com/beclab/olares/tree/main/apps/vault) | <https://github.com/beclab/termipass> | [Padloc](https://github.com/padloc/padloc)に基づいて開発された、あらゆる規模のチームや企業向けの無料の1PasswordおよびBitwardenの代替品。DID、Olares ID、およびOlaresデバイスの管理を支援するクライアントとして機能します。 |
| [apps/files](https://github.com/beclab/olares/tree/main/apps/files) | <https://github.com/beclab/files> | [Filebrowser](https://github.com/filebrowser/filebrowser)から変更された内蔵ファイルマネージャーで、Drive、Sync、およびさまざまなOlares物理ード上のファイルの管理を提供します。 |
| [apps/notifications](https://github.com/beclab/olares/tree/main/apps/notifications) | <https://github.com/beclab/notifications> | Olaresの通知システム |
| [apps/profile](https://github.com/beclab/olares/tree/main/apps/profile) | <https://github.com/beclab/profile> | OlaresのLinktree代替品 |
| [apps/rsshub](https://github.com/beclab/olares/tree/main/apps/rsshub) | <https://github.com/beclab/rsshub> | [RssHub](https://github.com/DIYgod/RSSHub)に基づいたRSS購読管理ツール。 |
| [apps/settings](https://github.com/beclab/olares/tree/main/apps/settings) | <https://github.com/beclab/settings> | 内蔵システム設定。 |
| [apps/system-apps](https://github.com/beclab/olares/tree/main/apps/system-apps) | <https://github.com/beclab/system-apps> | _kubesphere/console_プロジェクトに基づいて構築されたsystem-serviceは、視覚的なダッシュボードと機能豊富なControlHubを通じて、システムの実行状態とリソース使用状況を理解し、制御するためのセルフホストクラウドプラットフォームを提供します。 |
| [apps/wizard](https://github.com/beclab/olares/tree/main/apps/wizard) | <https://github.com/beclab/wizard> | ユーザーにシステムのアクティベーションプロセスを案内するウィザードアプリケーション。 |
</details>
<details>
<summary><b>サードパーティコンポーネントとサービス</b></summary>
| ディレクトリ | リポジトリ | 説明 |
| --- | --- | --- |
| [third-party/authelia](https://github.com/beclab/olares/tree/main/third-party/authelia) | <https://github.com/beclab/authelia> | Webポータルを介してアプリケーションに二要素認証とシングルサインオンSSOを提供するオープンソースの認証および認可サーバー。 |
| [third-party/headscale](https://github.com/beclab/olares/tree/main/third-party/headscale) | <https://github.com/beclab/headscale> | OlaresでのTailscaleコントロールサーバーのオープンソース自ホスト実装で、LarePassで異なるデバイス間でTailscaleを管理します。 |
| [third-party/infisical](https://github.com/beclab/olares/tree/main/third-party/infisical) | <https://github.com/beclab/infisical> | チーム/インフラストラクチャ間でシークレットを同期し、シークレットの漏洩を防ぐオープンソースのシーク<E383BC><E382AF><EFBFBD><E38383>管理プラットフォーム。 |
| [third-party/juicefs](https://github.com/beclab/olares/tree/main/third-party/juicefs) | <https://github.com/beclab/juicefs-ext> | RedisとS3の上に構築された分散POSIXファイルシステムで、異なるード上のアプリがPOSIXインターフェースを介して同じデータにアクセスできるようにします。 |
| [third-party/ks-console](https://github.com/beclab/olares/tree/main/third-party/ks-console) | <https://github.com/kubesphere/console> | Web GUIを介してクラスター管理を可能にするKubesphereコンソール。 |
| [third-party/ks-installer](https://github.com/beclab/olares/tree/main/third-party/ks-installer) | <https://github.com/beclab/ks-installer-ext> | クラスターリソース定義に基づいて自動的にKubesphereクラスターを作成するKubesphereインストーラーコンポーネント。 |
| [third-party/kube-state-metrics](https://github.com/beclab/olares/tree/main/third-party/kube-state-metrics) | <https://github.com/beclab/kube-state-metrics> | kube-state-metricsKSMは、Kubernetes APIサーバーをリッスンし、オブジェクトの状態に関するメトリックを生成するシンプルなサービスです。 |
| [third-party/notification-manager](https://github.com/beclab/olares/tree/main/third-party/notification-manager) | <https://github.com/beclab/notification-manager-ext> | 複数の通知チャネルの統一管理と通知内容のカスタム集約を提供するKubesphereの通知管<E79FA5><E7AEA1>コンポーネント。 |
| [third-party/predixy](https://github.com/beclab/olares/tree/main/third-party/predixy) | <https://github.com/beclab/predixy> | 利用可能なードを自動的に識別し、名前空間の分離を追加するRedisクラスターのプロキシサービス。 |
| [third-party/redis-cluster-operator](https://github.com/beclab/olares/tree/main/third-party/redis-cluster-operator) | <https://github.com/beclab/redis-cluster-operator> | Kubernetesに基づいてRedisクラスターを作成および管理するためのクラウドネイティブツール。 |
| [third-party/seafile-server](https://github.com/beclab/olares/tree/main/third-party/seafile-server) | <https://github.com/beclab/seafile-server> | データストレージを処理するSeafile同期ドライブのバックエンドサービス。 |
| [third-party/seahub](https://github.com/beclab/olares/tree/main/third-party/seahub) | <https://github.com/beclab/seahub> | ファイル共有、データ同期などを処理するSeafile同期ドライブのフロントエンドおよびミドルウェアサービス。 |
| [third-party/tailscale](https://github.com/beclab/olares/tree/main/third-party/tailscale) | <https://github.com/tailscale/tailscale> | TailscaleはすべてのプラットフォームのLarePassに統合されています。 |
</details>
<details>
<summary><b>追加のライブラリとコンポーネント</b></summary>
| ディレクトリ | リポジトリ | 説明 |
| --- | --- | --- |
| [build/installer](https://github.com/beclab/olares/tree/main/build/installer) | | インストーラービルドを生成するためのテンプレート。 |
| [build/manifest](https://github.com/beclab/olares/tree/main/build/manifest) | | インストールビルドイメージリストテンプレート。 |
| [libs/fs-lib](https://github.com/beclab/olares/tree/main/libs) | <https://github.com/beclab/fs-lib> | JuiceFSに基づいて実装されたiNotify互換インターフェースのSDKライブラリ。 |
| [scripts](https://github.com/beclab/olares/tree/main/scripts) | | インストーラービルドを生成するための補助スクリプト。 |
</details>
## Olaresへの貢献
あらゆる形での貢献を歓迎します:
- Olaresで独自のアプリケーションを開発したい場合は、以下を参照してください<br>
https://docs.olares.xyz/developer/develop/
- Olaresの改善に協力したい場合は、以下を参照してください<br>
https://docs.olares.xyz/developer/contribute/olares.html
## コミュニティと連絡先
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions). フィードバックの共有や質問に最適です。
* [**GitHub Issues**](https://github.com/beclab/olares/issues). Olaresの使用中に遭遇したバグの報告や機能提案の提出に最適です。
* [**Discord**](https://discord.com/invite/BzfqrgQPDK). Olaresに関するあらゆることを共有するのに最適です。
## 特別な感謝
Olaresプロジェクトは、次のような多数のサードパーティオープンソースプロジェクトを統合しています[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。

View File

@@ -1,7 +1,7 @@
{{ $anayltic2_rootpath := "/terminus/rootfs/anayltic2" }}
{{ $anayltic2_rootpath := printf "%s%s" .Values.rootPath "/rootfs/anayltic2" }}
{{- $namespace := printf "%s" "os-system" -}}
{{- $anayltic2_secret := (lookup "v1" "Secret" $namespace "anayltic2-secrets") -}}
{{- $pg_password := "" -}}
@@ -83,11 +83,13 @@ spec:
value: os_system_anayltic2
containers:
- name: anayltic2-server
image: beclab/analytic-api:v0.0.3
image: beclab/analytic-api:v0.0.4
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3010
env:
- name: PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING
value: '1'
- name: PL_DATA_BACKEND
value: postgres
- name: PL_DATA_POSTGRES_HOST

View File

@@ -0,0 +1,67 @@
{{- $namespace := printf "%s" "os-system" -}}
{{- $rss_secret := (lookup "v1" "Secret" $namespace "rss-secrets") -}}
{{- $password := "" -}}
{{ if $rss_secret -}}
{{ $password = (index $rss_secret "data" "pg_password") }}
{{ else -}}
{{ $password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password := "" -}}
{{ if $rss_secret -}}
{{ $redis_password = (index $rss_secret "data" "redis_password") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password_data := "" -}}
{{ $redis_password_data = $redis_password | b64dec }}
{{- $pg_password_data := "" -}}
{{ $pg_password_data = $password | b64dec }}
{{- $pg_user := printf "%s" "argo_os_system" -}}
{{- $pg_user = $pg_user | b64enc -}}
---
apiVersion: v1
kind: Secret
metadata:
name: rss-secrets
namespace: os-system
type: Opaque
data:
pg_user: {{ $pg_user }}
pg_password: {{ $password }}
redis_password: {{ $redis_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: rss-pg
namespace: os-system
spec:
app: rss
appNamespace: os-system
middleware: postgres
postgreSQL:
user: argo_os_system
password:
valueFrom:
secretKeyRef:
key: pg_password
name: rss-secrets
databases:
- name: rss
- name: rss_v1
- name: argo

View File

@@ -0,0 +1,26 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: os-system:argoworkflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argoworkflows
subjects:
- kind: ServiceAccount
name: argoworkflows
namespace: os-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: os-system:argoworkflows-cluster-template
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argoworkflows-cluster-template
subjects:
- kind: ServiceAccount
name: argoworkflows
namespace: os-system

View File

@@ -0,0 +1,85 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: argoworkflows
namespace: os-system
labels:
app: argoworkflows
app.kubernetes.io/managed-by: Helm
annotations:
applications.app.bytetrade.io/icon: https://argoproj.github.io/argo-workflows/assets/logo.png
applications.app.bytetrade.io/title: argoworkflows
applications.app.bytetrade.io/version: '0.35.0'
spec:
selector:
matchLabels:
app: argoworkflows
template:
metadata:
labels:
app: argoworkflows
spec:
serviceAccountName: argoworkflows
containers:
- name: argo-server
image: quay.io/argoproj/argocli:v3.5.0
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
args:
- server
- --configmap=argoworkflow-workflow-controller-configmap
- "--auth-mode=server"
- "--secure=false"
- "--x-frame-options="
- "--loglevel"
- "debug"
- "--gloglevel"
- "0"
- "--log-format"
- "text"
ports:
- name: web
containerPort: 2746
readinessProbe:
httpGet:
path: /
port: 2746
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 20
env:
- name: IN_CLUSTER
value: "true"
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: BASE_HREF
value: /
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 300
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 300

View File

@@ -0,0 +1,6 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: argoworkflows
namespace: os-system

View File

@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: argoworkflows-svc
namespace: os-system
spec:
ports:
- port: 2746
name: http
protocol: TCP
targetPort: 2746
selector:
app: argoworkflows
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,40 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argoworkflow-workflow-controller-configmap
namespace: os-system
data:
config: |
instanceID: os-system
artifactRepository:
archiveLogs: true
s3:
accessKeySecret:
key: AWS_ACCESS_KEY_ID
name: argo-workflow-log-fakes3
secretKeySecret:
key: AWS_SECRET_ACCESS_KEY
name: argo-workflow-log-fakes3
bucket: mongo-backup
endpoint: tapr-s3-svc:4568
insecure: true
persistence:
connectionPool:
maxIdleConns: 5
maxOpenConns: 0
archive: true
archiveTTL: 5d
postgresql:
host: citus-headless.os-system
port: 5432
database: os_system_argo
tableName: argo_workflows
userNameSecret:
name: rss-secrets
key: pg_user
passwordSecret:
name: rss-secrets
key: pg_password
nodeEvents:
enabled: true

View File

@@ -0,0 +1,27 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: os-system:argoworkflow-workflow-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argoworkflow-workflow-controller
subjects:
- kind: ServiceAccount
name: argoworkflow-workflow-controller
namespace: os-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: os-system:argoworkflow-workflow-controller-cluster-template
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argoworkflow-workflow-controller-cluster-template
subjects:
- kind: ServiceAccount
name: argoworkflow-workflow-controller
namespace: os-system

View File

@@ -0,0 +1,89 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: argoworkflow-workflow-controller
namespace: os-system
labels:
app.kubernetes.io/component: workflow-controller
app.kubernetes.io/instance: argo
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argoworkflows-workflow-controller
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: v3.5.0
helm.sh/chart: argoworkflows-0.35.0
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: argo
app.kubernetes.io/name: argoworkflows-workflow-controller
template:
metadata:
labels:
app.kubernetes.io/component: workflow-controller
app.kubernetes.io/instance: argo
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argoworkflows-workflow-controller
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: v3.5.0
helm.sh/chart: argoworkflows-0.35.0
spec:
serviceAccountName: argoworkflow-workflow-controller
serviceAccount: argoworkflow-workflow-controller
schedulerName: default-scheduler
containers:
- name: controller
image: quay.io/argoproj/workflow-controller:v3.5.0
imagePullPolicy: IfNotPresent
command: [ "workflow-controller" ]
args:
- "--configmap"
- "argoworkflow-workflow-controller-configmap"
- "--executor-image"
- "quay.io/argoproj/argoexec:v3.5.0"
- "--loglevel"
- "debug"
- "--gloglevel"
- "0"
- "--log-format"
- "text"
securityContext:
capabilities:
drop:
- ALL
runAsNonRoot: true
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
env:
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: LEADER_ELECTION_IDENTITY
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
ports:
- name: metrics
containerPort: 9090
protocol: TCP
- containerPort: 6060
protocol: TCP
livenessProbe:
httpGet:
path: /healthz
port: 6060
scheme: HTTP
initialDelaySeconds: 90
timeoutSeconds: 30
periodSeconds: 60
successThreshold: 1
failureThreshold: 3
nodeSelector:
kubernetes.io/os: linux

View File

@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: argoworkflow-workflow-controller
namespace: os-system

View File

@@ -5,7 +5,7 @@ apiVersion: v1
kind: Secret
metadata:
name: argo-workflow-log-fakes3
namespace: {{ .Release.Namespace }}
namespace: os-system
type: Opaque
stringData:
AWS_ACCESS_KEY_ID: S3RVER
@@ -16,7 +16,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: workflow-role
namespace: {{ .Release.Namespace }}
namespace: os-system
rules:
- apiGroups:
- "*"
@@ -30,10 +30,10 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: workflow-rolebinding
namespace: {{ .Release.Namespace }}
namespace: os-system
subjects:
- kind: ServiceAccount
namespace: {{ .Release.Namespace }}
namespace: os-system
name: default
roleRef:
kind: Role

View File

@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: argoworkflow-workflow
namespace: os-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: argoworkflow-workflow
subjects:
- kind: ServiceAccount
name: argo-workflow
namespace: os-system

View File

@@ -1,10 +1,8 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ template "argo-workflows.fullname" $ }}-workflow
labels:
{{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }}
namespace: {{ $.Release.Namespace}}
name: argoworkflow-workflow
namespace: os-system
rules:
- apiGroups:
- ""

View File

@@ -1,5 +1,5 @@
apiVersion: v2
name: rss
name: argo
description: A Helm chart for Kubernetes
maintainers:
- name: bytetrade

View File

@@ -1,39 +0,0 @@
apiVersion: v2
name: argoworkflows
description: A Helm chart for Argo Workflows
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.35.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v3.5.0"
icon: https://argoproj.github.io/argo-workflows/assets/logo.png
home: https://github.com/argoproj/argo-helm
sources:
- https://github.com/argoproj/argo-workflows
maintainers:
- name: argoproj
url: https://argoproj.github.io/
annotations:
artifacthub.io/signKey: |
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: |
- kind: changed
description: Upgrade to Argo Workflows v3.4.10

View File

@@ -1,7 +0,0 @@
1. Get Argo Server external IP/domain by running:
kubectl --namespace {{ .Release.Namespace }} get services -o wide | grep {{ template "argo-workflows.server.fullname" . }}
2. Submit the hello-world workflow by running:
argo submit https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/hello-world.yaml --watch

View File

@@ -1,189 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Create argo workflows server name and version as used by the chart label.
*/}}
{{- define "argo-workflows.server.fullname-bak" -}}
{{- printf "%s-%s" (include "argo-workflows.fullname" .) .Values.server.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- define "argo-workflows.server.fullname" -}}
argoworkflows
{{- end -}}
{{/*
Create controller name and version as used by the chart label.
*/}}
{{- define "argo-workflows.controller.fullname" -}}
{{- printf "%s-%s" (include "argo-workflows.fullname" .) .Values.controller.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Expand the name of the chart.
*/}}
{{- define "argo-workflows.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{/*{{- define "argo-workflows.fullname" -}}*/}}
{{/*{{- if .Values.fullnameOverride -}}*/}}
{{/*{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}*/}}
{{/*{{- else -}}*/}}
{{/*{{- $name := default .Chart.Name .Values.nameOverride -}}*/}}
{{/*{{- if contains $name .Release.Name -}}*/}}
{{/*{{- .Release.Name | trunc 63 | trimSuffix "-" -}}*/}}
{{/*{{- else -}}*/}}
{{/*{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}*/}}
{{/*{{- end -}}*/}}
{{/*{{- end -}}*/}}
{{/*{{- end -}}*/}}
{{- define "argo-workflows.fullname" -}}
argoworkflow
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "argo-workflows.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create kubernetes friendly chart version label for the controller.
Examples:
image.tag = v3.4.4
output = v3.4.4
image.tag = v3.4.4@sha256:d06860f1394a94ac3ff8401126ef32ba28915aa6c3c982c7e607ea0b4dadb696
output = v3.4.4
*/}}
{{- define "argo-workflows.controller_chart_version_label" -}}
{{- regexReplaceAll "[^a-zA-Z0-9-_.]+" (regexReplaceAll "@sha256:[a-f0-9]+" (default (include "argo-workflows.defaultTag" .) .Values.controller.image.tag) "") "" | trunc 63 | quote -}}
{{- end -}}
{{/*
Create kubernetes friendly chart version label for the server.
Examples:
image.tag = v3.4.4
output = v3.4.4
image.tag = v3.4.4@sha256:d06860f1394a94ac3ff8401126ef32ba28915aa6c3c982c7e607ea0b4dadb696
output = v3.4.4
*/}}
{{- define "argo-workflows.server_chart_version_label" -}}
{{- regexReplaceAll "[^a-zA-Z0-9-_.]+" (regexReplaceAll "@sha256:[a-f0-9]+" (default (include "argo-workflows.defaultTag" .) .Values.server.image.tag) "") "" | trunc 63 | quote -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "argo-workflows.labels" -}}
helm.sh/chart: {{ include "argo-workflows.chart" .context }}
{{ include "argo-workflows.selectorLabels" (dict "context" .context "component" .component "name" .name) }}
app.kubernetes.io/managed-by: {{ .context.Release.Service }}
app.kubernetes.io/part-of: argo-workflows
{{- end }}
{{/*
Selector labels
*/}}
{{- define "argo-workflows.selectorLabels" -}}
{{- if .name -}}
app.kubernetes.io/name: {{ include "argo-workflows.name" .context }}-{{ .name }}
{{ end -}}
app.kubernetes.io/instance: {{ .context.Release.Name }}
{{- if .component }}
app.kubernetes.io/component: {{ .component }}
{{- end }}
{{- end }}
{{/*
Create the name of the server service account to use
*/}}
{{- define "argo-workflows.serverServiceAccountName" -}}
{{- if .Values.server.serviceAccount.create -}}
{{ default (include "argo-workflows.server.fullname" .) .Values.server.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.server.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the controller service account to use
*/}}
{{- define "argo-workflows.controllerServiceAccountName" -}}
{{- if .Values.controller.serviceAccount.create -}}
{{ default (include "argo-workflows.controller.fullname" .) .Values.controller.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.controller.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Return the appropriate apiVersion for ingress
*/}}
{{- define "argo-workflows.ingress.apiVersion" -}}
{{- if semverCompare "<1.14-0" (include "argo-workflows.kubeVersion" $) -}}
{{- print "extensions/v1beta1" -}}
{{- else if semverCompare "<1.19-0" (include "argo-workflows.kubeVersion" $) -}}
{{- print "networking.k8s.io/v1beta1" -}}
{{- else -}}
{{- print "networking.k8s.io/v1" -}}
{{- end -}}
{{- end -}}
{{/*
Return the target Kubernetes version
*/}}
{{- define "argo-workflows.kubeVersion" -}}
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride }}
{{- end -}}
{{/*
Return the default Argo Workflows app version
*/}}
{{- define "argo-workflows.defaultTag" -}}
{{- default .Chart.AppVersion .Values.images.tag }}
{{- end -}}
{{/*
Return full image name including or excluding registry based on existence
*/}}
{{- define "argo-workflows.image" -}}
{{- if and .image.registry .image.repository -}}
{{ .image.registry }}/{{ .image.repository }}
{{- else -}}
{{ .image.repository }}
{{- end -}}
{{- end -}}
{{/*
Return the appropriate apiVersion for autoscaling
*/}}
{{- define "argo-workflows.apiVersion.autoscaling" -}}
{{- if .Values.apiVersionOverrides.autoscaling -}}
{{- print .Values.apiVersionOverrides.autoscaling -}}
{{- else if semverCompare "<1.23-0" (include "argo-workflows.kubeVersion" .) -}}
{{- print "autoscaling/v2beta1" -}}
{{- else -}}
{{- print "autoscaling/v2" -}}
{{- end -}}
{{- end -}}
{{/*
Return the appropriate apiVersion for GKE resources
*/}}
{{- define "argo-workflows.apiVersions.cloudgoogle" -}}
{{- if .Values.apiVersionOverrides.cloudgoogle -}}
{{- print .Values.apiVersionOverrides.cloudgoogle -}}
{{- else if .Capabilities.APIVersions.Has "cloud.google.com/v1" -}}
{{- print "cloud.google.com/v1" -}}
{{- else -}}
{{- print "cloud.google.com/v1beta1" -}}
{{- end -}}
{{- end -}}

View File

@@ -1,208 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "argo-workflows.controller.fullname" . }}-configmap
namespace: {{ .Release.Namespace | quote }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" "cm") | nindent 4 }}
data:
config: |
{{- if .Values.controller.instanceID.enabled }}
{{- if .Values.controller.instanceID.useReleaseName }}
instanceID: {{ .Release.Namespace }}
{{- else }}
instanceID: {{ .Values.controller.instanceID.explicitID }}
{{- end }}
{{- end }}
{{- if .Values.controller.parallelism }}
parallelism: {{ .Values.controller.parallelism }}
{{- end }}
{{- if .Values.controller.resourceRateLimit }}
resourceRateLimit: {{ toYaml .Values.controller.resourceRateLimit | nindent 6 }}
{{- end }}
{{- with .Values.controller.namespaceParallelism }}
namespaceParallelism: {{ . }}
{{- end }}
{{- with .Values.controller.initialDelay }}
initialDelay: {{ . }}
{{- end }}
{{- if or .Values.mainContainer.resources .Values.mainContainer.env .Values.mainContainer.envFrom .Values.mainContainer.securityContext}}
mainContainer:
imagePullPolicy: {{ default (.Values.images.pullPolicy) .Values.mainContainer.imagePullPolicy }}
{{- with .Values.mainContainer.resources }}
resources: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.mainContainer.env }}
env: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.mainContainer.envFrom }}
envFrom: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.mainContainer.securityContext }}
securityContext: {{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
{{- if or .Values.executor.resources .Values.executor.env .Values.executor.args .Values.executor.securityContext}}
executor:
imagePullPolicy: {{ default (.Values.images.pullPolicy) .Values.executor.image.pullPolicy }}
{{- with .Values.executor.resources }}
resources: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.executor.args }}
args: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.executor.env }}
env: {{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.executor.securityContext }}
securityContext: {{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
{{- if or .Values.artifactRepository.s3 .Values.artifactRepository.gcs .Values.artifactRepository.azure .Values.customArtifactRepository }}
artifactRepository:
{{- if .Values.artifactRepository.archiveLogs }}
archiveLogs: {{ .Values.artifactRepository.archiveLogs }}
{{- end }}
{{- with .Values.artifactRepository.gcs }}
gcs: {{- tpl (toYaml .) $ | nindent 8 }}
{{- end }}
{{- with .Values.artifactRepository.azure }}
azure: {{- tpl (toYaml .) $ | nindent 8 }}
{{- end }}
{{- if .Values.artifactRepository.s3 }}
s3:
{{- if .Values.useStaticCredentials }}
accessKeySecret:
key: {{ tpl .Values.artifactRepository.s3.accessKeySecret.key . }}
name: {{ tpl .Values.artifactRepository.s3.accessKeySecret.name . }}
secretKeySecret:
key: {{ tpl .Values.artifactRepository.s3.secretKeySecret.key . }}
name: {{ tpl .Values.artifactRepository.s3.secretKeySecret.name . }}
{{- end }}
bucket: {{ tpl (.Values.artifactRepository.s3.bucket | default "") . }}
endpoint: workflow-archivelog-s3.user-system-{{ .Values.global.bfl.username }}:4568
insecure: {{ .Values.artifactRepository.s3.insecure }}
{{- if .Values.artifactRepository.s3.keyFormat }}
keyFormat: {{ .Values.artifactRepository.s3.keyFormat | quote }}
{{- end }}
{{- if .Values.artifactRepository.s3.region }}
region: {{ tpl .Values.artifactRepository.s3.region $ }}
{{- end }}
{{- if .Values.artifactRepository.s3.roleARN }}
roleARN: {{ .Values.artifactRepository.s3.roleARN }}
{{- end }}
{{- if .Values.artifactRepository.s3.useSDKCreds }}
useSDKCreds: {{ .Values.artifactRepository.s3.useSDKCreds }}
{{- end }}
{{- with .Values.artifactRepository.s3.encryptionOptions }}
encryptionOptions:
{{- toYaml . | nindent 10 }}
{{- end }}
{{- end }}
{{- if .Values.customArtifactRepository }}
{{- toYaml .Values.customArtifactRepository | nindent 6 }}
{{- end }}
{{- end }}
{{- if .Values.controller.metricsConfig.enabled }}
metricsConfig:
enabled: {{ .Values.controller.metricsConfig.enabled }}
path: {{ .Values.controller.metricsConfig.path }}
port: {{ .Values.controller.metricsConfig.port }}
{{- if .Values.controller.metricsConfig.metricsTTL }}
metricsTTL: {{ .Values.controller.metricsConfig.metricsTTL }}
{{- end }}
ignoreErrors: {{ .Values.controller.metricsConfig.ignoreErrors }}
secure: {{ .Values.controller.metricsConfig.secure }}
{{- end }}
{{- if .Values.controller.telemetryConfig.enabled }}
telemetryConfig:
enabled: {{ .Values.controller.telemetryConfig.enabled }}
path: {{ .Values.controller.telemetryConfig.path }}
port: {{ .Values.controller.telemetryConfig.port }}
{{- if .Values.controller.telemetryConfig.metricsTTL }}
metricsTTL: {{ .Values.controller.telemetryConfig.metricsTTL }}
{{- end }}
ignoreErrors: {{ .Values.controller.telemetryConfig.ignoreErrors }}
secure: {{ .Values.controller.telemetryConfig.secure }}
{{- end }}
persistence:
connectionPool:
maxIdleConns: 5
maxOpenConns: 0
archive: true
archiveTTL: 5d
postgresql:
host: citus-master-svc.user-system-{{ .Values.global.bfl.username }}
port: 5432
database: user_space_{{ .Values.global.bfl.username }}_argo
tableName: argo_workflows
userNameSecret:
name: rss-secrets
key: pg_user
passwordSecret:
name: rss-secrets
key: pg_password
{{- if .Values.controller.workflowDefaults }}
workflowDefaults:
{{ toYaml .Values.controller.workflowDefaults | indent 6 }}{{- end }}
{{- if .Values.server.sso.enabled }}
sso:
issuer: {{ .Values.server.sso.issuer }}
clientId:
name: {{ .Values.server.sso.clientId.name }}
key: {{ .Values.server.sso.clientId.key }}
clientSecret:
name: {{ .Values.server.sso.clientSecret.name }}
key: {{ .Values.server.sso.clientSecret.key }}
redirectUrl: {{ .Values.server.sso.redirectUrl }}
rbac:
enabled: {{ .Values.server.sso.rbac.enabled }}
{{- with .Values.server.sso.scopes }}
scopes: {{ toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.sso.issuerAlias }}
issuerAlias: {{ toYaml . }}
{{- end }}
{{- with .Values.server.sso.sessionExpiry }}
sessionExpiry: {{ toYaml . }}
{{- end }}
{{- with .Values.server.sso.customGroupClaimName }}
customGroupClaimName: {{ toYaml . }}
{{- end }}
{{- with .Values.server.sso.userInfoPath }}
userInfoPath: {{ toYaml . }}
{{- end }}
{{- with .Values.server.sso.insecureSkipVerify }}
insecureSkipVerify: {{ toYaml . }}
{{- end }}
{{- end }}
{{- with .Values.controller.workflowRestrictions }}
workflowRestrictions: {{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.controller.links }}
links: {{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.controller.columns }}
columns: {{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.controller.navColor }}
navColor: {{ . }}
{{- end }}
{{- with .Values.controller.retentionPolicy }}
retentionPolicy: {{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.emissary.images }}
images: {{- toYaml . | nindent 6 }}
{{- end }}
nodeEvents:
enabled: {{ .Values.controller.nodeEvents.enabled }}
{{- with .Values.controller.kubeConfig }}
kubeConfig: {{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.controller.podGCGracePeriodSeconds }}
podGCGracePeriodSeconds: {{ . }}
{{- end }}
{{- with .Values.controller.podGCDeleteDelayDuration }}
podGCDeleteDelayDuration: {{ . }}
{{- end }}

View File

@@ -1,45 +0,0 @@
{{- if .Values.controller.rbac.create }}
apiVersion: rbac.authorization.k8s.io/v1
{{- if .Values.singleNamespace }}
kind: RoleBinding
{{ else }}
kind: ClusterRoleBinding
{{- end }}
metadata:
name: {{ .Release.Namespace }}:{{ template "argo-workflows.controller.fullname" . }}
{{- if .Values.singleNamespace }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
{{- if .Values.singleNamespace }}
kind: Role
{{ else }}
kind: ClusterRole
{{- end }}
name: {{ template "argo-workflows.controller.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "argo-workflows.controllerServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.controller.clusterWorkflowTemplates.enabled }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Namespace }}:{{ template "argo-workflows.controller.fullname" . }}-cluster-template
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "argo-workflows.controller.fullname" . }}-cluster-template
subjects:
- kind: ServiceAccount
name: {{ template "argo-workflows.controllerServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}
{{- end }}

View File

@@ -1,129 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "argo-workflows.controller.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
app.kubernetes.io/version: {{ include "argo-workflows.controller_chart_version_label" . }}
{{- with .Values.controller.deploymentAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.controller.replicas }}
selector:
matchLabels:
{{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
template:
metadata:
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }}
app.kubernetes.io/version: {{ include "argo-workflows.controller_chart_version_label" . }}
{{- with.Values.controller.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "argo-workflows.controllerServiceAccountName" . }}
{{- with .Values.controller.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.extraInitContainers }}
initContainers:
{{- tpl (toYaml .) $ | nindent 8 }}
{{- end }}
containers:
- name: controller
image: "{{- include "argo-workflows.image" (dict "context" . "image" .Values.controller.image) }}:{{ default (include "argo-workflows.defaultTag" .) .Values.controller.image.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
command: [ "workflow-controller" ]
args:
- "--configmap"
- "{{ template "argo-workflows.controller.fullname" . }}-configmap"
- "--executor-image"
- "{{- include "argo-workflows.image" (dict "context" . "image" .Values.executor.image) }}:{{ default (include "argo-workflows.defaultTag" .) .Values.executor.image.tag }}"
- "--loglevel"
- "{{ .Values.controller.logging.level }}"
- "--gloglevel"
- "{{ .Values.controller.logging.globallevel }}"
- "--log-format"
- "{{ .Values.controller.logging.format }}"
{{- if .Values.singleNamespace }}
- "--namespaced"
{{- end }}
{{- with .Values.controller.workflowWorkers }}
- "--workflow-workers"
- {{ . | quote }}
{{- end }}
{{- with .Values.controller.extraArgs }}
{{- toYaml . | nindent 10 }}
{{- end }}
securityContext:
{{- toYaml .Values.controller.securityContext | nindent 12 }}
env:
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: LEADER_ELECTION_IDENTITY
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
{{- with .Values.controller.extraEnv }}
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.controller.resources | nindent 12 }}
{{- with .Values.controller.volumeMounts }}
volumeMounts:
{{- toYaml . | nindent 10 }}
{{- end }}
ports:
- name: {{ .Values.controller.metricsConfig.portName }}
containerPort: {{ .Values.controller.metricsConfig.port }}
- containerPort: 6060
livenessProbe: {{ .Values.controller.livenessProbe | toYaml | nindent 12 }}
{{- with .Values.controller.extraContainers }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.images.pullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.volumes }}
volumes:
{{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.controller.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.topologySpreadConstraints }}
topologySpreadConstraints:
{{- range $constraint := . }}
- {{ toYaml $constraint | nindent 8 | trim }}
{{- if not $constraint.labelSelector }}
labelSelector:
matchLabels:
{{- include "argo-workflows.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
{{- end }}
{{- end }}
{{- end }}
{{- with .Values.controller.priorityClassName }}
priorityClassName: {{ . }}
{{- end }}

View File

@@ -1,16 +0,0 @@
{{- if .Values.controller.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "argo-workflows.controllerServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
{{- with .Values.controller.serviceAccount.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{ with .Values.controller.serviceAccount.annotations }}
annotations:
{{- toYaml .| nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -1,15 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ template "argo-workflows.fullname" $ }}-workflow
labels:
{{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }}
namespace: {{ $.Release.Namespace}}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "argo-workflows.fullname" $ }}-workflow
subjects:
- kind: ServiceAccount
name: {{ $.Values.workflow.serviceAccount.name }}
namespace: {{ $.Release.Namespace}}

View File

@@ -1,8 +0,0 @@
{{ range .Values.extraObjects }}
---
{{- if typeIs "string" . }}
{{- tpl . $ }}
{{- else }}
{{- tpl (toYaml .) $ }}
{{- end }}
{{ end }}

View File

@@ -1,45 +0,0 @@
{{- if and .Values.server.enabled .Values.server.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
{{- if .Values.singleNamespace }}
kind: RoleBinding
{{ else }}
kind: ClusterRoleBinding
{{- end }}
metadata:
name: {{ .Release.Namespace }}:{{ template "argo-workflows.server.fullname" . }}
{{- if .Values.singleNamespace }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
{{- if .Values.singleNamespace }}
kind: Role
{{ else }}
kind: ClusterRole
{{- end }}
name: {{ template "argo-workflows.server.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "argo-workflows.serverServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.server.clusterWorkflowTemplates.enabled }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Namespace }}:{{ template "argo-workflows.server.fullname" . }}-cluster-template
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "argo-workflows.server.fullname" . }}-cluster-template
subjects:
- kind: ServiceAccount
name: {{ template "argo-workflows.serverServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end -}}
{{- end -}}

View File

@@ -1,169 +0,0 @@
{{- if .Values.server.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "argo-workflows.server.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels:
app: argoworkflows
app.kubernetes.io/managed-by: Helm
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
app.kubernetes.io/version: {{ include "argo-workflows.server_chart_version_label" . }}
{{- with .Values.server.deploymentAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
applications.app.bytetrade.io/icon: https://argoproj.github.io/argo-workflows/assets/logo.png
applications.app.bytetrade.io/title: argoworkflows
applications.app.bytetrade.io/version: '0.35.0'
{{- end }}
spec:
{{- if not .Values.server.autoscaling.enabled }}
replicas: {{ .Values.server.replicas }}
{{- end }}
selector:
matchLabels:
{{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }}
app: argoworkflows
template:
metadata:
labels:
app: argoworkflows
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 8 }}
app.kubernetes.io/version: {{ include "argo-workflows.server_chart_version_label" . }}
{{- with .Values.server.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "argo-workflows.serverServiceAccountName" . }}
{{- with .Values.server.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.extraInitContainers }}
initContainers:
{{- tpl (toYaml .) $ | nindent 8 }}
{{- end }}
containers:
- name: argo-server
image: "{{- include "argo-workflows.image" (dict "context" . "image" .Values.server.image) }}:{{ default (include "argo-workflows.defaultTag" .) .Values.server.image.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
securityContext:
{{- toYaml .Values.server.securityContext | nindent 12 }}
args:
- server
- --configmap={{ template "argo-workflows.controller.fullname" . }}-configmap
{{- with .Values.server.extraArgs }}
{{- toYaml . | nindent 10 }}
{{- end }}
{{- if .Values.server.authMode }}
- "--auth-mode={{ .Values.server.authMode }}"
{{- end }}
- "--secure={{ .Values.server.secure }}"
- "--x-frame-options="
{{- if .Values.singleNamespace }}
- "--namespaced"
{{- end }}
- "--loglevel"
- "{{ .Values.server.logging.level }}"
- "--gloglevel"
- "{{ .Values.server.logging.globallevel }}"
- "--log-format"
- "{{ .Values.server.logging.format }}"
ports:
- name: web
containerPort: 2746
readinessProbe:
httpGet:
path: /
port: 2746
{{- if .Values.server.secure }}
scheme: HTTPS
{{- else }}
scheme: HTTP
{{- end }}
initialDelaySeconds: 10
periodSeconds: 20
env:
- name: IN_CLUSTER
value: "true"
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: BASE_HREF
value: {{ .Values.server.baseHref | quote }}
{{- with .Values.server.extraEnv }}
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.server.resources | nindent 12 }}
volumeMounts:
- name: tmp
mountPath: /tmp
- name: addflowtask
image: "beclab/recommend-argotask:v0.0.5"
env:
- name: NAME_SPACE
value: {{ .Release.Namespace }}
- name: APPLICATION_DATA_PATH
valueFrom:
configMapKeyRef:
name: rss-userspace-data
key: appData
- name: APP_DATA_PATH
valueFrom:
configMapKeyRef:
name: rss-userspace-data
key: appCache
- name: ALGORITHM_VERSION
value: v0.0.4
- name: TERMIUS_USER_NAME
valueFrom:
configMapKeyRef:
name: rss-userspace-data
key: username
- name: KNOWLEDGE_BASE_API_PORT
value: "3010"
volumes:
- name: tmp
emptyDir: {}
{{- with .Values.server.volumes }}
{{- toYaml . | nindent 6}}
{{- end }}
{{- with .Values.server.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.topologySpreadConstraints }}
topologySpreadConstraints:
{{- range $constraint := . }}
- {{ toYaml $constraint | nindent 8 | trim }}
{{- if not $constraint.labelSelector }}
labelSelector:
matchLabels:
{{- include "argo-workflows.selectorLabels" (dict "context" $ "name" $.Values.server.name) | nindent 12 }}
{{- end }}
{{- end }}
{{- end }}
{{- with .Values.server.priorityClassName }}
priorityClassName: {{ . }}
{{- end }}
{{- end -}}

View File

@@ -1,16 +0,0 @@
{{- if and .Values.server.enabled .Values.server.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "argo-workflows.serverServiceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
{{- with .Values.server.serviceAccount.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.server.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end -}}

View File

@@ -1,36 +0,0 @@
{{- if .Values.server.enabled -}}
apiVersion: v1
kind: Service
metadata:
name: {{ template "argo-workflows.server.fullname" . }}-svc
namespace: {{ .Release.Namespace | quote }}
labels:
{{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
app.kubernetes.io/version: {{ include "argo-workflows.server_chart_version_label" . }}
{{- with .Values.server.serviceAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
ports:
- port: {{ .Values.server.servicePort }}
{{- with .Values.server.servicePortName }}
name: {{ . }}
{{- end }}
targetPort: 2746
{{- if and (eq .Values.server.serviceType "NodePort") .Values.server.serviceNodePort }}
nodePort: {{ .Values.server.serviceNodePort }}
{{- end }}
selector:
app: {{ template "argo-workflows.server.fullname" . }}
{{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }}
sessionAffinity: None
type: {{ .Values.server.serviceType }}
{{- if and (eq .Values.server.serviceType "LoadBalancer") .Values.server.loadBalancerIP }}
loadBalancerIP: {{ .Values.server.loadBalancerIP | quote }}
{{- end }}
{{- if and (eq .Values.server.serviceType "LoadBalancer") .Values.server.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- toYaml .Values.server.loadBalancerSourceRanges | nindent 4 }}
{{- end }}
{{- end -}}

View File

@@ -1,840 +0,0 @@
images:
# -- Common tag for Argo Workflows images. Defaults to `.Chart.AppVersion`.
tag: ""
# -- imagePullPolicy to apply to all containers
pullPolicy: IfNotPresent
# -- Secrets with credentials to pull images from a private registry
pullSecrets: []
# - name: argo-pull-secret
## Custom resource configuration
crds:
# -- Install and upgrade CRDs
install: true
# -- Keep CRDs on chart uninstall
keep: true
# -- Annotations to be added to all CRDs
annotations: {}
# -- Create clusterroles that extend existing clusterroles to interact with argo-cd crds
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
createAggregateRoles: true
# -- String to partially override "argo-workflows.fullname" template
nameOverride:
# -- String to fully override "argo-workflows.fullname" template
fullnameOverride:
# -- Override the Kubernetes version, which is used to evaluate certain manifests
kubeVersionOverride: ""
# Override APIVersions
apiVersionOverrides:
# -- String to override apiVersion of autoscaling rendered by this helm chart
autoscaling: "" # autoscaling/v2
# -- String to override apiVersion of GKE resources rendered by this helm chart
cloudgoogle: "" # cloud.google.com/v1
# -- Restrict Argo to operate only in a single namespace (the namespace of the
# Helm release) by apply Roles and RoleBindings instead of the Cluster
# equivalents, and start workflow-controller with the --namespaced flag. Use it
# in clusters with strict access policy.
singleNamespace: false
workflow:
# -- Deprecated; use controller.workflowNamespaces instead.
namespace:
serviceAccount:
# -- Specifies whether a service account should be created
create: false
# -- Labels applied to created service account
labels: {}
# -- Annotations applied to created service account
annotations: {}
# -- Service account which is used to run workflows
name: "argo-workflow"
# -- Secrets with credentials to pull images from a private registry. Same format as `.Values.images.pullSecrets`
pullSecrets: []
rbac:
# -- Adds Role and RoleBinding for the above specified service account to be able to run workflows.
# A Role and Rolebinding pair is also created for each namespace in controller.workflowNamespaces (see below)
create: true
controller:
image:
# -- Registry to use for the controller
registry: quay.io
# -- Registry to use for the controller
repository: argoproj/workflow-controller
# -- Image tag for the workflow controller. Defaults to `.Values.images.tag`.
tag: ""
# -- parallelism dictates how many workflows can be running at the same time
parallelism:
# -- Globally limits the rate at which pods are created.
# This is intended to mitigate flooding of the Kubernetes API server by workflows with a large amount of
# parallel nodes.
resourceRateLimit: {}
# limit: 10
# burst: 1
rbac:
# -- Adds Role and RoleBinding for the controller.
create: true
# -- Allows controller to get, list, and watch certain k8s secrets
secretWhitelist: []
# -- Allows controller to get, list and watch all k8s secrets. Can only be used if secretWhitelist is empty.
accessAllSecrets: false
# -- Allows controller to create and update ConfigMaps. Enables memoization feature
writeConfigMaps: false
# -- Limits the maximum number of incomplete workflows in a namespace
namespaceParallelism:
# -- Resolves ongoing, uncommon AWS EKS bug: https://github.com/argoproj/argo-workflows/pull/4224
initialDelay:
# -- deploymentAnnotations is an optional map of annotations to be applied to the controller Deployment
deploymentAnnotations: {}
# -- podAnnotations is an optional map of annotations to be applied to the controller Pods
podAnnotations: {}
# -- Optional labels to add to the controller pods
podLabels: {}
# -- SecurityContext to set on the controller pods
podSecurityContext: {}
# podPortName: http
metricsConfig:
# -- Enables prometheus metrics server
enabled: false
# -- Path is the path where metrics are emitted. Must start with a "/".
path: /metrics
# -- Port is the port where metrics are emitted
port: 9090
# -- How often custom metrics are cleared from memory
metricsTTL: ""
# -- Flag that instructs prometheus to ignore metric emission errors.
ignoreErrors: false
# -- Flag that use a self-signed cert for TLS
secure: false
# -- Container metrics port name
portName: metrics
# -- Service metrics port
servicePort: 8090
# -- Service metrics port name
servicePortName: metrics
# -- ServiceMonitor relabel configs to apply to samples before scraping
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
relabelings: []
# -- ServiceMonitor metric relabel configs to apply to samples before ingestion
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
metricRelabelings: []
# -- ServiceMonitor will add labels from the service to the Prometheus metric
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
targetLabels: []
# -- the controller container's securityContext
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# -- enable persistence using postgres
persistence: {}
# connectionPool:
# maxIdleConns: 100
# maxOpenConns: 0
# # save the entire workflow into etcd and DB
# nodeStatusOffLoad: false
# # enable archiving of old workflows
# archive: false
# postgresql:
# host: localhost
# port: 5432
# database: postgres
# tableName: argo_workflows
# # the database secrets must be in the same namespace of the controller
# userNameSecret:
# name: argo-postgres-config
# key: username
# passwordSecret:
# name: argo-postgres-config
# key: password
# -- Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level.
# Only valid for 2.7+
## See more: https://argoproj.github.io/argo-workflows/default-workflow-specs/
workflowDefaults: {}
# spec:
# ttlStrategy:
# secondsAfterCompletion: 84600
# # Ref: https://argoproj.github.io/argo-workflows/artifact-repository-ref/
# artifactRepositoryRef:
# configMap: my-artifact-repository # default is "artifact-repositories"
# key: v2-s3-artifact-repository # default can be set by the `workflows.argoproj.io/default-artifact-repository` annotation in config map.
# -- Number of workflow workers
workflowWorkers: # 32
# -- Restricts the Workflows that the controller will process.
# Only valid for 2.9+
workflowRestrictions: {}
# templateReferencing: Strict|Secure
# telemetryConfig controls the path and port for prometheus telemetry. Telemetry is enabled and emitted in the same endpoint
# as metrics by default, but can be overridden using this config.
telemetryConfig:
# -- Enables prometheus telemetry server
enabled: false
# -- telemetry path
path: /telemetry
# -- telemetry container port
port: 8081
# -- How often custom metrics are cleared from memory
metricsTTL: ""
# -- Flag that instructs prometheus to ignore metric emission errors.
ignoreErrors: false
# -- Flag that use a self-signed cert for TLS
secure: false
# -- telemetry service port
servicePort: 8081
# -- telemetry service port name
servicePortName: telemetry
serviceMonitor:
# -- Enable a prometheus ServiceMonitor
enabled: false
# -- Prometheus ServiceMonitor labels
additionalLabels: {}
# -- Prometheus ServiceMonitor namespace
namespace: "" # "monitoring"
serviceAccount:
# -- Create a service account for the controller
create: true
# -- Service account name
name: ""
# -- Labels applied to created service account
labels: {}
# -- Annotations applied to created service account
annotations: {}
# -- Workflow controller name string
name: workflow-controller
# -- Specify all namespaces where this workflow controller instance will manage
# workflows. This controls where the service account and RBAC resources will
# be created. Only valid when singleNamespace is false.
workflowNamespaces:
- default
instanceID:
# -- Configures the controller to filter workflow submissions
# to only those which have a matching instanceID attribute.
## NOTE: If `instanceID.enabled` is set to `true` then either `instanceID.userReleaseName`
## or `instanceID.explicitID` must be defined.
enabled: true
# -- Use ReleaseName as instanceID
useReleaseName: true
# useReleaseName: true
# -- Use a custom instanceID
explicitID: ""
# explicitID: unique-argo-controller-identifier
logging:
# -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
level: info
# -- Set the glog logging level
globallevel: "0"
# -- Set the logging format (one of: `text`, `json`)
format: "text"
# -- Service type of the controller Service
serviceType: ClusterIP
# -- Annotations to be applied to the controller Service
serviceAnnotations: {}
# -- Optional labels to add to the controller Service
serviceLabels: {}
# -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer`
loadBalancerSourceRanges: []
# -- Resource limits and requests for the controller
resources: {}
# -- Configure liveness [probe] for the controller
# @default -- See [values.yaml]
livenessProbe:
httpGet:
port: 6060
path: /healthz
failureThreshold: 3
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 30
# -- Extra environment variables to provide to the controller container
extraEnv: []
# - name: FOO
# value: "bar"
# -- Extra arguments to be added to the controller
extraArgs: []
# -- Additional volume mounts to the controller main container
volumeMounts: []
# -- Additional volumes to the controller pod
volumes: []
# -- The number of controller pods to run
replicas: 1
pdb:
# -- Configure [Pod Disruption Budget] for the controller pods
enabled: false
# minAvailable: 1
# maxUnavailable: 1
# -- [Node selector]
nodeSelector:
kubernetes.io/os: linux
# -- [Tolerations] for use with node taints
tolerations: []
# -- Assign custom [affinity] rules
affinity: {}
# -- Assign custom [TopologySpreadConstraints] rules to the workflow controller
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
topologySpreadConstraints: []
# - maxSkew: 1
# topologyKey: topology.kubernetes.io/zone
# whenUnsatisfiable: DoNotSchedule
# -- Leverage a PriorityClass to ensure your pods survive resource shortages.
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
priorityClassName: ""
# -- Configure Argo Server to show custom [links]
## Ref: https://argoproj.github.io/argo-workflows/links/
links: []
# -- Configure Argo Server to show custom [columns]
## Ref: https://github.com/argoproj/argo-workflows/pull/10693
columns: []
# -- Set ui navigation bar background color
navColor: ""
clusterWorkflowTemplates:
# -- Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates.
enabled: true
# -- Extra containers to be added to the controller deployment
extraContainers: []
# -- Enables init containers to be added to the controller deployment
extraInitContainers: []
# -- Workflow retention by number of workflows
retentionPolicy: {}
# completed: 10
# failed: 3
# errored: 3
nodeEvents:
# -- Enable to emit events on node completion.
## This can take up a lot of space in k8s (typically etcd) resulting in errors when trying to create new events:
## "Unable to create audit event: etcdserver: mvcc: database space exceeded"
enabled: true
# -- Configure when workflow controller runs in a different k8s cluster with the workflow workloads,
# or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret.
# @default -- `{}` (See [values.yaml])
kubeConfig: {}
# # name of the kubeconfig secret, may not be empty when kubeConfig specified
# secretName: kubeconfig-secret
# # key of the kubeconfig secret, may not be empty when kubeConfig specified
# secretKey: kubeconfig
# # mounting path of the kubeconfig secret, default to /kube/config
# mountPath: /kubeconfig/mount/path
# # volume name when mounting the secret, default to kubeconfig
# volumeName: kube-config-volume
# -- Specifies the duration in seconds before a terminating pod is forcefully killed. A zero value indicates that the pod will be forcefully terminated immediately.
# @default -- `30` seconds (Kubernetes default)
podGCGracePeriodSeconds:
# -- The duration in seconds before the pods in the GC queue get deleted. A zero value indicates that the pods will be deleted immediately.
# @default -- `5s` (Argo Workflows default)
podGCDeleteDelayDuration: ""
# mainContainer adds default config for main container that could be overriden in workflows template
mainContainer:
# -- imagePullPolicy to apply to Workflow main container. Defaults to `.Values.images.pullPolicy`.
imagePullPolicy: ""
# -- Resource limits and requests for the Workflow main container
resources: {}
# -- Adds environment variables for the Workflow main container
env: []
# -- Adds reference environment variables for the Workflow main container
envFrom: []
# -- sets security context for the Workflow main container
securityContext: {}
# executor controls how the init and wait container should be customized
executor:
image:
# -- Registry to use for the Workflow Executors
registry: quay.io
# -- Repository to use for the Workflow Executors
repository: argoproj/argoexec
# -- Image tag for the workflow executor. Defaults to `.Values.images.tag`.
tag: ""
# -- Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`.
pullPolicy: ""
# -- Resource limits and requests for the Workflow Executors
resources: {}
# -- Passes arguments to the executor processes
args: []
# -- Adds environment variables for the executor.
env: []
# -- sets security context for the executor container
securityContext: {}
server:
# -- Deploy the Argo Server
enabled: true
# -- Value for base href in index.html. Used if the server is running behind reverse proxy under subpath different from /.
## only updates base url of resources on client side,
## it's expected that a proxy server rewrites the request URL and gets rid of this prefix
## https://github.com/argoproj/argo-workflows/issues/716#issuecomment-433213190
baseHref: /
image:
# -- Registry to use for the server
registry: quay.io
# -- Repository to use for the server
repository: argoproj/argocli
# -- Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`.
tag: ""
# -- optional map of annotations to be applied to the ui Deployment
deploymentAnnotations: {}
# -- optional map of annotations to be applied to the ui Pods
podAnnotations: {}
# -- Optional labels to add to the UI pods
podLabels: {}
# -- SecurityContext to set on the server pods
podSecurityContext: {}
rbac:
# -- Adds Role and RoleBinding for the server.
create: true
# -- Servers container-level security context
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# -- Server name string
name: server
# -- Service type for server pods
serviceType: ClusterIP
# -- Service port for server
servicePort: 2746
# -- Service node port
serviceNodePort: # 32746
# -- Service port name
servicePortName: "http" # http
serviceAccount:
# -- Create a service account for the server
create: true
# -- Service account name
name: ""
# -- Labels applied to created service account
labels: {}
# -- Annotations applied to created service account
annotations: {}
# -- Annotations to be applied to the UI Service
serviceAnnotations: {}
# -- Optional labels to add to the UI Service
serviceLabels: {}
# -- Static IP address to assign to loadBalancer service type `LoadBalancer`
loadBalancerIP: ""
# -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer`
loadBalancerSourceRanges: []
# -- Resource limits and requests for the server
resources: {}
# -- The number of server pods to run
replicas: 1
## Argo Server Horizontal Pod Autoscaler
autoscaling:
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server
enabled: false
# -- Minimum number of replicas for the Argo Server [HPA]
minReplicas: 1
# -- Maximum number of replicas for the Argo Server [HPA]
maxReplicas: 5
# -- Average CPU utilization percentage for the Argo Server [HPA]
targetCPUUtilizationPercentage: 50
# -- Average memory utilization percentage for the Argo Server [HPA]
targetMemoryUtilizationPercentage: 50
# -- Configures the scaling behavior of the target in both Up and Down directions.
# This is only available on HPA apiVersion `autoscaling/v2beta2` and newer
behavior: {}
# scaleDown:
# stabilizationWindowSeconds: 300
# policies:
# - type: Pods
# value: 1
# periodSeconds: 180
# scaleUp:
# stabilizationWindowSeconds: 300
# policies:
# - type: Pods
# value: 2
pdb:
# -- Configure [Pod Disruption Budget] for the server pods
enabled: false
# minAvailable: 1
# maxUnavailable: 1
# -- [Node selector]
nodeSelector:
kubernetes.io/os: linux
# -- [Tolerations] for use with node taints
tolerations: []
# -- Assign custom [affinity] rules
affinity: {}
# -- Assign custom [TopologySpreadConstraints] rules to the argo server
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
topologySpreadConstraints: []
# - maxSkew: 1
# topologyKey: topology.kubernetes.io/zone
# whenUnsatisfiable: DoNotSchedule
# -- Leverage a PriorityClass to ensure your pods survive resource shortages
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
priorityClassName: ""
# -- Run the argo server in "secure" mode. Configure this value instead of `--secure` in extraArgs.
## See the following documentation for more details on secure mode:
## https://argoproj.github.io/argo-workflows/tls/
secure: false
# -- Extra environment variables to provide to the argo-server container
extraEnv: []
# - name: FOO
# value: "bar"
# -- Auth Mode is available from `server` , `client` or `sso`. If you chose `sso` , please configure `.Values.server.sso` as well.
## Ref: https://argoproj.github.io/argo-workflows/argo-server-auth-mode/
authMode: "server"
# -- Extra arguments to provide to the Argo server binary.
## Ref: https://argoproj.github.io/argo-workflows/argo-server/#options
extraArgs: []
logging:
# -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
level: info
# -- Set the glog logging level
globallevel: "0"
# -- Set the logging format (one of: `text`, `json`)
format: "text"
# -- Additional volume mounts to the server main container.
volumeMounts: []
# -- Additional volumes to the server pod.
volumes: []
## Ingress configuration.
# ref: https://kubernetes.io/docs/user-guide/ingress/
ingress:
# -- Enable an ingress resource
enabled: false
# -- Additional ingress annotations
annotations: {}
# -- Additional ingress labels
labels: {}
# -- Defines which ingress controller will implement the resource
ingressClassName: ""
# -- List of ingress hosts
## Hostnames must be provided if Ingress is enabled.
## Secrets must be manually created in the namespace
hosts: []
# - argoworkflows.example.com
# -- List of ingress paths
paths:
- /
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
pathType: Prefix
# -- Additional ingress paths
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## for Kubernetes >=1.19 (when "networking.k8s.io/v1" is used)
# - path: /*
# pathType: Prefix
# backend:
# service
# name: ssl-redirect
# port:
# name: use-annotation
# -- Ingress TLS configuration
tls: []
# - secretName: argoworkflows-example-tls
# hosts:
# - argoworkflows.example.com
## Create a Google Backendconfig for use with the GKE Ingress Controller
## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#configuring_ingress_features_through_backendconfig_parameters
GKEbackendConfig:
# -- Enable BackendConfig custom resource for Google Kubernetes Engine
enabled: false
# -- [BackendConfigSpec]
spec: {}
# spec:
# iap:
# enabled: true
# oauthclientCredentials:
# secretName: argoworkflows-secret
## Create a Google Managed Certificate for use with the GKE Ingress Controller
## https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs
GKEmanagedCertificate:
# -- Enable ManagedCertificate custom resource for Google Kubernetes Engine.
enabled: false
# -- Domains for the Google Managed Certificate
domains:
- argoworkflows.example.com
## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller
## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
GKEfrontendConfig:
# -- Enable FrontConfig custom resource for Google Kubernetes Engine
enabled: false
# -- [FrontendConfigSpec]
spec: {}
# spec:
# redirectToHttps:
# enabled: true
# responseCodeName: RESPONSE_CODE
clusterWorkflowTemplates:
# -- Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates.
enabled: true
# -- Give the server permissions to edit ClusterWorkflowTemplates.
enableEditing: true
# SSO configuration when SSO is specified as a server auth mode.
sso:
# -- Create SSO configuration. If you set `true` , please also set `.Values.server.authMode` as `sso`.
enabled: false
# -- The root URL of the OIDC identity provider
issuer: https://accounts.google.com
clientId:
# -- Name of secret to retrieve the app OIDC client ID
name: argo-server-sso
# -- Key of secret to retrieve the app OIDC client ID
key: client-id
clientSecret:
# -- Name of a secret to retrieve the app OIDC client secret
name: argo-server-sso
# -- Key of a secret to retrieve the app OIDC client secret
key: client-secret
# - The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
redirectUrl: https://argo/oauth2/callback
rbac:
# -- Adds ServiceAccount Policy to server (Cluster)Role.
enabled: true
# -- Whitelist to allow server to fetch Secrets
## When present, restricts secrets the server can read to a given list.
## You can use it to restrict the server to only be able to access the
## service account token secrets that are associated with service accounts
## used for authorization.
secretWhitelist: []
# -- Scopes requested from the SSO ID provider
## The 'groups' scope requests group membership information, which is usually used for authorization decisions.
scopes: []
# - groups
# -- Define how long your login is valid for (in hours)
## If omitted, defaults to 10h.
sessionExpiry: ""
# -- Alternate root URLs that can be included for some OIDC providers
issuerAlias: ""
# -- Override claim name for OIDC groups
customGroupClaimName: ""
# -- Specify the user info endpoint that contains the groups claim
## Configure this if your OIDC provider provides groups information only using the user-info endpoint (e.g. Okta)
userInfoPath: ""
# -- Skip TLS verification for the HTTP client
insecureSkipVerify: false
# -- Extra containers to be added to the server deployment
extraContainers: []
# -- Enables init containers to be added to the server deployment
extraInitContainers: []
# -- Array of extra K8s manifests to deploy
extraObjects: []
# - apiVersion: secrets-store.csi.x-k8s.io/v1
# kind: SecretProviderClass
# metadata:
# name: argo-server-sso
# spec:
# provider: aws
# parameters:
# objects: |
# - objectName: "argo/server/sso"
# objectType: "secretsmanager"
# jmesPath:
# - path: "client_id"
# objectAlias: "client_id"
# - path: "client_secret"
# objectAlias: "client_secret"
# secretObjects:
# - data:
# - key: client_id
# objectName: client_id
# - key: client_secret
# objectName: client_secret
# secretName: argo-server-sso-secrets-store
# type: Opaque
# -- Use static credentials for S3 (eg. when not using AWS IRSA)
useStaticCredentials: true
artifactRepository:
# -- Archive the main container logs as an artifact
archiveLogs: true
# -- Store artifact in a S3-compliant object store
# @default -- See [values.yaml]
s3:
# # Note the `key` attribute is not the actual secret, it's the PATH to
# # the contents in the associated secret, as defined by the `name` attribute.
accessKeySecret:
name: argo-workflow-log-fakes3
key: AWS_ACCESS_KEY_ID
secretKeySecret:
name: argo-workflow-log-fakes3
key: AWS_SECRET_ACCESS_KEY
# # insecure will disable TLS. Primarily used for minio installs not configured with TLS
insecure: true
keyFormat: "{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}"
bucket: mongo-backup
# endpoint: workflow-archivelog-s3:4568
# region:
# roleARN:
# useSDKCreds: true
# encryptionOptions:
# enableEncryption: true
# -- Store artifact in a GCS object store
# @default -- `{}` (See [values.yaml])
gcs: {}
# bucket: <project>-argo
# keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}"
# serviceAccountKeySecret is a secret selector.
# It references the k8s secret named 'my-gcs-credentials'.
# This secret is expected to have have the key 'serviceAccountKey',
# containing the base64 encoded credentials
# to the bucket.
#
# If it's running on GKE and Workload Identity is used,
# serviceAccountKeySecret is not needed.
# serviceAccountKeySecret:
# name: my-gcs-credentials
# key: serviceAccountKey
# -- Store artifact in Azure Blob Storage
# @default -- `{}` (See [values.yaml])
azure: {}
# endpoint: https://mystorageaccountname.blob.core.windows.net
# container: my-container-name
# blobNameFormat: path/in/container
## accountKeySecret is a secret selector.
## It references the k8s secret named 'my-azure-storage-credentials'.
## This secret is expected to have have the key 'account-access-key',
## containing the base64 encoded credentials to the storage account.
## If a managed identity has been assigned to the machines running the
## workflow (e.g., https://docs.microsoft.com/en-us/azure/aks/use-managed-identity)
## then accountKeySecret is not needed, and useSDKCreds should be
## set to true instead:
# useSDKCreds: true
# accountKeySecret:
# name: my-azure-storage-credentials
# key: account-access-key
# -- The section of custom artifact repository.
# Utilize a custom artifact repository that is not one of the current base ones (s3, gcs, azure)
customArtifactRepository: {}
# artifactory:
# repoUrl: https://artifactory.example.com/raw
# usernameSecret:
# name: artifactory-creds
# key: username
# passwordSecret:
# name: artifactory-creds
# key: password
# -- The section of [artifact repository ref](https://argoproj.github.io/argo-workflows/artifact-repository-ref/).
# Each map key is the name of configmap
# @default -- `{}` (See [values.yaml])
artifactRepositoryRef: {}
# # -- 1st ConfigMap
# # If you want to use this config map by default, name it "artifact-repositories".
# # Otherwise, you can provide a reference to a
# # different config map in `artifactRepositoryRef.configMap`.
# artifact-repositories:
# # -- v3.0 and after - if you want to use a specific key, put that key into this annotation.
# annotations:
# workflows.argoproj.io/default-artifact-repository: default-v1-s3-artifact-repository
# # 1st data of configmap. See above artifactRepository or customArtifactRepository.
# default-v1-s3-artifact-repository:
# archiveLogs: false
# s3:
# bucket: my-bucket
# endpoint: minio:9000
# insecure: true
# accessKeySecret:
# name: my-minio-cred
# key: accesskey
# secretKeySecret:
# name: my-minio-cred
# key: secretkey
# # 2nd data
# oss-artifact-repository:
# archiveLogs: false
# oss:
# endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com
# bucket: $mybucket
# # accessKeySecret and secretKeySecret are secret selectors.
# # It references the k8s secret named 'bucket-workflow-artifect-credentials'.
# # This secret is expected to have have the keys 'accessKey'
# # and 'secretKey', containing the base64 encoded credentials
# # to the bucket.
# accessKeySecret:
# name: $mybucket-credentials
# key: accessKey
# secretKeySecret:
# name: $mybucket-credentials
# key: secretKey
# # 2nd ConfigMap
# another-artifact-repositories:
# annotations:
# workflows.argoproj.io/default-artifact-repository: gcs
# gcs:
# bucket: my-bucket
# keyFormat: prefix/in/bucket/{{workflow.name}}/{{pod.name}}
# serviceAccountKeySecret:
# name: my-gcs-credentials
# key: serviceAccountKey
emissary:
# -- The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used.
## See more: https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary
images: []
# argoproj/argosay:v2:
# cmd: [/argosay]
# docker/whalesay:latest:
# cmd: [/bin/bash]

View File

@@ -1,174 +1,4 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $rss_secret := (lookup "v1" "Secret" $namespace "rss-secrets") -}}
{{- $password := "" -}}
{{ if $rss_secret -}}
{{ $password = (index $rss_secret "data" "pg_password") }}
{{ else -}}
{{ $password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password := "" -}}
{{ if $rss_secret -}}
{{ $redis_password = (index $rss_secret "data" "redis_password") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password_data := "" -}}
{{ $redis_password_data = $redis_password | b64dec }}
{{- $pg_password_data := "" -}}
{{ $pg_password_data = $password | b64dec }}
{{- $mongo_secret := (lookup "v1" "Secret" .Release.Namespace "knowledge-mongodb") -}}
{{- $mongo_password := randAlphaNum 16 | b64enc -}}
{{- $mongo_password_data := "" -}}
{{ if $mongo_secret -}}
{{ $mongo_password_data = (index $mongo_secret "data" "mongodb-passwords" ) | b64dec }}
{{ else -}}
{{ $mongo_password_data = $mongo_password | b64dec }}
{{- end -}}
{{- $pg_user := printf "%s%s" "rss_" .Values.bfl.username -}}
{{- $pg_user = $pg_user | b64enc -}}
---
apiVersion: v1
kind: Secret
metadata:
name: rss-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $password }}
redis_password: {{ $redis_password }}
---
apiVersion: v1
kind: Secret
metadata:
name: rss-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
data:
pg_user: {{ $pg_user }}
pg_password: {{ $password }}
redis_password: {{ $redis_password }}
---
apiVersion: v1
kind: Secret
metadata:
name: knowledge-mongodb
namespace: {{ .Release.Namespace }}
type: Opaque
{{ if $mongo_secret -}}
data:
mongodb-passwords: {{ index $mongo_secret "data" "mongodb-passwords" }}
{{ else -}}
data:
mongodb-passwords: {{ $mongo_password }}
{{ end }}
---
apiVersion: v1
kind: Secret
metadata:
name: knowledge-mongodb
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
{{ if $mongo_secret -}}
data:
mongodb-passwords: {{ index $mongo_secret "data" "mongodb-passwords" }}
{{ else -}}
data:
mongodb-passwords: {{ $mongo_password }}
{{ end }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: rss-secrets-auth
namespace: {{ .Release.Namespace }}
data:
redis_password: "{{ $redis_password_data }}"
redis_addr: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379
redis_host: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
redis_port: '6379'
pg_url: postgres://rss_{{ .Values.bfl.username }}:{{ $pg_password_data }}@citus-master-svc.user-system-{{ .Values.bfl.username }}/user_space_{{ .Values.bfl.username }}_rss_v1?sslmode=disable
mongo_url: mongodb://knowledge-{{ .Values.bfl.username }}:{{ $mongo_password_data }}@mongo-cluster-mongos.user-system-{{ .Values.bfl.username }}:27017/{{ .Release.Namespace }}_knowledge
mongo_db: {{ .Release.Namespace }}_knowledge
postgres_host: citus-master-svc.user-system-{{ .Values.bfl.username }}
postgres_user: knowledge_{{ .Values.bfl.username }}
postgres_password: "{{ $pg_password_data }}"
postgres_db: user_space_{{ .Values.bfl.username }}_knowledge
postgres_port: '5432'
---
apiVersion: v1
kind: ConfigMap
metadata:
name: rss-userspace-data
namespace: {{ .Release.Namespace }}
data:
appData: "{{ .Values.userspace.appData }}"
appCache: "{{ .Values.userspace.appCache }}"
username: "{{ .Values.bfl.username }}"
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: rss-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: rss
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: rss_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: rss-secrets
databases:
- name: rss
- name: rss_v1
- name: argo
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-redis
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: rss
appNamespace: {{ .Release.Namespace }}
middleware: redis
redis:
password:
valueFrom:
secretKeyRef:
key: redis_password
name: rss-secrets
namespace: knowledge
---
apiVersion: v1
kind: Service
metadata:
@@ -183,3 +13,22 @@ spec:
name: fakes3
port: 4568
targetPort: 4568
---
apiVersion: v1
kind: Service
metadata:
name: knowledge-base-api
namespace: user-system-{{ .Values.bfl.username }}
spec:
type: ClusterIP
selector:
app: systemserver
ports:
- protocol: TCP
name: knowledge-api
port: 3010
targetPort: 3010

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -40,4 +39,4 @@ os:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -1,24 +0,0 @@
apiVersion: v2
name: recommend
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.0.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

View File

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "recommend.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "recommend.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "recommend.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "recommend.labels" -}}
helm.sh/chart: {{ include "recommend.chart" . }}
{{ include "recommend.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "recommend.selectorLabels" -}}
app.kubernetes.io/name: {{ include "recommend.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "recommend.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "recommend.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -1,116 +0,0 @@
---
apiVersion: v1
kind: Service
metadata:
name: recommend
namespace: {{ .Release.Namespace }}
spec:
type: ExternalName
externalName: argoworkflows-svc.{{ .Release.Namespace }}.svc.cluster.local
ports:
- name: http
port: 2746
protocol: TCP
targetPort: 2746
---
apiVersion: v1
kind: Service
metadata:
name: argoworkflows-ui
namespace: {{ .Release.Namespace }}
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: recommend
type: ClusterIP
---
{{ if (eq .Values.debugVersion true) }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: recommend
namespace: {{ .Release.Namespace }}
labels:
app: recommend
applications.app.bytetrade.io/author: bytetrade.io
applications.app.bytetrade.io/name: recommend
applications.app.bytetrade.io/owner: '{{ .Values.bfl.username }}'
annotations:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/recommend/icon.png
applications.app.bytetrade.io/title: recommend
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"recommend", "host":"argoworkflows-ui", "port":80,"title":"recommend"}]'
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: recommend
template:
metadata:
labels:
app: recommend
spec:
containers:
- name: recommend-proxy
image: nginx:stable-alpine3.17-slim
imagePullPolicy: IfNotPresent
ports:
- name: proxy
containerPort: 8080
volumeMounts:
- name: nginx-config
readOnly: true
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumes:
- name: nginx-config
configMap:
name: recommend-nginx-configs
items:
- key: nginx.conf
path: nginx.conf
{{ end }}
---
apiVersion: v1
data:
nginx.conf: |
# Configuration checksum:
pid /var/run/nginx.pid;
worker_processes auto;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
proxy_pass http://recommend:2746;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
kind: ConfigMap
metadata:
name: recommend-nginx-configs
namespace: {{ .Release.Namespace }}

View File

@@ -19,7 +19,18 @@ spec:
labels:
app: edge-desktop
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
priorityClassName: "system-cluster-critical"
initContainers:
- args:
- -it
- authelia-backend.os-system:9091,system-server.user-system-{{ .Values.bfl.username }}:80
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-auth
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
@@ -55,8 +66,11 @@ spec:
containers:
- name: edge-desktop
image: beclab/desktop:v0.2.25
image: beclab/desktop:v0.2.59
imagePullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
env:
@@ -64,8 +78,11 @@ spec:
value: http://bfl.{{ .Release.Namespace }}:8080
- name: desktop-server
image: beclab/desktop-server:v0.2.25
image: beclab/desktop-server:v0.2.59
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
volumeMounts:
- name: userspace-dir
mountPath: /Home
@@ -123,7 +140,7 @@ spec:
fieldRef:
fieldPath: status.podIP
- name: terminus-ws-sidecar
image: 'beclab/ws-gateway:v1.0.3'
image: 'beclab/ws-gateway:v1.0.5'
imagePullPolicy: IfNotPresent
command:
- /ws-gateway
@@ -139,7 +156,7 @@ spec:
- name: userspace-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
path: '{{ .Values.userspace.userData }}'
- name: terminus-sidecar-config
configMap:
name: sidecar-ws-configs
@@ -197,6 +214,11 @@ spec:
- app-installation-event
op: Create
uri: /server/app_installation_event
- filters:
type:
- entrance-state-event
op: Create
uri: /server/entrance_state_event
- filters:
type:
- settings-event
@@ -394,6 +416,7 @@ data:
- upgrade_type: websocket
- upgrade_type: tailscale-control-protocol
skip_xff_append: false
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
@@ -427,6 +450,7 @@ data:
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: x-real-ip
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
@@ -468,6 +492,8 @@ data:
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
@@ -492,9 +518,11 @@ data:
clusters:
- name: original_dst
connect_timeout: 5000s
connect_timeout: 120s
type: ORIGINAL_DST
lb_policy: CLUSTER_PROVIDED
common_http_protocol_options:
idle_timeout: 10s
- name: authelia
connect_timeout: 2s
type: LOGICAL_DNS
@@ -561,6 +589,7 @@ data:
- upgrade_type: websocket
- upgrade_type: tailscale-control-protocol
skip_xff_append: false
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
@@ -598,6 +627,7 @@ data:
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: x-real-ip
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
@@ -639,6 +669,8 @@ data:
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
@@ -664,6 +696,8 @@ data:
connect_timeout: 5000s
type: ORIGINAL_DST
lb_policy: CLUSTER_PROVIDED
common_http_protocol_options:
idle_timeout: 10s
- name: ws_original_dst
connect_timeout: 5000s
type: LOGICAL_DNS

View File

@@ -1,4 +1,3 @@
bfl:
username: 'test'
url: 'test'

View File

@@ -0,0 +1,895 @@
{{- $namespace := printf "%s" "os-system" -}}
{{- $files_secret := (lookup "v1" "Secret" $namespace "files-secrets") -}}
{{- $files_postgres_password := "" -}}
{{ if $files_secret -}}
{{ $files_postgres_password = (index $files_secret "data" "files_postgres_password") }}
{{ else -}}
{{ $files_postgres_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $files_redis_password := "" -}}
{{ if $files_secret -}}
{{ $files_redis_password = (index $files_secret "data" "files_redis_password") }}
{{ else -}}
{{ $files_redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $files_nats_secret := (lookup "v1" "Secret" "os-system" "files-nats-secrets") -}}
{{- $files_nats_password := "" -}}
{{ if $files_nats_secret -}}
{{ $files_nats_password = (index $files_nats_secret "data" "files_nats_password") }}
{{ else -}}
{{ $files_nats_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: files-deployment
namespace: os-system
labels:
app: files
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
selector:
matchLabels:
app: files
template:
metadata:
labels:
app: files
annotations:
instrumentation.opentelemetry.io/inject-nginx: "olares-instrumentation"
instrumentation.opentelemetry.io/inject-nginx-container-names: "nginx"
instrumentation.opentelemetry.io/inject-go: "olares-instrumentation"
instrumentation.opentelemetry.io/go-container-names: "gateway,files,uploader"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/filebrowser"
spec:
serviceAccount: os-internal
serviceAccountName: os-internal
securityContext:
runAsUser: 0
runAsNonRoot: false
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: fb-data
mountPath: /appdata
- name: upload-appdata
mountPath: /appcache
command:
- sh
- -c
- |
chown -R 1000:1000 /appdata; chown -R 1000:1000 /appcache; chown -R 1000:1000 /data
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server
deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB1
-c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >>
PostgreSQL DB Server has started";
env:
- name: PGHOST
value: citus-headless.os-system
- name: PGPORT
value: '5432'
- name: PGUSER
value: files_os_system
- name: PGPASSWORD
value: {{ $files_postgres_password | b64dec }}
- name: PGDB1
value: os_system_files
containers:
- name: gateway
image: beclab/appdata-gateway:0.1.18
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 0
ports:
- containerPort: 8080
env:
- name: FILES_SERVER_TAG
value: 'beclab/files-server:v0.2.69'
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
# - name: OS_SYSTEM_SERVER
# value: system-server.os-system
- name: media-server
env:
- name: MEDIA_SERVER_DATA_DIR
value: /data
- name: MEDIA_SERVER_CACHE_DIR
value: /appdata
- name: SEAFILE_SERVICE
value: seafile
image: beclab/media-server:v0.1.10
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: true
runAsUser: 0
privileged: true
ports:
- containerPort: 9090
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: user-appdata-dir
mountPath: /appdata
{{ if .Values.sharedlib }}
- name: shared-lib
mountPath: /data/External
mountPropagation: Bidirectional
{{ end }}
- name: files
image: beclab/files-server:v0.2.69
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: true
runAsUser: 0
privileged: true
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: userspace-dir
mountPath: /data
# mountPath: /data/Home
# - name: userspace-app-dir
# mountPath: /data/Application
# - name: watch-dir
# mountPath: /data/Home/Documents
- name: upload-appdata
mountPath: /appcache/
{{ if .Values.sharedlib }}
- name: shared-lib
mountPath: /data/External
mountPropagation: Bidirectional
{{ end }}
ports:
- containerPort: 8110
env:
{{ if .Values.sharedlib }}
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: TERMINUSD_HOST
value: $(NODE_IP):18088
{{ end }}
- name: EXTERNAL_PREFIX
value: '/External/'
- name: ES_ENABLED
value: 'False'
- name: WATCHER_ENABLED
value: 'True'
- name: KNOWLEDGE_BASE_ENABLED
value: 'False'
- name: PHOTOS_ENABLED
value: 'True'
# - name: BFL_NAME
# value: 'os-system'
- name: FB_DATABASE
value: /appdata/database/filebrowser.db
- name: FB_CONFIG
value: /appdata/config/settings.json
- name: FB_ROOT
value: /data
# - name: ZINC_USER
# value: zincuser-files-os-system
# - name: ZINC_PASSWORD
# value: {{ $files_postgres_password | b64dec }}
# - name: ZINC_HOST
# value: zinc-server-svc.os-system
# - name: ZINC_PORT
# value: "80"
# - name: ZINC_INDEX
# value: os-system_zinc-files
- name: WATCH_DIR
value: '/Home'
- name: FS_TYPE
value: {{ .Values.fs_type }}
- name: PATH_PREFIX
value: ''
- name: ROOT_PREFIX
value: /data
- name: CACHE_ROOT_PATH
value: ''
- name: CONTENT_PATH
value: /Home/Documents
- name: PHOTOS_PATH
value: /Home/Pictures
- name: REDIS_HOST
value: redis-cluster-proxy.os-system
- name: REDIS_PORT
value: '6379'
- name: REDIS_USERNAME
value: ''
- name: REDIS_PASSWORD
value: {{ $files_redis_password | b64dec }}
- name: REDIS_USE_SSL
value: 'false'
# use redis db 0 for redis cache
- name: REDIS_DB
value: '0'
- name: NATS_HOST
value: nats
- name: NATS_PORT
value: '4222'
- name: NATS_USERNAME
value: os-system-files-server
- name: NATS_PASSWORD
value: {{ $files_nats_password | b64dec }}
- name: NATS_SUBJECT
value: terminus.os-system.files-notify
- name: RESERVED_SPACE
value: '1000'
- name: OLARES_VERSION
value: '1.12'
- name: FILE_CACHE_DIR
value: '/data/file_cache'
- name: PGHOST
value: citus-headless.os-system
- name: PGPORT
value: '5432'
- name: PGUSER
value: files_os_system
- name: PGPASSWORD
value: {{ $files_postgres_password | b64dec }}
- name: PGDB1
value: os_system_files
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: files
- name: NOTIFY_SERVER
value: fsnotify-svc.os-system:5079
command:
- /filebrowser
- --noauth
- name: uploader
image: beclab/upload:v1.0.14
env:
- name: UPLOAD_FILE_TYPE
value: '*'
- name: UPLOAD_LIMITED_SIZE
value: '118111600640'
- name: RESERVED_SPACE
value: '1000'
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: userspace-dir
mountPath: /data
- name: upload-appdata
mountPath: /appcache/
{{ if .Values.sharedlib }}
- name: shared-lib
mountPath: /data/External
mountPropagation: Bidirectional
{{ end }}
resources: { }
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: true
runAsUser: 0
privileged: true
- name: nginx
image: 'beclab/docker-nginx-headers-more:ubuntu-v0.1.0'
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- name: files-nginx-config
readOnly: true
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
- name: files-nginx-config
mountPath: /etc/nginx/conf.d/default.conf
subPath: default.conf
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
volumes:
- name: userspace-dir
hostPath:
type: Directory
path: '{{ .Values.rootPath }}/rootfs/userspace'
- name: fb-data
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.rootPath }}/userdata/Cache/files'
- name: upload-appdata
hostPath:
path: '{{ .Values.rootPath }}/userdata/Cache'
type: DirectoryOrCreate
- name: files-nginx-config
configMap:
name: files-nginx-config
items:
- key: nginx.conf
path: nginx.conf
- key: default.conf
path: default.conf
defaultMode: 420
- name: user-appdata-dir
hostPath:
path: '{{ .Values.rootPath }}/userdata/Cache'
type: Directory
{{ if .Values.sharedlib }}
- name: shared-lib
hostPath:
path: "{{ .Values.sharedlib }}"
type: Directory
{{ end }}
---
apiVersion: v1
kind: Service
metadata:
name: files-service
namespace: os-system
spec:
selector:
app: files
type: ClusterIP
ports:
- protocol: TCP
name: files
port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: media-server-service
namespace: os-system
spec:
selector:
app: files
type: ClusterIP
ports:
- protocol: TCP
name: media-server
port: 9090
targetPort: 9090
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: appdata-backend
namespace: os-system
labels:
app: appdata-backend
annotations:
velero.io/exclude-from-backup: "true"
spec:
selector:
matchLabels:
app: appdata-backend
template:
metadata:
labels:
app: appdata-backend
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: fb-data
mountPath: /appdata
command:
- sh
- -c
- |
chown -R 1000:1000 /appdata
- args:
- -it
- nats.os-system:4222
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-nats
containers:
- name: files
image: beclab/files-server:v0.2.69
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: true
runAsUser: 0
runAsNonRoot: false
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: user-appdata-dir
mountPath: /data/AppData
ports:
- containerPort: 8110
env:
- name: ROOT_PREFIX
value: /data
# - name: FB_DATABASE
# value: /appdata/database/filebrowser.db
# - name: FB_CONFIG
# value: /appdata/config/settings.json
# - name: FB_ROOT
# value: /data
- name: OLARES_VERSION
value: '1.12'
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
command:
- /filebrowser
- --noauth
volumes:
- name: user-appdata-dir
hostPath:
type: Directory
path: '{{ .Values.rootPath }}/userdata/Cache'
- name: fb-data
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.rootPath }}/userdata/Cache/files-appdata'
---
apiVersion: v1
kind: Service
metadata:
name: appdata-backend-headless
namespace: os-system
labels:
app: appdata-backend
spec:
selector:
app: appdata-backend
clusterIP: None
ports:
- protocol: TCP
port: 8110
targetPort: 8110
---
apiVersion: v1
kind: Secret
metadata:
name: files-secrets
namespace: os-system
type: Opaque
data:
files_postgres_password: {{ $files_postgres_password }}
files_redis_password: {{ $files_redis_password }}
---
apiVersion: v1
kind: Secret
metadata:
name: files-nats-secrets
namespace: os-system
data:
files_nats_password: {{ $files_nats_password }}
type: Opaque
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: files-pg
namespace: os-system
spec:
app: files
appNamespace: os-system
middleware: postgres
postgreSQL:
user: files_os_system
password:
valueFrom:
secretKeyRef:
key: files_postgres_password
name: files-secrets
databases:
- name: files
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: files-redis
namespace: os-system
spec:
app: files
appNamespace: os-system
middleware: redis
redis:
password:
valueFrom:
secretKeyRef:
key: files_redis_password
name: files-secrets
namespace: files-redis
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: files-server-nat
namespace: os-system
spec:
app: files-server
appNamespace: os-system
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: files_nats_password
name: files-nats-secrets
refs: []
subjects:
- export:
- appName: files-frontend
pub: allow
sub: allow
- appName: vault
pub: allow
sub: allow
name: files-notify
permission:
pub: allow
sub: allow
user: os-system-files-server
---
kind: ConfigMap
apiVersion: v1
metadata:
name: files-nginx-config
namespace: os-system
annotations:
kubesphere.io/creator: bytetrade.io
data:
nginx.conf: |-
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 2700;
#gzip on;
client_max_body_size 4000M;
include /etc/nginx/conf.d/*.conf;
}
default.conf: |-
server {
listen 80 default_server;
# gzip on;
# gzip_min_length 1000;
# gzip_types text/plain text/xml application/javascript text/css;
# Gzip Settings
gzip on;
gzip_disable "msie6";
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types *;
client_max_body_size 2000M;
root /app;
# normal routes
# serve given url and default to index.html if not found
# e.g. /, /user and /foo/bar will return index.html
location / {
try_files $uri $uri/index.html /index.html;
add_header Cache-Control "private,no-cache";
add_header Last-Modified "Oct, 03 Jan 2022 13:46:41 GMT";
expires 0;
}
# location /bfl/ {
# add_header 'Access-Control-Allow-Headers' 'x-api-nonce,x-api-ts,x-api-ver,x-api-source';
# proxy_pass http://bfl;
# proxy_set_header Host $host;
# proxy_set_header X-real-ip $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# add_header X-Frame-Options SAMEORIGIN;
# }
location /api/resources/AppData {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
client_body_timeout 600s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
location /api/raw/AppData {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
client_body_timeout 1800s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 2700s;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
location /api/raw {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
client_body_timeout 1800s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 2700s;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
location /api/md5 {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 1800s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 2700s;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
location /api/paste {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 1800s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 2700s;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
location /api/cache {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 1800s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 2700s;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
location /provider {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
client_body_timeout 60s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 75s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
location /api {
proxy_pass http://127.0.0.1:8080;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 600s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
location /upload {
proxy_pass http://127.0.0.1:40030;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 600s;
client_max_body_size 4000M;
proxy_request_buffering on;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
location /videos {
proxy_pass http://127.0.0.1:9090;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 600s;
client_max_body_size 4000M;
proxy_request_buffering off;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
location /seahub/ {
proxy_pass http://seafile/;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 600s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
location /seafhttp/ {
proxy_pass http://seafile:8082/;
# rewrite ^/server(.*)$ $1 break;
# Add original-request-related headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
add_header Accept-Ranges bytes;
client_body_timeout 600s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 750s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
# files
# for all routes matching a dot, check for files and return 404 if not found
# e.g. /file.js returns a 404 if not found
# location ~ \.(?!html) {
# add_header Cache-Control "public, max-age=2678400";
# try_files $uri =404;
# }
# Set cache for static resources
location ~ ^/(assets|js|css|fonts|img)/.*.(js|css|png|jpg|svg|woff|woff2)$
{
add_header Cache-Control "public, max-age=2678400";
}
location ~ ^/resources/Home/Pictures/(.*.(png|jpg|svg|gif|jpeg))$
{
alias /data/Pictures/$1;
autoindex off;
}
}

View File

@@ -2,6 +2,7 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $zinc_files_secret := (lookup "v1" "Secret" $namespace "zinc-files-secrets") -}}
{{- $password := "" -}}
{{ if $zinc_files_secret -}}
{{ $password = (index $zinc_files_secret "data" "password") }}
@@ -16,6 +17,75 @@
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password_data := "" -}}
{{ $redis_password_data = $redis_password | b64dec }}
{{- $pg_password := "" -}}
{{ if $zinc_files_secret -}}
{{ $pg_password = (index $zinc_files_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $files_frontend_nats_secret := (lookup "v1" "Secret" $namespace "files-frontend-nats-secrets") -}}
{{- $files_frontend_nats_password := "" -}}
{{ if $files_frontend_nats_secret -}}
{{ $files_frontend_nats_password = (index $files_frontend_nats_secret "data" "files_frontend_nats_password") }}
{{ else -}}
{{ $files_frontend_nats_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: cloud-drive-integration-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $pg_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: cloud-drive-integration-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: cloud-drive-integration
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: cloud_drive_integration_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: cloud-drive-integration-secrets
databases:
- name: cloud-drive-integration
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-drive-integration-secrets-auth
namespace: {{ .Release.Namespace }}
data:
redis_password: {{ $redis_password_data }}
redis_addr: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379
redis_host: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
redis_port: '6379'
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-drive-integration-userspace-data
namespace: {{ .Release.Namespace }}
data:
appData: "{{ .Values.userspace.appData }}"
appCache: "{{ .Values.userspace.appCache }}"
username: "{{ .Values.bfl.username }}"
---
apiVersion: apps/v1
kind: Deployment
@@ -31,7 +101,7 @@ metadata:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/files/icon.png
applications.app.bytetrade.io/title: Files
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"files", "host":"files-service", "port":80,"title":"Files"}]'
applications.app.bytetrade.io/entrances: '[{"name":"files", "host":"files-service", "port":80,"title":"Files","windowPushState":true}]'
spec:
replicas: 1
selector:
@@ -41,9 +111,50 @@ spec:
metadata:
labels:
app: files
io.bytetrade.app: "true"
annotations:
# support nginx 1.24.3 1.25.3
instrumentation.opentelemetry.io/inject-nginx: "olares-instrumentation"
instrumentation.opentelemetry.io/inject-nginx-container-names: "files-frontend"
instrumentation.opentelemetry.io/inject-go: "olares-instrumentation"
instrumentation.opentelemetry.io/go-container-names: "driver-server"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "drive"
spec:
serviceAccountName: bytetrade-controller
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: uploads-temp
mountPath: /uploadstemp
command:
- sh
- -c
- |
chown -R 1000:1000 /uploadstemp && \
chown -R 1000:1000 /appdata
- args:
- -it
- authelia-backend.os-system:9091
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-auth
- args:
- -it
- nats.user-system-{{ .Values.bfl.username }}:4222
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-nats
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
@@ -77,128 +188,175 @@ spec:
apiVersion: v1
fieldPath: status.podIP
containers:
- name: gateway
image: beclab/appdata-gateway:0.1.12
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB -c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >> PostgreSQL DB Server has started";
env:
- name: FILES_SERVER_TAG
value: 'beclab/files-server:v0.2.27'
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: files
image: beclab/files-server:v0.2.27
- name: PGHOST
value: citus-master-svc.user-system-{{ .Values.bfl.username }}
- name: PGPORT
value: "5432"
- name: PGUSER
value: cloud_drive_integration_{{ .Values.bfl.username }}
- name: PGPASSWORD
value: "{{ $pg_password | b64dec }}"
- name: PGDB
value: user_space_{{ .Values.bfl.username }}_cloud_drive_integration
- name: files-frontend-init
image: beclab/files-frontend:v1.3.61
imagePullPolicy: IfNotPresent
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: userspace-dir
mountPath: /data/Home
- name: userspace-app-dir
mountPath: /data/Application
- name: watch-dir
mountPath: /data/Home/Documents
- name: upload-appdata
mountPath: /appcache/
ports:
- containerPort: 8110
env:
- name: ES_ENABLED
value: 'True'
- name: WATCHER_ENABLED
value: 'True'
- name: KNOWLEDGE_BASE_ENABLED
value: 'True'
- name: BFL_NAME
value: '{{ .Values.bfl.username }}'
- name: FB_DATABASE
value: /appdata/database/filebrowser.db
- name: FB_CONFIG
value: /appdata/config/settings.json
- name: FB_ROOT
value: /data
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.files.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.files.appKey }}
- name: ZINC_USER
value: zincuser-files-{{ .Values.bfl.username }}
- name: ZINC_PASSWORD
value: {{ $password | b64dec }}
- name: ZINC_HOST
value: zinc-server-svc.user-system-{{ .Values.bfl.username }}
- name: ZINC_PORT
value: "80"
- name: ZINC_INDEX
value: {{ .Release.Namespace }}_zinc-files
- name: WATCH_DIR
value: /data/Home/Documents
- name: PATH_PREFIX
value: /data/Home
- name: REDIS_HOST
value: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
- name: REDIS_PORT
value: '6379'
- name: REDIS_USERNAME
value: ''
- name: REDIS_PASSWORD
value: {{ $redis_password | b64dec }}
- name: REDIS_USE_SSL
value: 'false'
# use redis db 0 for redis cache
- name: REDIS_DB
value: '0'
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: files
- name: NOTIFY_SERVER
value: fsnotify-svc.user-system-{{ .Values.bfl.username }}:5079
- name: app
mountPath: /cp_app
- name: nginx-confd
mountPath: /confd
command:
- /filebrowser
- --noauth
- sh
- -c
- |
cp -rf /app/* /cp_app/. && cp -rf /etc/nginx/conf.d/* /confd/.
containers:
# - name: gateway
# image: beclab/appdata-gateway:0.1.12
# imagePullPolicy: IfNotPresent
# ports:
# - containerPort: 8080
# env:
# - name: FILES_SERVER_TAG
# value: 'beclab/files-server:v0.2.27'
# - name: NAMESPACE
# valueFrom:
# fieldRef:
# fieldPath: metadata.namespace
# - name: OS_SYSTEM_SERVER
# value: system-server.user-system-{{ .Values.bfl.username }}
# - name: files
# image: beclab/files-server:v0.2.27
# imagePullPolicy: IfNotPresent
# volumeMounts:
# - name: fb-data
# mountPath: /appdata
# - name: userspace-dir
# mountPath: /data/Home
# - name: userspace-app-dir
# mountPath: /data/Application
# - name: watch-dir
# mountPath: /data/Home/Documents
# - name: upload-appdata
# mountPath: /appcache/
# ports:
# - containerPort: 8110
# env:
# - name: ES_ENABLED
# value: 'True'
# - name: WATCHER_ENABLED
# value: 'True'
# - name: cloud-drive-integration_BASE_ENABLED
# value: 'True'
# - name: BFL_NAME
# value: '{{ .Values.bfl.username }}'
# - name: FB_DATABASE
# value: /appdata/database/filebrowser.db
# - name: FB_CONFIG
# value: /appdata/config/settings.json
# - name: FB_ROOT
# value: /data
# - name: OS_SYSTEM_SERVER
# value: system-server.user-system-{{ .Values.bfl.username }}
# - name: OS_APP_SECRET
# value: '{{ .Values.os.files.appSecret }}'
# - name: OS_APP_KEY
# value: {{ .Values.os.files.appKey }}
# - name: ZINC_USER
# value: zincuser-files-{{ .Values.bfl.username }}
# - name: ZINC_PASSWORD
# value: {{ $password | b64dec }}
# - name: ZINC_HOST
# value: zinc-server-svc.user-system-{{ .Values.bfl.username }}
# - name: ZINC_PORT
# value: "80"
# - name: ZINC_INDEX
# value: {{ .Release.Namespace }}_zinc-files
# - name: WATCH_DIR
# value: /data/Home/Documents
# - name: PATH_PREFIX
# value: /data/Home
# - name: REDIS_HOST
# value: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
# - name: REDIS_PORT
# value: '6379'
# - name: REDIS_USERNAME
# value: ''
# - name: REDIS_PASSWORD
# value: {{ $redis_password | b64dec }}
# - name: REDIS_USE_SSL
# value: 'false'
# # use redis db 0 for redis cache
# - name: REDIS_DB
# value: '0'
# - name: REDIS_URL
# value: 'redis://:{{ $redis_password | b64dec }}@redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379/0'
# - name: POD_NAME
# valueFrom:
# fieldRef:
# fieldPath: metadata.name
# - name: NAMESPACE
# valueFrom:
# fieldRef:
# fieldPath: metadata.namespace
# - name: CONTAINER_NAME
# value: files
# - name: NOTIFY_SERVER
# value: fsnotify-svc.user-system-{{ .Values.bfl.username }}:5079
# command:
# - /filebrowser
# - --noauth
- name: files-frontend
image: beclab/files-frontend:v1.2.7
image: beclab/docker-nginx-headers-more:ubuntu-v0.1.0
imagePullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
env:
- name: NATS_HOST
value: nats.user-system-{{ .Values.bfl.username }}
- name: NATS_PORT
value: '4222'
- name: NATS_USERNAME
value: user-system-{{ .Values.bfl.username }}-files-frontend
- name: NATS_PASSWORD
value: {{ $files_frontend_nats_password | b64dec }}
- name: NATS_SUBJECT
value: terminus.os-system.files-notify
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: media-server
env:
- name: MEDIA_SERVER_DATA_DIR
value: /data
image: beclab/media-server:v0.1.1
- name: app
mountPath: /app
- name: nginx-confd
mountPath: /etc/nginx/conf.d
- name: drive-server
image: beclab/drive:v0.0.72
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9090
volumeMounts:
- name: userspace-dir
mountPath: /data/Home
- name: terminus-upload-sidecar
image: beclab/upload:v1.0.3
env:
- name: UPLOAD_FILE_TYPE
value: '*'
- name: UPLOAD_LIMITED_SIZE
value: '21474836481'
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: DATABASE_URL
value: postgres://cloud_drive_integration_{{ .Values.bfl.username }}:{{ $pg_password | b64dec }}@citus-master-svc.user-system-{{ .Values.bfl.username }}:5432/user_space_{{ .Values.bfl.username }}_cloud_drive_integration
- name: REDIS_URL
value: redis://:{{ $redis_password | b64dec }}@redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379/0
- name: TASK_EXECUTOR_MAX_THREADS
value: '6'
ports:
- containerPort: 8181
volumeMounts:
- name: upload-data
mountPath: /data/Home
@@ -206,12 +364,51 @@ spec:
mountPath: /appdata/
- name: userspace-app-dir
mountPath: /data/Application
- name: uploads-temp
mountPath: /uploadstemp
resources: { }
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
- name: data-dir
mountPath: /data
- name: task-executor
image: beclab/driveexecutor:v0.0.72
imagePullPolicy: IfNotPresent
env:
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: DATABASE_URL
value: postgres://cloud_drive_integration_{{ .Values.bfl.username }}:{{ $pg_password | b64dec }}@citus-master-svc.user-system-{{ .Values.bfl.username }}:5432/user_space_{{ .Values.bfl.username }}_cloud_drive_integration
- name: REDIS_URL
value: redis://:{{ $redis_password | b64dec }}@redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379/0
- name: TASK_EXECUTOR_MAX_THREADS
value: '6'
ports:
- containerPort: 8181
volumeMounts:
- name: upload-data
mountPath: /data/Home
- name: upload-appdata
mountPath: /appdata/
- name: userspace-app-dir
mountPath: /data/Application
- name: data-dir
mountPath: /data
# - name: terminus-upload-sidecar
# image: beclab/upload:v1.0.3
# env:
# - name: UPLOAD_FILE_TYPE
# value: '*'
# - name: UPLOAD_LIMITED_SIZE
# value: '21474836481'
# volumeMounts:
# - name: upload-data
# mountPath: /data/Home
# - name: upload-appdata
# mountPath: /appdata/
# - name: userspace-app-dir
# mountPath: /data/Application
# - name: uploads-temp
# mountPath: /uploadstemp
# resources: { }
# terminationMessagePath: /dev/termination-log
# terminationMessagePolicy: File
# imagePullPolicy: IfNotPresent
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11
@@ -254,40 +451,48 @@ spec:
fieldPath: status.podIP
volumes:
- name: data-dir
hostPath:
path: '{{ .Values.rootPath }}/rootfs/userspace'
type: Directory
- name: watch-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}/Documents
path: '{{ .Values.userspace.userData }}/Documents'
- name: userspace-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
path: '{{ .Values.userspace.userData }}'
- name: userspace-app-dir
hostPath:
type: Directory
path: {{ .Values.userspace.appData }}
path: '{{ .Values.userspace.appData }}'
- name: fb-data
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache}}/files
path: '{{ .Values.userspace.appCache}}/files'
- name: upload-data
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
path: '{{ .Values.userspace.userData }}'
- name: upload-appdata
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache}}
type: Directory
path: '{{ .Values.userspace.appCache}}'
- name: uploads-temp
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache }}/files/uploadstemp
path: '{{ .Values.userspace.appCache }}/files/uploadstemp'
- name: terminus-sidecar-config
configMap:
name: sidecar-upload-configs
items:
- key: envoy.yaml
path: envoy.yaml
- name: app
emptyDir: {}
- name: nginx-confd
emptyDir: {}
@@ -315,7 +520,7 @@ metadata:
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: files
deployment: files-deployment
deployment: files
description: files provider
endpoint: files-service.{{ .Release.Namespace }}
group: service.files
@@ -461,6 +666,17 @@ type: Opaque
data:
password: {{ $password }}
redis_password: {{ $redis_password }}
pg_password: {{ $pg_password }}
---
apiVersion: v1
kind: Secret
metadata:
name: files-frontend-nats-secrets
namespace: user-system-{{ .Values.bfl.username }}
data:
files_frontend_nats_password: {{ $files_frontend_nats_password }}
type: Opaque
#---
#apiVersion: apr.bytetrade.io/v1alpha1
@@ -502,6 +718,31 @@ spec:
name: zinc-files-secrets
namespace: zinc-files
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: files-frontend-nat
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: files-frontend
appNamespace: user-space-{{ .Values.bfl.username }}
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: files_frontend_nats_password
name: files-frontend-nats-secrets
refs:
- appName: files-server
appNamespace: os-system
subjects:
- name: files-notify
perm:
- pub
- sub
user: user-system-{{ .Values.bfl.username }}-files-frontend
---
apiVersion: v1
@@ -534,6 +775,7 @@ data:
- upgrade_type: websocket
- upgrade_type: tailscale-control-protocol
skip_xff_append: false
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
@@ -545,11 +787,14 @@ data:
prefix: "/upload"
route:
cluster: upload_original_dst
timeout: 1800s
idle_timeout: 1800s
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 600s
timeout: 1800s
idle_timeout: 1800s
http_protocol_options:
accept_http_10: true
http_filters:
@@ -571,6 +816,7 @@ data:
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: x-real-ip
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
@@ -612,6 +858,8 @@ data:
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
@@ -634,9 +882,11 @@ data:
clusters:
- name: original_dst
connect_timeout: 5000s
connect_timeout: 120s
type: ORIGINAL_DST
lb_policy: CLUSTER_PROVIDED
common_http_protocol_options:
idle_timeout: 10s
- name: upload_original_dst
connect_timeout: 5000s
type: LOGICAL_DNS
@@ -650,8 +900,8 @@ data:
- endpoint:
address:
socket_address:
address: localhost
port_value: 40030
address: files-service.os-system
port_value: 80
- name: authelia
connect_timeout: 2s
type: LOGICAL_DNS

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -46,4 +45,4 @@ os:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -0,0 +1,646 @@
{{- $share_secret := (lookup "v1" "Secret" "os-system" "knowledge-share-secrets") -}}
{{- $redis_password := "" -}}
{{ if $share_secret -}}
{{ $redis_password = (index $share_secret "data" "redis_password") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password_data := "" -}}
{{ $redis_password_data = $redis_password | b64dec }}
{{- $pg_password := "" -}}
{{ if $share_secret -}}
{{ $pg_password = (index $share_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $knowledge_nats_secret := (lookup "v1" "Secret" "os-system" "knowledge-secrets") -}}
{{- $nat_password := "" -}}
{{ if $knowledge_nats_secret -}}
{{ $nat_password = (index $knowledge_nats_secret "data" "nat_password") }}
{{ else -}}
{{ $nat_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: knowledge-secrets
namespace: os-system
type: Opaque
data:
nat_password: {{ $nat_password }}
---
apiVersion: v1
kind: Secret
metadata:
name: knowledge-share-secrets
namespace: os-system
type: Opaque
data:
pg_password: {{ $pg_password }}
redis_password: {{ $redis_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-pg
namespace: os-system
spec:
app: knowledge
appNamespace: os-system
middleware: postgres
postgreSQL:
user: knowledge_os_system
password:
valueFrom:
secretKeyRef:
key: pg_password
name: knowledge-share-secrets
databases:
- name: knowledge
extensions:
- pg_trgm
- btree_gin
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-redis
namespace: os-system
spec:
app: rss
appNamespace: os-system
middleware: redis
redis:
password:
valueFrom:
secretKeyRef:
key: redis_password
name: knowledge-share-secrets
namespace: knowledge
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-nat
namespace: os-system
spec:
app: knowledge
appNamespace: os-system
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: nat_password
name: knowledge-secrets
refs:
- appName: download
appNamespace: os-system
subjects:
- name: download_status
perm:
- pub
- sub
user: os-system-knowledge
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: knowledge
namespace: os-system
labels:
app: knowledge
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: knowledge
template:
metadata:
labels:
app: knowledge
spec:
serviceAccount: os-internal
serviceAccountName: os-internal
securityContext:
runAsUser: 0
runAsNonRoot: false
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: cache-dir
mountPath: /appCache
command:
- sh
- -c
- |
chown -R 1000:1000 /data && \
chown -R 1000:1000 /appCache
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB -c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >> PostgreSQL DB Server has started";
env:
- name: PGHOST
value: citus-headless.os-system
- name: PGPORT
value: "5432"
- name: PGUSER
value: knowledge_os_system
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB
value: os_system_knowledge
containers:
- name: knowledge
image: "beclab/knowledge-base-api:v0.12.5"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- containerPort: 3010
env:
- name: BACKEND_URL
value: http://127.0.0.1:8080
- name: RSSHUB_URL
value: 'http://rss-server.os-system:1200'
- name: UPLOAD_SAVE_PATH
value: '/data/'
- name: SEARCH_URL
value: 'http://search3.os-system:80'
- name: REDIS_PASSWORD
value: {{ $redis_password_data }}
- name: REDIS_ADDR
value: redis-cluster-proxy.os-system
- name: PG_USERNAME
value: knowledge_os_system
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-headless.os-system
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: os_system_knowledge
- name: DOWNLOAD_URL
value: http://download-svc.os-system:3080
- name: YTDLP_DOWNLOAD_URL
value: http://download-svc.os-system:3082
- name: NATS_HOST
value: nats
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: os-system-knowledge
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: terminus.os-system.download_status
- name: SOCKET_URL
value: 'http://localhost:40010'
volumeMounts:
- name: userspace-dir
mountPath: /data
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "1"
memory: 1Gi
- name: backend-server
image: "beclab/recommend-backend:v0.12.0"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: LISTEN_ADDR
value: 127.0.0.1:8080
- name: REDIS_PASSWORD
value: {{ $redis_password_data }}
- name: REDIS_ADDR
value: redis-cluster-proxy.os-system:6379
- name: RSS_HUB_URL
value: 'http://rss-server.os-system:1200/'
- name: WE_CHAT_REFRESH_FEED_URL
value: https://recommend-wechat-prd.bttcdn.com/api/wechat/entries
- name: WECHAT_ENTRY_CONTENT_GET_API_URL
value: https://recommend-wechat-prd.bttcdn.com/api/wechat/entry/content
- name: PG_USERNAME
value: knowledge_os_system
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-headless.os-system
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: os_system_knowledge
- name: WATCH_DIR
value: /data/
- name: YT_DLP_API_URL
value: http://download-svc.os-system:3082/api/v1/get_metadata
- name: DOWNLOAD_API_URL
value: http://download-svc.os-system:3080/api
volumeMounts:
- name: userspace-dir
mountPath: /data
ports:
- containerPort: 8080
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "800m"
memory: 400Mi
- name: sync
image: "beclab/recommend-sync:v0.12.0"
securityContext:
runAsUser: 0
runAsNonRoot: false
env:
- name: USERSPACE_DIRECTORY
value: /data
- name: KNOWLEDGE_BASE_API_URL
value: http://127.0.0.1:3010
- name: PG_HOST
value: citus-headless.os-system
- name: PG_USERNAME
value: knowledge_os_system
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_DATABASE
value: os_system_knowledge
- name: PG_PORT
value: "5432"
- name: TERMINUS_RECOMMEND_REDIS_ADDR
value: redis-cluster-proxy.os-system:6379
- name: TERMINUS_RECOMMEND_REDIS_PASSOWRD
value: {{ $redis_password_data }}
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: crawler
image: "beclab/recommend-crawler:v0.12.1"
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: KNOWLEDGE_BASE_API_URL
value: http://127.0.0.1:3010
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "800m"
memory: 800Mi
volumeMounts:
- name: cache-dir
mountPath: /appCache
- name: terminus-ws-sidecar
image: 'beclab/ws-gateway:v1.0.4'
imagePullPolicy: IfNotPresent
command:
- /ws-gateway
env:
- name: WS_PORT
value: '3010'
- name: WS_URL
value: /knowledge/websocket/message
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumes:
- name: userspace-dir
hostPath:
type: Directory
path: '{{ .Values.rootPath }}/rootfs/userspace'
- name: cache-dir
hostPath:
path: '{{ .Values.rootPath }}/userdata/Cache/rss'
type: DirectoryOrCreate
- name: terminus-sidecar-config
configMap:
name: sidecar-ws-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: rss-svc
namespace: os-system
spec:
type: ClusterIP
selector:
app: knowledge
ports:
- name: "backend-server"
protocol: TCP
port: 8080
targetPort: 8080
- name: "knowledge-base-api"
protocol: TCP
port: 3010
targetPort: 3010
- name: "knowledge-websocket"
protocol: TCP
port: 40010
targetPort: 40010
---
apiVersion: v1
kind: Service
metadata:
name: knowledge-base-api
namespace: os-system
spec:
type: ClusterIP
selector:
app: systemserver
ports:
- protocol: TCP
name: knowledge-api
port: 3010
targetPort: 3010
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: download-nat
namespace: os-system
spec:
app: download
appNamespace: os-system
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: nat_password
name: knowledge-secrets
refs: []
subjects:
- name: download_status
permission:
pub: allow
sub: allow
export:
- appName: knowledge
sub: allow
pub: allow
user: os-system-download
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: download
namespace: os-system
labels:
app: download
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: download
template:
metadata:
labels:
app: download
spec:
serviceAccount: os-internal
serviceAccountName: os-internal
securityContext:
runAsUser: 0
runAsNonRoot: false
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: config-dir
mountPath: /config
- name: download-dir
mountPath: /downloads
command:
- sh
- -c
- |
chown -R 1000:1000 /config && \
chown -R 1000:1000 /downloads
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB -c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >> PostgreSQL DB Server has started";
env:
- name: PGHOST
value: citus-headless.os-system
- name: PGPORT
value: "5432"
- name: PGUSER
value: knowledge_os_system
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB
value: os_system_knowledge
containers:
- name: aria2
image: "beclab/aria2:v0.0.4"
imagePullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 6800
- containerPort: 6888
env:
- name: RPC_SECRET
value: kubespider
- name: PUID
value: "1000"
- name: PGID
value: "1000"
volumeMounts:
- name: download-dir
mountPath: /downloads
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "1"
memory: 300Mi
- name: yt-dlp
image: "beclab/yt-dlp:v0.12.2"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- containerPort: 3082
env:
- name: PG_USERNAME
value: knowledge_os_system
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-headless.os-system
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: os_system_knowledge
- name: REDIS_HOST
value: redis-cluster-proxy.os-system
- name: REDIS_PASSWORD
value: {{ $redis_password | b64dec }}
- name: NATS_HOST
value: nats
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: os-system-download
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: terminus.os-system.download_status
volumeMounts:
- name: config-dir
mountPath: /app/config
- name: download-dir
mountPath: /app/downloads
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "1"
memory: 300Mi
- name: download-spider
image: "beclab/download-spider:v0.12.2"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: PG_USERNAME
value: knowledge_os_system
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-headless.os-system
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: os_system_knowledge
- name: REDIS_HOST
value: redis-cluster-proxy.os-system
- name: REDIS_PASSWORD
value: {{ $redis_password | b64dec }}
- name: NATS_HOST
value: nats
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: os-system-download
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: terminus.os-system.download_status
volumeMounts:
- name: download-dir
mountPath: /downloads
ports:
- containerPort: 3080
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "1"
memory: 300Mi
volumes:
- name: config-dir
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.rootPath }}/userdata/Cache/download'
- name: download-dir
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.rootPath }}/rootfs/userspace'
---
apiVersion: v1
kind: Service
metadata:
name: download-svc
namespace: os-system
spec:
type: ClusterIP
selector:
app: download
ports:
- name: "download-spider"
protocol: TCP
port: 3080
targetPort: 3080
- name: "aria2-server"
protocol: TCP
port: 6800
targetPort: 6800
- name: ytdlp-server
protocol: TCP
port: 3082
targetPort: 3082

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "knowledge.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "knowledge.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "knowledge.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "knowledge.labels" -}}
helm.sh/chart: {{ include "knowledge.chart" . }}
{{ include "knowledge.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "knowledge.selectorLabels" -}}
app.kubernetes.io/name: {{ include "knowledge.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "knowledge.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "knowledge.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -1,389 +0,0 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $knowledge_secret := (lookup "v1" "Secret" $namespace "rss-secrets") -}}
{{- $zinc_knowledge_secret := (lookup "v1" "Secret" $namespace "zinc-knowledge-secrets") -}}
{{- $password_zinc := "" -}}
{{ if $zinc_knowledge_secret -}}
{{ $password_zinc = (index $zinc_knowledge_secret "data" "password") }}
{{ else -}}
{{ $password_zinc = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password := "" -}}
{{ if $knowledge_secret -}}
{{ $redis_password = (index $knowledge_secret "data" "redis_password") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password_data := "" -}}
{{ $redis_password_data = $redis_password | b64dec }}
{{- $pg_password := "" -}}
{{ if $knowledge_secret -}}
{{ $pg_password = (index $knowledge_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: knowledge-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $pg_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: knowledge
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: knowledge_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: knowledge-secrets
databases:
- name: knowledge
extensions:
- pg_trgm
- btree_gin
---
apiVersion: v1
kind: ConfigMap
metadata:
name: knowledge-secrets-auth
namespace: {{ .Release.Namespace }}
data:
redis_password: {{ $redis_password_data }}
redis_addr: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379
redis_host: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
redis_port: '6379'
---
apiVersion: v1
kind: ConfigMap
metadata:
name: knowledge-userspace-data
namespace: {{ .Release.Namespace }}
data:
appData: "{{ .Values.userspace.appData }}"
appCache: "{{ .Values.userspace.appCache }}"
username: "{{ .Values.bfl.username }}"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: knowledge
namespace: {{ .Release.Namespace }}
labels:
app: knowledge
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: knowledge
template:
metadata:
labels:
app: knowledge
spec:
containers:
- name: knowledge
image: "beclab/knowledge-base-api:v0.1.31"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3010
env:
- name: BACKEND_URL
value: http://127.0.0.1:8080
- name: RSSSERVER_URL
value: 'http://rss-server.os-system:3010/rss'
- name: REDIS_PASSWORD
valueFrom:
configMapKeyRef:
name: knowledge-secrets-auth
key: redis_password
- name: REDIS_ADDR
valueFrom:
configMapKeyRef:
name: knowledge-secrets-auth
key: redis_addr
- name: PDF_SAVE_PATH
value: /data/Home/Documents/Pdf/
- name: PG_USERNAME
value: knowledge_{{ .Values.bfl.username }}
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-master-svc.user-system-{{ .Values.bfl.username }}
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: user_space_{{ .Values.bfl.username }}_knowledge
volumeMounts:
- name: watch-dir
mountPath: /data/Home/Documents
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "1"
memory: 1Gi
- name: backend-server
image: "beclab/recommend-backend:v0.0.5"
imagePullPolicy: IfNotPresent
env:
- name: LISTEN_ADDR
value: 127.0.0.1:8080
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.wise.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.wise.appKey }}
- name: ZINC_RPC_START
value: 'true'
- name: ZINC_USER
value: zincuser-knowledge-{{ .Values.bfl.username }}
- name: ZINC_PASSWORD
value: {{ $password_zinc | b64dec }}
- name: ZINC_HOST
value: zinc-server-svc.user-system-{{ .Values.bfl.username }}
- name: ZINC_PORT
value: "80"
- name: ZINC_INDEX
value: {{ .Release.Namespace }}_zinc-knowledge
- name: RSS_HUB_URL
value: 'http://rss-server.os-system:3010/rss'
- name: WE_CHAT_REFRESH_FEED_URL
value: https://recommend-wechat-prd.bttcdn.com/api/wechat/entries
- name: WECHAT_ENTRY_CONTENT_GET_API_URL
value: https://recommend-wechat-prd.bttcdn.com/api/wechat/entry/content
- name: PG_USERNAME
value: knowledge_{{ .Values.bfl.username }}
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_HOST
value: citus-master-svc.user-system-{{ .Values.bfl.username }}
- name: PG_PORT
value: "5432"
- name: PG_DATABASE
value: user_space_{{ .Values.bfl.username }}_knowledge
ports:
- containerPort: 8080
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "800m"
memory: 400Mi
volumes:
- name: watch-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}/Documents
---
apiVersion: v1
kind: Service
metadata:
name: rss-svc
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: knowledge
ports:
- name: "backend-server"
protocol: TCP
port: 8080
targetPort: 8080
# - name: "rss-sdk"
# protocol: TCP
# port: 3000
# targetPort: 3000
- name: "knowledge-base-api"
protocol: TCP
port: 3010
targetPort: 3010
---
apiVersion: v1
kind: Service
metadata:
name: knowledge-base-api
namespace: user-system-{{ .Values.bfl.username }}
spec:
type: ClusterIP
selector:
app: systemserver
ports:
- protocol: TCP
name: knowledge-api
port: 3010
targetPort: 3010
---
apiVersion: v1
data:
mappings: |
{
"properties": {
"@timestamp": {
"type": "date",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"_id": {
"type": "keyword",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"content": {
"type": "text",
"index": true,
"store": true,
"sortable": false,
"aggregatable": false,
"highlightable": true
},
"created": {
"type": "numeric",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"format_name": {
"type": "text",
"index": true,
"store": false,
"sortable": false,
"aggregatable": false,
"highlightable": false
},
"md5": {
"type": "text",
"analyzer": "keyword",
"index": true,
"store": false,
"sortable": false,
"aggregatable": false,
"highlightable": false
},
"meta": {
"type": "text",
"index": true,
"store": false,
"sortable": false,
"aggregatable": false,
"highlightable": false
},
"name": {
"type": "text",
"index": true,
"store": false,
"sortable": false,
"aggregatable": false,
"highlightable": false
},
"where": {
"type": "text",
"analyzer": "keyword",
"index": true,
"store": false,
"sortable": false,
"aggregatable": false,
"highlightable": false
}
}
}
kind: ConfigMap
metadata:
name: zinc-knowledge
namespace: user-system-{{ .Values.bfl.username }}
---
apiVersion: v1
kind: Secret
metadata:
name: zinc-knowledge-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
password: {{ $password_zinc }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: zinc-knowledge
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: knowledge
appNamespace: user-space-{{ .Values.bfl.username }}
middleware: zinc
zinc:
user: zincuser-knowledge-{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: password
name: zinc-knowledge-secrets
indexes:
- name: zinc-knowledge
namespace: user-system-{{ .Values.bfl.username }}
key: mappings
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: SysEventRegistry
metadata:
name: konwledgebase-recommend-install-cb
namespace: {{ .Release.Namespace }}
spec:
type: subscriber
event: recommend.install
callback: http://rss-svc.{{ .Release.Namespace }}:3010/knowledge/algorithm/recommend/install
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: SysEventRegistry
metadata:
name: konwledgebase-recommend-uninstall-cb
namespace: {{ .Release.Namespace }}
spec:
type: subscriber
event: recommend.uninstall
callback: http://rss-svc.{{ .Release.Namespace }}:3010/knowledge/algorithm/recommend/uninstall

View File

@@ -1,43 +0,0 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
nodeport_ingress_https: 30082
username: 'test'
url: 'test'
nodeName: test
pvc:
userspace: test
userspace:
userData: test/Home
appData: test/Data
appCache: test
dbdata: test
docs:
nodeport: 30881
desktop:
nodeport: 30180
os:
portfolio:
appKey: '${ks[0]}'
appSecret: test
vault:
appKey: '${ks[0]}'
appSecret: test
desktop:
appKey: '${ks[0]}'
appSecret: test
message:
appKey: '${ks[0]}'
appSecret: test
wise:
appKey: '${ks[0]}'
appSecret: test
search:
appKey: '${ks[0]}'
appSecret: test
search2:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""

View File

@@ -1,3 +1,21 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $market_secret := (lookup "v1" "Secret" $namespace "market-secrets") -}}
{{- $redis_password := "" -}}
{{ if $market_secret -}}
{{ $redis_password = (index $market_secret "data" "redis-passwords") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
apiVersion: v1
kind: Secret
metadata:
name: market-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
data:
redis-passwords: {{ $redis_password }}
---
apiVersion: apps/v1
@@ -14,7 +32,7 @@ metadata:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/appstore/icon.png
applications.app.bytetrade.io/title: Market
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"appstore-service", "host":"appstore-service", "port":80,"title":"Market"}]'
applications.app.bytetrade.io/entrances: '[{"name":"appstore-service", "host":"appstore-service", "port":80,"title":"Market","windowPushState":true}]'
spec:
replicas: 1
selector:
@@ -24,8 +42,22 @@ spec:
metadata:
labels:
app: appstore
io.bytetrade.app: "true"
annotations:
instrumentation.opentelemetry.io/inject-go: "olares-instrumentation"
instrumentation.opentelemetry.io/go-container-names: "appstore-backend"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/opt/app/market"
instrumentation.opentelemetry.io/inject-nginx: "olares-instrumentation"
instrumentation.opentelemetry.io/inject-nginx-container-names: "appstore"
spec:
priorityClassName: "system-cluster-critical"
initContainers:
- args:
- -it
- authelia-backend.os-system:9091
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-auth
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
@@ -58,14 +90,33 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: nginx-init
image: beclab/market-frontend:v0.3.11
imagePullPolicy: IfNotPresent
volumeMounts:
- name: app
mountPath: /cp_app
- name: nginx-confd
mountPath: /confd
command:
- sh
- -c
- |
cp -rf /app/* /cp_app/. && cp -rf /etc/nginx/conf.d/* /confd/.
containers:
- name: appstore
image: beclab/market-frontend:v0.2.8
image: beclab/docker-nginx-headers-more:ubuntu-v0.1.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- name: app
mountPath: /app
- name: nginx-confd
mountPath: /etc/nginx/conf.d
- name: appstore-backend
image: beclab/market-backend:v0.2.8
image: beclab/market-backend:v0.3.11
imagePullPolicy: IfNotPresent
ports:
- containerPort: 81
@@ -78,6 +129,8 @@ spec:
value: {{ .Values.os.appstore.appKey }}
- name: APP_SOTRE_SERVICE_SERVICE_HOST
value: appstore-server-prod.bttcdn.com
- name: MARKET_PROVIDER
value: '{{ .Values.os.appstore.marketProvider }}'
- name: APP_SOTRE_SERVICE_SERVICE_PORT
value: '443'
- name: APP_SERVICE_SERVICE_HOST
@@ -86,6 +139,15 @@ spec:
value: '6755'
- name: REPO_URL_PORT
value: "82"
- name: REDIS_ADDRESS
value: 'redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379'
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: market-secrets
key: redis-passwords
- name: REDIS_DB_NUMBER
value: '0'
- name: REPO_URL_HOST
valueFrom:
fieldRef:
@@ -134,7 +196,7 @@ spec:
fieldRef:
fieldPath: status.podIP
- name: terminus-ws-sidecar
image: 'beclab/ws-gateway:v1.0.3'
image: 'beclab/ws-gateway:v1.0.5'
command:
- /ws-gateway
env:
@@ -155,8 +217,12 @@ spec:
path: envoy.yaml
- name: opt-data
hostPath:
path: {{ .Values.userspace.appData}}/appstore/data
path: '{{ .Values.userspace.appData}}/appstore/data'
type: DirectoryOrCreate
- name: app
emptyDir: {}
- name: nginx-confd
emptyDir: {}
---
apiVersion: v1
@@ -195,6 +261,11 @@ spec:
ops:
- Create
version: v1
- dataType: app
group: service.bfl
ops:
- UserApps
version: v1
status:
state: active
@@ -206,7 +277,7 @@ metadata:
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: app
deployment: market-deployment
deployment: market
description: app store provider
endpoint: appstore-service.{{ .Release.Namespace }}
group: service.appstore
@@ -219,4 +290,21 @@ spec:
uri: /app-store/v1/applications/provider/uninstalldev
version: v1
status:
state: active
state: active
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: market-redis
namespace: {{ .Release.Namespace }}
spec:
app: market
appNamespace: {{ .Release.Namespace }}
middleware: redis
redis:
password:
valueFrom:
secretKeyRef:
key: redis-passwords
name: market-secrets
namespace: market

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -39,5 +38,7 @@ os:
search2:
appKey: '${ks[0]}'
appSecret: test
appstore:
marketProvider: ''
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -1,3 +0,0 @@
# nitro
https://github.com/beclab/mynitro

View File

@@ -1,225 +0,0 @@
{{ $nitro_appcache_rootpath := "/terminus/userdata/Cache/nitro" }}
{{ $client_id := randAlphaNum 8 }}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: nitro-nginx-config
namespace: {{ .Release.Namespace }}
annotations:
kubesphere.io/creator: bytetrade.io
data:
default.conf: |-
server {
listen 80;
server_name _;
location /nitro/model_server/ {
# proxy_pass http://127.0.0.1:3928/;
proxy_pass http://nitro:3928/;
include proxy.conf;
}
location /wasm/model_server/ {
proxy_pass http://nitro:8081/;
include proxy.conf;
}
location /nitro/ {
proxy_pass http://127.0.0.1:3900/;
include proxy.conf;
}
location / {
proxy_pass http://127.0.0.1:3900;
include proxy.conf;
}
}
nginx.conf: |-
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
client_max_body_size 15M;
include /etc/nginx/conf.d/*.conf;
}
proxy.conf: |-
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
---
kind: Service
apiVersion: v1
metadata:
name: nitro
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
ports:
- name: nginx-port
protocol: TCP
port: 80
targetPort: 80
- name: ui-port
protocol: TCP
port: 3900
targetPort: 3900
- name: nitro-port
protocol: TCP
port: 3928
targetPort: 3928
selector:
app: nitro
---
# create statefulset
apiVersion: apps/v1
kind: Deployment
metadata:
name: nitro
namespace: {{ .Release.Namespace }}
labels:
app: nitro
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: nitro
name: nitro
template:
metadata:
labels:
app: nitro
name: nitro
spec:
containers:
- name: nginx
image: 'beclab/nginx-lua:n0.0.4'
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: nginx-port
protocol: TCP
volumeMounts:
- name: nitro-nginx-config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
- name: nitro-nginx-config
mountPath: /etc/nginx/proxy.conf
subPath: proxy.conf
- name: nitro-nginx-config
mountPath: /etc/nginx/conf.d/default.conf
subPath: default.conf
{{- if and .Values.gpu (not (eq .Values.gpu "none" )) }}
- name: nitro
image: 'beclab/nitro:v0.0.10'
ports:
- name: nitro-port
containerPort: 3928
protocol: TCP
- name: ui-port
containerPort: 3900
protocol: TCP
env:
- name: DIFY_HOST
value: 'http://difyfusion'
- name: LLM_HOST
value: 'http://nitro'
- name: LOG_SIZE
value: '15M'
- name: LLM_UTIL
value: 'NITRO'
- name: PREFIX
value: '/nitro'
- name: NGL_VALUE
value: '33'
- name: C_VALUE
value: '1024'
- name: OTHER_VALUES
- name: PGID
value: '1000'
- name: PUID
value: '1000'
- name: TZ
value: Etc/UTC
{{- if (eq .Values.gpu "virtaitech" ) }}
- name: ORION_VGPU
value: "1"
- name: ORION_CLIENT_ID
value: {{ .Release.Namespace }}-{{ $client_id }}
- name: ORION_TASK_NAME
value: {{ .Release.Namespace }}-{{ $client_id }}-nitro
- name: ORION_GMEM
value: "8000"
- name: ORION_RESERVED
value: "0"
{{- end }}
resources:
limits:
{{ .Values.gpu }}.com/gpu: '1'
volumeMounts:
- name: model-vol
mountPath: /model
- name: custom-model-config-vol
mountPath: /custom_model_config
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
{{- end }}
volumes:
- name: custom-model-config-vol
hostPath:
type: DirectoryOrCreate
path: {{ $nitro_appcache_rootpath }}/volumes/app/custom_model_config
- name: model-vol
hostPath:
type: DirectoryOrCreate
path: {{ $nitro_appcache_rootpath }}/volumes/app/model
- name: nitro-nginx-config
configMap:
name: nitro-nginx-config
items:
- key: nginx.conf
path: nginx.conf
- key: proxy.conf
path: proxy.conf
- key: default.conf
path: default.conf
defaultMode: 420

View File

@@ -0,0 +1,230 @@
{{- $namespace := printf "%s" "os-system" -}}
{{- $notifications_secret := (lookup "v1" "Secret" $namespace "notifications-secrets") -}}
{{- $pg_password := "" -}}
{{ if $notifications_secret -}}
{{ $pg_password = (index $notifications_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $nats_password := "" -}}
{{ if $notifications_secret -}}
{{ $nats_password = (index $notifications_secret "data" "nats_password") }}
{{ else -}}
{{ $nats_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: notifications-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
data:
pg_password: {{ $pg_password }}
nats_password: {{ $nats_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: notifications-pg
namespace: {{ .Release.Namespace }}
spec:
app: notifications
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: notifications_os_system
password:
valueFrom:
secretKeyRef:
key: pg_password
name: notifications-secrets
databases:
- name: notifications
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: notifications-nats
namespace: {{ .Release.Namespace }}
spec:
app: notifications
appNamespace: {{ .Release.Namespace }}
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: nats_password
name: notifications-secrets
refs: [] # TODO: refs to notifications-proxy's subject
subjects:
- export:
- appName: notifications-proxy
pub: allow
sub: allow
- appName: lldap
pub: allow
sub: allow
- appName: ks-component
pub: allow
sub: allow
- appName: authelia
pub: allow
sub: allow
name: system.notification
permission:
pub: allow
sub: allow
- export:
- appName: lldap
pub: allow
sub: allow
- appName: vault-server
pub: deny
sub: allow
- appName: seahub
pub: deny
sub: allow
- appName: knowledge
pub: deny
sub: allow
name: system.users
permission:
pub: allow
sub: allow
user: os-system-notifications
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: notifications-server
namespace: {{ .Release.Namespace }}
labels:
app: notifications-server
applications.app.bytetrade.io/author: bytetrade.io
annotations:
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: notifications-server
template:
metadata:
labels:
app: notifications-server
spec:
initContainers:
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB -c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >> PostgreSQL DB Server has started";
env:
- name: PGHOST
value: citus-headless.os-system
- name: PGPORT
value: "5432"
- name: PGUSER
value: notifications_os_system
- name: PGPASSWORD
valueFrom:
secretKeyRef:
key: pg_password
name: notifications-secrets
- name: PGDB
value: os_system_notifications
containers:
- name: notifications-api
image: beclab/notifications-api:v1.12.3
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3010
protocol: TCP
env:
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
key: pg_password
name: notifications-secrets
- name: PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING
value: '1'
- name: DATABASE_URL
value: postgres://notifications_os_system:$(DATABASE_PASSWORD)@citus-headless.os-system/os_system_notifications?sslmode=disable
- name: NATS_HOST
value: nats
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: os-system-notifications
- name: NATS_PASSWORD
valueFrom:
secretKeyRef:
key: nats_password
name: notifications-secrets
- name: NATS_SUBJECT
value: "terminus.{{ .Release.Namespace }}.system.notification"
- name: NATS_SUBJECT_SYSTEM_USERS
value: "terminus.{{ .Release.Namespace }}.system.users"
livenessProbe:
tcpSocket:
port: 3010
initialDelaySeconds: 25
timeoutSeconds: 15
periodSeconds: 10
successThreshold: 1
failureThreshold: 8
readinessProbe:
tcpSocket:
port: 3010
initialDelaySeconds: 25
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: notifications-service
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: notifications-server
ports:
- name: "notifications-server"
protocol: TCP
port: 80
targetPort: 3010
---
apiVersion: v1
kind: Service
metadata:
name: notifications-server
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: notifications-server
ports:
- name: "server"
protocol: TCP
port: 80
targetPort: 3010

View File

@@ -1,370 +1 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $notifications_secret := (lookup "v1" "Secret" $namespace "notifications-secrets") -}}
{{- $password := "" -}}
{{ if $notifications_secret -}}
{{ $password = (index $notifications_secret "data" "pg_password") }}
{{ else -}}
{{ $password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: notifications-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: notifications-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: notifications
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: notifications_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: notifications-secrets
databases:
- name: notifications
{{ if (eq .Values.debugVersion true) }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: notifications-deployment
namespace: {{ .Release.Namespace }}
labels:
app: notifications
applications.app.bytetrade.io/author: bytetrade.io
applications.app.bytetrade.io/name: notifications
applications.app.bytetrade.io/owner: '{{ .Values.bfl.username }}'
annotations:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/notifications/icon.png
applications.app.bytetrade.io/title: Notifications
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"notifications", "host":"notifications-service", "port":80,"title":"Notifications"}]'
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: notifications
template:
metadata:
labels:
app: notifications
spec:
initContainers:
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
runAsNonRoot: false
runAsUser: 0
command:
- /bin/sh
- -c
- |
iptables-restore --noflush <<EOF
# sidecar interception rules
*nat
:PROXY_IN_REDIRECT - [0:0]
:PROXY_INBOUND - [0:0]
-A PROXY_IN_REDIRECT -p tcp -j REDIRECT --to-port 15003
-A PROXY_INBOUND -p tcp --dport 15000 -j RETURN
-A PROXY_INBOUND -p tcp -j PROXY_IN_REDIRECT
-A PREROUTING -p tcp -j PROXY_INBOUND
COMMIT
EOF
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
containers:
- name: notifications-frontend
image: beclab/notifications-frontend:v0.1.22
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- name: proxy-admin
containerPort: 15000
- name: proxy-inbound
containerPort: 15003
volumeMounts:
- name: terminus-sidecar-config
readOnly: true
mountPath: /etc/envoy/envoy.yaml
subPath: envoy.yaml
command:
- /usr/local/bin/envoy
- --log-level
- debug
- -c
- /etc/envoy/envoy.yaml
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: terminus-sidecar-config
configMap:
name: sidecar-configs
items:
- key: envoy.yaml
path: envoy.yaml
# - name: REDIS_HOST
# value: localhost
# - name: REDIS_PORT
# value: "6379"
# - name: notifications-worker
# image: aboveos/notifications-worker:v0.1.2
# imagePullPolicy: IfNotPresent
# env:
# - name: MONGO_URL
# value: mongodb://admin:123456@localhost:27017
# - name: REDIS_HOST
# value: localhost
# - name: REDIS_CACHE_SERVICE_HOST
# value: localhost
# - name: REDIS_PORT
# value: "6379"
# - name: mongodb
# image: mongo:4.4.5
# env:
# - name: MONGO_INITDB_ROOT_USERNAME
# value: admin
# - name: MONGO_INITDB_ROOT_PASSWORD
# value: '123456'
# imagePullPolicy: IfNotPresent
# ports:
# - containerPort: 27017
# volumeMounts:
# - name: mongo-data
# mountPath: /data/db
# - name: redis
# image: redis:7.0.5-alpine3.16
# imagePullPolicy: IfNotPresent
# volumeMounts:
# - name: redis-data
# mountPath: /data
# volumes:
# - name: mongo-data
# hostPath:
# type: DirectoryOrCreate
# path: {{ .Values.userspace.appCache}}/notification/db
# - name: redis-data
# hostPath:
# type: DirectoryOrCreate
# path: {{ .Values.userspace.appCache}}/notification/redisdata
{{ end }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: notifications-server
namespace: {{ .Release.Namespace }}
labels:
app: notifications-server
applications.app.bytetrade.io/author: bytetrade.io
annotations:
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: notifications-server
template:
metadata:
labels:
app: notifications-server
spec:
containers:
- name: notifications-api
image: beclab/notifications-api:v0.1.22
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3010
protocol: TCP
env:
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.notification.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.notification.appKey }}
- name: DATABASE_PASSWORD
value: {{ $password | b64dec }}
- name: DATABASE_URL
value: postgres://notifications_{{ .Values.bfl.username }}:$(DATABASE_PASSWORD)@citus-master-svc.user-system-{{ .Values.bfl.username }}/user_space_{{ .Values.bfl.username }}_notifications?sslmode=disable
---
apiVersion: v1
kind: Service
metadata:
name: notifications-service
namespace: {{ .Release.Namespace }}
{{ if (eq .Values.debugVersion true) }}
spec:
type: ClusterIP
selector:
app: notifications
ports:
- name: "notifications-frontend"
protocol: TCP
port: 80
targetPort: 80
{{ else }}
spec:
type: ClusterIP
selector:
app: notifications-server
ports:
- name: "notifications-server"
protocol: TCP
port: 80
targetPort: 3010
{{ end }}
---
apiVersion: v1
kind: Service
metadata:
name: notifications-server
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: notifications-server
ports:
- name: "server"
protocol: TCP
port: 80
targetPort: 3010
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: notifications-token-provider
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: token
deployment: notifications-server
description: notifications provider
endpoint: notifications-server.{{ .Release.Namespace }}
group: service.notification
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: Create
uri: /termipass/create_token
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: notifications-message-provider
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: message
deployment: notifications-server
description: notifications provider
endpoint: notifications-server.{{ .Release.Namespace }}
group: service.notification
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: SendMassage
uri: /notification/create_job
- name: SystemMessage
uri: /notification/system/push
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ApplicationPermission
metadata:
name: notification-call-vault
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: notifications
appid: notifications
key: {{ .Values.os.notification.appKey }}
secret: {{ .Values.os.notification.appSecret }}
permissions:
- dataType: notification
group: service.vault
ops:
- Create
- Query
version: v1
- dataType: notification
group: service.desktop
ops:
- Create
- Query
version: v1
- dataType: secret
group: secret.infisical
ops:
- RetrieveSecret?workspace=notification
- CreateSecret?workspace=notification
- DeleteSecret?workspace=notification
- UpdateSecret?workspace=notification
- ListSecret?workspace=notification
version: v1
- dataType: app
group: service.bfl
ops:
- UserApps
version: v1
status:
state: active
# TODO: deploy a notification proxy

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -40,4 +39,4 @@ os:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -1,3 +0,0 @@
# profile
https://github.com/beclab/profile

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: profile
description: A Helm chart for Kubernetes
maintainers:
- name: bytetrade
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.0.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

View File

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "profile.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "profile.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "profile.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "profile.labels" -}}
helm.sh/chart: {{ include "profile.chart" . }}
{{ include "profile.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "profile.selectorLabels" -}}
app.kubernetes.io/name: {{ include "profile.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "profile.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "profile.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -1,199 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: profile-deployment
namespace: {{ .Release.Namespace }}
labels:
app: profile
applications.app.bytetrade.io/name: profile
applications.app.bytetrade.io/owner: '{{ .Values.bfl.username }}'
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/profile/icon.png
applications.app.bytetrade.io/title: Profile
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"profile", "host":"profile-service", "port":80,"title":"Profile"}]'
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: profile
template:
metadata:
labels:
app: profile
spec:
initContainers:
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
runAsNonRoot: false
runAsUser: 0
command:
- /bin/sh
- -c
- |
iptables-restore --noflush <<EOF
# sidecar interception rules
*nat
:PROXY_IN_REDIRECT - [0:0]
:PROXY_INBOUND - [0:0]
-A PROXY_IN_REDIRECT -p tcp -j REDIRECT --to-port 15003
-A PROXY_INBOUND -p tcp --dport 15000 -j RETURN
-A PROXY_INBOUND -p tcp -j PROXY_IN_REDIRECT
-A PREROUTING -p tcp -j PROXY_INBOUND
COMMIT
EOF
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
containers:
- name: profile-editor
image: beclab/profile-editor:v0.3.23
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
- name: profile-preview
image: beclab/profile-preview:v0.3.23
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8090
- name: profile-services
image: beclab/profile-services:v0.3.23
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3020
volumeMounts:
- name: data
mountPath: /data
env:
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.profile.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.profile.appKey }}
- name: APP_SERVICE_SERVICE_HOST
value: app-service.os-system
- name: APP_SERVICE_SERVICE_PORT
value: '6755'
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- name: proxy-admin
containerPort: 15000
- name: proxy-inbound
containerPort: 15003
- name: tapr
containerPort: 15080
volumeMounts:
- name: terminus-sidecar-config
readOnly: true
mountPath: /etc/envoy/envoy.yaml
subPath: envoy.yaml
command:
- /usr/local/bin/envoy
- --log-level
- debug
- -c
- /etc/envoy/envoy.yaml
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: data
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache }}/profile
- name: terminus-sidecar-config
configMap:
name: sidecar-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: profile-service
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: profile
ports:
- name: "profile-editor"
protocol: TCP
port: 80
targetPort: 80
- name: "profile-preview"
protocol: TCP
port: 3000
targetPort: 8090
# - name: "profile-services"
# protocol: TCP
# port: 3020
# targetPort: 3020
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ApplicationPermission
metadata:
name: profile
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: profile
appid: profile
key: {{ .Values.os.profile.appKey }}
secret: {{ .Values.os.profile.appSecret }}
permissions:
- dataType: datastore
group: service.bfl
ops:
- GetKey
- GetKeyPrefix
- SetKey
- DeleteKey
version: v1
- dataType: nft
group: service.settings
ops:
- getNFTAddress
version: v1
status:
state: active

View File

@@ -1,43 +0,0 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
nodeport_ingress_https: 30082
username: 'test'
url: 'test'
nodeName: test
pvc:
userspace: test
userspace:
userData: test/Home
appData: test/Data
appCache: test
dbdata: test
docs:
nodeport: 30881
desktop:
nodeport: 30180
os:
portfolio:
appKey: '${ks[0]}'
appSecret: test
vault:
appKey: '${ks[0]}'
appSecret: test
desktop:
appKey: '${ks[0]}'
appSecret: test
message:
appKey: '${ks[0]}'
appSecret: test
rss:
appKey: '${ks[0]}'
appSecret: test
search:
appKey: '${ks[0]}'
appSecret: test
search2:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""

View File

@@ -24,10 +24,10 @@ spec:
spec:
containers:
- name: rss-server
image: beclab/rsshub:v0.0.3
image: beclab/rsshub-server:v0.0.5
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3010
- containerPort: 1200
---
apiVersion: v1
@@ -42,6 +42,6 @@ spec:
ports:
- name: server
protocol: TCP
port: 3010
targetPort: 3010
port: 1200
targetPort: 1200

View File

@@ -0,0 +1,224 @@
{{- $namespace := printf "%s" "os-system" -}}
{{- $search3_secret := (lookup "v1" "Secret" $namespace "search3-secrets") -}}
{{- $pg_password := "" -}}
{{ if $search3_secret -}}
{{ $pg_password = (index $search3_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: search3-secrets
namespace: os-system
type: Opaque
data:
pg_password: {{ $pg_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: search3-pg
namespace: os-system
spec:
app: search3
appNamespace: os-system
middleware: postgres
postgreSQL:
user: search3_os_system
password:
valueFrom:
secretKeyRef:
key: pg_password
name: search3-secrets
databases:
- name: search3
extensions:
- pg_trgm
- btree_gin
- zhparser
scripts:
- begin;
- CREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
- ALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z WITH simple;
- ALTER TEXT SEARCH CONFIGURATION arabic DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION arabic DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION arabic ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION arabic ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION armenian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION armenian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION armenian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION armenian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION basque DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION basque DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION basque ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION basque ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION catalan DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION catalan DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION catalan ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION catalan ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION danish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION danish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION danish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION danish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION dutch DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION dutch DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION dutch ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION dutch ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION english DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION english DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION english ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION english ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION finnish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION finnish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION finnish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION finnish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION french DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION french DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION french ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION french ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION german DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION german DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION german ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION german ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION greek DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION greek DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION greek ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION greek ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION hindi DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION hindi DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION hindi ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION hindi ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION hungarian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION hungarian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION hungarian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION hungarian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION indonesian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION indonesian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION indonesian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION indonesian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION irish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION irish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION irish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION irish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION italian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION italian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION italian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION italian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION lithuanian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION lithuanian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION lithuanian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION lithuanian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION nepali DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION nepali DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION nepali ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION nepali ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION norwegian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION norwegian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION norwegian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION norwegian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION portuguese DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION portuguese DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION portuguese ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION portuguese ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION romanian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION romanian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION romanian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION romanian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION russian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION russian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION russian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION russian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION serbian DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION serbian DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION serbian ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION serbian ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION spanish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION spanish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION spanish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION spanish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION swedish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION swedish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION swedish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION swedish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION tamil DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION tamil DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION tamil ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION tamil ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION turkish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION turkish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION turkish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION turkish ADD MAPPING FOR asciiword WITH simple;
- ALTER TEXT SEARCH CONFIGURATION yiddish DROP MAPPING FOR word;
- ALTER TEXT SEARCH CONFIGURATION yiddish DROP MAPPING FOR asciiword;
- ALTER TEXT SEARCH CONFIGURATION yiddish ADD MAPPING FOR word WITH simple;
- ALTER TEXT SEARCH CONFIGURATION yiddish ADD MAPPING FOR asciiword WITH simple;
- commit;
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: search3
namespace: {{ .Release.Namespace }}
labels:
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/version: '0.0.1'
spec:
replicas: 1
selector:
matchLabels:
app: search3
template:
metadata:
labels:
app: search3
spec:
initContainers:
- name: init-container
image: 'postgres:16.0-alpine3.18'
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of PostgreSQL Server deployment"; until psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDB1 -c "SELECT 1"; do sleep 1; printf "-"; done; sleep 5; echo -e " >> PostgreSQL DB Server has started";
env:
- name: PGHOST
value: citus-0.citus-headless.os-system
- name: PGPORT
value: "5432"
- name: PGUSER
value: search3_os_system
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB1
value: os_system_search3
containers:
- name: search3
image: beclab/search3:v0.0.30
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
env:
- name: DATABASE_URL
value: postgres://search3_os_system:{{ $pg_password | b64dec }}@citus-0.citus-headless.os-system:5432/os_system_search3
---
apiVersion: v1
kind: Service
metadata:
name: search3
namespace: {{ .Release.Namespace }}
spec:
selector:
app: search3
type: ClusterIP
ports:
- protocol: TCP
name: search3
port: 80
targetPort: 8080

View File

@@ -1,3 +0,0 @@
# settings
https://github.com/beclab/settings

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: settings
description: A Helm chart for Kubernetes
maintainers:
- name: bytetrade
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.0.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

View File

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "settings.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "settings.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "settings.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "settings.labels" -}}
helm.sh/chart: {{ include "settings.chart" . }}
{{ include "settings.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "settings.selectorLabels" -}}
app.kubernetes.io/name: {{ include "settings.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "settings.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "settings.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -1,335 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: settings-deployment
namespace: {{ .Release.Namespace }}
labels:
app: settings
applications.app.bytetrade.io/name: settings
applications.app.bytetrade.io/owner: '{{ .Values.bfl.username }}'
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/settings/icon.png
applications.app.bytetrade.io/title: Settings
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/entrances: '[{"name":"settings", "host":"settings-service", "port":80,"title":"Settings"}]'
spec:
replicas: 1
selector:
matchLabels:
app: settings
template:
metadata:
labels:
app: settings
spec:
initContainers:
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
runAsNonRoot: false
runAsUser: 0
command:
- /bin/sh
- -c
- |
iptables-restore --noflush <<EOF
# sidecar interception rules
*nat
:PROXY_IN_REDIRECT - [0:0]
:PROXY_INBOUND - [0:0]
-A PROXY_IN_REDIRECT -p tcp -j REDIRECT --to-port 15003
-A PROXY_INBOUND -p tcp --dport 15000 -j RETURN
-A PROXY_INBOUND -p tcp -j PROXY_IN_REDIRECT
-A PREROUTING -p tcp -j PROXY_INBOUND
COMMIT
EOF
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
containers:
- name: settings
image: beclab/settings:v0.1.69
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
- name: settings-server
image: beclab/settings-server:v0.1.69
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
env:
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.settings.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.settings.appKey }}
- name: APP_SERVICE_SERVICE_HOST
value: app-service.os-system
- name: APP_SERVICE_SERVICE_PORT
value: '6755'
- name: APP_SERVICE_CHAIN_ID
value: '10'
- name: APP_SERVICE_VERIFYING_CONTRACT
value: '0xe2eaba0979277a90511f8873ae1e8ca26b54e740'
- name: APP_SERVICE_CLOUD_URL
value: 'https://cloud-api.bttcdn.com'
# value: none / nvidia / nvshare / virtaitech
- name: GPU
value: {{ .Values.gpu }}
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- name: proxy-admin
containerPort: 15000
- name: proxy-inbound
containerPort: 15003
volumeMounts:
- name: terminus-sidecar-config
readOnly: true
mountPath: /etc/envoy/envoy.yaml
subPath: envoy.yaml
command:
- /usr/local/bin/envoy
- --log-level
- debug
- -c
- /etc/envoy/envoy.yaml
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: terminus-sidecar-config
configMap:
name: sidecar-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: settings-service
namespace: {{ .Release.Namespace }}
spec:
selector:
app: settings
type: ClusterIP
ports:
- protocol: TCP
name: settings
port: 80
targetPort: 80
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ApplicationPermission
metadata:
name: settings
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: settings
appid: settings
key: {{ .Values.os.settings.appKey }}
secret: {{ .Values.os.settings.appSecret }}
permissions:
- dataType: config
group: service.desktop
ops:
- Update
version: v1
- dataType: secret
group: secret.infisical
ops:
- RetrieveSecret?workspace=settings
- CreateSecret?workspace=settings
- DeleteSecret?workspace=settings
- UpdateSecret?workspace=settings
- ListSecret?workspace=settings
version: v1
- dataType: headscale
group: service.headscale
ops:
- GetMachine
- RenameMachine
- DeleteMachine
- GetRoute
- EnableRoute
- DisableRoute
- SetTags
version: v1
- dataType: files
group: service.files
ops:
- Query
- GetSearchFolderStatus
- UpdateSearchFolderPaths
- GetDatasetFolderStatus
- UpdateDatasetFolderPaths
version: v1
- dataType: datastore
group: service.bfl
ops:
- GetKey
- GetKeyPrefix
- SetKey
- DeleteKey
version: v1
- dataType: app
group: service.bfl
ops:
- UserApps
version: v1
- dataType: config
group: service.desktop
ops:
- Update
version: v1
status:
state: active
---
apiVersion: v1
kind: Service
metadata:
name: vault-admin-server
namespace: {{ .Release.Namespace }}
spec:
type: ExternalName
externalName: vault-server.os-system.svc.cluster.local
ports:
- protocol: TCP
port: 3010
targetPort: 3010
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: settings-nft
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: nft
deployment: settings
description: Get Cloud Bind NFT List
endpoint: settings-service.{{ .Release.Namespace }}
group: service.settings
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: getNFTAddress
uri: /api/cloud/getNFTAddress
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: settings-account
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: account
deployment: settings
description: Get Acccount saved in Settings
endpoint: settings-service.{{ .Release.Namespace }}
group: service.settings
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: getAccount
uri: /api/account
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: settings-backup-password
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: backupPassword
deployment: settings
description: Get Backup Plan's Password
endpoint: settings-service.{{ .Release.Namespace }}
group: service.settings
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: getAccount
uri: /api/backup/password
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: settings-event-watcher
namespace: user-system-{{ .Values.bfl.username }}
spec:
callbacks:
- filters:
type:
- app-installation-event
op: Create
uri: /api/event/app_installation_event
- filters:
type:
- settings-event
op: Create
uri: /api/event/app_installation_event
- filters:
type:
- system-upgrade-event
op: Create
uri: /api/event/system_upgrade_event
dataType: event
deployment: settings
description: desktop event watcher
endpoint: settings-service.{{ .Release.Namespace }}
group: message-disptahcer.system-server
kind: watcher
namespace: {{ .Release.Namespace }}
version: v1
status:
state: active

4
apps/studio/README.md Normal file
View File

@@ -0,0 +1,4 @@
# devbox
Terminus App development management tools
https://github.com/beclab/devbox

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: knowledge
description: A Helm chart for Kubernetes
name: studio
description: A Terminus app development tool
maintainers:
- name: bytetrade
@@ -17,10 +17,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.0.1
version: 0.1.3
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"
appVersion: "4.9.1"

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 KiB

View File

@@ -0,0 +1,549 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $studio_secret := (lookup "v1" "Secret" $namespace "studio-secrets") -}}
{{- $pg_password := "" -}}
{{ if $studio_secret -}}
{{ $pg_password = (index $studio_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: studio-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $pg_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: studio-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: studio
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: studio_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: studio-secrets
databases:
- name: studio
---
apiVersion: v1
kind: Service
metadata:
name: studio-server
namespace: {{ .Release.Namespace }}
spec:
selector:
app: studio-server
ports:
- protocol: TCP
port: 8080
targetPort: 8088
name: http
- protocol: TCP
port: 8083
targetPort: 8083
name: https
---
kind: Service
apiVersion: v1
metadata:
name: chartmuseum-studio
namespace: {{ .Release.Namespace }}
spec:
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8888
selector:
app: studio-server
---
apiVersion: v1
kind: ConfigMap
metadata:
name: studio-san-cnf
namespace: {{ .Release.Namespace }}
data:
san.cnf: |
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = CN
stateOrProvinceName = Beijing
localityName = Beijing
0.organizationName = bytetrade
commonName = studio-server.{{ .Release.Namespace }}.svc
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @bytetrade
[bytetrade]
DNS.1 = studio-server.{{ .Release.Namespace }}.svc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: studio-server
namespace: {{ .Release.Namespace }}
labels:
app: studio-server
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: studio-server
template:
metadata:
labels:
app: studio-server
spec:
serviceAccountName: bytetrade-controller
volumes:
- name: chart
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.userspace.appData}}/studio/Chart'
- name: data
hostPath:
type: DirectoryOrCreate
path: '{{ .Values.userspace.appData }}/studio/Data'
- name: storage-volume
hostPath:
path: '{{ .Values.userspace.appData }}/studio/helm-repo-dev'
type: DirectoryOrCreate
- name: config-san
configMap:
name: studio-san-cnf
items:
- key: san.cnf
path: san.cnf
- name: sidecar-configs-studio
configMap:
name: sidecar-configs-studio
items:
- key: envoy.yaml
path: envoy.yaml
- name: certs
emptyDir: {}
initContainers:
- name: init-chmod-data
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- sh
- '-c'
- |
chown -R 1000:1000 /home/coder
chown -R 65532:65532 /charts
chown -R 65532:65532 /data
securityContext:
runAsUser: 0
resources: { }
volumeMounts:
- name: storage-volume
mountPath: /home/coder
- name: chart
mountPath: /charts
- name: data
mountPath: /data
- name: terminus-sidecar-init
image: aboveos/openservicemesh-init:v1.2.3
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- |
iptables-restore --noflush <<EOF
# sidecar interception rules
*nat
:PROXY_IN_REDIRECT - [0:0]
:PROXY_INBOUND - [0:0]
:PROXY_OUTBOUND - [0:0]
:PROXY_OUT_REDIRECT - [0:0]
-A PREROUTING -p tcp -j PROXY_INBOUND
-A OUTPUT -p tcp -j PROXY_OUTBOUND
-A PROXY_INBOUND -p tcp --dport 15000 -j RETURN
-A PROXY_INBOUND -p tcp --dport 8083 -j RETURN
-A PROXY_INBOUND -p tcp -j PROXY_IN_REDIRECT
-A PROXY_IN_REDIRECT -p tcp -j REDIRECT --to-port 15003
-A PROXY_OUTBOUND -p tcp --dport 5432 -j RETURN
-A PROXY_OUTBOUND -p tcp --dport 6379 -j RETURN
-A PROXY_OUTBOUND -p tcp --dport 27017 -j RETURN
-A PROXY_OUTBOUND -p tcp --dport 443 -j RETURN
-A PROXY_OUTBOUND -p tcp --dport 8080 -j RETURN
-A PROXY_OUTBOUND -d ${POD_IP}/32 -j RETURN
-A PROXY_OUTBOUND -o lo ! -d 127.0.0.1/32 -m owner --uid-owner 1555 -j PROXY_IN_REDIRECT
-A PROXY_OUTBOUND -o lo -m owner ! --uid-owner 1555 -j RETURN
-A PROXY_OUTBOUND -m owner --uid-owner 1555 -j RETURN
-A PROXY_OUTBOUND -d 127.0.0.1/32 -j RETURN
-A PROXY_OUTBOUND -j PROXY_OUT_REDIRECT
-A PROXY_OUT_REDIRECT -p tcp -j REDIRECT --to-port 15001
COMMIT
EOF
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
runAsNonRoot: false
runAsUser: 0
- name: generate-certs
image: beclab/openssl:v3
imagePullPolicy: IfNotPresent
command: [ "/bin/sh", "-c" ]
args:
- |
openssl genrsa -out /etc/certs/ca.key 2048
openssl req -new -x509 -days 3650 -key /etc/certs/ca.key -out /etc/certs/ca.crt \
-subj "/CN=bytetrade CA/O=bytetrade/C=CN"
openssl req -new -newkey rsa:2048 -nodes \
-keyout /etc/certs/server.key -out /etc/certs/server.csr \
-config /etc/san/san.cnf
openssl x509 -req -days 3650 -in /etc/certs/server.csr \
-CA /etc/certs/ca.crt -CAkey /etc/certs/ca.key \
-CAcreateserial -out /etc/certs/server.crt \
-extensions v3_req -extfile /etc/san/san.cnf
chown -R 65532 /etc/certs/*
volumeMounts:
- name: config-san
mountPath: /etc/san
- name: certs
mountPath: /etc/certs
containers:
- name: studio
image: beclab/studio-server:v0.1.50
imagePullPolicy: IfNotPresent
args:
- server
ports:
- name: port
containerPort: 8088
protocol: TCP
- name: ssl-port
containerPort: 8083
protocol: TCP
volumeMounts:
- name: chart
mountPath: /charts
- name: data
mountPath: /data
- mountPath: /etc/certs
name: certs
lifecycle:
preStop:
exec:
command:
- "/studio"
- "clean"
env:
- name: BASE_DIR
value: /charts
- name: OS_API_KEY
value: {{ .Values.os.studio.appKey }}
- name: OS_API_SECRET
value: {{ .Values.os.studio.appSecret }}
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: NAME_SPACE
value: {{ .Release.Namespace }}
- name: OWNER
value: '{{ .Values.bfl.username }}'
- name: DB_HOST
value: citus-master-svc.user-system-{{ .Values.bfl.username }}
- name: DB_USERNAME
value: studio_{{ .Values.bfl.username }}
- name: DB_PASSWORD
value: "{{ $pg_password | b64dec }}"
- name: DB_NAME
value: user_space_{{ .Values.bfl.username }}_studio
- name: DB_PORT
value: "5432"
resources:
requests:
cpu: "50m"
memory: 100Mi
limits:
cpu: "0.5"
memory: 1000Mi
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11.1
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1555
ports:
- name: proxy-admin
containerPort: 15000
- name: proxy-inbound
containerPort: 15003
- name: proxy-outbound
containerPort: 15001
resources:
requests:
cpu: "50m"
memory: 100Mi
limits:
cpu: "0.5"
memory: 200Mi
volumeMounts:
- name: sidecar-configs-studio
readOnly: true
mountPath: /etc/envoy/envoy.yaml
subPath: envoy.yaml
command:
- /usr/local/bin/envoy
- --log-level
- debug
- -c
- /etc/envoy/envoy.yaml
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: APP_KEY
value: {{ .Values.os.studio.appKey }}
- name: APP_SECRET
value: {{ .Values.os.studio.appSecret }}
- name: chartmuseum
image: aboveos/helm-chartmuseum:v0.15.0
args:
- '--port=8888'
- '--storage-local-rootdir=/storage'
ports:
- name: http
containerPort: 8888
protocol: TCP
env:
- name: CHART_POST_FORM_FIELD_NAME
value: chart
- name: DISABLE_API
value: 'false'
- name: LOG_JSON
value: 'true'
- name: PROV_POST_FORM_FIELD_NAME
value: prov
- name: STORAGE
value: local
resources:
requests:
cpu: "50m"
memory: 100Mi
limits:
cpu: 1000m
memory: 512Mi
volumeMounts:
- name: storage-volume
mountPath: /storage
livenessProbe:
httpGet:
path: /health
port: http
scheme: HTTP
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: http
scheme: HTTP
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
---
apiVersion: v1
data:
envoy.yaml: |
admin:
access_log_path: "/dev/stdout"
address:
socket_address:
address: 0.0.0.0
port_value: 15000
static_resources:
listeners:
- name: listener_0
address:
socket_address:
address: 0.0.0.0
port_value: 15003
listener_filters:
- name: envoy.filters.listener.original_dst
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.listener.original_dst.v3.OriginalDst
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: desktop_http
upgrade_configs:
- upgrade_type: websocket
- upgrade_type: tailscale-control-protocol
skip_xff_append: false
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 1800s
http_protocol_options:
accept_http_10: true
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- name: listener_1
address:
socket_address:
address: 0.0.0.0
port_value: 15001
listener_filters:
- name: envoy.filters.listener.original_dst
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.listener.original_dst.v3.OriginalDst
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: studio_out_http
skip_xff_append: false
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/server/intent/send"
request_headers_to_add:
- header:
key: X-App-Key
value: {{ .Values.os.studio.appKey }}
route:
cluster: system-server
prefix_rewrite: /system-server/v2/legacy_api/api.intent/v2/server/intent/send
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 1800s
typed_per_filter_config:
envoy.filters.http.lua:
"@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.LuaPerRoute
disabled: true
http_protocol_options:
accept_http_10: true
http_filters:
- name: envoy.filters.http.lua
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
inline_code:
local sha = require("lib.sha2")
function envoy_on_request(request_handle)
local app_key = os.getenv("APP_KEY")
local app_secret = os.getenv("APP_SECRET")
local current_time = os.time()
local minute_level_time = current_time - (current_time % 60)
local time_string = tostring(minute_level_time)
local s = app_key .. app_secret .. time_string
request_handle:logInfo("originstring:" .. s)
local hash = sha.sha256(s)
request_handle:logInfo("Hello World.")
request_handle:logInfo(hash)
request_handle:headers():add("X-Auth-Signature",hash)
end
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
clusters:
- name: original_dst
connect_timeout: 5000s
type: ORIGINAL_DST
lb_policy: CLUSTER_PROVIDED
- name: system-server
connect_timeout: 2s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: system-server
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: system-server.user-system-{{ .Values.bfl.username }}
port_value: 80
kind: ConfigMap
metadata:
name: sidecar-configs-studio
namespace: {{ .Release.Namespace }}

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -36,8 +35,8 @@ os:
search:
appKey: '${ks[0]}'
appSecret: test
search2:
studio:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -22,7 +22,7 @@ spec:
spec:
containers:
- name: monitoring-server
image: beclab/monitoring-server-v1:v0.2.1
image: beclab/monitoring-server-v1:v0.2.5
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8000

View File

@@ -1,154 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dashboard-deployment
namespace: {{ .Release.Namespace }}
labels:
app: dashboard
applications.app.bytetrade.io/name: dashboard
applications.app.bytetrade.io/owner: '{{ .Values.bfl.username }}'
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/icon: https://file.bttcdn.com/appstore/dashboard/icon.png
applications.app.bytetrade.io/title: Dashboard
applications.app.bytetrade.io/version: '0.0.1'
applications.app.bytetrade.io/policies: '{"policies":[{"entranceName":"dashboard","uriRegex":"/js/script.js", "level":"public"},{"entranceName":"dashboard","uriRegex":"/js/api/send", "level":"public"}]}'
applications.app.bytetrade.io/entrances: '[{"name":"dashboard", "host":"dashboard-service", "port":80,"title":"Dashboard"}]'
spec:
replicas: 1
selector:
matchLabels:
app: dashboard
template:
metadata:
labels:
app: dashboard
spec:
initContainers:
- name: terminus-sidecar-init
image: openservicemesh/init:v1.2.3
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
runAsNonRoot: false
runAsUser: 0
command:
- /bin/sh
- -c
- |
iptables-restore --noflush <<EOF
# sidecar interception rules
*nat
:PROXY_IN_REDIRECT - [0:0]
:PROXY_INBOUND - [0:0]
-A PROXY_IN_REDIRECT -p tcp -j REDIRECT --to-port 15003
-A PROXY_INBOUND -p tcp --dport 15000 -j RETURN
-A PROXY_INBOUND -p tcp -j PROXY_IN_REDIRECT
-A PREROUTING -p tcp -j PROXY_INBOUND
COMMIT
EOF
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
containers:
- name: dashboard-frontend
image: beclab/dashboard-frontend-v1:v0.2.20
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
- name: terminus-envoy-sidecar
image: bytetrade/envoy:v1.25.11
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- name: proxy-admin
containerPort: 15000
- name: proxy-inbound
containerPort: 15003
volumeMounts:
- name: terminus-sidecar-config
readOnly: true
mountPath: /etc/envoy/envoy.yaml
subPath: envoy.yaml
command:
- /usr/local/bin/envoy
- --log-level
- debug
- -c
- /etc/envoy/envoy.yaml
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: terminus-sidecar-config
configMap:
name: sidecar-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: dashboard-service
namespace: {{ .Release.Namespace }}
spec:
selector:
app: dashboard
type: ClusterIP
ports:
- protocol: TCP
name: dashboard
port: 80
targetPort: 80
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ApplicationPermission
metadata:
name: dashboard-vault
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: dashboard
appid: dashboard
key: {{ .Values.os.dashboard.appKey }}
secret: {{ .Values.os.dashboard.appSecret }}
permissions:
- dataType: secret
group: secret.infisical
ops:
- RetrieveSecret?workspace=dashboard
- CreateSecret?workspace=dashboard
- DeleteSecret?workspace=dashboard
- UpdateSecret?workspace=dashboard
- ListSecret?workspace=dashboard
version: v1
status:
state: active

View File

@@ -1,4 +1,3 @@
bfl:
nodeport: 30883
nodeport_ingress_http: 30083
@@ -18,10 +17,10 @@ docs:
desktop:
nodeport: 30180
os:
portfolio:
profile:
appKey: '${ks[0]}'
appSecret: test
vault:
studio:
appKey: '${ks[0]}'
appSecret: test
desktop:
@@ -39,5 +38,11 @@ os:
search2:
appKey: '${ks[0]}'
appSecret: test
settings:
appKey: '${ks[0]}'
appSecret: test
dashboard:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""
redis_password: ""

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: system
description: A Helm chart for kubesphere console
maintainers:
- name: bytetrade
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v3.3.0"

Some files were not shown because too many files have changed in this diff Show More