Compare commits

...

839 Commits

Author SHA1 Message Date
eball
ff85679c21 system-server: get user token from cookie in priority 2025-09-17 18:06:47 +08:00
eball
bdc90c4c09 authelia, systemserver: authenticate the request with public policy in rbac proxy (#1835) 2025-09-17 16:38:43 +08:00
wiy
472a461bd9 fix(system-frontend): settings backup bug (#1833) 2025-09-17 16:34:35 +08:00
lovehunter9
3b97326269 fix: files nginx and relative changed for improving (#1831)
* fix: files nginx and relative changed for improving

* fix: automatically number duplicate files and folders when copying
2025-09-17 14:42:25 +08:00
aby913
04e84a68c0 fix: files, settings forwarding configuration (#1832) 2025-09-16 23:51:53 +08:00
wiy
3fd82f150e feat(system-frontend): upgrade system frontend version to v1.4.29 (#1829)
* feat(system-frontend): upgrade system frontend version to v1.4.29

* Update notification_deploy.yaml

* fix source manager ui for market

* Optimize task lock contention in multi-user and multi-source environments

* feat(system-frontend): upload version to v1.4.30

---------

Co-authored-by: Sai <kldtks@live.com>
2025-09-16 23:51:22 +08:00
salt
851745f60c feat: refactor monitor (#1830)
Co-authored-by: ubuntu <you@example.com>
2025-09-16 21:22:09 +08:00
wiy
43f7b6533d feat(system-frontend): update olares-app version to v1.4.27 (#1824) 2025-09-15 11:36:44 +08:00
berg
de0c1dd9f4 feat: update system frontend version to v1.4.28 (#1828) 2025-09-15 00:20:42 +08:00
Meow33
a6407f12e1 Reset official link (#1826)
Change from https://one.olares.com to https://www.olares.com
2025-09-13 17:29:05 +08:00
0x7fffff92
7219cbab11 feat: Supports Google Drive, S3, and Dropbox cloud video playback (#1827)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-09-13 01:14:44 +08:00
Calvin W.
d3d6165f5b Replace larepass link (#1822) 2025-09-12 10:46:24 +08:00
eball
e91f3b56f1 systemserver: clean up user-service-provider.yaml and fix cookie path (#1825)
systemserver: Clean up user-service-provider.yaml and fix cookie path
2025-09-12 01:10:50 +08:00
aby913
3834e88367 fix: preview,delete,download files with special characters (#1823)
fix: preview, delete files with special characters
2025-09-12 00:32:26 +08:00
dkeven
764138452b fix(upgrade): add migration task from system-frontend to olares-app (#1821) 2025-09-12 00:31:37 +08:00
Meow33
f0223eff6a Update docs/zh/manual/larepass/private-network.md
Co-authored-by: Calvin W. <wenghao@bytetrade.io>
2025-09-11 21:34:15 +08:00
Meow33
4f3effb53e Update docs/zh/manual/larepass/index.md
Co-authored-by: Calvin W. <wenghao@bytetrade.io>
2025-09-11 21:33:58 +08:00
Meow33
fc655b5c32 Replace links of larepass and discord 2025-09-11 20:26:22 +08:00
Meow33
c4c8d614b6 Replace larepass link 2025-09-11 19:20:03 +08:00
berg
1d4e637900 market, settings: fix some ui bugs (#1820)
feat: update system frontend version to 1.4.26
2025-09-11 00:44:35 +08:00
eball
c570fd3204 settings, authelia, tapr: settings provider permission and cookie config bug (#1819)
* ci: bump version to 1.12.2

* fix: settings provider permission and cookie config bug

* fix: settings provider permission and cookie config bug
2025-09-11 00:42:39 +08:00
lovehunter9
81a8ca53fa fix: files image and pdf preview, and /api/mount response for choosing path (#1818)
* fix: files image and pdf preview, and /api/mount response for choosing path

* fix: upload to cloud progress, multi dup directories

* fix: upload to cloud and check dst exsts

---------

Co-authored-by: aby913 <aby913@163.com>
2025-09-11 00:42:19 +08:00
dkeven
4e08bf6d3f feat(cli): support installation on Debian 13 and remove no longer supported distros (#1817) 2025-09-11 00:41:32 +08:00
Meow33
93a20fa397 docs: update Developer Guide and Concepts sections in Olares (#1816)
* Content modification

1. Hide Recommendation
2. Update link of LLDAP
3. Update content of Service system

* Jump link reset

* Additional changes
2025-09-10 21:01:31 +08:00
eball
255af9e472 olares: bump version to 1.12.2 (#1815)
ci: bump version to 1.12.2
2025-09-10 14:05:13 +08:00
Calvin W.
fdf73c0b6c docs: update LarePass topics with new UI layout and upgrade process (#1809) 2025-09-10 13:28:02 +08:00
Calvin W.
e0f886b2b9 Update docs/manual/get-started/activate-olares.md
Co-authored-by: Meow33 <supermonkey03@163.com>
2025-09-10 11:05:00 +08:00
Calvin W.
decde7860b Apply suggestions from code review
Co-authored-by: Meow33 <supermonkey03@163.com>
2025-09-10 11:04:04 +08:00
wiy
d08f9ceb05 system-frontend, login: release new version to v1.4.25 (#1814) 2025-09-10 01:08:58 +08:00
Peng Peng
03e0aed624 fix(user-servce, notification): dump user-service and notification dep (#1813) 2025-09-10 01:08:27 +08:00
hysyeah
e6589f02c3 fix: disable suspend app feature when system high load (#1812) 2025-09-10 01:07:44 +08:00
lovehunter9
2c3964b15a fix: files smb_history req and resp bugfix (#1811) 2025-09-10 01:06:55 +08:00
salt
66e1055191 feat: search3 server memory optimzation (#1810)
Co-authored-by: ubuntu <you@example.com>
2025-09-10 01:05:52 +08:00
dkeven
e6153e1d57 feat(upgrade): adjust tasks of upgrader for version 1.12.1 (#1808) 2025-09-10 01:04:40 +08:00
cal-weng
bacc6b6517 add notes for start status 2025-09-09 17:50:34 +08:00
cal-weng
1a71ce2650 docs: update LarePass topics with new UI layout and upgrade process 2025-09-09 15:27:40 +08:00
wiy
07d8b20757 feat(system-frontend): release new version v1.4.24 (#1807) 2025-09-09 00:28:57 +08:00
aby913
ecb9de98ed fix: initialize keep file (#1806) 2025-09-09 00:28:25 +08:00
eball
ed2851fd0f authelia: do not save anonymous session (#1805) 2025-09-09 00:27:56 +08:00
hysyeah
4d9d566f75 app-service: fix pod inject error (#1804) 2025-09-09 00:27:12 +08:00
dkeven
c9962d1d19 feat(cli): create and set values of sharedlib path in MacOS (#1803) 2025-09-09 00:25:18 +08:00
salt
cb81cbe944 fix: fix monitor memory leak (#1801)
Co-authored-by: ubuntu <you@example.com>
2025-09-06 13:08:29 +08:00
wiy
5282626a7d feat(system-frontend): release new version to v1.4.23 (#1800)
* feat(system-frontend): release new version to v1.4.23

* feat: add headscale provider permission

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-09-05 22:58:26 +08:00
lovehunter9
fa0886c625 feat: files share models and basic apis (#1799)
* feat: files share models and base apis

* fix: upload file and dir to cloud

---------

Co-authored-by: aby913 <aby913@163.com>
2025-09-05 22:57:48 +08:00
hysyeah
29e44fc522 app-service,bfl,tapr: fix multi event send; set reverse proxy,citus,notificaton priority (#1798)
* app-service,bfl,tapr: fix multi event send; set reverse proxy,citus,notificaton priority

* fix: headscale, tailscale add system-cluster-critical priority
2025-09-05 21:56:43 +08:00
0x7fffff92
05bae3cf41 feat: update headscale api wrapper without using provider mechanism (#1797)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-09-05 21:56:15 +08:00
salt
fc0da7febe feat: search3monitor memory optimization (#1794)
* feat: search3monitor memory optimization

* feat: fallback search3 version

* feat: search3 and search3monitor both use v0.0.65

* feat: search3 memory, use dirty_decay_ms:0,muzzy_decay_ms:0

---------

Co-authored-by: ubuntu <you@example.com>
2025-09-05 21:55:22 +08:00
eball
38d3dcb3d4 fix: app provider bugs (#1796) 2025-09-05 02:07:15 +08:00
wiy
a6b97849b8 feat(system-frontend): add desktop notification (#1795)
feat(notification): add desktop notification
2025-09-05 02:06:38 +08:00
aby913
c40d7a8ee6 fix: sync duplicate file name (#1793) 2025-09-05 02:04:21 +08:00
hysyeah
69f24d8f2d fix: add system-cluster-critical to lldap,nats (#1792) 2025-09-05 02:03:55 +08:00
0x7fffff92
6f1992bcc1 feat: support most encoding settings (#1789)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-09-04 01:09:37 +08:00
wiy
2bf1de5491 feat: update system-frontend version to v1.4.21 (#1791)
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2025-09-04 01:09:01 +08:00
eball
c2a03c061b app-service: search provider in both installation and official market source (#1790) 2025-09-04 01:08:24 +08:00
Calvin W.
c4970b3673 docs: update vault topics (#1763)
* docs: update vault topics

* update steps for shared vault creating

* add en update for vault and related images

* fix format

* Add an image for creating vault
2025-09-03 21:10:15 +08:00
Calvin W.
ad6a680388 docs: add open source and commercial mode note on overview (#1788)
* docs: add open source and commercial mode note on overview

* fix format
2025-09-03 21:09:57 +08:00
aby913
e38f7bb6a9 fix(backup): remove hostNetwork (#1787) 2025-09-03 17:05:52 +08:00
aby913
8b103f0a37 refactor(files): task pause and resume (#1786)
* refactor(files): task pause and resume

* feat(system-frontend): release new version to v1.4.20

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-09-03 01:49:11 +08:00
lovehunter9
118ae24660 fix: files change some upload chunks req field from required to normal for compatible with LarePass (#1785) 2025-09-02 22:28:59 +08:00
dkeven
72a063cf23 refactor(cli): merge ks upgrade tasks into base upgrader (#1784) 2025-09-02 21:42:37 +08:00
dkeven
e266ee72e7 chore(app-service/image-service): update outdated dependencies to latest (#1783) 2025-09-02 21:41:58 +08:00
dkeven
46e9870609 fix(bfl): add hs512 as a valid signing method (#1781) 2025-09-02 21:41:26 +08:00
Pepijn Olivier
f1f3ac1217 Update readme: fix architecture link (#1782)
* Update README.md

* Update README_CN.md

* Update README_JP.md

* Update README.md

Co-authored-by: Calvin W. <wenghao@bytetrade.io>

---------

Co-authored-by: Calvin W. <wenghao@bytetrade.io>
2025-09-02 21:30:37 +08:00
Calvin W.
9743336af9 docs: rewrite ControlHub docs for better readability and usability (#1762)
* docs: rewrite ControlHub docs for better readability and usability

* add terminal doc and fix formats

* fix links

* update wording
2025-09-02 21:29:05 +08:00
CobraSoftware
f709cb95c8 Fixed url for multinode in the docs. (#1750)
* Fixed url for multinode in the docs.

* add code block format

* Update CN doc

---------

Co-authored-by: CobraSoftware <crane-tiny-parcel@duck.com>
Co-authored-by: Calvin W. <wenghao@bytetrade.io>
2025-09-02 21:28:41 +08:00
wiy
34098ac6a0 feat: update system frontend version to v1.4.19 (#1780)
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2025-09-02 00:26:04 +08:00
hysyeah
7f0b701cf0 app-service,ks: add sysVersion values; update ks third party lib (#1779) 2025-09-02 00:25:41 +08:00
lovehunter9
a17f8d6fed fix: files /api/resources empty response bug (#1778) 2025-09-02 00:25:01 +08:00
dkeven
f0f5c84498 chore(cli): clean up some unused code (#1777) 2025-09-02 00:24:35 +08:00
dependabot[bot]
a9263fba66 chore(deps-dev): bump mermaid from 11.9.0 to 11.10.1 in /docs (#1776)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.9.0 to 11.10.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.9.0...mermaid@11.10.1)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.10.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 00:23:56 +08:00
eball
bb23e4008b systemserver: create non-resource-url role privileges (#1775) 2025-09-02 00:23:22 +08:00
dependabot[bot]
5324ab2b73 chore(deps): bump helm.sh/helm/v3 from 3.18.4 to 3.18.5 in /cli (#1774)
Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.18.4 to 3.18.5.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](https://github.com/helm/helm/compare/v3.18.4...v3.18.5)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-version: 3.18.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 17:42:24 +08:00
dkeven
10d15a6018 fix(bfl): migrate from deprecated form3tech-oss/jwt-go to golang-jwt (#1773) 2025-09-01 17:41:34 +08:00
eball
b0a07e08d7 authelia: expired token not deleted (#1772) 2025-08-31 01:16:06 +08:00
Peng Peng
534a731227 Change to GNU Affero General Public License v3 (#1770) 2025-08-30 21:09:51 +08:00
lovehunter9
c0f47532fb feat: files http hertz recons (#1768)
Co-authored-by: Peng Peng <billpengpeng@gmail.com>
2025-08-30 21:06:48 +08:00
wiy
13c0234f8d feat(system-frontend): release new version to v1.4.18 (#1769) 2025-08-30 01:44:59 +08:00
yyh
1d84f1d436 fix(olares-apps): update Olares Apps icon (#1767) 2025-08-30 01:44:07 +08:00
eball
d5bbc1d32f systemserver: change user-backend service account namespace and privilege (#1766)
* systemserver: change user backend service account namespace and privilege

* fix: get token from user-backend

* fix: clear file node service bug

---------

Co-authored-by: aby913 <aby913@163.com>
2025-08-29 21:24:49 +08:00
salt
32313bff41 feat: refactor based on task (#1765)
Co-authored-by: ubuntu <you@example.com>
2025-08-29 21:23:54 +08:00
wiy
ddabce2df4 system-frontend, user-service: release new version (#1764) 2025-08-29 00:18:12 +08:00
eball
8044c88e5d system-server: fix rbac proxy bugs (#1761)
* system-server: fix rbac proxy bugs

* fix: add settings provider proxy

* fix: kubesphere sa token auth

* fix: gen vfs data

* feat(cli): add breaking change to upgrade KS core

* fix: use auth token to query account data

* fix: app-service envoy config bugs

---------

Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: dkeven <dkvvven@gmail.com>
Co-authored-by: aby913 <aby913@163.com>
2025-08-28 23:59:31 +08:00
eball
3dbb633fda system-server: refactor service provider based on RBAC (#1736)
* system-server: refactor service provider based on RBAC

* refactor: add files provider

* fix: numeric user name

* feat: provider and permission define

* refactor: backend service provider and permission

* refactor: change system frontend upstream to RBAC proxy

* revert: authelia-backend-svc

* fix: app-service entrance url api

* fix: market backend auth
2025-08-28 00:54:54 +08:00
dkeven
dd5e7bdd34 fix(cli): return original error after prompt (#1759) 2025-08-27 21:28:22 +08:00
Peng Peng
17942932c8 feat(daemon): Added an interface for querying the olaresName document and verifying the validity of the JWS. (#1756)
* feat(daemon):  Added an interface for querying the olaresName document and verifying the validity of the JWS.

* fix: restrict user-service nats permission (#1755)

* cli: Rename resolveDID to ResolveOlaresName (#1757)

* feat(daemon):  Added an interface for querying the olaresName document and verifying the validity of the JWS.

* fix: import module

---------

Co-authored-by: hysyeah <hysyeah@gmail.com>
Co-authored-by: eball <liuy102@hotmail.com>
2025-08-27 15:34:50 +08:00
eball
34318ee303 cli: Rename resolveDID to ResolveOlaresName (#1757) 2025-08-27 14:57:43 +08:00
hysyeah
1537ff9613 fix: restrict user-service nats permission (#1755) 2025-08-27 01:24:44 +08:00
Peng Peng
d8d858be63 feat: notification support application status change and system pressure change (#1753) 2025-08-26 21:51:27 +08:00
dkeven
ade0f4b77b fix(cli): explicitly set locale in etcd backup service (#1752) 2025-08-26 21:50:49 +08:00
eball
b401eb8485 authelia: support default subdomains of system frontend (#1749) 2025-08-26 01:13:46 +08:00
yyh
97768f082c fix(system-frontend): update system-frontend (#1748) 2025-08-26 00:46:19 +08:00
lovehunter9
d60f44e178 fix: files parse form bug & remove seahub & replace nginx for seafile (#1747)
* fix: files parse form bug & remove seahub & replace nginx for seafile

* ci: copy sync to cloud

---------

Co-authored-by: aby913 <aby913@163.com>
2025-08-26 00:45:47 +08:00
0x7fffff92
037de51e98 feat: support basic iGPU functions (#1746)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-08-25 21:17:01 +08:00
berg
3feff71488 system frontend: update version to v1.4.12 (#1742)
feat: update system frontend version to v1.4.12

Co-authored-by: qq815776412 <815776412@qq.com>
2025-08-25 21:16:37 +08:00
lovehunter9
a7368d4a78 feat: files hertz-thrift recons: all apis replaced (#1741)
feat: hertz-thrift recons: all apis replaced
2025-08-23 02:47:41 +08:00
hysyeah
c8ad615891 app-service,bfl,auth: merge multiple applications into one (#1740)
* app-service,bfl,auth: merge multiple applications into one

* fix: rename system app
2025-08-23 02:46:33 +08:00
aby913
2af5ca1494 ci(files): upload files to cloud (#1738) 2025-08-22 16:52:35 +08:00
berg
2870ba8510 system frontend: update system-frontend, chart repo and market backend version (#1737)
feat: update system-frontend, chart repo and market backend version
2025-08-22 00:17:48 +08:00
eball
245e794075 olaresd: add node pressure status (#1735) 2025-08-22 00:11:21 +08:00
dkeven
55c04e26d6 refactor(upgrade): remove path cmd & add spec/viable cmd for upgrade (#1734) 2025-08-22 00:10:39 +08:00
wiy
bf1911e3b4 feat(system-frontend): market support multi-source and fix some bugs (#1733)
feat: market support multi-source

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2025-08-21 00:28:58 +08:00
0x7fffff92
a3b709ef0c fix: play failed for some special characters (#1732)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-08-21 00:27:57 +08:00
dkeven
15335e8114 feat(cli): adjust local release command for release id (#1731) 2025-08-21 00:27:12 +08:00
eball
82ed4be5af notifications: remove redundant notification service (#1725) 2025-08-21 00:24:04 +08:00
dkeven
dab5a26b2b fix(ci): correct input source of release version in workflow (#1730) 2025-08-20 11:59:05 +08:00
dkeven
959a32b68f fix(ci): add missing param for release_id when uploading package (#1729) 2025-08-20 11:09:10 +08:00
hysyeah
c5215471b7 lldap: add some auth log (#1728) 2025-08-20 00:23:45 +08:00
dkeven
226eaeb9e7 chore(ci): remove unused md5 render step in release workflow (#1727) 2025-08-19 21:08:50 +08:00
0x7fffff92
9b85411fce feat: add cors (#1726)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-08-19 20:12:43 +08:00
dkeven
053a0d1b8e feat(ci): differentiate multiple releases of the same version (#1724) 2025-08-19 19:54:04 +08:00
eball
aa34dc4412 authelia: add priority class to auth frontend (#1723) 2025-08-19 16:02:26 +08:00
aby913
54155edbbf ci(files): paste task refactor (#1722)
ci: paste task
2025-08-19 00:57:06 +08:00
eball
a776efa62e fix: bump hami core version (#1721) 2025-08-19 00:56:42 +08:00
Calvin W.
ada4d129f6 docs: fix format issues and add notes for domain (#1720) 2025-08-18 21:52:47 +08:00
dkeven
dfb7c5bcc4 feat(cli): add option to skip collecting logs from kube-apiserver (#1719) 2025-08-18 21:46:51 +08:00
Peng Peng
a5b9696d16 feat(docs): update storage requirement (#1717)
feat: update storage requirement
2025-08-16 18:49:29 +08:00
wiy
1870859034 feat(system-frontend): fix system-frontend some bugs (#1715)
* feat(user-service): add /alluser/namespaces api

* feat(system-frontend): release system-frontend new version

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2025-08-16 01:22:23 +08:00
hysyeah
25854d1b14 ks,l4,bfl: remove unused code and vendor dir (#1714) 2025-08-16 01:21:34 +08:00
aby913
cfb4bf93be ci: cloud preview and download, code trimming (#1712)
* ci: cloud preview and download, code trimming

* ci: remove unused drives

* style: remove old watcher and external_watcher

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-08-16 01:20:55 +08:00
wiy
1571bd82d9 feat(vault-server): update vault support org (#1713) 2025-08-15 00:37:01 +08:00
hysyeah
324456b653 app-service, authelia: fix myapps app sort and authelia ttlcache panic bug (#1711) 2025-08-15 00:36:30 +08:00
Sai
b64e2bd19e feat:Improve the speed of market processing applications (#1710)
Improve the speed of market processing applications
2025-08-15 00:36:07 +08:00
lovehunter9
b49b59e07c fix: cloud move delete and fix a bug because of mkdir for copy and upload (#1708) 2025-08-14 01:00:09 +08:00
dkeven
5dcb0ee7e9 fix(cli): skip failed & deleting users when upgrading (#1705) 2025-08-14 00:59:39 +08:00
dkeven
37b9afe7d5 fix(manifest): add missing condition for sharedlib vol in files (#1704) 2025-08-14 00:59:00 +08:00
Calvin W.
9219fca0ad docs: update custom domain binding for apps (#1706) 2025-08-13 21:31:01 +08:00
wiy
9dd72f2c42 feat(system-frontend): update system-frontend new version (#1702) 2025-08-13 00:13:15 +08:00
hysyeah
9227d9f04e authelia,lldap: group operation api and event publish (#1701)
* authelia,lldap: group operation api and event publish

* fix: add env for os.groups
2025-08-13 00:12:33 +08:00
aby913
41e701b929 ci(files): fix sync rename and copy, cloud copy and integration (#1700) 2025-08-13 00:11:26 +08:00
aby913
7503eb7f42 ci(files): rename, create file and copy with rclone (#1698)
* ci(files): rename, create file and copy with rclone

* feat: sync rename, batch copy & move, copy/move

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-08-12 00:31:03 +08:00
wiy
0b84f278af feat(system-frontend): update system-frontend and wizard new version (#1697) 2025-08-12 00:30:38 +08:00
hysyeah
62cec2de53 fix: remove values for redis (#1696) 2025-08-12 00:30:07 +08:00
dkeven
ad183f05ce chore: get rid of unused values & ops related to ks redis (#1695) 2025-08-12 00:29:28 +08:00
CobraSoftware
8dea896a28 feat(testing‑mode): allow installation on unsupported OS + ignore build artifacts (#1673)
This commit included updated code to add a
developer mode allowing installation on an
unsupported os. Some of the code was made
by Chatgpt.

Co-authored-by: Cobra Software <crane-tiny-parcel@duck.com>
2025-08-11 11:32:40 +08:00
dependabot[bot]
b62a264c38 chore(deps): bump dompurify and mermaid in /docs (#1694)
Bumps [dompurify](https://github.com/cure53/DOMPurify) to 3.2.6 and updates ancestor dependency [mermaid](https://github.com/mermaid-js/mermaid). These dependencies need to be updated together.


Updates `dompurify` from 3.1.6 to 3.2.6
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.6...3.2.6)

Updates `mermaid` from 10.9.3 to 11.9.0
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/v10.9.3...mermaid@11.9.0)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.2.6
  dependency-type: indirect
- dependency-name: mermaid
  dependency-version: 11.9.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 15:07:47 +08:00
hysyeah
a030b047b4 app-service, l4, bfl: support creator cli (#1693) 2025-08-09 00:22:29 +08:00
eball
86083ce63c authelia: send the cookie of an ephemeral user to subdomain (#1692) 2025-08-09 00:22:07 +08:00
dkeven
ab0ba8fde6 feat(cli): add commands to manage users (#1691) 2025-08-08 21:27:21 +08:00
hysyeah
a6c44cf29e app-service, cli: queued request; remove ks redis (#1690)
* app-service, cli: queued request; remove ks redis

* fix: omit redis deploy

* fix: rm redis secret from ks-apiserver
2025-08-08 01:48:31 +08:00
Calvin W.
dda43a49ae docs: fix link on dochome and remove dev badge (#1689) 2025-08-07 12:20:06 +08:00
lovehunter9
cad4c09cd4 feat: seahub init and old username migration (#1688) 2025-08-07 01:30:48 +08:00
Sai
0a39b03fbb fix: update check condition for failed task in chart repo (#1686)
update check condition for failed task
2025-08-06 20:44:21 +08:00
dependabot[bot]
b1c525d0dc chore(deps): bump github.com/gofiber/fiber/v2 from 2.52.5 to 2.52.9 in /daemon (#1684)
chore(deps): bump github.com/gofiber/fiber/v2 in /daemon

Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.52.5 to 2.52.9.
- [Release notes](https://github.com/gofiber/fiber/releases)
- [Commits](https://github.com/gofiber/fiber/compare/v2.52.5...v2.52.9)

---
updated-dependencies:
- dependency-name: github.com/gofiber/fiber/v2
  dependency-version: 2.52.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-06 20:43:49 +08:00
Calvin W.
2b45ef7bcf docs: expose other installation methods (#1685)
* docs: expose other installation methods

* fix case in manifest
2025-08-06 14:59:05 +08:00
aby913
060d57a2b9 ci: integrate rclone, seahub replace (#1683)
* feat: files replace seahub part 1

* ci(files): integrate rclone, seahub part replace

---------

Co-authored-by: lovehunter9 <wangrx07@aliyun.com>
2025-08-06 11:02:31 +08:00
hysyeah
496ed1c6fb fix: sync users group error (#1682) 2025-08-05 21:40:17 +08:00
dkeven
4c912e1485 chore(cli): remove any call to ulimit that has no effect (#1680) 2025-08-05 21:26:38 +08:00
dkeven
c313982033 fix(ci): copy built script to correct path (#1681) 2025-08-05 17:18:14 +08:00
dkeven
83e070761c fix(cli): create symlink to sysconf if none exists (#1679) 2025-08-05 15:44:42 +08:00
salt
beed97f704 feat: refactor based on fileparam (#1675)
Co-authored-by: ubuntu <you@example.com>
2025-08-05 11:06:40 +08:00
berg
116fa8df72 system-frontend: update system frontend version to v1.3.126 (#1678)
feat: update system frontend version to v1.3.126
2025-08-05 11:06:17 +08:00
hysyeah
7fa1f093ed app-service: set concurrent downloads to 1 (#1677)
app-service: set concurent downloads to 1
2025-08-04 21:57:15 +08:00
Sai
65ca835684 fix: entrance url matching error in market (#1676)
fix URL matching error
2025-08-04 15:53:29 +08:00
eball
fd4b0e3a92 daemon: fix checking if ip changed bug (#1674)
* daemon: fix checking if ip changed bug

* fix: check master ip bug
2025-08-04 13:31:08 +08:00
berg
1ec300360c system frontend: update version to v1.3.124 (#1672)
* feat: update system frontend to v1.3.124

* feat(dashboard): update hami webui request to user-service

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-08-02 00:00:55 +08:00
hysyeah
fc0781580e fix: v2 upgrade and cs chart render (#1671)
fix: v2 upgrade; cs chart render
2025-08-01 20:40:15 +08:00
Calvin W.
88bff41d83 docs: add a note for custom domain hosting (#1669) 2025-08-01 20:29:28 +08:00
dkeven
7d758befde fix(cli): lift the constraint on version level in upgrade (#1666) 2025-08-01 19:48:14 +08:00
eball
a8e074bec1 daemon: fix recreate download-cert job bug (#1668) 2025-08-01 16:05:51 +08:00
Sai
12302696c8 fix: nats message concurrent (#1667)
fix nats message concurrent
2025-08-01 14:33:14 +08:00
eball
3edef07ebe authelia: ignore error when app policies reloading (#1665) 2025-08-01 00:47:14 +08:00
wiy
170492b733 feat(system-frontend): release new version to fix some bugs (#1664) 2025-07-31 23:08:08 +08:00
hysyeah
b5f2d4baa5 fix: use new files api to delete app cache dir (#1659)
* fix: use new files api to delete app cache dir

* fix: user create pending;entrance state update missing
2025-07-31 23:04:31 +08:00
dkeven
358dc9a957 fix(cli): installation on MacOS using minikube (#1661) 2025-07-31 22:37:06 +08:00
dkeven
c6cf22f3a2 fix(ci): correct path to release joincluster script (#1660) 2025-07-31 22:35:17 +08:00
eball
cd6d502f4a cli: add a command of olares-cli to show full system info (#1658)
* feat: add show all info

* fix: add a wsl info

* Update main.go
2025-07-31 22:32:40 +08:00
Calvin W.
0b05f33f52 docs: update Market doc with latest enhancements (#1662) 2025-07-31 22:28:37 +08:00
Calvin W.
995f03ea7b docs: hide sync and cloud storage feature for optimization (#1663) 2025-07-31 22:28:22 +08:00
aby913
c4ed5c6d15 fix(backup): check wise installed (#1656) 2025-07-31 16:50:25 +08:00
hysyeah
992a2bd343 app-service: fix downloading limit;user create failed bug (#1657) 2025-07-31 16:49:52 +08:00
wiy
f8205f0b7a wizard,login: fix compare olares version error (#1655) 2025-07-31 14:13:16 +08:00
Sai
121a8009ea fix: nats upversion to 1.44.0 for market (#1654)
nats upversion to 1.44.0
2025-07-31 13:58:21 +08:00
dkeven
d6dff36e35 feat(upgrade): lift constraint in version.hint (#1653) 2025-07-31 12:40:48 +08:00
berg
8913e10e7b feat(system-frontend): update system-frontend new version (#1652)
* feat(system-frontend): update system-frontend new version

* feat(user-service): add cookie provider

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-07-31 00:12:18 +08:00
dkeven
faa655f928 feat(cli): fallback target to current cli version for both release line (#1651) 2025-07-31 00:10:01 +08:00
Sai
df6d9c440d fix: market render chart for multiple admin (#1650)
fix multiple admin
2025-07-31 00:07:44 +08:00
eball
1f2fd0619f ci: bump version to 1.12.1 (#1648) 2025-07-30 21:30:35 +08:00
Calvin W.
9dbb52dedc docs: batch update images and outdated info for Settings (#1649)
* docs: batch update images and outdated info for Settings

* fix links
2025-07-30 21:20:29 +08:00
Calvin W.
a08c8129ab docs: update dashboard doc for 1.12 (#1618)
* docs: update dashboard doc for 1.12

* update latest UI screenshots for dashboards
2025-07-30 21:20:17 +08:00
eball
fe86ef0190 Update release.yaml 2025-07-30 20:48:40 +08:00
eball
ba13d6092b hami: sync hami-core 2.6.0 (#1646) 2025-07-30 20:05:42 +08:00
dkeven
8180024d6d fix(upgrade): split olares version update and upgrade of settings chart (#1647)
* fix(upgrade): split olares version update and upgrade of settings chart

* feat: upgrade l4-proxy image to v0.3.2

* fix: update appservice tag

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-07-30 20:04:46 +08:00
dkeven
c05f82c4bb fix(cli): trucate file before untar (#1644) 2025-07-30 13:52:30 +08:00
Calvin W.
604b2191ce docs: optimize doc structure to fix redundant or out-dated topics (#1643)
* docs: update readme structure

* revert format change

* add personal cloud image for jp

* docs: optimize toc to remove redundant content

* Revert wrong pull
2025-07-30 13:44:01 +08:00
hysyeah
518d2a41ea app-service: fix user sync error (#1639)
* app-service: fix user sync error

* fix: update app-service tag

* Update appservice_deploy.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-07-30 02:56:23 +08:00
berg
bf292e2f55 feat: update system frontend and user service version (#1642) 2025-07-30 01:15:17 +08:00
eball
896c6d76f9 cli: fix the installation in oic on Windows (#1636) 2025-07-30 01:14:00 +08:00
Calvin W.
ee4655d991 docs: update screenshots for GPU management (#1641) 2025-07-29 21:33:24 +08:00
Calvin W.
261bf0f9e0 docs: update the new upgrade process using LarePass (#1640)
* docs: update the new upgrade process using LarePass

* optimize images
2025-07-29 21:33:19 +08:00
dkeven
48776c32bf fix(upgrade): switch upgrader for 0728 to 0729 (#1638) 2025-07-29 13:51:16 +08:00
dkeven
9bbf270eb3 fix(gpu): revert buggy code change from upstream (#1637) 2025-07-29 13:50:50 +08:00
eball
bab83ed0b3 Update release-daily.yaml 2025-07-29 10:03:37 +08:00
wiy
62faa3e3b7 system-frontend,user-service: remove studio from system-frontend and fix some bugs (#1635)
* system-frontend,user-service: remove studio from system-frontend and fix some bugs

* fix: remove studio server

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-07-29 00:26:54 +08:00
hysyeah
e9346f04c1 sys-event: fix publish user resource usage error (#1634) 2025-07-29 00:25:57 +08:00
dkeven
1df5121a4e feat(upgrade): add upgrade tasks for K3s and GPU plugin (#1633)
* feat: add task to upgrade k3s

* feat: add task to upgrade GPU plugin
2025-07-29 00:25:30 +08:00
dkeven
2ecfc976d7 fix(gpu): update hami version to avoid nil pointer panic (#1632) 2025-07-29 00:24:54 +08:00
Sai
c38e00a825 fix: market service bug in 0.4.13 (#1631)
fix bugs
- after account create, chart repo miss notify
- i18n data in app data
- rebuild app info when chart repo restart
- entrances, options data
2025-07-29 00:24:21 +08:00
Calvin W.
8c801b8392 docs: update user management docs (#1630) 2025-07-29 00:23:44 +08:00
dkeven
eaceeef30b feat: upgrade Kubernetes to v1.33.3 (#1629) 2025-07-29 00:23:11 +08:00
dkeven
339b375a89 fix(upgrade): wait for user to finish activation before upgrading (#1628) 2025-07-29 00:22:33 +08:00
salt
b5b9d19bc3 feat: add producer, consumer watch (#1627)
Co-authored-by: ubuntu <you@example.com>
2025-07-27 01:53:13 +08:00
wiy
0bcb2cd893 system-frontend: fix 1.12 files some bugs (#1626)
* feat(system-frontend): release new version to fix some bugs

* fix(system-frontend): fix some system-frontend bugs
2025-07-27 01:52:44 +08:00
aby913
2b46e87baa fix(backup): nats service check (#1625) 2025-07-26 00:28:43 +08:00
hysyeah
d0351aed9c node_exporter, app-service: exclude virtual disk like qemu;use new chart repo;set values fs_type (#1624)
node_exporter: exclude virtual disk like qemu;use new chart repo;set values fs_type
2025-07-26 00:28:08 +08:00
dkeven
021338b4b7 feat(daemon): make upgrade download progress more smooth (#1623) 2025-07-25 20:49:45 +08:00
eball
d374133dd4 lldap, authelia: sign a 2fa token from lldap after larepass signed (#1622) 2025-07-25 20:48:49 +08:00
dkeven
c330589424 feat(cli): inject rootfs type to global envs (#1620) 2025-07-25 20:47:07 +08:00
dkeven
a690b5a852 fix(ci): specify arch variant in goreleaser override config (#1621) 2025-07-25 17:50:32 +08:00
dkeven
abc6bc01a6 feat(gpu): force out app exclusively bound to GPU (#1619) 2025-07-25 17:49:23 +08:00
eball
a0513a8e6f fix: self-signed certificate with a long expiration (#1614)
* fix: self-signed certificate with a long expiration

* Update auth_backend_deploy.yaml
2025-07-25 00:36:11 +08:00
wiy
b61a3233bb notification-api,user-service,system-frontend: fix notification error & fix system-frontend bugs (#1617) 2025-07-25 00:16:41 +08:00
hysyeah
5b3072dc6f app-service: fix somebug and optimize image download speed (#1616)
app-service: optimize image download speed
2025-07-25 00:16:04 +08:00
dkeven
2cc580a453 feat(daemon): add API to confirm upgrade after download (#1615) 2025-07-25 00:05:18 +08:00
Sai
3e63c3f34c feat:add dynamic chart repository (#1613)
* add dynamic chart repository

* add image info to api install

* add entrance info in app data
2025-07-25 00:04:35 +08:00
dkeven
d80fbfb5e5 fix(cli): make the timer for renewing K8s certs persistent (#1612) 2025-07-25 00:03:29 +08:00
dkeven
cea8f8bd1b refactor(ci): merge archs in olaresd's goreleaser config (#1611) 2025-07-24 18:01:52 +08:00
dkeven
7cce5ec761 fix(daemon): optimize disk space and node health check before upgrade (#1610) 2025-07-24 15:55:43 +08:00
dkeven
b705bb0814 feat(cli): download wizard from different vendor path (#1609) 2025-07-24 15:55:21 +08:00
eball
7fcfb2139b Update deps-manifest.sh 2025-07-24 12:11:04 +08:00
eball
f267639a82 Update build.sh 2025-07-24 11:59:25 +08:00
eball
42a10225cc Update build.sh 2025-07-24 11:42:29 +08:00
eball
39e3d453e2 bfl, authelia: fix internal mode and get real ip (#1608) 2025-07-24 00:53:50 +08:00
hysyeah
96334c89af app-service,user-service: fix wehbook,uninstall bug; user-service nats auth error (#1607) 2025-07-24 00:52:51 +08:00
0x7fffff92
eb774e6e06 fix: make the affinity rule strict for tailscale (#1606)
fix: requires tailscale and headscale to run on the same node

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-07-24 00:52:11 +08:00
aby913
8be967ebf3 fix(backup): wise svc upgrade (#1605) 2025-07-24 00:51:33 +08:00
yyh
8f2a98745a fix(monitoring-server): update monitoring server role management (#1604) 2025-07-24 00:51:08 +08:00
dkeven
e7303b0554 feat: upgrade containerd to v2.1.3 (#1603) 2025-07-24 00:50:35 +08:00
Peng Peng
9aee9453fc notification,user-service,wizard: update notification (#1602)
* feat(notification): update notification to support sign second verification on LarePass

* system-frontend,wizard,user-service: fix some bugs and user-service update notification

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-07-24 00:47:39 +08:00
Calvin W.
c480beb4de docs: update screenshots for install wizards and login (#1600)
* docs: update screenshots for install wizards and login

* optimize images
2025-07-23 19:31:51 +08:00
eball
8998dd48cf tapr: add the svc of postgres for the shared system app (#1599)
tapr: add the svc of the postgres for the shared system app
2025-07-23 19:31:04 +08:00
hysyeah
ed3713bd37 app-service: support v2 install;operate app by crd;user event publish to nats (#1597) 2025-07-23 00:57:30 +08:00
wiy
47bd343c6b vault-server,vault-admin,system-frontend: update system-frontend some bugs (#1596) 2025-07-23 00:56:57 +08:00
aby913
931f2992f4 fix(backup): add check disk space (#1595) 2025-07-23 00:56:27 +08:00
aby913
b3d8a2e718 fix(files): update global external data on mount (#1594) 2025-07-23 00:56:02 +08:00
eball
0e2a5d7c0e bfl: add files api routing to settings (#1593) 2025-07-23 00:55:29 +08:00
dkeven
3035453f8c feat: add vendor type to olares-cli/olaresd (#1592) 2025-07-23 00:55:01 +08:00
eball
267d92607c hami: fix null poimter in hami-core 2025-07-22 23:05:31 +08:00
dkeven
dce43cd081 fix(daemon): do not set download state again after completion (#1591) 2025-07-22 21:33:34 +08:00
salt
3826c64e48 fix: fix inotify race (#1590)
Co-authored-by: ubuntu <you@example.com>
2025-07-22 21:32:55 +08:00
dkeven
e398150e01 fix(daemon): do not clear upgrade state file when upgrading is in progress (#1589) 2025-07-22 21:32:28 +08:00
eball
694c472aad app-service: add workflow label to the namespace of workeflow (#1588) 2025-07-22 01:18:18 +08:00
eball
62db7fe18a bfl: remove token auth from ingress (#1587) 2025-07-22 00:24:07 +08:00
wiy
7e1674aa77 system-frontend&files-server: release new version to fix some bugs (#1586)
* feat(system-frontend): update system-frontend new version

* fix(files): add master node info

* feat(search): update search3 version to v0.0.59

---------

Co-authored-by: aby913 <aby913@163.com>
2025-07-22 00:23:30 +08:00
hysyeah
72d804b0c9 authelia, lldap: fix login failed after reset password within one second (#1585) 2025-07-22 00:23:02 +08:00
dkeven
a91b20b7a0 feat(daemon): optimize and add new params to the upgrade feature (#1584) 2025-07-22 00:22:38 +08:00
Peng Peng
fa92825ce9 feat: add intent sub pub on market and user-service (#1583)
* feat: add intent sub pub on market and user-service

* Update system-frontend.yaml
2025-07-20 22:03:07 +08:00
dkeven
0e04f416d7 Revert "feat(ci): retrieve and save uncompressed size of layers in image manifest (#1570) (#1582)
Revert "feat(ci): retrieve and save uncompressed size of layers in image manifest (#1570)"

This reverts commit d4a1a44e39.
2025-07-20 22:02:07 +08:00
Peng Peng
e43055b0f3 feat(docs): Remove knowledge, rsshub and argowoflow infomation from Readme (#1581)
Update README.md
2025-07-20 22:01:34 +08:00
Peng Peng
f918614bd2 feat: add notification support (#1579)
* feat: add notification support

* Update system-frontend.yaml

* Update check.yaml

* Update check.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-07-20 00:21:26 +08:00
eball
12f19b7d46 app-service: add runAsInternal option and multi-admin supported in v1 package (#1576)
app-service: add runAsInternal option and v1 package multi-admin supported
2025-07-19 12:14:17 +08:00
berg
5c8f3ea2ff system-frontend: move socket to sharedworker and fix some ui bugs (#1578)
* feat: update system-frontend version

* feat: update version
2025-07-19 09:27:24 +08:00
aby913
9b7635f244 fix(backup): replace node name for External path (#1577) 2025-07-19 09:26:52 +08:00
dkeven
a949e317ac perf(ci): use skopeo to upload image archive to cdn (#1572) 2025-07-19 09:26:24 +08:00
0x7fffff92
f362396514 fix: nftables only for owner (#1571)
* fix: nftables only for owner

* typo

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-07-19 09:25:55 +08:00
dkeven
d4a1a44e39 feat(ci): retrieve and save uncompressed size of layers in image manifest (#1570) 2025-07-19 09:23:38 +08:00
Peng Peng
95fdffb24f feat(docs): update config to support search (#1573) 2025-07-18 21:52:25 +08:00
wiy
4c72114a4d dashboard&settings&desktop&backup&user-service: fix some bugs and add backup nats message (#1569)
* fix(backup): use nats to push messages

* feat: update user-service version and support backup nas

* dashboard&desktop&settings: fix some bugs

---------

Co-authored-by: aby913 <aby913@163.com>
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2025-07-18 00:42:04 +08:00
dkeven
e28371551b feat(gpu): update metrics API for HAMi-WebUI and library for HAMi (#1568) 2025-07-18 00:41:21 +08:00
hysyeah
ef01c331e9 app-service, lldap: fix admin reset password;refresh token expiry (#1567) 2025-07-18 00:40:33 +08:00
dkeven
40b29d12d6 feat(ci): record cdn object file size in manifest (#1566) 2025-07-18 00:39:51 +08:00
dkeven
506bd3bc1d fix(daemon): filter out invalid IPs when getting host IP (#1563)
* fix(daemon): filter out invalid IPs when getting host IP

* fix: node ip check bug

* fix: remove log

* fix: check master node

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-07-18 00:37:38 +08:00
dkeven
9d097f77b1 feat(cli): adjust release line constraint and output order of upgrade path command (#1561)
* fix(cli): consider alpha & beta as release version on main line

* fix(cli): dont allow upgrade commands with incompatible base & cli release line

* feat(cli): support order sort option for upgrade path command
2025-07-18 00:36:57 +08:00
Calvin W.
a71b536a80 Docs: revert search provider to agolia (#1564)
* docs: revert search mode to agolia and fix formats

* update repo link

* update style reference page link
2025-07-17 15:22:30 +08:00
Calvin W.
8eb2d86f56 docs: fix use case link on main (#1565) 2025-07-17 15:22:06 +08:00
Calvin W.
ea0404fe2b docs: add readme for docs repo (#1562)
* docs: add readme for docs repo

* fix sentence style heading

* change search provider to local
2025-07-17 14:37:07 +08:00
Peng Peng
af8e3b172c feat: add docs to main (#1559) 2025-07-17 11:58:59 +08:00
wiy
e00018de59 system-frontend&market: release new version (#1558)
* feat: update market backend version

* feat(system-frontend): update system-frontend new version

---------

Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
2025-07-17 01:06:27 +08:00
hysyeah
6bba107fdd app-service: correct entrance status;workflow install (#1557) 2025-07-16 23:45:16 +08:00
dkeven
ffb96bcbfc fix(cli): check emptiness of user and domain before write release file (#1556) 2025-07-16 23:44:34 +08:00
salt
a6e4a73af2 fix: get ctime error (#1555)
Co-authored-by: ubuntu <you@example.com>
2025-07-16 23:43:48 +08:00
dkeven
61d3dedbfd fix(cli): bump helm version to v3.18.4 (#1554) 2025-07-16 19:04:30 +08:00
hysyeah
962e251691 bfl, studio, tapr, authelia: fit new user owner role (#1551)
* bfl, studio, tapr: fit new user owner role

* fix: tailscale index

* fix: l4 proxy version
2025-07-16 01:10:05 +08:00
eball
b37adf2521 daemon: change api cors module and signature validating (#1552) 2025-07-16 00:09:07 +08:00
salt
460603ae69 fix: invalid path clean watch error (#1550)
Update search3_server_deploy.yaml
2025-07-16 00:08:33 +08:00
lovehunter9
1197860c29 fix: files sync paste dir out bug (#1549) 2025-07-16 00:07:39 +08:00
dkeven
417c4b520b fix(cli): make sure hostname resolvable before running olaresd (#1548) 2025-07-16 00:06:47 +08:00
eball
e1fa887e6c bfl: change ingress default domain (#1547) 2025-07-16 00:06:10 +08:00
dkeven
b2e84cfd21 cli(refactor): new structure for upgrade (#1546) 2025-07-16 00:05:09 +08:00
wiy
e8f0054b4f fix(user-service): config redis host error (#1545)
* fix(user-service): config redis host error

* feat(user-service): update user password
fix(wizard): Fixed the issue of sub-account activation failure
feat(vault-server): update get olares name timeout to 60s
2025-07-16 00:04:22 +08:00
eball
cd6c89f724 Update checkjws.go 2025-07-15 22:21:12 +08:00
eball
3d3d85ca3e Update checkjws.go 2025-07-15 22:05:44 +08:00
wiy
058cf31e44 system-frontend&user-service: update user-service & system-frontend new version (#1544)
* feat(user-service): update dataStore use redis

* feat(wise): remove from system-frontend
fix(settings): some bugs
fix(files): some bugs

* knowledge: remove knowledge, rss, argo

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-07-15 00:39:01 +08:00
hysyeah
72a5b2c6a2 app-service, bfl, cli, authelia,kubesphere: support create user from user cr (#1543)
* app-service, bfl, cli, authelia,kubesphere: support create user by cr

* fix: rm kubesphere-monitoring-federated ns
2025-07-14 23:48:53 +08:00
eball
f78890b01b otel: disable telemetry by default (#1542) 2025-07-14 23:48:18 +08:00
eball
13df294653 olaresd: refactor api server (#1541) 2025-07-14 23:47:55 +08:00
0x7fffff92
2af86e161a fix(headscale): Make the Affinity Rule Strict (#1540)
* fix(headscale): Make the Affinity Rule Strict

* fix(headscale): make ci happy

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-07-14 23:47:25 +08:00
aby913
ee567c270c fix(files): external delete (#1539)
* fix(files): external delete

* login & system-frontend: update login and system-frontend new version

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-07-12 00:23:59 +08:00
hysyeah
4246bcce06 fix: simplify nat permission request (#1538) 2025-07-12 00:23:10 +08:00
eball
fb73d62bd5 bfl: change unmount-api of file-server (#1537) 2025-07-12 00:22:27 +08:00
eball
209f0d15e3 authelia: send notification in user login phase (#1536)
* authelia: send notification in user login phase

* fix: set cookie nil

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-07-12 00:21:48 +08:00
dkeven
78911d44cf feat(gpu): add more metrics in GPU monitor API (#1535) 2025-07-12 00:20:41 +08:00
salt
d964c33c2d feat: Chinese uses both single-character segmentation and word segmen… (#1534)
feat: Chinese uses both single-character segmentation and word segmentation. Word segmentation is used for easier sorting.

Co-authored-by: ubuntu <you@example.com>
2025-07-11 22:00:14 +08:00
salt
2b54795e10 fix: waiting... Both uppercase and lowercase letters can be searched, include special token (#1533)
fix: Both uppercase and lowercase letters can be searched, and special characters can be searched as well.'

Co-authored-by: ubuntu <you@example.com>
2025-07-11 13:20:31 +08:00
aby913
efb4be4fcf fix(files): deletion and other fixes (#1532)
* fix(files): deletion and other fixes

* feat(files & marker): update files and market new version

* feat: update market worker count

* Update bfl_deploy.yaml

---------

Co-authored-by: qq815776412 <815776412@qq.com>
Co-authored-by: icebergtsn <zyh2433219116@gmail.com>
Co-authored-by: eball <liuy102@hotmail.com>
2025-07-11 00:35:46 +08:00
simon
89575096ba feat(knowledge): knowledge & download refactor (#1531)
* knowledge

* knowledge
2025-07-10 21:36:30 +08:00
dkeven
5edba60295 fix(cli): remove state files of olaresd when uninstalling (#1530) 2025-07-10 16:12:23 +08:00
eball
1aecc3495a ci: add a parameter of the code repository (#1529)
* ci: add a parameter of the code repository

* fix: file name bug

* refactor(cli): adjust local release command for vendor repo path

---------

Co-authored-by: dkeven <dkvvven@gmail.com>
2025-07-10 16:11:03 +08:00
salt
2d5c1fc484 feat: hybrid unigram search for title (#1528)
Co-authored-by: ubuntu <you@example.com>
2025-07-09 23:20:44 +08:00
hysyeah
81355f4a1c authelia: send login message to os.users.<olaresid> (#1527) 2025-07-09 23:20:13 +08:00
lovehunter9
2c4e9fb835 feat: seafile add support for avi, wmv, mkv, flv, rmvb (#1526) 2025-07-09 23:19:32 +08:00
dkeven
4947538e68 fix(daemon): apply filters correctly when listing users (#1525) 2025-07-09 23:18:39 +08:00
Peng Peng
21bb10b72b Revert "gpu: refactor gpu scheduler with cpp (#1475)"
This reverts commit ae3e4e6bb9.
2025-07-09 13:26:41 +08:00
wiy
8064c591f2 feat(files): files supports multiple nodes (#1524)
* feat(system-frontend): update files supports multiple nodes

* feat: add files routing gateway

* feat(media-server): surpport for multiple nodes

* feat(files): update files supports multiple nodes

---------

Co-authored-by: eball <liuy102@hotmail.com>
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
Co-authored-by: aby913 <aby913@163.com>
2025-07-08 23:11:41 +08:00
Calvin W.
1073575a1d docs: add readmes for Olares components (#1522)
* docs: add readmes for Olares components

* merge with latest upstream
2025-07-08 21:34:05 +08:00
dkeven
4cf977f6df fix(ci): specify repo when checkout code for PR (#1523) 2025-07-08 17:53:46 +08:00
hysyeah
0dda3811c7 bfl, authelia, lldap: change access-token expiry duration, support refresh and revoke user token (#1521)
bfl, authelia, lldap: change access-token expiry duration and support refresh;revoke user token after reset password
2025-07-08 00:03:59 +08:00
hysyeah
2632b45fc2 bfl, app-service, system-frontend/dashboard: remove analytics (#1520)
* bfl, app-service: remove analytics

* fix(system-frontend): remove dashboard analytics

* fix(system-frontend): update system-frontend version

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2025-07-08 00:03:11 +08:00
berg
ae3f3d6a20 market: v1.12 new category and fix some bugs. (#1518)
feat: v1.12 new category and fix some bugs.
2025-07-05 00:55:37 +08:00
eball
4f3b824f48 authelia: update oidc cert (#1516) 2025-07-05 00:54:44 +08:00
hysyeah
9efa6df969 tapr: add default perm for nats subject (#1515)
fix: add default perm for nats subject
2025-07-05 00:54:01 +08:00
dkeven
045dfc11bc perf(ci): ignore more archs when releasing cli (#1514)
* perf(ci): ignore more archs when releasing cli

* Update auth_backend_deploy.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-07-04 18:45:36 +08:00
hysyeah
9913d29f81 studio-server: move studio server to os-framework (#1513) 2025-07-04 00:42:39 +08:00
berg
0ccf091aff market, settings: fix the problem of theme settings & settings apps status & market terminusInfo error (#1512)
feat: update market frontend and backend version
2025-07-04 00:41:54 +08:00
dkeven
01f3b27b8c feat(upgrade): update sysconf for specific versions (#1511) 2025-07-04 00:41:12 +08:00
dkeven
475faafec4 fix(cli): clear upgrade-related state files when uninstalling (#1510) 2025-07-03 21:01:07 +08:00
berg
31ab286a4b market, profile: fix display error in avatar selector's image list and clear market data when terminusId changed (#1509)
feat: update market frontend and backend version
2025-07-03 00:51:40 +08:00
eball
c9b4a40a1c olares: refactor installation manifest (#1508)
* olares: refactor installation manifest

* fix: file name typo

* fix: add http accept header

* fix: bug

* fix: bug

* fix: import json
2025-07-03 00:50:09 +08:00
simon
da19d00d08 fix(download): fix download task operation & reduce youtube API requests (#1507)
download
2025-07-02 21:49:49 +08:00
dkeven
49d233a55b fix(cli): also update local reserved ports when modifying sysconf (#1506) 2025-07-02 21:49:23 +08:00
dkeven
300aaa0753 fix(daemon): handle empty pid files when check process running (#1505) 2025-07-02 21:48:56 +08:00
berg
962b220440 market: add local chart upload socket event & update menu and add search function (#1504)
* fix: omit to gen entrance url before active

* feat: update market frontend and backend version

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-07-01 23:44:31 +08:00
salt
4da25bca36 fix: when need physical path, miss use frontend_resource_uri (#1500)
* fix: 1. fix: like 'why-olares.md', if input 'why', 'olares', search without result 2.when generate_monitor_folder_path_list for convert_from_physical_path_to_frontend_resource_uri not propagate error

* fix: search3 fix when need physical path miss use frontend_resource_ui

* fix: use wrong image

---------

Co-authored-by: ubuntu <you@example.com>
2025-07-01 23:32:34 +08:00
dkeven
42eff16695 feat(cli): config endpoint_pod_names in coredns when installing (#1503) 2025-07-01 20:35:42 +08:00
dkeven
450aa19dfc fix(cli): also reserve local ports for l4-proxied service (#1502) 2025-07-01 20:35:20 +08:00
eball
c750f6f85b infisical: create user error (#1501) 2025-07-01 20:33:18 +08:00
berg
bf57da0fa4 market: waiting for the app-service to start & displays the failed status of the installation button. (#1499)
feat: update market version
2025-06-30 23:57:57 +08:00
0x7fffff92
5df379f286 feat(headscale): let headscale run on the master node like l4-bfl-proxy (#1498)
Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-06-30 21:02:26 +08:00
dkeven
cfb54fb974 feat(cli): auto enable GPU when adding new node (#1497) 2025-06-30 21:02:00 +08:00
eball
9515c05bb6 bfl: do not change owner when restart (#1496) 2025-06-30 21:01:25 +08:00
dkeven
bdcd924e50 chore(cli): remove unused DeleteCache arg and module (#1495) 2025-06-30 21:01:10 +08:00
eball
e9eb218348 olaresd: refresh user expiring certs (#1493)
* feat: refresh user expiring certs

* fix: admin user not found
2025-06-30 21:00:32 +08:00
eball
9746e2c110 infisical: crash when user not found (#1492) 2025-06-30 21:00:14 +08:00
berg
27d9715292 market: multi user multi source (#1490)
* multi user & multi source & pre-render and collect image download progress & custom render variants

* support GlobalEnvs

* feat: release system-frontend: v1.3.88

* feat: app-service, studio-server

* feat: update market backend version

---------

Co-authored-by: Sai <kldtks@live.com>
Co-authored-by: hys <hysyeah@gmail.com>
2025-06-28 16:46:44 +08:00
salt
10d6c2a6fa fix: 1. fix: like 'why-olares.md', if input 'why', 'olares', search w… (#1491)
fix: 1. fix: like 'why-olares.md', if input 'why', 'olares', search without result 2.when generate_monitor_folder_path_list for convert_from_physical_path_to_frontend_resource_uri not propagate error

Co-authored-by: ubuntu <you@example.com>
2025-06-28 16:46:10 +08:00
eball
57d8a55d8d authelia: add user list api (#1489) 2025-06-27 22:07:27 +08:00
dkeven
b9a227acd7 fix(manifest): update the missed reverse proxy image version (#1488) 2025-06-27 11:27:07 +08:00
wiy
e6115794ce feat(system-frontend): update system-frontend new version to v1.3.86 (#1487) 2025-06-27 11:24:02 +08:00
dkeven
22739c90db fix(manifest): add missing app author label to argo deploy (#1486) 2025-06-27 11:23:29 +08:00
dkeven
6fac46130a perf(gpu): use our fork of dcgm-exporter with lower memory consumption (#1485) 2025-06-27 11:23:07 +08:00
simon
e19e049e7d feat(knowledge): add youtube feed and optimize the file name for aria2 download (#1481)
knowledge v0.12.12
2025-06-26 15:53:40 +08:00
wiy
1d0c20d6ad fix(system-frontend): copy nginx address error (#1484) 2025-06-26 15:16:18 +08:00
dkeven
397590d402 fix(cli): set health host of felix to lo addr explicitly (#1483) 2025-06-26 15:15:53 +08:00
hysyeah
fc1a59b79b ks,cli: remove host_ip label from some metric (#1482)
ks,cli: remove host_ip label from metric
2025-06-26 00:05:10 +08:00
eball
3dea149790 olaresd: network interface api modifed and nvstream mdns bug fix (#1480) 2025-06-26 00:04:10 +08:00
0x7fffff92
9d6834faa1 feat(tailscale): let tailscale run on the node where headscale is run… (#1479)
feat(tailscale): let tailscale run on the node where headscale is running

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
2025-06-26 00:03:51 +08:00
dkeven
bef61309a3 feat(cli): set explicit image gc policy when installing K8s (#1478) 2025-06-26 00:03:04 +08:00
salt
cf52a59ef7 feat: search3 support multiple node for cache and external, run as daemonset (#1477)
* feat: search3 support multiple node for cache and external, and search3monitor run in daemon set

* fix: fix search3 iniialization fail because of not exist table __diesel_schema_migrations

---------

Co-authored-by: ubuntu <you@example.com>
2025-06-26 00:02:36 +08:00
wiy
80023be159 feat(system-frontend): merge system apps main (#1476)
* feat(system-frontend): merge apps into one image

* fix(system-frontend): update image version to v1.3.85

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2025-06-26 00:02:03 +08:00
eball
ae3e4e6bb9 gpu: refactor gpu scheduler with cpp (#1475) 2025-06-24 23:29:13 +08:00
dkeven
8c9e4d532b fix(daemon): upgrade runc dependency to fix vulnerability (#1473) 2025-06-24 21:33:43 +08:00
eball
3c48afb5b5 olares: move gpu package (#1474)
* olares: move gpu package

* fix: hami webui image
2025-06-24 21:32:37 +08:00
dkeven
3d22a01eef fix(cli): do not wait for recreation of pods without owner when changing ip (#1472) 2025-06-23 23:26:41 +08:00
eball
d6263bacca authelia: remove httponly option from set-cookie (#1471) 2025-06-23 23:25:55 +08:00
hysyeah
3b070ea095 node-exporter: add pcie_version,sata_version label for disk metric (#1470)
node-exporter: add pcie_version,sata_version label for node_disk_smartctl_info metric
2025-06-23 23:25:19 +08:00
dkeven
82b715635b feat: build and use hami-webui images using our own repo (#1469) 2025-06-23 23:24:38 +08:00
Peng Peng
1d4494c8d7 feat(user-service, notification, analytics): put prisma library under node_moudles in dockers (#1468)
feat: add prisma dependency to the docker
2025-06-23 11:22:31 +08:00
simon
56f5c07229 feat(knowledge): add ebook , pdf download and article extractor (#1467)
knowledge v0.12.11
2025-06-21 02:08:19 +08:00
berg
697ac440c7 wise, studio, desktop, dashboard: update system frontend version to v1.3.82 (#1466)
feat: update system frontend version to v1.3.82
2025-06-21 02:07:58 +08:00
eball
f0edbc08a6 gpu: bump libvgpu.so version (#1465) 2025-06-20 20:31:41 +08:00
eball
001607e840 authelia: add SameSite option to set-cookie (#1464) 2025-06-20 20:31:23 +08:00
dkeven
e8f525daca refactor(daemon): new scheme for upgrade APIs and operations (#1463) 2025-06-20 20:30:46 +08:00
salt
6d6f7705c9 feat: return search3 result with standard resource_urri (#1462)
* fix: fix search3 escape error

* feat: for search return resource_uri with standard mode

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-20 11:18:01 +08:00
wiy
46b7fa0079 feat(system-frontend): update desktop files search; update dashboard chart components; (#1461) 2025-06-20 00:27:06 +08:00
hysyeah
793a62396b lldap,system-server: pub event async; chanage secret ns (#1460)
lldap,system-server: pub event async
2025-06-20 00:26:44 +08:00
eball
7cb4975f5b authelia: replace http session with lldap jwt (#1459)
* authelia: replace http session with lldap jwt

* fix: remove check auth

* fix: set default configuration

* fix: revert pg and nats configuration
2025-06-20 00:26:12 +08:00
eball
bfaf647ad1 tapr, cli:add extension vchord to pg and decrease k3s image fs threshold (#1458)
* tapr, cli:add extension vchord to pg and decrease k3s image fs threshold

* fix: image tag
2025-06-19 23:18:56 +08:00
hysyeah
23d3dc58ed lldap,tapr: add totp api (#1456) 2025-06-19 00:20:18 +08:00
yyh
7bf07f36b7 feat(system-frontend): update dashboard, control hub, and settings image (#1455)
* feat(system-frontend): update dashboard, control hub, and settings images to v1.3.80

* feat(ks_server): add environment variables for NODE_IP and TERMINUSD_HOST
2025-06-19 00:19:17 +08:00
eball
7e7117fc3a cli, daemon: persist the user name to the Olares release file (#1454) 2025-06-19 00:18:38 +08:00
hysyeah
ff159c7a29 tapr: change nats subjet name (#1452) 2025-06-17 23:38:39 +08:00
yyh
92b84ab70b feat(system-frontend/ks_server): update apps image and monitoring server versions (#1451)
* feat: update apps image  and monitoring server versions

* fix(system-frontend): update files-frontend image version to v1.3.79
2025-06-17 23:38:03 +08:00
dkeven
561d4ba93c refactor(cli): unify local release with daily build (#1450) 2025-06-17 23:37:29 +08:00
aby913
2089e42c32 files: fix files, gateway image (#1449)
files: fix files, appdata-gateway image
2025-06-17 23:37:02 +08:00
eball
b50139af5d authelia: wrong lldap service namespace configuration (#1448)
* authelia: wrong lldap service namespace configuration

* fix: change lldap secret namespace

* fix: nats namespace

* bfl: fix lldap namespace bug

* fix: app-service lldap secret

---------

Co-authored-by: hys <hysyeah@gmail.com>
2025-06-17 23:36:37 +08:00
eball
daacba2fa4 cli,bfl,app-service: new namespace structure (#1443)
* refactor: os-system namespace in yaml

* refactor: new namespace structure

* Update system-frontend.yaml

* Update lldap-deployment.yaml

* refactor: bump system server version

* fix: bfl and gpu scheduler

* fix: kubesphere,studio-server image

* tapr: bump components version

* chore(ks_server): os-system namespace split

* backup-server: bump components version

* fix: remove nats-box

* fix: restore backup svc name

* files: bump components version

* fix: replace backup deployment name

* fix: change lldap and sys-event namespace

* refactor(gpu): update hami to use gpu-scheduler in os-gpu

* fix: sign cert for otel

* fix: template bug

* fix: template bug

* fix: missing namespace

* fix: namespace label and network policy bug

* fix: service namespace

---------

Co-authored-by: Peng Peng <billpengpeng@gmail.com>
Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
Co-authored-by: aby913 <aby913@163.com>
Co-authored-by: dkeven <dkvvven@gmail.com>
2025-06-16 23:12:57 +08:00
dkeven
018b3ef3cc refactor(cli): distinguish between 32-bit and 64-bit arch in release ci (#1447) 2025-06-16 21:52:57 +08:00
dkeven
ddaa0daf14 fix(daemon): do not manage network interfaces of K8s (#1446) 2025-06-16 19:50:25 +08:00
salt
13e924fcc7 fix: fix search3 error (#1444)
fix: fix search3 escape error

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-16 13:27:15 +08:00
wiy
6b3032f04d feat(system-frontend): update system frontend apps new version (#1441)
feat(system-frontend): update system frontend apps version
2025-06-13 00:16:22 +08:00
simon
4f08f5f341 knowledge: fix article extractor bugs (#1440)
dev
2025-06-12 23:47:24 +08:00
eball
67e91df96b daemon: add api to dashboard (#1439)
* daemon: change the module name of the olares-daemon

* daemon: add api to dashboard

* daemon: add api to dashboard
2025-06-12 23:46:56 +08:00
hysyeah
e915b70e4b fix: cpu temp metric (#1438) 2025-06-12 23:46:34 +08:00
salt
e1ca1a97db feat: remove pure lingua-rs language detection method (#1437)
* feat: remove pure lingua-rs language detection method

* feat: comment MONITOR_DETECOTR code

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-12 21:25:38 +08:00
eball
688c4b4010 daemon: change the module name of the olares-daemon (#1436) 2025-06-12 14:23:19 +08:00
salt
52f6dc7159 fix: fix monitor document title detection language error (#1435)
* fix: fix monitor document title detection language error

* fix: when upload folder or file, rename error

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-12 11:53:03 +08:00
aby913
9f824292d1 backup-server: fix backup period calculation (#1434) 2025-06-12 11:51:02 +08:00
aby913
1bef38380e files: refactor cloud call service (#1433) 2025-06-11 23:50:21 +08:00
yyh
b83729f6d8 fix(system-frontend/app-service/bfl): update system-frontend , app-service and bfl (#1432)
fix(system-frontend/app-service/bfl): update images for dashboard, settings, app-service, and bfl to latest versions
2025-06-11 23:06:54 +08:00
eball
d484e41bbd cli: change the module name of the cli (#1431) 2025-06-11 23:06:24 +08:00
dkeven
f9072c9312 feat(gpu): auto-create GPUBindings for pods falling back to timeslicing GPUs (#1430)
* feat(gpu): auto-create GPUBindings for pods falling back to timeslicing GPUs

* fix: apt install libudev failed

* feat(gpu): auto-create GPUBindings for pods falling back to timeslicing GPUs

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-06-11 17:44:48 +08:00
dkeven
fb78685c1e fix(manifest): add missing citus image (#1429)
* fix(manifest): add missing citus image

* fix: deploy the new version citus

* fix: apt install libudev failed

* fix(manifest): add missing citus image

* fix: deploy the new version citus

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-06-11 17:44:17 +08:00
eball
bb7eba1f92 fix: apt install libudev failed 2025-06-11 17:07:01 +08:00
dkeven
3f778d63c1 fix(gpu): use node affinity to select master node for hami-scheduler (#1428) 2025-06-11 13:23:14 +08:00
eball
161f84bc59 gpu: set the real memory env to pod (#1424)
* gpu: add lock to launch kernel functions

* gpu: set the real memory env to pod

* gpu: set the real memory env to pod

* Update values.yaml

* Update Olares.yaml
2025-06-11 01:34:53 +08:00
wiy
9168e3d358 fix(desktop): upgrade websocket notification and search error (#1426)
* feat(system-frontend): update desktop&market&user-service new version

* feat: update the mirror versions of dashboard, control-hub and studio

* fix(desktop): search error and upgrade websocket notification bugs

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2025-06-10 23:48:45 +08:00
Peng Peng
085da97ca5 feat(notification): update to 1.12.6 to receive message from nats subject (#1425) 2025-06-10 23:48:23 +08:00
lovehunter9
eed5632794 fix: files-server copy task cancel bug (#1423) 2025-06-10 23:47:55 +08:00
hysyeah
d7cd77f941 fix: add wait for lldap, bfl (#1422)
* fix: add wait for lldap, bfl

* fix: user controller rate limited
2025-06-10 23:47:27 +08:00
dkeven
bb8fbb239d feat(gpu): add APIs to manage GPU mode and app binding (#1421) 2025-06-10 23:47:00 +08:00
salt
b09ef303d1 fix: fix delete event bug (#1420)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-10 23:45:30 +08:00
hysyeah
e532682558 fix: move USER_INDEX env to front (#1419) 2025-06-10 23:45:03 +08:00
wiy
1b3deedc47 feat(system-frontend): update desktop&market&user-service new version (#1418)
* feat(system-frontend): update desktop&market&user-service new version

* feat: update the mirror versions of dashboard, control-hub and studio

---------

Co-authored-by: yyh <24493052+yongheng2016@users.noreply.github.com>
2025-06-10 01:19:52 +08:00
hysyeah
8c68fcf89c tapr: coredns set tailscale sub dns (#1417)
tapr: add subdns for cordns
2025-06-10 01:19:20 +08:00
dkeven
3f8e046855 fix(ci): copy back joincluster script before releasing (#1416) 2025-06-10 01:18:45 +08:00
hysyeah
4de8756cac fix: remove studio server envoy sidecar (#1415) 2025-06-10 01:17:57 +08:00
eball
1e729ec2ee gpu: add lock to launch kernel functions (#1413) 2025-06-07 00:48:28 +08:00
0x7fffff92
cffa3bb1cc feat: all tailscale use tun interface (#1391)
* feat: all tailscale use tun interface

* remove host subnet route

* adjust tun naming rules

* feat: files-server batch_delete (#1409)

* feat: files-server batch_delete

* feat: files-server delete all for search3

* tapr: bump postgresql and citus version & optimize middleware api (#1410)

* fix: fix movedto event error (#1411)

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>

* feat: add user index and inject

* feat(desktop & login): update desktop refresh token
feat(user-service): update ws config

---------

Co-authored-by: 0x7fffff92 <0x7fffff92@example.com>
Co-authored-by: eball <liuy102@hotmail.com>
Co-authored-by: lovehunter9 <39935488+lovehunter9@users.noreply.github.com>
Co-authored-by: salt <bleachzou2@163.com>
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
Co-authored-by: hys <hysyeah@gmail.com>
Co-authored-by: qq815776412 <815776412@qq.com>
2025-06-07 00:48:09 +08:00
salt
4781090e29 fix: fix movedto event error (#1411)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-06 20:23:26 +08:00
eball
e0cbc9d874 tapr: bump postgresql and citus version & optimize middleware api (#1410) 2025-06-06 20:22:48 +08:00
lovehunter9
e0ba27f7d0 feat: files-server batch_delete (#1409)
* feat: files-server batch_delete

* feat: files-server delete all for search3
2025-06-06 20:22:12 +08:00
aby913
50f6b127ac backup-server: improve message (#1405) 2025-06-06 00:29:11 +08:00
hysyeah
df23dc64e3 app-service,bfl: fix upgrade failed bug,add appid to pod label;fix call analytics-server (#1404)
* app-service,bfl: fix upgrade failed bug,add appid to pod label;fix call analytics-server

* fix(user-service): add nats env

---------

Co-authored-by: qq815776412 <815776412@qq.com>
2025-06-06 00:28:40 +08:00
lovehunter9
f704cf1846 fix: files-server bug when listing external if any smb folder is stated as host is down (#1403) 2025-06-06 00:27:40 +08:00
simon
66d0eccb2f feat(knowledge): websocket update (#1402)
websocket
2025-06-06 00:27:09 +08:00
aby913
a226fd99b8 refactor: CLI code refactor (#1401)
* refactor: remove unused account files

* refactor: remove unused socat task

* refactor: remove unused flex conntrack task

* refactor: remove unused cri download binaries module

* refactor: remove hook demo

* refactor: remove unused repositoryOnline, repository modules

* refactor: remove unused os rollback

* refactor: remove unused clear node os module

* refactor: remove unused backup dir

* refactor: remove unused local repo manager

* refactor: remove unused cluster pre check module and tasks

* refactor: remove unused cri migrate module

* refactor: remove unused k3s uninstall module and tasks

* refactor: remove unused k8s node delete module

* refactor: remove unused phase startup

* refactor: remove unused storage minio operator module

* refactor: remove unused ks modules

* refactor: remove unused ks plugins cache, redis tasks

* refactor: remove unused ks plugins snapshot controller module

* refactor: remove unused ks plugins monitor notification module

* refactor: remove unused plugins kata and nfd

* refactor: remove unused scripts

* refactor: remove unused filesystem module

* refactor: remove unused certs modules

* refactor: remove unused bootstrap confirm modules

* refactor: remove unused images tasks

* refactor: remove unused k8s prepares

* refactor: remove unused installer module

* refactor: remove unused registry modules
2025-06-06 00:26:37 +08:00
huaiyuan
60b823d9db desktop: update version to v1.3.70 (#1400)
fix(desktop): update version to v1.3.70
2025-06-06 00:24:33 +08:00
wiy
7b9be6cce7 feat(vault-server&user-service): update user server & vault-server support websocket (#1408)
feat(vault-server&settings&user-service): update user server & vault-server support websocket
2025-06-06 00:23:52 +08:00
eball
b99fc51cc2 gpu: fix gpu scheduler bugs (#1407) 2025-06-06 00:19:38 +08:00
salt
cdf70c5c58 fix: fix resources conflict for search3monitor (#1406)
Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-05 22:59:00 +08:00
Peng Peng
1c7fa01df8 fix: remove duplicate container in gpu yaml and notification yaml in user space (#1398) 2025-06-05 14:32:54 +08:00
salt
2b4b590a3a feat: add file monitor for data, drive, external, cache. (#1397)
* feat: search3 add monitor

* fix: add SecurityContext for monitor

* fix: monitor init generate_monitor_folder_path_from_data_root

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
2025-06-05 14:32:20 +08:00
Peng Peng
2bef0056d3 feat: add kvroks dependency (#1399) 2025-06-05 14:31:50 +08:00
Peng Peng
da5ad17e7b refactor: change files, monitor, vault from apps to framework 2025-06-05 11:54:37 +08:00
hysyeah
3b14b95469 app-service,bfl: gpu namespace netpol;refresh token api;nats user perm (#1395)
* app-service,bfl: gpu namespace netpol;refresh token api;nats user perm

* add knowledge, market nats

* Update system-frontend.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-06-05 01:12:52 +08:00
berg
d0a5da4266 market, settings: update version to v1.3.69 (#1396)
feat: update market and settings to v1.3.69
2025-06-05 00:26:12 +08:00
dkeven
a2efa54140 feat: dedicated namespace for gpu-scheduler (#1394) 2025-06-05 00:05:15 +08:00
dkeven
f0106180d5 fix(daemon): reset upgrade target when not upgrading (#1390) 2025-06-04 21:52:57 +08:00
dkeven
9261253126 feat: get rid of nvshare (#1389) 2025-06-04 21:50:46 +08:00
lovehunter9
16f554ed54 feat: seafile separate image (#1383) 2025-06-04 20:48:40 +08:00
dkeven
ac212583ea fix(ci): pass in git ref when calling workflow for submodule (#1392) 2025-06-04 18:34:28 +08:00
dkeven
186d6dd309 fix(ci): use correct daily release version for daemon (#1388) 2025-06-04 11:33:00 +08:00
lovehunter9
79f96c94f7 fix: files sync dir rename bug (#1387) 2025-06-03 23:45:46 +08:00
hysyeah
5bd1bd2ab9 kubesphere,app-service: add disk partion metric; (#1386)
kubesphere,app-service: add disk partion metric;fix cancel op ctx
2025-06-03 23:45:19 +08:00
wiy
6be4e1ff6e feat(system-frontend): update user-service support web socket (#1385)
* feat(system-frontend): update user-service support web socket

* feat: rename monitoring to system-apps
2025-06-03 23:44:51 +08:00
aby913
df722bf1cd backup-server: package name adjustment (#1384)
backup-server: package rename
2025-06-03 23:44:22 +08:00
eball
d428295fa5 bfl: crash and bulk http clients (#1382) 2025-06-03 23:43:49 +08:00
dkeven
7cecd9d360 refactor: integrate Olares daemon's code & CI into main repo (#1381) 2025-06-03 17:37:37 +08:00
simon
a48de4efd4 knowledge: fix backup & remove entry file bugs (#1380)
knowledge
2025-06-03 11:11:44 +08:00
berg
d8078cc8ce market: modify the market app status based on the new version status of appService (#1379)
feat: modify the market app status based on the new version status of appService
2025-06-02 23:15:20 +08:00
hysyeah
f4d9487d1f app-service: fix cancel operation context (#1378) 2025-05-31 23:01:32 +08:00
eball
b5121bde2e analytics: fix typo (#1377) 2025-05-31 23:00:56 +08:00
dkeven
5f79f7fbe4 fix(cli): mitigate some security issues by bumping dependency versions (#1375) 2025-05-30 22:28:59 +08:00
lovehunter9
df6f0bf2d8 feat: files: path unified uri, copy task & mounted data (#1376) 2025-05-30 21:57:02 +08:00
dkeven
21be331121 fix(cli): lift cuda version restraint to 12.8 (#1374) 2025-05-30 21:55:00 +08:00
dkeven
cff07d4c2b fix(cli): just install a single instance of GPU driver (#1372) 2025-05-30 21:51:54 +08:00
hysyeah
a371b3ce44 cli,kubesphere: add some memory metrics (#1371)
cli,ks: add some memory metrics
2025-05-30 21:48:26 +08:00
Calvin W.
2712202c48 docs: update readme structure (#1373)
* docs: update readme structure

* revert format change

* add personal cloud image for jp
2025-05-30 15:36:58 +08:00
hysyeah
7b17f3b2a4 app-service: fix some state bug (#1370) 2025-05-30 00:33:59 +08:00
aby913
cc6b2c9239 backup-server: support app restore (#1369) 2025-05-30 00:33:39 +08:00
wiy
46df22854d fix(vault & files): frontend nginx config error (#1366)
* fix(desktop): fixed the issue that the customized desktop background image does not display

* feat: update login & settings & profile version

* fix(vault & files):  nginx  error

* fix: vault.conf error
2025-05-29 20:27:54 +08:00
eball
eec03ee9b4 bfl: add a new olares-info api (#1365) 2025-05-29 20:25:11 +08:00
dkeven
0c5a80653e feat: schedule/allocate pod by gpu bindings and different share modes (#1363) 2025-05-29 20:24:53 +08:00
dkeven
e58743fa87 fix(cli): remove the local flag in local release version (#1361) 2025-05-29 20:10:44 +08:00
dkeven
d5673b81e0 fix(cli): also consider 3D controller when detecting GPU by lspci (#1360) 2025-05-29 20:07:39 +08:00
hysyeah
37e37a814d olares: add nats info for system files,vault,seafile,search,notification (#1359) 2025-05-29 20:05:09 +08:00
Calvin W.
73d484b681 docs: update olares arch image (#1364)
* docs: update olares arch image

* add a wrap in title
2025-05-29 17:47:28 +08:00
Calvin W.
ddf10130f0 docs: update illustration for personal cloud (#1362)
* docs: update illustration for personal cloud

* update link

* refine wording and add system app screenshots back
2025-05-29 17:08:32 +08:00
hysyeah
5e0534cc2c app-service: app install state (#1358) 2025-05-28 23:49:31 +08:00
wiy
58a7ce05b8 fix(desktop): that the customized desktop background image does not display (#1357)
* fix(desktop): fixed the issue that the customized desktop background image does not display

* feat: update login & settings & profile version
2025-05-28 23:48:29 +08:00
Peng Peng
448a5c1551 fix(notification): fix crash issue (#1356) 2025-05-28 23:47:58 +08:00
dkeven
4e7ba01bcd cli(refactor): adjust local release logic for new project structure (#1355) 2025-05-28 23:47:16 +08:00
wiy
a034b37239 fix(desktop): websocket config error (#1354)
* feat: move files&vault&desktop&market to system frontend

* feat: fix market entrance error

* fix: app nginx config format error

* feat: delete files deploy

* feat: remove desktop deploy

* fix(system-frontend): fix ci build error & desktop add ws config

* fix(system-frontend): uploads-temp double error

* Update market_deploy.yaml

* Update system-frontend.yaml

* fix(desktop): ws config error

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-05-28 23:46:09 +08:00
Peng Peng
bf17a91062 feat: remove unused permission 2025-05-28 11:56:57 +08:00
Peng Peng
76d62daf32 feat(notification): change ci method and reduce docker image size (#1353)
feat(notification): change ci method
2025-05-28 01:48:16 +08:00
wiy
907fbf681e feat: move files & vault & market & desktop frontend to system frontend (#1351)
* feat: move files&vault&desktop&market to system frontend

* feat: fix market entrance error

* fix: app nginx config format error

* feat: delete files deploy

* feat: remove desktop deploy

* fix(system-frontend): fix ci build error & desktop add ws config

* fix(system-frontend): uploads-temp double error

* Update market_deploy.yaml

* Update system-frontend.yaml

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-05-27 23:42:46 +08:00
dkeven
1e1b6a5007 fix(cli): update CUDA version in node labels after upgrading GPU driver (#1352) 2025-05-27 17:51:43 +08:00
dkeven
ea6e199e8e fix(otel): specify auto instrumentation image for nodejs service (#1350) 2025-05-27 17:51:11 +08:00
simon
a323d03fe5 knowledge: add backup function (#1349)
knowledge to v0.12.6
2025-05-27 17:48:43 +08:00
aby913
9a984ea34f backup-server: support app backup (#1348) 2025-05-27 17:47:14 +08:00
hysyeah
355b805540 kubesphere,node-exporter: add metric data_bytes_written, data_bytes_read (#1347) 2025-05-27 17:46:47 +08:00
Calvin W.
5936da1268 docs: add nas comparison doc link (#1346)
* docs: add nas comparison doc link

* fix format
2025-05-27 17:45:58 +08:00
dkeven
c36ff0a630 fix(ci): pass correct version var when deploying in CI (#1345) 2025-05-26 19:18:04 +08:00
dkeven
9091d382cb fix(ci): upload in correct cli artifacts output path (#1344) 2025-05-26 18:23:38 +08:00
dkeven
22fdd7b86f refactor: integrate CLI's code & CI into main repo (#1343) 2025-05-26 17:21:25 +08:00
hysyeah
532b0a3e24 app-service: app installation refactor (#1342)
app-service: app install refactor
2025-05-26 01:57:19 +08:00
Peng Peng
1371f5aed2 docs: Add a note indicating that the code repository is under migration. (#1341) 2025-05-23 22:49:26 +08:00
Calvin W.
6f6f7cd7a2 docs: update project directory info and intro (#1340)
* docs: update project directory info and intro

* update intro for cn and urls
2025-05-23 21:32:13 +08:00
eball
2c41b1ff8e hami: gpu slicing scheduler (#1339) 2025-05-22 23:35:36 +08:00
hysyeah
85527f46f1 ks: update cronjob gv to batch/v1 (#1338) 2025-05-22 23:34:44 +08:00
eball
9cca15c677 tapr: add roles to pg user (#1337) 2025-05-22 23:33:55 +08:00
aby913
a29653d16c backup-server: code refactoring and process improvement (#1336) 2025-05-22 14:43:50 +08:00
eball
f2235e8f49 olares: compatible with current version olares-cli (#1335)
* olares: compatible with current version olares-cli

* fix: release workflows bug
2025-05-22 01:01:15 +08:00
eball
6a4454ef05 Update Olares.yaml 2025-05-21 21:53:01 +08:00
eball
e7de0c631e Update check.yaml 2025-05-21 21:46:53 +08:00
Peng Peng
79372a32af feat: Merge the code currently scattered across the beclab and Above-os organizations into the https://github.com/beclab/Olares repository. (#1325)
* feat: refactor

* refactor apps folder

* feat: add vendor folder

* refactor: package scripts

---------

Co-authored-by: eball <liuy102@hotmail.com>
2025-05-21 21:43:35 +08:00
Sai
693d32bc2e olares: fix redis password lost (#1334)
fix redis password lost
2025-05-21 21:39:25 +08:00
berg
d62a6a8fd6 settings: restore function update and add space backup usage (#1333)
feat: restore function update and add space backup usage
2025-05-21 00:51:27 +08:00
eball
29e4b8e51c otel: fix nginx instrumentation arm64 build script bug (#1332)
* otel: fix nginx instrumentation arm64 build script bug

* bfl: add network sys config

* bfl: optimize dynamic client by using dynamic resource informer
2025-05-21 00:50:59 +08:00
aby913
b30c201006 backup-server: code improve, restore fix (#1331) 2025-05-21 00:50:31 +08:00
eball
34d609068d otel: fix nginx instrumentation too many headers (#1330) 2025-05-20 01:01:06 +08:00
wiy
41fcac1374 feat(settings-server): upgrade node version 24.0.2 & nestjs version to 11.1.1 (#1329)
feat(settings-server): upgrade docker node version to 24.0.2  & upgrade nestjs version to 11.1.1
2025-05-20 01:00: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
2277 changed files with 179359 additions and 15445 deletions

View File

@@ -7,7 +7,7 @@ Title: <subsystem>: <what changed>
* **Target Version for Merge**
<!-- Specify the version to which these changes need to be merged -->
* ***Related Issues**
* **Related Issues**
<!-- Reference any related issues here, if applicable -->
* **PRs Involving Sub-Systems**

View File

@@ -17,4 +17,4 @@ jobs:
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
bash build/build-redis.sh linux/amd64 glibc-231

View File

@@ -17,10 +17,10 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-redis.sh linux/amd64
bash build/build-redis.sh linux/amd64
push-arm64:
runs-on: self-hosted
runs-on: [self-hosted, linux, ARM64]
steps:
- name: Clean
@@ -40,4 +40,4 @@ jobs:
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*"
sudo -E sh -c "bash build/build-redis.sh linux/arm64 && rm -rf redis*"

View File

@@ -17,4 +17,4 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
run: |
bash scripts/build-ubuntu2204.sh
bash build/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 build/build-wsl-install-msi.sh

View File

@@ -3,8 +3,12 @@ name: Lint and Test Charts
on:
push:
branches: [ "main", "release-*" ]
paths-ignore:
- 'docs/**'
pull_request_target:
branches: [ "main", "release-*" ]
paths-ignore:
- 'docs/**'
workflow_dispatch:
@@ -35,19 +39,10 @@ jobs:
- name: Pre package
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
bash build/package.sh
- 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 .dist/wizard/config,.dist/wizard/config/apps,.dist/wizard/config/gpu --check-version-increment=false --all
# - name: Create kind cluster
# if: steps.list-changed.outputs.changed == 'true'
@@ -57,6 +52,34 @@ jobs:
# if: steps.list-changed.outputs.changed == 'true'
# run: ct install --chart-dirs wizard/charts,wizard/config --target-branch ${{ github.event.repository.default_branch }}
test-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.generate.outputs.version }}
steps:
- id: generate
run: |
v=1.12.2-$(echo $RANDOM$RANDOM)
echo "version=$v" >> "$GITHUB_OUTPUT"
upload-cli:
needs: test-version
uses: ./.github/workflows/release-cli.yaml
secrets: inherit
with:
version: ${{ needs.test-version.outputs.version }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
upload-daemon:
needs: test-version
uses: ./.github/workflows/release-daemon.yaml
secrets: inherit
with:
version: ${{ needs.test-version.outputs.version }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
push-image:
runs-on: ubuntu-latest
@@ -68,34 +91,24 @@ jobs:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- 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/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf
push-image-arm64:
runs-on: self-hosted
runs-on: [self-hosted, linux, ARM64]
steps:
- name: Install skopeo (Ubuntu)
run: |
sudo apt-get update
sudo apt-get install -y skopeo
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
@@ -103,22 +116,6 @@ jobs:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- 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 }}
@@ -126,10 +123,11 @@ jobs:
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
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf linux/arm64
push-deps:
needs: [test-version, upload-daemon]
runs-on: ubuntu-latest
steps:
@@ -140,32 +138,19 @@ jobs:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- 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"
VERSION: ${{ needs.test-version.outputs.version }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
bash build/deps-manifest.sh && bash build/upload-deps.sh
push-deps-arm64:
runs-on: self-hosted
needs: [test-version, upload-daemon]
runs-on: [self-hosted, linux, ARM64]
steps:
- name: "Checkout source code"
@@ -178,73 +163,58 @@ jobs:
- 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"
VERSION: ${{ needs.test-version.outputs.version }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
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
bash build/deps-manifest.sh linux/arm64 && bash build/upload-deps.sh linux/arm64
upload-package:
needs: [lint-test, test-version, push-image, push-image-arm64, push-deps, push-deps-arm64]
runs-on: ubuntu-latest
steps:
- 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: Package installer
run: |
bash build/build.sh ${{ needs.test-version.outputs.version }}
- name: Upload package
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${{ needs.test-version.outputs.version }}.tar.gz > install-wizard-v${{ needs.test-version.outputs.version }}.md5sum.txt && \
aws s3 cp install-wizard-v${{ needs.test-version.outputs.version }}.md5sum.txt s3://terminus-os-install/install-wizard-v${{ needs.test-version.outputs.version }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ needs.test-version.outputs.version }}.tar.gz s3://terminus-os-install/install-wizard-v${{ needs.test-version.outputs.version }}.tar.gz --acl=public-read
install-test:
needs: [lint-test, push-image, push-image-arm64, push-deps, push-deps-arm64]
needs: [test-version, upload-cli, upload-package]
runs-on: ubuntu-latest
steps:
- 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: 'Test tag version'
id: vars
run: |
v=1.11.0-$(echo $RANDOM)
echo "tag_version=$v" >> $GITHUB_OUTPUT
- name: Package installer
run: |
bash scripts/build.sh ${{ steps.vars.outputs.tag_version }}
- name: Upload package
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${{ 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
- name: Deploy Request
uses: fjogeleit/http-request-action@v1
with:
url: 'https://cloud-dev-api.bttcdn.com/v1/resource/installTest'
method: 'POST'
customHeaders: '{"Authorization": "${{ secrets.INSTALL_SECRET }}"}'
data: 'versions=${{ steps.vars.outputs.tag_version }}&downloadUrl=https://dc3p1870nn3cj.cloudfront.net/install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz'
data: 'versions=${{ needs.test-version.outputs.version }}&downloadUrl=https://dc3p1870nn3cj.cloudfront.net/install-wizard-v${{ needs.test-version.outputs.version }}.tar.gz'
contentType: "application/x-www-form-urlencoded"
- name: Check Reault
- name: Check Result
uses: eball/poll-check-endpoint@v0.1.0
with:
url: https://cloud-dev-api.bttcdn.com/v1/resource/installResult
@@ -255,4 +225,4 @@ jobs:
timeout: 1800000
interval: 30000
customHeaders: '{"Authorization": "${{ secrets.INSTALL_SECRET }}", "Content-Type": "application/x-www-form-urlencoded"}'
data: 'versions=${{ steps.vars.outputs.tag_version }}'
data: 'versions=${{ needs.test-version.outputs.version }}'

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 build/package.sh
- name: Run chart-testing (lint)
run: |
ct lint --chart-dirs .dist/wizard/config,.dist/wizard/config/apps,.dist/wizard/config/gpu --check-version-increment=false --all

View File

@@ -5,65 +5,35 @@ on:
jobs:
push:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
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: |
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"
REPO_PATH: '${{ secrets.REPO_PATH }}'
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
bash build/deps-manifest.sh && bash build/upload-deps.sh
push-arm64:
runs-on: self-hosted
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"
REPO_PATH: '${{ secrets.REPO_PATH }}'
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
bash build/deps-manifest.sh linux/arm64 && bash build/upload-deps.sh linux/arm64

View File

@@ -5,64 +5,31 @@ on:
jobs:
push:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
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: |
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/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf
push-arm64:
runs-on: self-hosted
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
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf linux/arm64

71
.github/workflows/release-cli.yaml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Release CLI
on:
workflow_call:
inputs:
version:
type: string
required: true
ref:
type: string
repository:
type: string
release-id:
type: string
workflow_dispatch:
inputs:
version:
type: string
required: true
ref:
type: string
repository:
type: string
release-id:
type: string
jobs:
goreleaser:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
ref: ${{ inputs.ref }}
repository: ${{ inputs.repository }}
- name: Add Local Git Tag For GoReleaser
run: git tag ${{ inputs.version }}
continue-on-error: true
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.24.3
- name: Install x86_64 cross-compiler
run: sudo apt-get update && sudo apt-get install -y build-essential
- name: Install ARM cross-compiler
run: sudo apt-get update && sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3.1.0
with:
distribution: goreleaser
workdir: './cli'
version: v1.18.2
args: release --clean
env:
OLARES_RELEASE_ID: ${{ inputs.release-id }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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: |
cd cli/output && for file in $(ls *.tar.gz | grep -v no-release-id); do
aws s3 cp "$file" s3://terminus-os-install${{ secrets.REPO_PATH }}${file} --acl=public-read
done

75
.github/workflows/release-daemon.yaml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: Release Daemon
on:
workflow_call:
inputs:
version:
type: string
required: true
ref:
type: string
repository:
type: string
release-id:
type: string
workflow_dispatch:
inputs:
version:
type: string
required: true
ref:
type: string
repository:
type: string
release-id:
type: string
jobs:
goreleaser:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
ref: ${{ inputs.ref }}
repository: ${{ inputs.repository }}
- name: Add Local Git Tag For GoReleaser
run: git tag ${{ inputs.version }}
continue-on-error: true
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.22.1
- name: install udev-devel
run: |
sudo apt update && sudo apt install -y libudev-dev
- name: Install x86_64 cross-compiler
run: sudo apt-get update && sudo apt-get install -y build-essential
- name: Install ARM cross-compiler
run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3.1.0
env:
OLARES_RELEASE_ID: ${{ inputs.release-id }}
with:
distribution: goreleaser
workdir: './daemon'
version: v1.18.2
args: release --clean
- name: Upload to CDN
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: |
cd daemon/output && for file in $(ls *.tar.gz | grep -v no-release-id); do
aws s3 cp "$file" s3://terminus-os-install${{ secrets.REPO_PATH }}${file} --acl=public-read
done

View File

@@ -9,230 +9,174 @@ on:
workflow_dispatch:
jobs:
push-images:
daily-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.generate.outputs.version }}
steps:
- id: generate
run: |
v=1.12.2-$(date +"%Y%m%d")
echo "version=$v" >> "$GITHUB_OUTPUT"
release-id:
runs-on: ubuntu-latest
outputs:
id: ${{ steps.generate.outputs.id }}
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- id: generate
run: |
hash=$(git rev-parse --short=7 HEAD)
echo "id=$hash" >> "$GITHUB_OUTPUT"
release-cli:
needs: [daily-version, release-id]
uses: ./.github/workflows/release-cli.yaml
secrets: inherit
with:
version: ${{ needs.daily-version.outputs.version }}
release-id: ${{ needs.release-id.outputs.id }}
release-daemon:
needs: [daily-version, release-id]
uses: ./.github/workflows/release-daemon.yaml
secrets: inherit
with:
version: ${{ needs.daily-version.outputs.version }}
release-id: ${{ needs.release-id.outputs.id }}
push-images:
runs-on: ubuntu-22.04
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: |
coscmd config -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: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf
push-images-arm64:
runs-on: self-hosted
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
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf linux/arm64
push-deps:
needs: [daily-version, release-id, release-daemon]
runs-on: ubuntu-latest
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: |
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"
VERSION: ${{ needs.daily-version.outputs.version }}
RELEASE_ID: ${{ needs.release-id.outputs.id }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
run: |
bash scripts/deps-manifest.sh && bash scripts/upload-deps.sh
bash build/deps-manifest.sh && bash build/upload-deps.sh
push-deps-arm64:
runs-on: self-hosted
needs: [daily-version, release-id, release-daemon]
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"
VERSION: ${{ needs.daily-version.outputs.version }}
RELEASE_ID: ${{ needs.release-id.outputs.id }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
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
bash build/deps-manifest.sh linux/arm64 && bash build/upload-deps.sh linux/arm64
upload-package:
needs: [push-images, push-images-arm64, push-deps, push-deps-arm64]
needs: [daily-version, release-id, push-images, push-images-arm64, push-deps, push-deps-arm64]
runs-on: ubuntu-latest
steps:
- name: 'Daily tag version'
id: vars
run: |
v=1.11.0-$(date +"%Y%m%d")
echo "tag_version=$v" >> $GITHUB_OUTPUT
- name: 'Checkout source code'
uses: actions/checkout@v3
- name: Package installer
run: |
bash scripts/build.sh ${{ steps.vars.outputs.tag_version }}
- 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
# - name: Upload to COS
# run: |
# md5sum install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz > install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt && \
# coscmd upload ./install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt /install-wizard-v${{ steps.vars.outputs.tag_version }}.md5sum.txt
# coscmd upload ./install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz /install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz
bash build/build.sh ${{ needs.daily-version.outputs.version }} ${{ needs.release-id.outputs.id }}
- name: Upload to S3
id: upload
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${{ 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
md5sum install-wizard-v${{ needs.daily-version.outputs.version }}.tar.gz > install-wizard-v${{ needs.daily-version.outputs.version }}.md5sum.txt && \
aws s3 cp install-wizard-v${{ needs.daily-version.outputs.version }}.md5sum.txt s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ needs.daily-version.outputs.version }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ needs.daily-version.outputs.version }}.tar.gz s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ needs.daily-version.outputs.version }}.tar.gz --acl=public-read && \
aws s3 cp install-wizard-v${{ needs.daily-version.outputs.version }}.md5sum.txt s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ needs.daily-version.outputs.version }}.${{ needs.release-id.outputs.id }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ needs.daily-version.outputs.version }}.tar.gz s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ needs.daily-version.outputs.version }}.${{ needs.release-id.outputs.id }}.tar.gz --acl=public-read
release:
needs: [upload-package]
needs: [daily-version, upload-package, release-cli, release-id]
runs-on: ubuntu-latest
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
- name: 'Daily tag version'
id: vars
run: |
v=1.11.0-$(date +"%Y%m%d")
echo "tag_version=$v" >> $GITHUB_OUTPUT
echo "version_md5sum=$(curl -sSfL https://dc3p1870nn3cj.cloudfront.net/install-wizard-v${v}.md5sum.txt|awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Update checksum
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/install.sh'
placeholder: '#__MD5SUM__'
tag: ${{ steps.vars.outputs.version_md5sum }}
- name: Package installer
run: |
bash scripts/build.sh ${{ steps.vars.outputs.tag_version }}
bash build/build.sh ${{ needs.daily-version.outputs.version }} ${{ needs.release-id.outputs.id }}
- name: 'Archives'
run: |
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
cp .dist/install-wizard/install.sh build/base-package
cp build/base-package/install.sh build/base-package/publicInstaller.sh
cp .dist/install-wizard/install.ps1 build/base-package
cp .dist/install-wizard/joincluster.sh build/base-package
- 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 }}
name: v${{ needs.daily-version.outputs.version }} Release
tag_name: ${{ needs.daily-version.outputs.version }}
files: |
install-wizard-v${{ steps.vars.outputs.tag_version }}.tar.gz
build/installer/publicInstaller.sh
build/installer/install.sh
build/installer/install.ps1
build/installer/publicAddnode.sh
build/installer/version.hint
build/installer/publicRestoreInstaller.sh
install-wizard-v${{ needs.daily-version.outputs.version }}.tar.gz
build/base-package/publicInstaller.sh
build/base-package/install.sh
build/base-package/install.ps1
build/base-package/joincluster.sh
build/base-package/publicAddnode.sh
build/base-package/version.hint
build/base-package/publicRestoreInstaller.sh
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,71 @@
name: Publish mdns-agent to Dockerhub
on:
workflow_dispatch:
inputs:
version:
type: string
required: true
jobs:
update_dockerhub:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
push: true
context: ./daemon
tags: beclab/olaresd:${{ inputs.version }}
file: ./daemon/docker/Dockerfile.agent
platforms: linux/amd64,linux/arm64
upload_release_package:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Add Local Git Tag For GoReleaser
run: git tag ${{ inputs.version }}
continue-on-error: true
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.22.1
- name: Install x86_64 cross-compiler
run: sudo apt-get update && sudo apt-get install -y build-essential
- name: Install ARM cross-compiler
run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3.1.0
with:
distribution: goreleaser
version: v1.18.2
args: release --clean --skip-validate -f .goreleaser.agent.yml
workdir: './daemon'
- name: Upload to CDN
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: |
cd daemon/output && for file in *.tar.gz; do
aws s3 cp "$file" s3://terminus-os-install/$file --acl=public-read
done

View File

@@ -9,74 +9,116 @@ on:
description: 'Release Tags'
jobs:
release-id:
runs-on: ubuntu-latest
outputs:
id: ${{ steps.generate.outputs.id }}
steps:
- name: 'Checkout source code'
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- id: generate
run: |
hash=$(git rev-parse --short=7 HEAD)
echo "id=$hash" >> "$GITHUB_OUTPUT"
release-cli:
needs: [release-id]
uses: ./.github/workflows/release-cli.yaml
secrets: inherit
with:
version: ${{ github.event.inputs.tags }}
release-id: ${{ needs.release-id.outputs.id }}
ref: ${{ github.event.inputs.tags }}
release-daemon:
needs: [release-id]
uses: ./.github/workflows/release-daemon.yaml
secrets: inherit
with:
version: ${{ github.event.inputs.tags }}
release-id: ${{ needs.release-id.outputs.id }}
ref: ${{ github.event.inputs.tags }}
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'
VERSION: ${{ github.event.inputs.tags }}
run: |
bash build/image-manifest.sh && bash build/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'
VERSION: ${{ github.event.inputs.tags }}
run: |
export PATH=$PATH:/usr/local/bin:/home/ubuntu/.local/bin
bash build/image-manifest.sh && bash build/upload-images.sh .manifest/images.mf linux/arm64
push-deps:
needs: [release-daemon, release-id]
runs-on: ubuntu-latest
steps:
- name: 'Checkout source code'
- name: "Checkout source code"
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- 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
- env:
# 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'
AWS_DEFAULT_REGION: "us-east-1"
VERSION: ${{ github.event.inputs.tags }}
RELEASE_ID: ${{ needs.release-id.outputs.id }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
run: |
bash scripts/image-manifest.sh && bash scripts/upload-images.sh .manifest/images.mf
bash build/deps-manifest.sh && bash build/upload-deps.sh
push-arm64:
runs-on: self-hosted
push-deps-arm64:
needs: [release-daemon, release-id]
runs-on: [self-hosted, linux, ARM64]
steps:
- name: 'Checkout source code'
- name: "Checkout source code"
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.tags }}
- 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:
# 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'
AWS_DEFAULT_REGION: "us-east-1"
VERSION: ${{ github.event.inputs.tags }}
RELEASE_ID: ${{ needs.release-id.outputs.id }}
REPO_PATH: '${{ secrets.REPO_PATH }}'
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
bash build/deps-manifest.sh linux/arm64 && bash build/upload-deps.sh linux/arm64
upload-package:
needs: [push, push-arm64]
needs: [push, push-arm64, push-deps, push-deps-arm64, release-daemon, release-id]
runs-on: ubuntu-latest
steps:
@@ -87,30 +129,7 @@ jobs:
- name: Package installer
run: |
bash scripts/build.sh ${{ github.event.inputs.tags }}
- 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
# - name: Upload to COS
# run: |
# md5sum install-wizard-v${{ github.event.inputs.tags }}.tar.gz > install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt && \
# coscmd upload ./install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt /install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt
# coscmd upload ./install-wizard-v${{ github.event.inputs.tags }}.tar.gz /install-wizard-v${{ github.event.inputs.tags }}.tar.gz
bash build/build.sh ${{ github.event.inputs.tags }} ${{ needs.release-id.outputs.id }}
- name: Upload to S3
env:
@@ -119,12 +138,15 @@ jobs:
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
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt s3://terminus-os-install${{ secrets.REPO_PATH }}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${{ secrets.REPO_PATH }}install-wizard-v${{ github.event.inputs.tags }}.tar.gz --acl=public-read
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.md5sum.txt s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ github.event.inputs.tags }}.${{ needs.release-id.outputs.id }}.md5sum.txt --acl=public-read && \
aws s3 cp install-wizard-v${{ github.event.inputs.tags }}.tar.gz s3://terminus-os-install${{ secrets.REPO_PATH }}install-wizard-v${{ github.event.inputs.tags }}.${{ needs.release-id.outputs.id }}.tar.gz --acl=public-read
release:
runs-on: ubuntu-latest
needs: [upload-package]
needs: [upload-package, release-cli, release-id]
steps:
- name: 'Checkout source code'
@@ -133,33 +155,34 @@ jobs:
ref: ${{ github.event.inputs.tags }}
- name: Update env
working-directory: ./build/installer
working-directory: ./build/base-package
run: |
echo 'DEBUG_VERSION="false"' > .env
- 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
echo "version_md5sum=$(curl -sSfL https://dc3p1870nn3cj.cloudfront.net${{ secrets.REPO_PATH }}install-wizard-v${{ github.event.inputs.tags }}.${{ needs.release-id.outputs.id }}.md5sum.txt|awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Update checksum
uses: eball/write-tag-to-version-file@latest
with:
filename: 'build/installer/install.sh'
filename: 'build/base-package/install.sh'
placeholder: '#__MD5SUM__'
tag: ${{ steps.vars.outputs.version_md5sum }}
- name: Package installer
run: |
bash scripts/build.sh ${{ github.event.inputs.tags }}
bash build/build.sh ${{ github.event.inputs.tags }} ${{ needs.release-id.outputs.id }}
- 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
cp .dist/install-wizard/install.sh build/base-package
cp build/base-package/install.sh build/base-package/publicInstaller.sh
cp build/base-package/install.sh build/base-package/publicInstaller.latest
cp .dist/install-wizard/install.ps1 build/base-package
cp build/base-package/install.ps1 build/base-package/publicInstaller.latest.ps1
cp .dist/install-wizard/joincluster.sh build/base-package
- name: Release public files
uses: softprops/action-gh-release@v1
@@ -168,14 +191,15 @@ jobs:
tag_name: ${{ github.event.inputs.tags }}
files: |
install-wizard-v${{ github.event.inputs.tags }}.tar.gz
build/installer/publicInstaller.sh
build/installer/publicInstaller.latest
build/installer/install.sh
build/installer/publicInstaller.latest.ps1
build/installer/install.ps1
build/installer/publicAddnode.sh
build/installer/version.hint
build/installer/publicRestoreInstaller.sh
build/base-package/publicInstaller.sh
build/base-package/publicInstaller.latest
build/base-package/install.sh
build/base-package/publicInstaller.latest.ps1
build/base-package/install.ps1
build/base-package/publicAddnode.sh
build/base-package/joincluster.sh
build/base-package/version.hint
build/base-package/publicRestoreInstaller.sh
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

11
.gitignore vendored
View File

@@ -23,7 +23,18 @@ go.work
.dist
.manifest
.dependencies
install-wizard-*.tar.gz
olares-cli-*.tar.gz
!ks-console-*.tgz
.vscode
.DS_Store
cli/output
daemon/output
daemon/bin
docs/.vitepress/dist/
docs/.vitepress/cache/
node_modules
.idea/
cli/olares-cli*

661
LICENSE Normal file
View File

@@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

242
README.md
View File

@@ -1,85 +1,53 @@
<div align="center">
# Olares - Your Sovereign Cloud, an Open-Source Self-Hosted Alternative to Public Clouds <!-- omit in toc -->
# Olares: An Open-Source Personal Cloud to </br>Reclaim Your Data<!-- 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)
[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.gg/olares)
[![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/5ea2fe30-7bd2-49ed-be26-e12f1d5d8cb1
*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://olares.xyz">Website</a> ·
<a href="https://docs.olares.xyz">Documentation</a> ·
<a href="https://olares.xyz/larepass">Download LarePass</a> ·
<a href="https://olares.com">Website</a> ·
<a href="https://docs.olares.com">Documentation</a> ·
<a href="https://larepass.olares.com">Download LarePass</a> ·
<a href="https://github.com/beclab/apps">Olares Apps</a> ·
<a href="https://space.olares.xyz">Olares Space</a>
<a href="https://space.olares.com">Olares Space</a>
</p>
> [!IMPORTANT]
> We just finished our rebranding from Terminus to Olares recently. For more information, refer to our [rebranding blog](https://olares.medium.com/terminus-is-now-olares-2c3bf782f9d1).
>*The modern internet built on public clouds is increasingly threatening your personal data privacy. As reliance on services like ChatGPT, Midjourney, and Facebook grows, so does the risk to your digital autonomy. Your data lives on their servers, subject to their terms, tracking, and potential censorship.*
>
>*It's time for a change.*
## Table of Contents <!-- omit in toc -->
- [Introduction](#introduction)
- [Motivation and design](#motivation-and-design)
- [Tech stacks](#tech-stacks)
- [Features](#features)
- [Feature comparison](#feature-comparison)
- [Getting started](#getting-started)
- [Project navigation](#project-navigation)
- [Contributing to Olares](#contributing-to-olares)
- [Community \& contact](#community--contact)
- [Staying ahead](#staying-ahead)
- [Special thanks](#special-thanks)
## Introduction
![Personal Cloud](https://file.bttcdn.com/github/olares/public-cloud-to-personal-cloud.jpg)
We believe you have a fundamental right to control your digital life. The most effective way to uphold this right is by hosting your data locally, on your own hardware.
Olares is the sovereign cloud that puts you in control. It's an open-source, self-hosted alternative to public clouds like AWS, built to reclaim your data ownership and privacy. By combining the power of Kubernetes with a streamlined interface, Olares enables you to take full control of your data and computing resources. Whether you're managing a homelab, hosting applications, or safeguarding your privacy, Olares delivers the flexibility and capabilities of public clouds, without compromising privacy or security.
Olares is an **open-source personal cloud operating system** designed to empower you to own and manage your digital assets locally. Instead of relying on public cloud services, you can deploy powerful open-source alternatives locally on Olares, such as Ollama for hosting LLMs, SD WebUI for image generation, and Mastodon for building censor free social space. Imagine the power of the cloud, but with you in complete command.
Typical use cases of Olares include:
> 🌟 *Star us to receive instant notifications about new releases and updates.*
🤖 **Local AI**: Host and run world-class open-source AI models locally, including large language models, image generation, and speech recognition. Create custom AI assistants that integrate seamlessly with your personal data and applications, all while ensuring enhanced privacy and control. <br>
## Architecture
💻**Personal data repository**: Securely store, sync, and manage your photos, documents, and important files in a unified storage and access anywhere. <br>
Just as Public clouds offer IaaS, PaaS, and SaaS layers, Olares provides open-source alternatives to each of these layers.
🛠️ **Self-hosted workspace**: Create a free, powerful workspace for your team or family with open source self-hosted alternatives. <br>
![Tech Stacks](https://file.bttcdn.com/github/olares/olares-architecture.jpg)
🎥 **Private media server**: Host your own streaming services with your personal media collections. <br>
For detailed description of each component, refer to [Olares architecture](https://docs.olares.com/manual/concepts/system-architecture.html).
🏡 **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.
## 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.
Olares provides a next-generation decentralized Internet framework consisting of the following three integral components:
- **Snowinning Protocol**: A decentralized identity and reputation system that integrates decentralized identifiers (DIDs), verifiable credentials (VCs), and reputation data.
- **Olares OS**: An one-stop self-hosted operating system running on edge devices, allowing users to host their own data and applications.
- **LarePass**: A comprehensive client software that securely bridges users to their Olares systems. It offers remote access, identity and device management, data storage, and productivity tools, providing a seamless interface for all Olares interactions.
## Tech stacks
Public clouds have IaaS, PaaS, and SaaS layers. Olares provides open-source alternatives to these layers.
![Tech Stacks](https://file.bttcdn.com/github/terminus/v2/tech-stack-olares.jpeg)
> 🔍 **How is Olares different from traditional NAS?**
>
> Olares focuses on building an all-in-one self-hosted personal cloud experience. Its core features and target users differ significantly from traditional Network Attached Storage (NAS) systems, which primarily focus on network storage. For more details, see [Compare Olares and NAS](https://docs.olares.com/manual/olares-vs-nas.html).
## Features
@@ -94,159 +62,79 @@ Olares offers a wide array of features designed to enhance security, ease of use
- **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.
## Feature comparison
Here are some screenshots from the UI for a sneak peek:
To help you understand how Olares stands out in the landscape, we've created a comparison table that highlights its features alongside those of other leading solutions in the market.
| **DesktopStreamlined and familiar portal** | **FilesA 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 alternative**|**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** | **SettingsManage Olares efficiently** |
| ![settings](https://file.bttcdn.com/github/terminus/v2/wise.jpg) | ![](https://file.bttcdn.com/github/terminus/v2/settings.jpg) |
|**DashboardConstant system monitoring** | **ProfileYour unique homepage** |
| ![dashboard](https://file.bttcdn.com/github/terminus/v2/dashboard.jpg) | ![profile](https://file.bttcdn.com/github/terminus/v2/profile.jpg) |
| **StudioDevelop, debug, and deploy**|**Control HubManage Kubernetes clusters easily** |
| ![Studio](https://file.bttcdn.com/github/terminus/v2/devbox.jpg) | ![Controlhub](https://file.bttcdn.com/github/terminus/v2/controlhub.jpg)|
**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.
## Key use cases
| | Olares | Synology | TrueNAS | CasaOS | Unraid |
| --- | --- | --- | --- | --- | --- |
| Source Code License | Olares License | Closed | GPL 3.0 | Apache 2.0 | Closed |
| Built On | Kubernetes | Linux | Kubernetes | Docker | Docker |
| Multi-Node | ✅ | ❌ | ✅ | ❌ | ❌ |
| Build-in Apps | ✅ (Rich desktop apps) | ✅ (Rich desktop apps) | ❌ (CLI) | ✅ (Simple desktop apps) | ✅ (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 |
| 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 |
| 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 | ✅ Doc |
| Local LLM Hosting | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| Local LLM app development | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 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) | ❌ | ❌ | ❌ |
Here is why and where you can count on Olares for private, powerful, and secure sovereign cloud experience:
🤖 **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 is available for Linux, Raspberry Pi, Mac, and Windows. It has been tested and verified on the following systems:
| Platform | Operating system | Notes |
|---------------------|--------------------------------------|-------------------------------------------------------|
| Linux | Ubuntu 24.04 <br/> Debian 12.8 | |
| Raspberry Pi | RaspbianOS | Verified on Raspberry Pi 4 Model B and Raspberry Pi 5 |
| Windows | Windows 11 23H2 <br/>Windows 10 22H2 | |
| Mac (Apple silicon) | macOS Ventura 13.3.1 | |
| Proxmox VE (PVE) | Proxmox Virtual Environment 8.0 | |
Olares has been tested and verified on the following Linux platforms:
> **Note**
>
> If you successfully install Olares on an operating system that is not listed in the compatibility table, please let us know! You can [open an issue](https://github.com/beclab/Olares/issues/new) or submit a pull request on our GitHub repository.
- Ubuntu 24.04 LTS or later
- Debian 11 or later
### 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.
To get started with Olares on your own device, follow the [Getting Started Guide](https://docs.olares.com/manual/get-started/) for step-by-step instructions.
## Project navigation
This section lists the main directories in the Olares repository:
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.
The following table lists the project directories under Olares and their corresponding repositories. Find the one that interests you:
<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>
<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>
<details>
<summary><b>Third-party Components and Services</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [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>
<details>
<summary><b>Additional libraries and components</b></summary>
| Directory | Repository | Description |
| --- | --- | --- |
| [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>
* **[`apps`](./apps)**: Contains the code for system applications, primarily for `larepass`.
* **[`cli`](./cli)**: Contains the code for `olares-cli`, the command-line interface tool for Olares.
* **[`daemon`](./daemon)**: Contains the code for `olaresd`, the system daemon process.
* **[`docs`](./docs)**: Contains documentation for the project.
* **[`framework`](./framework)**: Contains the Olares system services.
* **[`infrastructure`](./infrastructure)**: Contains code related to infrastructure components such as computing, storage, networking, and GPUs.
* **[`platform`](./platform)**: Contains code for cloud-native components like databases and message queues.
* **`vendor`**: Contains code from third-party hardware vendors.
## Contributing to Olares
We are welcoming contributions in any form:
- If you want to develop your own applications on Olares, refer to:<br>
https://docs.olares.xyz/developer/develop/
https://docs.olares.com/developer/develop/
- If you want to help improve Olares, refer to:<br>
https://docs.olares.xyz/developer/contribute/olares.html
https://docs.olares.com/developer/contribute/olares.html
## Community & contact
* [**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
Star the Olares project to receive instant notifications about new releases and updates.
![star us](https://file.bttcdn.com/github/terminus/terminus.git.v2.gif)
* [**Discord**](https://discord.gg/olares). Best for sharing anything Olares.
## Special thanks

View File

@@ -1,85 +1,57 @@
<div align="center">
# Olares - 您的主权云,一个开源自托管的公有云替代方案<!-- omit in toc -->
# Olares:助您重获数据主权的开源个人云
[![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)
[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.gg/olares)
[![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/5ea2fe30-7bd2-49ed-be26-e12f1d5d8cb1)
*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://olares.com">网站</a> ·
<a href="https://docs.olares.com">文档</a> ·
<a href="https://larepass.olares.com">下载 LarePass</a> ·
<a href="https://github.com/beclab/apps">Olares 应用</a> ·
<a href="https://space.olares.xyz">Olares Space</a>
<a href="https://space.olares.com">Olares Space</a>
</p>
## 目录 <!-- omit in toc -->
> *基于公有云构建的现代互联网日益威胁着您的个人数据隐私。随着您对 ChatGPT、Midjourney 和脸书等服务的依赖加深,您对数字自主权的掌控也在减弱。您的数据存储在他人服务器上,受其条款约束,被追踪并审查。*
>
> *是时候做出改变了。*
- [介绍](#介绍)
- [动机与设计](#动机与设计)
- [技术栈](#技术栈)
- [功能](#功能)
- [功能对比](#功能对比)
- [快速开始](#快速开始)
- [项目目录](#项目目录)
- [社区贡献](#社区贡献)
- [社区支持](#社区支持)
- [持续关注](#持续关注)
- [特别感谢](#特别感谢)
## 介绍
![个人云](https://file.bttcdn.com/github/olares/public-cloud-to-personal-cloud.jpg)
Olares 是一个让您完全掌控的主权云平台。它是一个开源的、自托管的公有云替代方案旨在帮助您重获数据所有权和隐私控制权。通过将Kubernetes的强大功能与简化的用户界面相结合Olares使您能够完全掌控自己的数据和计算资源。无论您是在管理家庭实验环境、部署应用程序还是保护个人隐私Olares都能提供与公有云同等的灵活性和功能同时确保您的隐私和安全不受损害
我们坚信,**您拥有掌控自己数字生活的基本权利**。维护这一权利最有效的方式,就是将您的数据托管在本地,在您自己的硬件上
Olares 支持以下应用场景:
Olares 是一款开源个人云操作系统,旨在让您能够轻松在本地拥有并管理自己的数字资产。您无需再依赖公有云服务,而可以在 Olares 上本地部署强大的开源平替服务或应用,例如可以使用 Ollama 托管大语言模型,使用 SD WebUI 用于图像生成,以及使用 Mastodon 构建不受审查的社交空间。Olares 让你坐拥云计算的强大威力,又能完全将其置于自己掌控之下。
🤖**本地 AI 助手**:在本地部署运行顶级开源 AI 模型,涵盖语言处理、图像生成和语音识别等领域。根据个人需求定制 AI 助手,确保数据隐私和控制权均处于自己手中。<br>
> 为 Olares 点亮 🌟 以及时获取新版本和更新的通知。
💻**个人数据仓库**:所有个人文件,包括照片、文档和重要资料,都可以在这个安全的统一平台上存储和同步,随时随地都能方便地访问。<br>
## 系统架构
🛠️**自托管工作空间**:利用开源解决方案,无需成本即可为家庭或工作团队搭建一个功能强大的工作空间。<br>
🎥**私人媒体服务器**:用自己的视频和音乐库搭建一个私人流媒体服务,随时享受个性化的娱乐体验。<br>
🏡**智能家居中心**:将所有智能设备和自动化系统集中在一个易于管理的控制中心,实现家庭智能化的简便操作。<br>
🤝**独立的社交媒体平台**:在 Olares 上部署去中心化社交媒体应用,如 Mastodon、Ghost 和 WordPress自由建立和扩展个人品牌无需担忧封号或支付额外费用。<br>
📚**学习探索**:深入学习自托管服务、容器技术和云计算,并上手实践。<br>
## 动机与设计
我们深知当前互联网的局限性——用户的数据被主流互联网或云服务公司掌控,并用于其商业利益。我们致力于改变这一现状,希望通过 Olares 赋予用户真正的数据所有权和控制权。
Olares 为此提供了一套全新的去中心化互联网框架,主要包括以下三个部分:
- **Snowinning Protocol**一个去中心化的身份和声誉系统融合了去中心化标识符DIDs、可验证凭证VCs以及声誉数据帮助用户在网络世界中安全地管理自己的身份。
- **Olares**:一个专为边缘设备设计的自托管操作系统,用户可以在此系统上自主托管自己的数据和应用,确保数据的私密性和安全性。
- **LarePass**:一款功能全面的客户端软件,通过安全的方式将用户与其 Olares 系统连接起来。它不仅支持远程访问、身份和设备管理,还提供数据存储和各种办公工具,让用户高效管理其日常工作和个人数据。
## 技术栈
公有云具有基础设施即服务IaaS、平台即服务PaaS和软件即服务SaaS等层级。Olares 为这些层级提供了开源替代方案。
![技术栈](https://file.bttcdn.com/github/terminus/v2/tech-stack-olares.jpeg)
![技术栈](https://file.bttcdn.com/github/olares/olares-architecture.jpg)
## 功能
详细描述请参考 [Olares 架构](https://docs.olares.cn/zh/manual/concepts/system-architecture.html)文档。
>🔍**Olares 和 NAS 有什么不同?**
>
> Olares 致力于打造一站式的自托管个人云体验。其核心功能与用户定位,均与专注于网络存储的传统 NAS 有着显著的不同,详情请参考 [Olares 与 NAS 对比](https://docs.olares.com/zh/manual/olares-vs-nas.html)。
## 功能特性
Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及开发的灵活性:
@@ -92,163 +64,79 @@ Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及
- **无缝访问**:通过移动端、桌面端和网页浏览器客户端,从全球任何地方访问设备。
- **开发工具**:提供全面的工具支持,便于开发和移植应用,加速开发进程。
## 功能对比
以下是用户界面的一些截图预览:
为了帮您快速了解 Olares 在市场中的独特优势,我们制作了一张功能比较表,详细展示了 Olares 的功能以及与市场上其他主流解决方案的对比。
| **桌面:熟悉高效的访问入口** | **文件管理器:安全存储数据**
| :--------: | :-------: |
| ![桌面](https://file.bttcdn.com/github/terminus/v2/desktop.jpg) | ![文件](https://file.bttcdn.com/github/terminus/v2/files.jpg) |
| **Vault密码无忧管理**|**市场:可控的应用生态系统** |
| ![vault](https://file.bttcdn.com/github/terminus/v2/vault.jpg) | ![市场](https://file.bttcdn.com/github/terminus/v2/market.jpg) |
|**Wise数字后花园** | **设置:高效管理 Olares** |
| ![设置](https://file.bttcdn.com/github/terminus/v2/wise.jpg) | ![](https://file.bttcdn.com/github/terminus/v2/settings.jpg) |
|**仪表盘:持续监控 Olares** | **Profile独特的个人主页** |
| ![面板](https://file.bttcdn.com/github/terminus/v2/dashboard.jpg) | ![profile](https://file.bttcdn.com/github/terminus/v2/profile.jpg) |
| **Studio一站式开发、调试和部署**|**控制面板:轻松管理 Kubernetes 集群** |
| ![Devbox](https://file.bttcdn.com/github/terminus/v2/devbox.jpg) | ![控制中心](https://file.bttcdn.com/github/terminus/v2/controlhub.jpg)|
**图例:**
## 使用场景
- 🚀: **自动** - 表示系统自动完成任务。
- ✅: **支持** - 表示无开发背景的用户可以通过产品的 UI 提示完成设置。
- 🛠️: **手动配置** - 表示即使是有工程背景的用户也需要参考教程来完成设置。
- ❌: **不支持** - 表示不支持该功能。
在以下场景中Olares 为您带来私密、强大且安全的私有云体验:
| | Olares | 群晖 | TrueNAS | CasaOS | Unraid |
| --- | --- | --- | --- | --- | --- |
| 源代码许可证 | Olares 许可证 | 闭源 | GPL 3.0 | Apache 2.0 | 闭源 |
| 开发 | Kubernetes | Linux | Kubernetes | Docker | Docker |
| 多节点支持 | ✅ | ❌ | ✅ | ❌ | ❌ |
| 内置应用 | ✅(桌面应用丰富)| ✅(桌面应用丰富) | ❌ (CLI) | ✅ (桌面应用较少) | ✅(面板) |
| 免费域名 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 自动 SSL 证书 | 🚀 | ✅ | 🛠️ | 🛠️ | 🛠️ |
| 反向代理 | 🚀 | ✅ | 🛠️ | 🛠️ | 🛠️ |
| VPN 管理 | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 分级应用入口 | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 多用户管理 | ✅ 用户管理 <br>🚀 资源隔离 | ✅ 用户管理 <br>🛠️ 资源隔离 | ✅ 用户管理<br>🛠️ 资源隔离 | ❌ | ✅ 用户管理 <br>🛠️ 资源隔离 |
| 单一登录 | 🚀 | ❌ | ❌ | ❌ | ❌ |
| 跨节点存储 | 🚀 (Juicefs+<br>MinIO) | ❌ | ❌ | ❌ | ❌ |
| 数据库解决方案 | 🚀 (内置云原生解决方案) | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 灾难恢复 | 🚀 (MinIO的[**纠错码**](https://min.io/docs/minio/linux/operations/concepts/erasure-coding.html)**)** | ✅ RAID | ✅ RAID | ✅ RAID | ✅ Unraid Storage |
| 备份 | ✅ 应用数据 <br>✅ 用户数据 | ✅ 用户数据 | ✅ 用户数据 | ✅ 用户数据 | ✅ 用户数据 |
| 应用沙盒 | ✅ | ❌ | ❌ K8S的命名空间 | ❌ | ❌ |
| 应用生态系统 | ✅ (官方 + 第三方应用) | ✅ (官方应用为主) | ✅ (官方应用 + 第三方提交)| ✅ (官方应用为主) | ✅ (社区应用市场) |
| 开发者友好 | ✅ IDE <br>✅ CLI <br>✅ SDK <br>✅ 文档| ✅ CLI <br>✅ SDK <br>✅ 文档 | ✅ CLI <br>✅ 文档 | ✅ CLI <br>✅ 文档 | ✅ 文档 |
| 本地 LLM 部署 | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 本地 LLM 应用开发 | 🚀 | 🛠️ | 🛠️ | 🛠️ | 🛠️ |
| 客户端 | ✅ Android <br>✅ iOS <br>✅ Windows <br>✅ Mac <br>✅ Chrome 插件 | ✅ Android <br>✅ iOS | ❌ | ❌ | ❌ |
| 客户端功能 | ✅ (一体化客户端应用) | ✅ 14个分散的客户端应用| ❌ | ❌ | ❌ |
🤖**本地 AI 助手**:在本地部署运行顶级开源 AI 模型,涵盖语言处理、图像生成和语音识别等领域。根据个人需求定制 AI 助手,确保数据隐私和控制权均处于自己手中。<br>
💻**个人数据仓库**:所有个人文件,包括照片、文档和重要资料,都可以在这个安全的统一平台上存储和同步,随时随地都能方便地访问。<br>
🛠️**自托管工作空间**:利用开源 SaaS 平替方案,无需成本即可为家庭或工作团队搭建一个功能强大的工作空间。<br>
🎥**私人媒体服务器**:用自己的视频和音乐库搭建一个私人流媒体服务,随时享受个性化的娱乐体验。<br>
🏡**智能家居中心**:将所有智能设备和自动化系统集中在一个易于管理的控制中心,实现家庭智能化的简便操作。<br>
🤝**独立的社交媒体平台**:在 Olares 上部署去中心化社交媒体应用,如 Mastodon、Ghost 和 WordPress自由建立和扩展个人品牌无需担忧封号或支付额外费用。<br>
📚**学习探索**:深入学习自托管服务、容器技术和云计算,并上手实践。<br>
## 快速开始
### 系统兼容性
你可以在 Linux、Raspberry Pi、Mac 和 Windows 上安装 Olares。目前已验证支持的系统环境如下
| 平台 | 操作系统 | 备注 |
|---------------------|--------------------------------------|-------------------------------------------------------|
| Linux | Ubuntu 24.04 <br/> Debian 12.8 | |
| Raspberry Pi | RaspbianOS | 已在 Raspberry Pi 4 Model B 和 Raspberry Pi 5 上验证|
| Windows | Windows 11 23H2 <br/>Windows 10 22H2 | |
| Mac (Apple Silicon) | macOS Ventura 13.3.1 | |
| Proxmox VE (PVE) | Proxmox Virtual Environment 8.0 | |
Olares 已在以下 Linux 平台完成测试与验证:
> **注意**
>
> 如果你在未列出的系统版本上成功安装了 Olares请告诉我们你可以在 GitHub 仓库中[提交 Issue](https://github.com/beclab/Olares/issues/new) 或发起 Pull Request。
- Ubuntu 24.04 LTS 及以上版本
- Debian 11 及以上版本
### 安装 Olares
> 当前文档仅有英文版本。
参考[快速上手指南](https://docs.olares.xyz/manual/get-started/)安装并激活 Olares。
参考[快速上手指南](https://docs.olares.cn/zh/manual/get-started/)安装并激活 Olares。
## 项目目录
Olares 代码库中的主要目录如下:
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>
* **[`apps`](./apps)**: 用于存放系统应用,主要是 `larepass` 的代码
* **[`cli`](./cli)**: 用于存放 `olares-cli`Olares 的命令行界面工具)的代码。
* **[`daemon`](./daemon)**: 用于存放 `olaresd`(系统守护进程)的代码
* **[`docs`**](./docs)**: 用于存放 Olares 项目的文档。
* **[`framework`](./framework)**: 用来存放 Olares 系统服务代码。
* **[`infrastructure`](./infrastructure)**: 用于存放计算存储网络GPU 等基础设施的代码。
* **[`platform`](./platform)**: 用于存放数据库、消息队列等云原生组件的代码。
* **`vendor`**: 用于存放来自第三方硬件供应商的代码。
## 社区贡献
我们欢迎任何形式的贡献!
- 如果您想在 Olares 上开发自己的应用,请参考:<br>
https://docs.olares.xyz/developer/develop/
https://docs.olares.com/developer/develop/
- 如果您想帮助改进 Olares请参考<br>
https://docs.olares.xyz/developer/contribute/olares.html
https://docs.olares.com/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 项目,及时获取新版本和更新的通知。
![点亮星标](https://file.bttcdn.com/github/terminus/terminus.git.v2.gif)
* [**Discord**](https://discord.gg/olares) - 日常交流,分享经验,或讨论与 Olares 相关的任何主题。
## 特别感谢

142
README_JP.md Normal file
View File

@@ -0,0 +1,142 @@
<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.gg/olares)
[![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>
<p align="center">
<a href="https://olares.com">ウェブサイト</a> ·
<a href="https://docs.olares.com">ドキュメント</a> ·
<a href="https://larepass.olares.com">LarePassをダウンロード</a> ·
<a href="https://github.com/beclab/apps">Olaresアプリ</a> ·
<a href="https://space.olares.com">Olares Space</a>
</p>
> *パブリッククラウドを基盤とする現代のインターネットは、あなたの個人データのプライバシーをますます脅かしています。ChatGPT、Midjourney、Facebookといったサービスへの依存が深まるにつれ、デジタル主権に対するあなたのコントロールも弱まっています。あなたのデータは他者のサーバーに保存され、その利用規約に縛られ、追跡され、検閲されているのです。*
>
>*今こそ、変革の時です。*
![自身のデジタル](https://file.bttcdn.com/github/olares/public-cloud-to-personal-cloud.jpg)
私たちは、あなたが自身のデジタルライフをコントロールする基本的な権利を有すると確信しています。この権利を守る最も効果的な方法は、あなたのデータをローカルの、あなた自身のハードウェア上でホストすることです。
Olaresは、あなたが自身のデジタル資産をローカルで容易に所有し管理できるよう設計された、オープンソースのパーソナルクラウドOSです。もはやパブリッククラウドサービスに依存する必要はありません。Olares上で、例えばOllamaを利用した大規模言語モデルのホスティング、SD WebUIによる画像生成、Mastodonを用いた検閲のないソーシャルスペースの構築など、強力なオープンソースの代替サービスやアプリケーションをローカルにデプロイできます。Olaresは、クラウドコンピューティングの絶大な力を活用しつつ、それを完全に自身のコントロール下に置くことを可能にします。
> 🌟 *新しいリリースや更新についての通知を受け取るために、スターを付けてください。*
## アーキテクチャ
パブリッククラウドは、IaaS (Infrastructure as a Service)、PaaS (Platform as a Service)、SaaS (Software as a Service) といったサービスレイヤーで構成されています。Olaresは、これら各レイヤーに対するオープンソースの代替ソリューションを提供しています。
![Olaresのアーキテクチ](https://file.bttcdn.com/github/olares/olares-architecture.jpg)
各コンポーネントの詳細については、[Olares アーキテクチャ](https://docs.olares.com/manual/concepts/system-architecture.html)(英語版)をご参照ください。
> 🔍**OlaresとNASの違いは何ですか**
>
> Olaresは、ワンストップのセルフホスティング・パーソナルクラウド体験の実現を目指しています。そのコア機能とユーザーの位置付けは、ネットワークストレージに特化した従来のNASとは大きく異なります。詳細は、[OlaresとNASの比較](https://docs.olares.com/manual/olares-vs-nas.html)(英語版)をご参照ください。
## 機能
Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上させるための幅広い機能を提供します
- **エンタープライズグレードのセキュリティ**: Tailscale、Headscale、Cloudflare Tunnel、FRPを使用してネットワーク構成を簡素化します。
- **安全で許可のないアプリケーションエコシステム**: サンドボックス化によりアプリケーションの分離とセキュリティを確保します。
- **統一ファイルシステムとデータベース**: 自動スケーリング、バックアップ、高可用性を提供します。
- **シングルサインオン**: 一度ログインするだけで、Olares内のすべてのアプリケーションに共有認証サービスを使用してアクセスできます。
- **AI機能**: GPU管理、ローカルAIモデルホスティング、プライベートナレッジベースの包括的なソリューションを提供し、データプライバシーを維持します。
- **内蔵アプリケーション**: ファイルマネージャー、同期ドライブ、ボールト、リーダー、アプリマーケット、設定、ダッシュボードを含みます。
- **どこからでもシームレスにアクセス**: モバイル、デスクトップ、ブラウザ用の専用クライアントを使用して、どこからでもデバイスにアクセスできます。
- **開発ツール**: アプリケーションの開発と移植を容易にする包括的な開発ツールを提供します。
以下はUIのスクリーンショットプレビューです。
| **デスクトップ:馴染みやすく効率的なアクセスポイント** | **ファイルマネージャー:データを安全に保管** |
| :--------: | :-------: |
| ![桌面](https://file.bttcdn.com/github/terminus/v2/desktop.jpg) | ![文件](https://file.bttcdn.com/github/terminus/v2/files.jpg) |
| **Vault安心のパスワード管理**|**マーケット:コントロール可能なアプリエコシステム** |
| ![vault](https://file.bttcdn.com/github/terminus/v2/vault.jpg) | ![市场](https://file.bttcdn.com/github/terminus/v2/market.jpg) |
| **Wiseあなただけのデジタルガーデン** | **設定Olaresを効率的に管理** |
| ![设置](https://file.bttcdn.com/github/terminus/v2/wise.jpg) | ![](https://file.bttcdn.com/github/terminus/v2/settings.jpg) |
| **ダッシュボードOlaresを継続的に監視** | **プロフィール:ユニークなパーソナルページ** |
| ![面板](https://file.bttcdn.com/github/terminus/v2/dashboard.jpg) | ![profile](https://file.bttcdn.com/github/terminus/v2/profile.jpg) |
| **Studio開発、デバッグ、デプロイをワンストップで**|**コントロールパネルKubernetesクラスターを簡単に管理** |
| ![Devbox](https://file.bttcdn.com/github/terminus/v2/devbox.jpg) | ![控制中心](https://file.bttcdn.com/github/terminus/v2/controlhub.jpg)|
## なぜOlaresなのか
以下の理由とシナリオで、Olaresはプライベートで強力かつ安全な主権クラウド体験を提供します
🤖 **エッジAI**: 最先端のオープンAIモデルをローカルで実行し、大規模言語モデル、コンピュータビジョン、音声認識などを含みます。データに合わせてプライベートAIサービスを作成し、機能性とプライバシーを向上させます。<br>
📊 **個人データリポジトリ**: 重要なファイル、写真、ドキュメントを安全に保存し、デバイスや場所を問わず同期および管理します。<br>
🚀 **セルフホストワークスペース**: 安全なオープンソースSaaS代替品を使用して、チームのための無料のコラボレーションワークスペースを構築します。<br>
🎥 **プライベートメディアサーバー**: 個人のメディアコレクションをホストし、独自のストリーミングサービスを提供します。<br>
🏡 **スマートホームハブ**: IoTデバイスやホームオートメーションの中央制御ポイントを作成します。<br>
🤝 **ユーザー所有の分散型ソーシャルメディア**: Mastodon、Ghost、WordPressなどの分散型ソーシャルメディアアプリをOlaresに簡単にインストールし、プラットフォームの手数料やアカウント停止のリスクなしに個人ブランドを構築します。<br>
📚 **学習プラットフォーム**: セルフホスティング、コンテナオーケストレーション、クラウド技術を実践的に学びます。
## はじめに
### システム互換性
Olaresは以下のLinuxプラットフォームで動作検証を完了しています
- Ubuntu 24.04 LTS 以降
- Debian 11 以降
### Olaresのセットアップ
自分のデバイスでOlaresを始めるには、[はじめにガイド](https://docs.olares.com/manual/get-started/)に従ってステップバイステップの手順を確認してください。
## プロジェクトナビゲーションx
このセクションでは、Olares リポジトリ内の主要なディレクトリをリストアップしています:
* **[`apps`](./apps)**: システムアプリケーションのコードが含まれており、主に `larepass` 用です。
* **[`cli`](./cli)**: Olares のコマンドラインインターフェースツールである `olares-cli` のコードが含まれています。
* **[`daemon`](./daemon)**: システムデーモンプロセスである `olaresd` のコードが含まれています。
* **[`docs`](./docs)**: プロジェクトのドキュメントが含まれています。
* **[`framework`](./framework)**: Olares システムサービスが含まれています。
* **[`infrastructure`](./infrastructure)**: コンピューティング、ストレージ、ネットワーキング、GPU などのインフラストラクチャコンポーネントに関連するコードが含まれています。
* **[`platform`](./platform)**: データベースやメッセージキューなどのクラウドネイティブコンポーネントのコードが含まれています。
* **`vendor`**: サードパーティのハードウェアベンダーからのコードが含まれています。
## Olaresへの貢献
あらゆる形での貢献を歓迎します:
- Olaresで独自のアプリケーションを開発したい場合は、以下を参照してください<br>
https://docs.olares.com/developer/develop/
- Olaresの改善に協力したい場合は、以下を参照してください<br>
https://docs.olares.com/developer/contribute/olares.html
## コミュニティと連絡先
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions). フィードバックの共有や質問に最適です。
* [**GitHub Issues**](https://github.com/beclab/olares/issues). Olaresの使用中に遭遇したバグの報告や機能提案の提出に最適です。
* [**Discord**](https://discord.gg/olares). 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

@@ -0,0 +1,39 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:app-service-frontend-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/app-service
provider-service-ref: app-service.os-framework:6755
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:app-service-provider-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/app-service
provider-service-ref: app-service.os-framework:6755
rules:
- nonResourceURLs:
- "/app-service/*"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:app-service-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:app-service-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'

View File

@@ -0,0 +1,64 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:backup-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/backup
provider-service-ref: backup-server.os-framework:8082
rules:
- nonResourceURLs: ["/apis/backup*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:backup-frontend-domain
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/settings
provider-service-ref: backup-server.os-framework:8082
rules:
- nonResourceURLs: ["/apis/backup*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:backup-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:backup-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:backup-frontend-domain
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:backup-frontend-domain
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: backup
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

View File

@@ -0,0 +1,14 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backend:{{ .Values.bfl.username }}:system-frontend:bfl-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:bfl-svc
subjects:
- kind: ServiceAccount
name: system-frontend
namespace: {{ .Release.Namespace }}

View File

@@ -0,0 +1,13 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backend:{{ .Values.bfl.username }}:system-frontend:files-provider-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:files-provider-svc
subjects:
- kind: ServiceAccount
name: system-frontend
namespace: {{ .Release.Namespace }}

View File

@@ -0,0 +1,136 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:files-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/files
provider-service-ref: files-service.os-framework:80
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:files-frontend-domain
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/files
provider-service-ref: files-service.os-framework:80
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:files-frontend-domain-settings
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/settings
provider-service-ref: files-service.os-framework:80
rules:
- nonResourceURLs:
- "/api/resources/*"
- "/api/nodes/*"
verbs: ["*"]
# ---
# apiVersion: sys.bytetrade.io/v1alpha1
# kind: ProviderRegistry
# metadata:
# name: files-provider
# namespace: user-system-{{ .Values.bfl.username }}
# spec:
# dataType: files
# deployment: files
# description: files provider
# endpoint: files-service.{{ .Release.Namespace }}
# group: service.files
# kind: provider
# namespace: {{ .Release.Namespace }}
# opApis:
# - name: Query
# uri: /provider/query_file
# - name: GetSearchFolderStatus
# uri: /provider/get_search_folder_status
# - name: UpdateSearchFolderPaths
# uri: /provider/update_search_folder_paths
# - name: GetDatasetFolderStatus
# uri: /provider/get_dataset_folder_status
# - name: UpdateDatasetFolderPaths
# uri: /provider/update_dataset_folder_paths
# version: v1
# status:
# state: active
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:files-provider-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/files
provider-service-ref: files-service.os-framework:80
rules:
- nonResourceURLs:
- "/provider/query_file"
- "/provider/get_search_folder_status"
- "/provider/update_search_folder_paths"
- "/provider/get_dataset_folder_status"
- "/provider/update_dataset_folder_paths"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:files-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:files-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:files-frontend-domain
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:files-frontend-domain
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:files-frontend-domain-settings
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:files-frontend-domain-settings
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: files
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

View File

@@ -0,0 +1,13 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backend:{{ .Values.bfl.username }}:system-frontend:headscale-provider-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:headscale-svc
subjects:
- kind: ServiceAccount
name: system-frontend
namespace: {{ .Release.Namespace }}

View File

@@ -0,0 +1,64 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:infisical-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/infisical
provider-service-ref: infisical-service.os-framework:8080
rules:
- nonResourceURLs: ["/admin/*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:infisical-frontend-domain
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/settings
provider-service-ref: infisical-service.os-framework:8080
rules:
- nonResourceURLs: ["/admin/*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:infisical-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:infisical-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:infisical-frontend-domain
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:infisical-frontend-domain
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: infisical
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

View File

@@ -0,0 +1,76 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:market-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/market
provider-service-ref: appstore-svc.os-framework:81
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:market-frontend-domain
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/market
provider-service-ref: appstore-svc.os-framework:81
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:market-provider-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/market
provider-service-ref: appstore-svc.os-framework:81
rules:
- nonResourceURLs: ["/app-store/*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:market-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:market-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:market-frontend-domain
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:market-frontend-domain
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: market
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

View File

@@ -0,0 +1,64 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:middleware-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/middleware
provider-service-ref: middleware-service.os-platform:80
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:middleware-frontend-domain-controlhub
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/control-hub
provider-service-ref: middleware-service.os-platform:80
rules:
- nonResourceURLs: ["/middleware/*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:middleware-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:middleware-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:middleware-frontend-domain-controlhub
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:middleware-frontend-domain-controlhub
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: middleware
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

View File

@@ -0,0 +1,145 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:monitoring-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/monitoring
provider-service-ref: monitoring-server.os-framework:80
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-controlhub
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/control-hub
provider-service-ref: monitoring-server.os-framework:80
rules:
- nonResourceURLs:
- "/kapis/*"
- "/api*"
- "/capi/*"
- "/apis/apps/*"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-dashboard
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/dashboard
provider-service-ref: monitoring-server.os-framework:80
rules:
- nonResourceURLs: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-settings
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/settings
provider-service-ref: monitoring-server.os-framework:80
rules:
- nonResourceURLs:
- "/kapis/*"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-desktop
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/desktop
provider-service-ref: monitoring-server.os-framework:80
rules:
- nonResourceURLs:
- "/kapis/*"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:monitoring-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:monitoring-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:monitoring-frontend-domain-controlhub
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-controlhub
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:monitoring-frontend-domain-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-dashboard
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:monitoring-frontend-domain-settings
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-settings
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:monitoring-frontend-domain-desktop
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:monitoring-frontend-domain-desktop
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: monitoring
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backend:{{ .Values.bfl.username }}:secret-settings-provider-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:secret-settings-provider-svc
subjects:
- kind: ServiceAccount
name: system-frontend
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backend:{{ .Values.bfl.username }}:system-frontend:secret-dashboard-provider-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:secret-dashboard-provider-svc
subjects:
- kind: ServiceAccount
name: system-frontend
namespace: {{ .Release.Namespace }}

View File

@@ -0,0 +1,32 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:settings-provider-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/settings
provider-service-ref: settings-service.{{ .Release.Namespace }}
rules:
- nonResourceURLs:
- "/api/cloud/getNFTAddress"
- "/api/account/"
- "/api/backup/password"
- "/api/account/retrieve"
- "/api/account/all"
- "/api/cookie/retrieve"
- "/api/cookie"
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:edge-desktop-provider-svc
annotations:
provider-registry-ref: user-system-{{ .Values.bfl.username }}/edge-desktop
provider-service-ref: edge-desktop.{{ .Release.Namespace }}
rules:
- nonResourceURLs:
- "/server/intent/send"
- "/server/ai_message"
verbs: ["*"]

View File

@@ -0,0 +1,88 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:vault-frontend-svc
annotations:
provider-registry-ref: user-space-{{ .Values.bfl.username }}/vault
provider-service-ref: vault-server.os-framework:3010
rules:
- nonResourceURLs: ["/vault*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:vault-frontend-domain-settings
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/settings
provider-service-ref: vault-server.os-framework:3010
rules:
- nonResourceURLs: ["/vault*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.bfl.username }}:vault-frontend-domain
annotations:
provider-registry-ref: {{ .Values.bfl.username }}/vault
provider-service-ref: vault-server.os-framework:3000
rules:
- nonResourceURLs: ["/server*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:vault-frontend-svc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:vault-frontend-svc
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:vault-frontend-domain-settings
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:vault-frontend-domain-settings
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: user:{{ .Values.bfl.username }}:vault-frontend-domain
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.bfl.username }}:vault-frontend-domain
subjects:
- kind: User
name: '{{ .Values.bfl.username }}'
---
apiVersion: v1
kind: Service
metadata:
name: vault
namespace: user-space-{{ .Values.bfl.username }}
spec:
type: ExternalName
externalName: system-server.user-system-{{ .Values.bfl.username }}.svc.cluster.local
ports:
- protocol: TCP
port: 28080
targetPort: 28080

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,11 +38,9 @@ os:
search2:
appKey: '${ks[0]}'
appSecret: test
agent:
settings:
appKey: '${ks[0]}'
appSecret: test
files:
dashboard:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""

View File

@@ -0,0 +1,62 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wizard
namespace: {{ .Release.Namespace }}
labels:
app: wizard
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/version: '0.0.1'
spec:
replicas: 1
selector:
matchLabels:
app: wizard
template:
metadata:
labels:
app: wizard
spec:
initContainers:
- args:
- -it
- authelia-backend.os-framework:9091
image: owncloudci/wait-for:latest
imagePullPolicy: IfNotPresent
name: check-auth
containers:
- name: wizard
image: beclab/wizard:v1.4.3
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
env:
- name: apiServerURL
value: http://bfl.{{ .Release.Namespace }}:8080
volumes:
- name: userspace-dir
hostPath:
type: Directory
path: "{{ .Values.userspace.userData }}"
---
apiVersion: v1
kind: Service
metadata:
name: wizard
namespace: {{ .Release.Namespace }}
spec:
type: NodePort
selector:
app: wizard
ports:
- protocol: TCP
port: 80
targetPort: 80
{{ if and .Values.desktop .Values.desktop.nodeport }}
nodePort: {{ .Values.desktop.nodeport }}
{{ end }}

View File

@@ -1,4 +1,3 @@
bfl:
username: 'test'
url: 'test'
@@ -35,5 +34,3 @@ os:
appstore:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""

20
apps/README.md Normal file
View File

@@ -0,0 +1,20 @@
# Olares Apps
## Overview
This directory contains the code for system applications, primarily for LarePass. The following are the pre-installed system applications that offer tools for managing files, knowledge, passwords, and the system itself.
## System Applications Overview
| Application | Description |
| --- | --- |
| Files | A file management app that manages and synchronizes files across devices and sources, enabling seamless sharing and access. |
| Wise | A local-first and AI-native modern reader that helps to collect, read, and manage information from various platforms. Users can run self-hosted recommendation algorithms to filter and sort online content. |
| Vault | A secure password manager for storing and managing sensitive information across devices. |
| Market | A decentralized and permissionless app store for installing, uninstalling, and updating applications and recommendation algorithms. |
| Desktop | A hub for managing and interacting with installed applications. File and application searching are also supported. |
| Profile | An app to customize the user's profile page. |
| Settings | A system configuration application. |
| Dashboard | An app for monitoring system resource usage. |
| Control Hub | The console for Olares, providing precise and autonomous control over the system and its environment. |
| DevBox | A development tool for building and deploying Olares applications. |

View File

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

View File

@@ -1,147 +0,0 @@
{{ $anayltic2_rootpath := printf "%s%s" .Values.rootPath "/rootfs/anayltic2" }}
{{- $namespace := printf "%s" "os-system" -}}
{{- $anayltic2_secret := (lookup "v1" "Secret" $namespace "anayltic2-secrets") -}}
{{- $pg_password := "" -}}
{{ if $anayltic2_secret -}}
{{ $pg_password = (index $anayltic2_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: anayltic2-secrets
namespace: os-system
type: Opaque
data:
pg_password: {{ $pg_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: anayltic2-pg
namespace: os-system
spec:
app: anayltic2
appNamespace: os-system
middleware: postgres
postgreSQL:
user: anayltic2_os_system
password:
valueFrom:
secretKeyRef:
key: pg_password
name: anayltic2-secrets
databases:
- name: anayltic2
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: anayltic2-server
namespace: {{ .Release.Namespace }}
labels:
app: anayltic2-server
applications.app.bytetrade.io/author: bytetrade.io
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: anayltic2-server
template:
metadata:
labels:
app: anayltic2-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-0.citus-headless.os-system
- name: PGPORT
value: "5432"
- name: PGUSER
value: anayltic2_os_system
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB
value: os_system_anayltic2
containers:
- name: anayltic2-server
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
value: citus-0.citus-headless.os-system
- name: PL_DATA_POSTGRES_PORT
value: "5432"
- name: PL_DATA_POSTGRES_DATABASE
value: os_system_anayltic2
- name: PL_DATA_POSTGRES_USER
value: anayltic2_os_system
- name: PL_DATA_POSTGRES_PASSWORD
value: {{ $pg_password | b64dec }}
- name: DATABASE_URL
value: postgres://$(PL_DATA_POSTGRES_USER):$(PL_DATA_POSTGRES_PASSWORD)@$(PL_DATA_POSTGRES_HOST)/$(PL_DATA_POSTGRES_DATABASE)?sslmode=disable
---
apiVersion: v1
kind: Service
metadata:
name: anayltic2-server
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: anayltic2-server
ports:
- name: server
protocol: TCP
port: 3010
targetPort: 3010
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: SysEventRegistry
metadata:
name: anayltic2-user-create-cb
namespace: {{ .Release.Namespace }}
spec:
type: subscriber
event: user.create
callback: http://anayltic2-server.{{ .Release.Namespace }}:3010/callback/create
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: SysEventRegistry
metadata:
name: anayltic2-user-delete-cb
namespace: {{ .Release.Namespace }}
spec:
type: subscriber
event: user.delete
callback: http://anayltic2-server.{{ .Release.Namespace }}:3010/callback/delete

View File

@@ -1,2 +0,0 @@
# RSS Recommend

View File

@@ -1,38 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: clusterworkflowtemplates.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: ClusterWorkflowTemplate
listKind: ClusterWorkflowTemplateList
plural: clusterworkflowtemplates
shortNames:
- clusterwftmpl
- cwft
singular: clusterworkflowtemplate
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true

View File

@@ -1,42 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cronworkflows.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: CronWorkflow
listKind: CronWorkflowList
plural: cronworkflows
shortNames:
- cwf
- cronwf
singular: cronworkflow
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true

View File

@@ -1,43 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workflowartifactgctasks.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: WorkflowArtifactGCTask
listKind: WorkflowArtifactGCTaskList
plural: workflowartifactgctasks
shortNames:
- wfat
singular: workflowartifactgctask
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -1,37 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workfloweventbindings.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: WorkflowEventBinding
listKind: WorkflowEventBindingList
plural: workfloweventbindings
shortNames:
- wfeb
singular: workfloweventbinding
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true

View File

@@ -1,57 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workflows.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: Workflow
listKind: WorkflowList
plural: workflows
shortNames:
- wf
singular: workflow
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Status of the workflow
jsonPath: .status.phase
name: Status
type: string
- description: When the workflow was started
format: date-time
jsonPath: .status.startedAt
name: Age
type: date
- description: Human readable message indicating details about why the workflow
is in this condition.
jsonPath: .status.message
name: Message
type: string
name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources: {}

View File

@@ -1,599 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workflowtaskresults.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: WorkflowTaskResult
listKind: WorkflowTaskResultList
plural: workflowtaskresults
singular: workflowtaskresult
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
message:
type: string
metadata:
type: object
outputs:
properties:
artifacts:
items:
properties:
archive:
properties:
none:
type: object
tar:
properties:
compressionLevel:
format: int32
type: integer
type: object
zip:
type: object
type: object
archiveLogs:
type: boolean
artifactGC:
properties:
podMetadata:
properties:
annotations:
additionalProperties:
type: string
type: object
labels:
additionalProperties:
type: string
type: object
type: object
serviceAccountName:
type: string
strategy:
enum:
- ""
- OnWorkflowCompletion
- OnWorkflowDeletion
- Never
type: string
type: object
artifactory:
properties:
passwordSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
url:
type: string
usernameSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
required:
- url
type: object
azure:
properties:
accountKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
blob:
type: string
container:
type: string
endpoint:
type: string
useSDKCreds:
type: boolean
required:
- blob
- container
- endpoint
type: object
deleted:
type: boolean
from:
type: string
fromExpression:
type: string
gcs:
properties:
bucket:
type: string
key:
type: string
serviceAccountKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
required:
- key
type: object
git:
properties:
branch:
type: string
depth:
format: int64
type: integer
disableSubmodules:
type: boolean
fetch:
items:
type: string
type: array
insecureIgnoreHostKey:
type: boolean
passwordSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
repo:
type: string
revision:
type: string
singleBranch:
type: boolean
sshPrivateKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
usernameSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
required:
- repo
type: object
globalName:
type: string
hdfs:
properties:
addresses:
items:
type: string
type: array
force:
type: boolean
hdfsUser:
type: string
krbCCacheSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
krbConfigConfigMap:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
krbKeytabSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
krbRealm:
type: string
krbServicePrincipalName:
type: string
krbUsername:
type: string
path:
type: string
required:
- path
type: object
http:
properties:
auth:
properties:
basicAuth:
properties:
passwordSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
usernameSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
type: object
clientCert:
properties:
clientCertSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
clientKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
type: object
oauth2:
properties:
clientIDSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
clientSecretSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
endpointParams:
items:
properties:
key:
type: string
value:
type: string
required:
- key
type: object
type: array
scopes:
items:
type: string
type: array
tokenURLSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
type: object
type: object
headers:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
url:
type: string
required:
- url
type: object
mode:
format: int32
type: integer
name:
type: string
optional:
type: boolean
oss:
properties:
accessKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
bucket:
type: string
createBucketIfNotPresent:
type: boolean
endpoint:
type: string
key:
type: string
lifecycleRule:
properties:
markDeletionAfterDays:
format: int32
type: integer
markInfrequentAccessAfterDays:
format: int32
type: integer
type: object
secretKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
securityToken:
type: string
useSDKCreds:
type: boolean
required:
- key
type: object
path:
type: string
raw:
properties:
data:
type: string
required:
- data
type: object
recurseMode:
type: boolean
s3:
properties:
accessKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
bucket:
type: string
caSecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
createBucketIfNotPresent:
properties:
objectLocking:
type: boolean
type: object
encryptionOptions:
properties:
enableEncryption:
type: boolean
kmsEncryptionContext:
type: string
kmsKeyId:
type: string
serverSideCustomerKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
type: object
endpoint:
type: string
insecure:
type: boolean
key:
type: string
region:
type: string
roleARN:
type: string
secretKeySecret:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
useSDKCreds:
type: boolean
type: object
subPath:
type: string
required:
- name
type: object
type: array
exitCode:
type: string
parameters:
items:
properties:
default:
type: string
description:
type: string
enum:
items:
type: string
type: array
globalName:
type: string
name:
type: string
value:
type: string
valueFrom:
properties:
configMapKeyRef:
properties:
key:
type: string
name:
type: string
optional:
type: boolean
required:
- key
type: object
default:
type: string
event:
type: string
expression:
type: string
jqFilter:
type: string
jsonPath:
type: string
parameter:
type: string
path:
type: string
supplied:
type: object
type: object
required:
- name
type: object
type: array
result:
type: string
type: object
phase:
type: string
progress:
type: string
required:
- metadata
type: object
served: true
storage: true

View File

@@ -1,43 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workflowtasksets.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: WorkflowTaskSet
listKind: WorkflowTaskSetList
plural: workflowtasksets
shortNames:
- wfts
singular: workflowtaskset
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -1,37 +0,0 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workflowtemplates.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: WorkflowTemplate
listKind: WorkflowTemplateList
plural: workflowtemplates
shortNames:
- wftmpl
singular: workflowtemplate
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true

View File

@@ -1,94 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflows
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-server
app.kubernetes.io/instance: rss
app.kubernetes.io/component: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- ""
resources:
- configmaps
- events
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- delete
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- events
verbs:
- watch
- create
- patch
- apiGroups:
- argoproj.io
resources:
- eventsources
- sensors
- workflows
- workfloweventbindings
- workflowtemplates
- cronworkflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflows-cluster-template
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-server
app.kubernetes.io/instance: rss
app.kubernetes.io/component: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- clusterworkflowtemplates
verbs:
- get
- list
- watch
- create
- update
- patch
- delete

View File

@@ -1,105 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflow-view
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-workflow-controller
app.kubernetes.io/instance: rss
app.kubernetes.io/component: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflow-edit
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-server
app.kubernetes.io/instance: rss
app.kubernetes.io/component: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflow-admin
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-server
app.kubernetes.io/instance: rss
app.kubernetes.io/component: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch

View File

@@ -1,178 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflow-workflow-controller
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-workflow-controller
app.kubernetes.io/instance: rss
app.kubernetes.io/component: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- persistentvolumeclaims
- persistentvolumeclaims/finalizers
verbs:
- create
- update
- delete
- get
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowartifactgctasks
verbs:
- get
- list
- watch
- update
- patch
- delete
- create
- apiGroups:
- argoproj.io
resources:
- workflowtemplates
- workflowtemplates/finalizers
verbs:
- get
- list
- watch
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
- workflowtaskresults/finalizers
verbs:
- list
- watch
- deletecollection
- apiGroups:
- argoproj.io
resources:
- cronworkflows
- cronworkflows/finalizers
verbs:
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- get
- list
- apiGroups:
- "policy"
resources:
- poddisruptionbudgets
verbs:
- create
- get
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
resourceNames:
- workflow-controller
- workflow-controller-lease
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
resourceNames:
- rss-secrets
- argo-workflows-agent-ca-certificates
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argoworkflow-workflow-controller-cluster-template
labels:
helm.sh/chart: argoworkflows-0.35.0
app.kubernetes.io/name: argoworkflows-workflow-controller
app.kubernetes.io/instance: rss
app.kubernetes.io/component: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- get
- list
- watch

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,41 +0,0 @@
---
apiVersion: v1
kind: Secret
metadata:
name: argo-workflow-log-fakes3
namespace: {{ .Release.Namespace }}
type: Opaque
stringData:
AWS_ACCESS_KEY_ID: S3RVER
AWS_SECRET_ACCESS_KEY: S3RVER
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: workflow-role
namespace: {{ .Release.Namespace }}
rules:
- apiGroups:
- "*"
resources:
- pods
verbs:
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: workflow-rolebinding
namespace: {{ .Release.Namespace }}
subjects:
- kind: ServiceAccount
namespace: {{ .Release.Namespace }}
name: default
roleRef:
kind: Role
name: workflow-role
apiGroup: rbac.authorization.k8s.io

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,51 +0,0 @@
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}}
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- watch
- patch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- watch
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
verbs:
- create
- apiGroups:
- argoproj.io
resources:
- workflowtasksets
- workflowartifactgctasks
verbs:
- list
- watch
- apiGroups:
- argoproj.io
resources:
- workflowtasksets/status
- workflowartifactgctasks/status
verbs:
- patch

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,142 +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
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,185 +0,0 @@
{{- $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:
name: workflow-archivelog-s3
namespace: user-system-{{ .Values.bfl.username }}
spec:
type: ClusterIP
selector:
app: systemserver
ports:
- protocol: TCP
name: fakes3
port: 4568
targetPort: 4568

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,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,117 +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
io.bytetrade.app: "true"
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

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

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: desktop
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,742 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: edge-desktop
namespace: {{ .Release.Namespace }}
labels:
app: edge-desktop
applications.app.bytetrade.io/author: bytetrade.io
annotations:
applications.app.bytetrade.io/version: '0.0.1'
spec:
replicas: 1
selector:
matchLabels:
app: edge-desktop
template:
metadata:
labels:
app: edge-desktop
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
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
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: edge-desktop
image: beclab/desktop:v0.2.45
imagePullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
env:
- name: apiServerURL
value: http://bfl.{{ .Release.Namespace }}:8080
- name: desktop-server
image: beclab/desktop-server:v0.2.45
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
volumeMounts:
- name: userspace-dir
mountPath: /Home
ports:
- containerPort: 3000
env:
- name: OS_SYSTEM_SERVER
value: system-server.user-system-{{ .Values.bfl.username }}
- name: OS_APP_SECRET
value: '{{ .Values.os.desktop.appSecret }}'
- name: OS_APP_KEY
value: {{ .Values.os.desktop.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
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
- name: terminus-ws-sidecar
image: 'beclab/ws-gateway:v1.0.3'
imagePullPolicy: IfNotPresent
command:
- /ws-gateway
env:
- name: WS_PORT
value: '3010'
- name: WS_URL
value: /websocket/message
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumes:
- name: userspace-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
- name: terminus-sidecar-config
configMap:
name: sidecar-ws-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: edge-desktop
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: edge-desktop
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: {{ .Release.Namespace }}
name: internal-kubectl
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Namespace }}:edge-desktop-rb
subjects:
- kind: ServiceAccount
namespace: {{ .Release.Namespace }}
name: internal-kubectl
roleRef:
# kind: Role
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: app-event-watcher
namespace: user-system-{{ .Values.bfl.username }}
spec:
callbacks:
- filters:
type:
- 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
op: Create
uri: /server/app_installation_event
- filters:
type:
- system-upgrade-event
op: Create
uri: /server/system_upgrade_event
dataType: event
deployment: edge-desktop
description: desktop event watcher
endpoint: edge-desktop.{{ .Release.Namespace }}
group: message-disptahcer.system-server
kind: watcher
namespace: {{ .Release.Namespace }}
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: intent-api
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: legacy_api
deployment: edge-desktop
description: edge-desktop legacy api
endpoint: edge-desktop.{{ .Release.Namespace }}
group: api.intent
kind: provider
namespace: {{ .Release.Namespace }}
version: v1
opApis:
- name: POST
uri: /server/intent/send
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: intent-api-v2
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: legacy_api
deployment: edge-desktop
description: edge-desktop legacy api
endpoint: edge-desktop.{{ .Release.Namespace }}
group: api.intent
kind: provider
namespace: {{ .Release.Namespace }}
version: v2
opApis:
- name: POST
uri: /server/intent/send
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: destktop-ai-provider
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: ai_message
deployment: edge-desktop
description: search ai callback
endpoint: edge-desktop.{{ .Release.Namespace }}
group: service.desktop
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: AIMessage
uri: /server/ai_message
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: desktop-notification
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: notification
deployment: edge-desktop
description: send notification to desktop client
endpoint: edge-desktop.{{ .Release.Namespace }}
group: service.desktop
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: Create
uri: /notification/create
- name: Query
uri: /notification/query
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ApplicationPermission
metadata:
name: desktop
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: desktop
appid: desktop
key: {{ .Values.os.desktop.appKey }}
secret: {{ .Values.os.desktop.appSecret }}
permissions:
- dataType: files
group: service.files
ops:
- Query
version: v1
- dataType: datastore
group: service.bfl
ops:
- GetKey
- GetKeyPrefix
- SetKey
- DeleteKey
version: v1
- dataType: app
group: service.bfl
ops:
- UserApps
version: v1
- dataType: app
group: service.appstore
ops:
- UninstallDevApp
version: v1
status:
state: active
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: desktop-config
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: config
deployment: edge-desktop
description: Set Desktop Config
endpoint: edge-desktop.{{ .Release.Namespace }}
group: service.desktop
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: Update
uri: /server/updateDesktopConfig
version: v1
status:
state: active
---
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
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 180s
http_protocol_options:
accept_http_10: true
http_filters:
- name: envoy.filters.http.ext_authz
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
http_service:
path_prefix: '/api/verify/'
server_uri:
uri: authelia-backend.os-system:9091
cluster: authelia
timeout: 2s
authorization_request:
allowed_headers:
patterns:
- exact: accept
- exact: cookie
- exact: proxy-authorization
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
value: '%REQ(:METHOD)%'
- key: X-Forwarded-Proto
value: '%REQ(:SCHEME)%'
- key: X-Forwarded-Host
value: '%REQ(:AUTHORITY)%'
- key: X-Forwarded-Uri
value: '%REQ(:PATH)%'
- key: X-Forwarded-For
value: '%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%'
authorization_response:
allowed_upstream_headers:
patterns:
- exact: authorization
- exact: proxy-authorization
- prefix: remote-
- prefix: authelia-
allowed_client_headers:
patterns:
- exact: set-cookie
allowed_client_headers_on_success:
patterns:
- exact: set-cookie
failure_mode_allow: false
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- name: listener_image
address:
socket_address:
address: 127.0.0.1
port_value: 15080
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: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/images/upload"
route:
cluster: images
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
clusters:
- name: original_dst
connect_timeout: 5000s
type: ORIGINAL_DST
lb_policy: CLUSTER_PROVIDED
- name: authelia
connect_timeout: 2s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: authelia
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: authelia-backend.os-system
port_value: 9091
- name: images
connect_timeout: 5s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: images
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: tapr-images-svc.user-system-{{ .Values.bfl.username }}
port_value: 8080
kind: ConfigMap
metadata:
name: sidecar-configs
namespace: {{ .Release.Namespace }}
---
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
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/ws"
route:
cluster: ws_original_dst
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 180s
http_protocol_options:
accept_http_10: true
http_filters:
- name: envoy.filters.http.ext_authz
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
http_service:
path_prefix: '/api/verify/'
server_uri:
uri: authelia-backend.os-system:9091
cluster: authelia
timeout: 2s
authorization_request:
allowed_headers:
patterns:
- exact: accept
- exact: cookie
- exact: proxy-authorization
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
value: '%REQ(:METHOD)%'
- key: X-Forwarded-Proto
value: '%REQ(:SCHEME)%'
- key: X-Forwarded-Host
value: '%REQ(:AUTHORITY)%'
- key: X-Forwarded-Uri
value: '%REQ(:PATH)%'
- key: X-Forwarded-For
value: '%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%'
authorization_response:
allowed_upstream_headers:
patterns:
- exact: authorization
- exact: proxy-authorization
- prefix: remote-
- prefix: authelia-
allowed_client_headers:
patterns:
- exact: set-cookie
allowed_client_headers_on_success:
patterns:
- exact: set-cookie
failure_mode_allow: false
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- name: listener_image
address:
socket_address:
address: 127.0.0.1
port_value: 15080
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: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/images/upload"
route:
cluster: images
http_filters:
- 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: ws_original_dst
connect_timeout: 5000s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: ws_original_dst
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: localhost
port_value: 40010
- name: authelia
connect_timeout: 2s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: authelia
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: authelia-backend.os-system
port_value: 9091
- name: images
connect_timeout: 5s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: images
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: tapr-images-svc.user-system-{{ .Values.bfl.username }}
port_value: 8080
kind: ConfigMap
metadata:
name: sidecar-ws-configs
namespace: {{ .Release.Namespace }}

View File

@@ -1,39 +0,0 @@
bfl:
username: 'test'
url: 'test'
nodeName: test
pvc:
userspace: test
userspace:
userData: test/Home
appData: test/Data
appCache: test
dbdata: test
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
appstore:
appKey: '${ks[0]}'
appSecret: test
kubesphere:
redis_password: ""

Binary file not shown.

View File

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

Binary file not shown.

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: download
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,319 +0,0 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $download_secret := (lookup "v1" "Secret" $namespace "rss-secrets") -}}
{{- $pg_password := "" -}}
{{ if $download_secret -}}
{{ $pg_password = (index $download_secret "data" "pg_password") }}
{{ else -}}
{{ $pg_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password := "" -}}
{{ if $download_secret -}}
{{ $redis_password = (index $download_secret "data" "redis_password") }}
{{ else -}}
{{ $redis_password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $download_nats_secret := (lookup "v1" "Secret" $namespace "download-secrets") -}}
{{- $nat_password := "" -}}
{{ if $download_nats_secret -}}
{{ $nat_password = (index $download_nats_secret "data" "nat_password") }}
{{ else -}}
{{ $nat_password = randAlphaNum 16 | b64enc }}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: download-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $pg_password }}
redis_password: {{ $redis_password }}
nat_password: {{ $nat_password }}
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: download-pg
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: download
appNamespace: {{ .Release.Namespace }}
middleware: postgres
postgreSQL:
user: knowledge_{{ .Values.bfl.username }}
password:
valueFrom:
secretKeyRef:
key: pg_password
name: download-secrets
databases:
- name: knowledge
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: download-nat
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: download
appNamespace: {{ .Release.Namespace }}
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: nat_password
name: download-secrets
refs: []
subjects:
- name: download_status
permission:
pub: allow
sub: allow
export:
- appName: knowledge
sub: allow
pub: allow
user: user-system-{{ .Values.bfl.username }}-download
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: download
namespace: {{ .Release.Namespace }}
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:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
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-master-svc.user-system-{{ .Values.bfl.username }}
- name: PGPORT
value: "5432"
- name: PGUSER
value: knowledge_{{ .Values.bfl.username }}
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB
value: user_space_{{ .Values.bfl.username }}_knowledge
containers:
- name: aria2
image: "beclab/aria2:v0.0.3"
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.0.16"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- containerPort: 3082
env:
- 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
- name: SETTING_URL
value: http://system-server.user-system-{{ .Values.bfl.username }}/legacy/v1alpha1/service.settings/v1/api/cookie/retrieve
- name: REDIS_HOST
value: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
- name: REDIS_PASSWORD
value: {{ $redis_password | b64dec }}
- name: NATS_HOST
value: nats.user-system-{{ .Values.bfl.username }}
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: user-system-{{ .Values.bfl.username }}-download
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: "terminus.{{ .Release.Namespace }}.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.0.15"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- 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
- name: REDIS_HOST
value: redis-cluster-proxy.user-system-{{ .Values.bfl.username }}
- name: REDIS_PASSWORD
value: {{ $redis_password | b64dec }}
- name: NATS_HOST
value: nats.user-system-{{ .Values.bfl.username }}
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: user-system-{{ .Values.bfl.username }}-download
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: "terminus.{{ .Release.Namespace }}.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.userspace.appData}}/Downloads/config
- name: download-dir
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.userData }}
---
apiVersion: v1
kind: Service
metadata:
name: download-svc
namespace: {{ .Release.Namespace }}
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
---
apiVersion: v1
kind: Service
metadata:
name: download-api
namespace: user-system-{{ .Values.bfl.username }}
spec:
type: ClusterIP
selector:
app: systemserver
ports:
- protocol: TCP
name: download-api
port: 3080
targetPort: 3080

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 +0,0 @@
# files
https://github.com/beclab/files

View File

@@ -1,647 +0,0 @@
{{- $namespace := printf "%s" "os-system" -}}
{{- $files_secret := (lookup "v1" "Secret" $namespace "files-secrets") -}}
{{- $password := "" -}}
{{ if $files_secret -}}
{{ $password = (index $files_secret "data" "password") }}
{{ else -}}
{{ $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 -}}
---
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
spec:
serviceAccount: os-internal
serviceAccountName: os-internal
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
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
containers:
- name: gateway
image: beclab/appdata-gateway:0.1.15
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
ports:
- containerPort: 8080
env:
- name: FILES_SERVER_TAG
value: 'beclab/files-server:v0.2.45'
- 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
ports:
- containerPort: 9090
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: user-appdata-dir
mountPath: /appdata
{{ if .Values.sharedlib }}
- name: shared-lib
mountPath: /data/External
{{ end }}
- name: files
image: beclab/files-server:v0.2.45
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: true
runAsUser: 1000
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: {{ $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: 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.7
env:
- name: UPLOAD_FILE_TYPE
value: '*'
- name: UPLOAD_LIMITED_SIZE
value: '21474836481'
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
{{ end }}
resources: { }
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: nginx
image: 'beclab/nginx-lua:n0.0.4'
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- 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: 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
containers:
- name: files
image: beclab/files-server:v0.2.45
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
volumeMounts:
- name: fb-data
mountPath: /appdata
- name: user-appdata-dir
mountPath: /data/AppData
ports:
- containerPort: 8110
env:
- name: FB_DATABASE
value: /appdata/database/filebrowser.db
- name: FB_CONFIG
value: /appdata/config/settings.json
- name: FB_ROOT
value: /data
- 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:
password: {{ $password }}
files_redis_password: {{ $files_redis_password }}
---
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
---
kind: ConfigMap
apiVersion: v1
metadata:
name: files-nginx-config
namespace: os-system
annotations:
kubesphere.io/creator: bytetrade.io
data:
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 60s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 75s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
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 60s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 75s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
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 off;
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 60s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 75s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
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 60s;
client_max_body_size 2000M;
proxy_request_buffering off;
keepalive_timeout 75s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
# 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

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "files.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 "files.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 "files.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "files.labels" -}}
helm.sh/chart: {{ include "files.chart" . }}
{{ include "files.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "files.selectorLabels" -}}
app.kubernetes.io/name: {{ include "files.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "files.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "files.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -1,835 +0,0 @@
{{- $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") }}
{{ else -}}
{{ $password = randAlphaNum 16 | b64enc }}
{{- end -}}
{{- $redis_password := "" -}}
{{ if $zinc_files_secret -}}
{{ $redis_password = (index $zinc_files_secret "data" "redis_password") }}
{{ else -}}
{{ $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 -}}
---
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
metadata:
name: files-deployment
namespace: {{ .Release.Namespace }}
labels:
app: files
applications.app.bytetrade.io/name: files
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/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","windowPushState":true}]'
spec:
replicas: 1
selector:
matchLabels:
app: files
template:
metadata:
labels:
app: files
io.bytetrade.app: "true"
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
- 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
- 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-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
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.69
imagePullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
runAsUser: 0
ports:
- containerPort: 80
volumeMounts:
- name: userspace-dir
mountPath: /data
- name: drive-server
image: beclab/drive:v0.0.29
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: task-executor
image: beclab/driveexecutor:v0.0.29
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: 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
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: watch-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}/Documents
- name: userspace-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
- name: userspace-app-dir
hostPath:
type: Directory
path: {{ .Values.userspace.appData }}
- name: fb-data
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache}}/files
- name: upload-data
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
- name: upload-appdata
hostPath:
type: Directory
path: {{ .Values.userspace.appCache}}
- name: uploads-temp
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appCache }}/files/uploadstemp
- name: terminus-sidecar-config
configMap:
name: sidecar-upload-configs
items:
- key: envoy.yaml
path: envoy.yaml
---
apiVersion: v1
kind: Service
metadata:
name: files-service
namespace: {{ .Release.Namespace }}
spec:
selector:
app: files
type: ClusterIP
ports:
- protocol: TCP
name: files
port: 80
targetPort: 80
---
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
name: files-provider
namespace: user-system-{{ .Values.bfl.username }}
spec:
dataType: files
deployment: files
description: files provider
endpoint: files-service.{{ .Release.Namespace }}
group: service.files
kind: provider
namespace: {{ .Release.Namespace }}
opApis:
- name: Query
uri: /provider/query_file
- name: GetSearchFolderStatus
uri: /provider/get_search_folder_status
- name: UpdateSearchFolderPaths
uri: /provider/update_search_folder_paths
- name: GetDatasetFolderStatus
uri: /provider/get_dataset_folder_status
- name: UpdateDatasetFolderPaths
uri: /provider/update_dataset_folder_paths
version: v1
status:
state: active
#---
#apiVersion: sys.bytetrade.io/v1alpha1
#kind: ApplicationPermission
#metadata:
# name: files
# namespace: user-system-{{ .Values.bfl.username }}
#spec:
# app: files
# appid: files
# key: {{ .Values.os.files.appKey }}
# secret: {{ .Values.os.files.appSecret }}
# permissions:
# - dataType: gateway
# group: service.difyfusionclient
# ops:
# - DifyGatewayBaseProvider
# version: v1
#status:
# state: active
#---
#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
# },
# "name": {
# "type": "text",
# "index": true,
# "store": false,
# "sortable": false,
# "aggregatable": false,
# "highlightable": false
# },
# "size": {
# "type": "numeric",
# "index": true,
# "store": false,
# "sortable": true,
# "aggregatable": true,
# "highlightable": false
# },
# "updated": {
# "type": "numeric",
# "index": true,
# "store": false,
# "sortable": true,
# "aggregatable": true,
# "highlightable": false
# },
# "where": {
# "type": "text",
# "analyzer": "keyword",
# "index": true,
# "store": false,
# "sortable": false,
# "aggregatable": false,
# "highlightable": false
# }
# }
# }
#kind: ConfigMap
#metadata:
# name: zinc-files
# namespace: user-system-{{ .Values.bfl.username }}
---
apiVersion: v1
kind: Secret
metadata:
name: zinc-files-secrets
namespace: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
password: {{ $password }}
redis_password: {{ $redis_password }}
pg_password: {{ $pg_password }}
#---
#apiVersion: apr.bytetrade.io/v1alpha1
#kind: MiddlewareRequest
#metadata:
# name: zinc-files
# namespace: user-system-{{ .Values.bfl.username }}
#spec:
# app: files
# appNamespace: user-space-{{ .Values.bfl.username }}
# middleware: zinc
# zinc:
# user: zincuser-files-{{ .Values.bfl.username }}
# password:
# valueFrom:
# secretKeyRef:
# key: password
# name: zinc-files-secrets
# indexes:
# - name: zinc-files
# namespace: user-system-{{ .Values.bfl.username }}
# key: mappings
---
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: zinc-files-redis
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: files
appNamespace: user-space-{{ .Values.bfl.username }}
middleware: redis
redis:
password:
valueFrom:
secretKeyRef:
key: redis_password
name: zinc-files-secrets
namespace: zinc-files
---
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
max_request_headers_kb: 500
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/upload"
route:
cluster: upload_original_dst
- match:
prefix: "/"
route:
cluster: original_dst
timeout: 600s
http_protocol_options:
accept_http_10: true
http_filters:
- name: envoy.filters.http.ext_authz
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
http_service:
path_prefix: '/api/verify/'
server_uri:
uri: authelia-backend.os-system:9091
cluster: authelia
timeout: 2s
authorization_request:
allowed_headers:
patterns:
- exact: accept
- exact: cookie
- exact: proxy-authorization
- prefix: x-unauth-
- exact: x-authorization
- exact: x-bfl-user
- exact: terminus-nonce
headers_to_add:
- key: X-Forwarded-Method
value: '%REQ(:METHOD)%'
- key: X-Forwarded-Proto
value: '%REQ(:SCHEME)%'
- key: X-Forwarded-Host
value: '%REQ(:AUTHORITY)%'
- key: X-Forwarded-Uri
value: '%REQ(:PATH)%'
- key: X-Forwarded-For
value: '%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%'
authorization_response:
allowed_upstream_headers:
patterns:
- exact: authorization
- exact: proxy-authorization
- prefix: remote-
- prefix: authelia-
allowed_client_headers:
patterns:
- exact: set-cookie
allowed_client_headers_on_success:
patterns:
- exact: set-cookie
failure_mode_allow: false
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- name: listener_image
address:
socket_address:
address: 127.0.0.1
port_value: 15080
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: tapr_http
http_protocol_options:
accept_http_10: true
upgrade_configs:
- upgrade_type: websocket
skip_xff_append: false
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: service
domains: ["*"]
routes:
- match:
prefix: "/images/upload"
route:
cluster: images
http_filters:
- 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: upload_original_dst
connect_timeout: 5000s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: upload_original_dst
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: files-service.os-system
port_value: 80
- name: authelia
connect_timeout: 2s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: authelia
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: authelia-backend.os-system
port_value: 9091
- name: images
connect_timeout: 5s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
dns_refresh_rate: 600s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: images
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: tapr-images-svc.user-system-{{ .Values.bfl.username }}
port_value: 8080
kind: ConfigMap
metadata:
name: sidecar-upload-configs
namespace: {{ .Release.Namespace }}

View File

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

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: knowledge
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 "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,548 +0,0 @@
{{- $namespace := printf "%s%s" "user-system-" .Values.bfl.username -}}
{{- $knowledge_secret := (lookup "v1" "Secret" $namespace "rss-secrets") -}}
{{- $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 -}}
{{- $knowledge_nats_secret := (lookup "v1" "Secret" $namespace "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: user-system-{{ .Values.bfl.username }}
type: Opaque
data:
pg_password: {{ $pg_password }}
nat_password: {{ $nat_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: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
name: knowledge-nat
namespace: user-system-{{ .Values.bfl.username }}
spec:
app: knowledge
appNamespace: {{ .Release.Namespace }}
middleware: nats
nats:
password:
valueFrom:
secretKeyRef:
key: nat_password
name: knowledge-secrets
refs:
- appName: download
appNamespace: {{ .Release.Namespace }}
subjects:
- name: download_status
perm:
- pub
- sub
user: user-system-{{ .Values.bfl.username }}-knowledge
---
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:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
initContainers:
- name: init-data
image: busybox:1.28
securityContext:
privileged: true
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- name: juicefs
mountPath: /juicefs
command:
- sh
- -c
- |
chown -R 1000:1000 /juicefs
- 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-master-svc.user-system-{{ .Values.bfl.username }}
- name: PGPORT
value: "5432"
- name: PGUSER
value: knowledge_{{ .Values.bfl.username }}
- name: PGPASSWORD
value: {{ $pg_password | b64dec }}
- name: PGDB
value: user_space_{{ .Values.bfl.username }}_knowledge
containers:
- name: knowledge
image: "beclab/knowledge-base-api:v0.1.56"
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: SEARCH_URL
value: 'http://search3.os-system:80'
- 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
- name: DOWNLOAD_URL
value: http://download-svc.user-space-{{ .Values.bfl.username }}:3080
- name: BFL_USER_NAME
value: "{{ .Values.bfl.username }}"
- name: SETTING_URL
value: http://system-server.user-system-{{ .Values.bfl.username }}
- name: NATS_HOST
value: nats.user-system-{{ .Values.bfl.username }}
- name: NATS_PORT
value: "4222"
- name: NATS_USERNAME
value: user-system-{{ .Values.bfl.username }}-knowledge
- name: NATS_PASSWORD
value: {{ $nat_password | b64dec }}
- name: NATS_SUBJECT
value: "terminus.{{ .Release.Namespace }}.download_status"
- name: SOCKET_URL
value: 'http://localhost:40010'
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.24"
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: LISTEN_ADDR
value: 127.0.0.1:8080
- 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: 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: 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_{{ .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
- name: WATCH_DIR
value: /data/Home/Downloads
- name: NOTIFY_SERVER
value: fsnotify-svc.user-system-{{ .Values.bfl.username }}:5079
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: backend-server
- name: YT_DLP_API_URL
value: http://download-svc.user-space-{{ .Values.bfl.username }}:3082/api/v1/get_metadata
- name: DOWNLOAD_API_URL
value: http://download-svc.user-space-{{ .Values.bfl.username }}:3080/api/termius/download
- name: SETTING_API_URL
value: http://system-server.user-system-{{ .Values.bfl.username }}/legacy/v1alpha1/service.settings/v1/api/cookie/retrieve
volumeMounts:
- name: watch-dir
mountPath: /data/Home/Downloads
ports:
- containerPort: 8080
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "800m"
memory: 400Mi
- name: sync
image: "beclab/recommend-sync:v0.0.15"
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: TERMIUS_USER_NAME
value: "{{ .Values.bfl.username }}"
- name: JUICEFS_ROOT_DIRECTORY
value: /juicefs
- name: KNOWLEDGE_BASE_API_URL
value: http://127.0.0.1:3010
- name: PG_HOST
value: citus-master-svc.user-system-{{ .Values.bfl.username }}
- name: PG_USERNAME
value: knowledge_{{ .Values.bfl.username }}
- name: PG_PASSWORD
value: {{ $pg_password | b64dec }}
- name: PG_DATABASE
value: user_space_{{ .Values.bfl.username }}_knowledge
- name: PG_PORT
value: "5432"
- name: TERMINUS_RECOMMEND_REDIS_ADDR
valueFrom:
configMapKeyRef:
name: knowledge-secrets-auth
key: redis_addr
- name: TERMINUS_RECOMMEND_REDIS_PASSOWRD
valueFrom:
configMapKeyRef:
name: knowledge-secrets-auth
key: redis_password
volumeMounts:
- name: juicefs
mountPath: /juicefs
- name: crawler
image: "beclab/recommend-crawler:v0.0.14"
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
env:
- name: TERMIUS_USER_NAME
value: "{{ .Values.bfl.username }}"
- name: KNOWLEDGE_BASE_API_URL
value: http://127.0.0.1:3010
resources:
requests:
cpu: 20m
memory: 50Mi
limits:
cpu: "800m"
memory: 800Mi
- name: terminus-ws-sidecar
image: 'beclab/ws-gateway:v1.0.3'
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: watch-dir
hostPath:
type: Directory
path: {{ .Values.userspace.userData }}
- name: juicefs
hostPath:
type: DirectoryOrCreate
path: {{ .Values.userspace.appData }}/rss/data
- 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: {{ .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: 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: ""

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