Compare commits

..

31 Commits

Author SHA1 Message Date
hank
328c77225e New translations en.po (Swedish) 2025-07-26 18:45:11 -04:00
hank
ae7317a272 New translations en.po (Arabic) 2025-07-25 19:46:11 -04:00
hank
6140b5c240 New translations en.po (French) 2025-07-25 19:46:10 -04:00
hank
cd5a04065f New translations en.po (Chinese Traditional, Hong Kong) 2025-07-25 18:47:20 -04:00
hank
86576c1b71 New translations en.po (Croatian) 2025-07-25 18:47:19 -04:00
hank
c5bd07fd46 New translations en.po (Persian) 2025-07-25 18:47:18 -04:00
hank
ffb8d06c5a New translations en.po (Icelandic) 2025-07-25 18:47:18 -04:00
hank
eae8f2d51a New translations en.po (Vietnamese) 2025-07-25 18:47:17 -04:00
hank
6fa67cc8ef New translations en.po (Chinese Traditional) 2025-07-25 18:47:16 -04:00
hank
ac46cca263 New translations en.po (Chinese Simplified) 2025-07-25 18:47:15 -04:00
hank
81676c7df4 New translations en.po (Ukrainian) 2025-07-25 18:47:15 -04:00
hank
8bb6344504 New translations en.po (Turkish) 2025-07-25 18:47:14 -04:00
hank
4b1f5b21c5 New translations en.po (Swedish) 2025-07-25 18:47:13 -04:00
hank
550dfd35fa New translations en.po (Slovenian) 2025-07-25 18:47:12 -04:00
hank
d40b488057 New translations en.po (Russian) 2025-07-25 18:47:11 -04:00
hank
d80358d770 New translations en.po (Portuguese) 2025-07-25 18:47:11 -04:00
hank
9eaf3ac4b3 New translations en.po (Polish) 2025-07-25 18:47:10 -04:00
hank
a7eb1613c3 New translations en.po (Norwegian) 2025-07-25 18:47:09 -04:00
hank
897d8fd6a2 New translations en.po (Dutch) 2025-07-25 18:47:09 -04:00
hank
2ef3b6f991 New translations en.po (Korean) 2025-07-25 18:47:08 -04:00
hank
febf9f3567 New translations en.po (Japanese) 2025-07-25 18:47:07 -04:00
hank
a23525530b New translations en.po (Italian) 2025-07-25 18:47:06 -04:00
hank
ce0d94b9c0 New translations en.po (Hungarian) 2025-07-25 18:47:05 -04:00
hank
0c6a64f994 New translations en.po (Greek) 2025-07-25 18:47:04 -04:00
hank
bd7e84544a New translations en.po (German) 2025-07-25 18:47:04 -04:00
hank
a61a5f3591 New translations en.po (Danish) 2025-07-25 18:47:03 -04:00
hank
95cd181e8c New translations en.po (Czech) 2025-07-25 18:47:02 -04:00
hank
dc85562e2b New translations en.po (Bulgarian) 2025-07-25 18:47:01 -04:00
hank
4acb82a513 New translations en.po (Arabic) 2025-07-25 18:47:01 -04:00
hank
531d25f2fa New translations en.po (Spanish) 2025-07-25 18:47:00 -04:00
hank
58c5ffaa39 New translations en.po (French) 2025-07-25 18:46:59 -04:00
41 changed files with 81 additions and 241 deletions

View File

@@ -3,7 +3,7 @@ name: Make release and binaries
on:
push:
tags:
- "v*"
- 'v*'
permissions:
contents: write
@@ -29,7 +29,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "^1.22.1"
go-version: '^1.22.1'
- name: GoReleaser beszel
uses: goreleaser/goreleaser-action@v6
@@ -40,4 +40,3 @@ jobs:
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.TOKEN || secrets.GITHUB_TOKEN }}
WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }}

View File

@@ -188,7 +188,6 @@ winget:
publisher_support_url: "https://github.com/henrygd/beszel/issues"
short_description: "Agent for Beszel, a lightweight server monitoring platform."
skip_upload: auto
token: "{{ .Env.WINGET_TOKEN }}"
description: |
Beszel is a lightweight server monitoring platform that includes Docker
statistics, historical data, and alert functions. It has a friendly web

View File

@@ -111,7 +111,7 @@ func main() {
serverConfig.Addr = addr
serverConfig.Network = agent.GetNetwork(addr)
agent, err := agent.NewAgent()
agent, err := agent.NewAgent("")
if err != nil {
log.Fatal("Failed to create agent: ", err)
}

View File

@@ -40,13 +40,13 @@ type Agent struct {
// NewAgent creates a new agent with the given data directory for persisting data.
// If the data directory is not set, it will attempt to find the optimal directory.
func NewAgent(dataDir ...string) (agent *Agent, err error) {
func NewAgent(dataDir string) (agent *Agent, err error) {
agent = &Agent{
fsStats: make(map[string]*system.FsStats),
cache: NewSessionCache(69 * time.Second),
}
agent.dataDir, err = getDataDir(dataDir...)
agent.dataDir, err = getDataDir(dataDir)
if err != nil {
slog.Warn("Data directory not found")
} else {

View File

@@ -1,12 +1,12 @@
{
"name": "beszel",
"version": "0.12.1",
"version": "0.12.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "beszel",
"version": "0.12.1",
"version": "0.12.0",
"dependencies": {
"@henrygd/queue": "^1.0.7",
"@henrygd/semaphore": "^0.0.2",

View File

@@ -1,7 +1,7 @@
{
"name": "beszel",
"private": true,
"version": "0.12.1",
"version": "0.12.0",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -87,5 +87,5 @@ export default function AreaChartDefault({
</ChartContainer>
</div>
)
}, [chartData.systemStats.at(-1), yAxisWidth, maxToggled])
}, [chartData.systemStats.length, yAxisWidth, maxToggled])
}

View File

@@ -174,11 +174,17 @@ export default function SystemsTable() {
invertSorting: false,
Icon: ServerIcon,
cell: (info) => (
<span className="flex gap-2 items-center md:ps-1 md:pe-5">
<span className="flex gap-0.5 items-center text-base md:ps-1 md:pe-5">
<IndicatorDot system={info.row.original} />
<span className="font-medium text-sm">
<Button
data-nolink
variant={"ghost"}
className="text-primary/90 h-7 px-1.5 gap-1.5"
onClick={() => copyToClipboard(info.getValue() as string)}
>
{info.getValue() as string}
</span>
<CopyIcon className="size-2.5" />
</Button>
</span>
),
header: sortableHeader,
@@ -715,10 +721,6 @@ const ActionsButton = memo(({ system }: { system: SystemRecord }) => {
</>
)}
</DropdownMenuItem>
<DropdownMenuItem onClick={() => copyToClipboard(name)}>
<CopyIcon className="me-2.5 size-4" />
<Trans>Copy name</Trans>
</DropdownMenuItem>
<DropdownMenuItem onClick={() => copyToClipboard(host)}>
<CopyIcon className="me-2.5 size-4" />
<Trans>Copy host</Trans>

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 23:46\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@@ -296,10 +296,6 @@ msgstr "نسخ المضيف"
msgid "Copy Linux command"
msgstr "نسخ أمر لينكس"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "نسخ الاسم"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "نسخ النص"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Копирай хоста"
msgid "Copy Linux command"
msgstr "Копирай linux командата"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Копирай име"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Копирай текста"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -296,10 +296,6 @@ msgstr "Kopírovat hostitele"
msgid "Copy Linux command"
msgstr "Kopírovat příkaz Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopírovat název"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopírovat text"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Kopier host"
msgid "Copy Linux command"
msgstr "Kopier Linux kommando"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopier navn"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopier tekst"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Host kopieren"
msgid "Copy Linux command"
msgstr "Linux-Befehl kopieren"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Name kopieren"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Text kopieren"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr ""
msgid "Copy Linux command"
msgstr ""
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr ""
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Copiar host"
msgid "Copy Linux command"
msgstr "Copiar comando de Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Copiar nombre"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Copiar texto"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "کپی میزبان"
msgid "Copy Linux command"
msgstr "کپی دستور لینوکس"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "کپی نام"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "کپی متن"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 23:46\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -296,10 +296,6 @@ msgstr "Copier l'hôte"
msgid "Copy Linux command"
msgstr "Copier la commande Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Copier le nom"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Copier le texte"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: hr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Croatian\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -296,10 +296,6 @@ msgstr "Kopiraj hosta"
msgid "Copy Linux command"
msgstr "Kopiraj Linux komandu"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopiraj naziv"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopiraj tekst"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Hoszt másolása"
msgid "Copy Linux command"
msgstr "Linux parancs másolása"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Név másolása"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Szöveg másolása"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: is\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Icelandic\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Afrita host"
msgid "Copy Linux command"
msgstr "Afrita Linux aðgerð"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Afrita nafn"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Afrita texta"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Copia host"
msgid "Copy Linux command"
msgstr "Copia comando Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Copia nome"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Copia testo"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "ホストをコピー"
msgid "Copy Linux command"
msgstr "Linuxコマンドをコピー"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "名前をコピー"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "テキストをコピー"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "호스트 복사"
msgid "Copy Linux command"
msgstr "리눅스 명령어 복사"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "이름 복사"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "텍스트 복사"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Kopieer host"
msgid "Copy Linux command"
msgstr "Kopieer Linux-opdracht"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopieer naam"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopieer tekst"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Kopier vert"
msgid "Copy Linux command"
msgstr "Kopier Linux-kommando"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopier navn"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopier tekst"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -296,10 +296,6 @@ msgstr "Kopiuj host"
msgid "Copy Linux command"
msgstr "Kopiuj polecenie Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopiuj nazwę"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopiuj tekst"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Copiar host"
msgid "Copy Linux command"
msgstr "Copiar comando Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Copiar nome"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Copiar texto"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -296,10 +296,6 @@ msgstr "Копировать хост"
msgid "Copy Linux command"
msgstr "Копировать команду Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Копировать имя"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Копировать текст"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -296,10 +296,6 @@ msgstr "Kopiraj gostitelja"
msgid "Copy Linux command"
msgstr "Kopiraj Linux ukaz"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopiraj ime"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopiraj besedilo"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-26 22:45\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Kopiera värd"
msgid "Copy Linux command"
msgstr "Kopiera Linux-kommando"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Kopiera namn"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Kopiera text"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -296,10 +296,6 @@ msgstr "Ana bilgisayarı kopyala"
msgid "Copy Linux command"
msgstr "Linux komutunu kopyala"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Adı kopyala"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Metni kopyala"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -296,10 +296,6 @@ msgstr "Копіювати хост"
msgid "Copy Linux command"
msgstr "Копіювати команду Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Копіювати імʼя"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Копіювати текст"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "Sao chép máy chủ"
msgid "Copy Linux command"
msgstr "Sao chép lệnh Linux"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "Sao chép tên"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "Sao chép văn bản"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "复制主机名"
msgid "Copy Linux command"
msgstr "复制 Linux 安装命令"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "复制名称"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "复制文本"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional, Hong Kong\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "複製主機"
msgid "Copy Linux command"
msgstr "複製 Linux 指令"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "複製名稱"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "複製文本"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-02 01:36\n"
"PO-Revision-Date: 2025-07-25 22:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -296,10 +296,6 @@ msgstr "複製主機"
msgid "Copy Linux command"
msgstr "複製 Linux 指令"
#: src/components/systems-table/systems-table.tsx
msgid "Copy name"
msgstr "複製名稱"
#: src/components/copy-to-clipboard.tsx
msgid "Copy text"
msgstr "複製文字"

View File

@@ -3,7 +3,7 @@ package beszel
import "github.com/blang/semver"
const (
Version = "0.12.1"
Version = "0.12.0"
AppName = "beszel"
)

View File

@@ -16,7 +16,7 @@ It has a friendly web interface, simple configuration, and is ready to use out o
- **Lightweight**: Smaller and less resource-intensive than leading solutions.
- **Simple**: Easy setup with little manual configuration required.
- **Docker stats**: Tracks CPU, memory, and network usage history for each container.
- **Alerts**: Configurable alerts for CPU, memory, disk, bandwidth, temperature, load average, and status.
- **Alerts**: Configurable alerts for CPU, memory, disk, bandwidth, temperature, and status.
- **Multi-user**: Users manage their own systems. Admins can share systems across users.
- **OAuth / OIDC**: Supports many OAuth2 providers. Password auth can be disabled.
- **Automatic backups**: Save to and restore from disk or S3-compatible storage.

View File

@@ -31,12 +31,10 @@ if ! getent passwd "$SERVICE_USER" >/dev/null; then
--gecos "System user for $SERVICE"
fi
# Enable docker (only if docker group exists)
if getent group docker >/dev/null 2>&1; then
if ! getent group docker | grep -q "$SERVICE_USER"; then
echo "Adding $SERVICE_USER to docker group"
usermod -aG docker "$SERVICE_USER"
fi
# Enable docker
if ! getent group docker | grep -q "$SERVICE_USER"; then
echo "Adding $SERVICE_USER to docker group"
usermod -aG docker "$SERVICE_USER"
fi
# Create config file if it doesn't already exist

View File

@@ -5,7 +5,7 @@ is_alpine() {
}
is_openwrt() {
grep -qi "OpenWrt" /etc/os-release
cat /etc/os-release | grep -q "OpenWrt"
}
# If SELinux is enabled, set the context of the binary
@@ -227,8 +227,8 @@ if [ "$UNINSTALL" = true ]; then
rm -f /var/log/beszel-agent.log /var/log/beszel-agent.err
elif is_openwrt; then
echo "Stopping and disabling the agent service..."
/etc/init.d/beszel-agent stop
/etc/init.d/beszel-agent disable
service beszel-agent stop
service beszel-agent disable
echo "Removing the OpenWRT service files..."
rm -f /etc/init.d/beszel-agent
@@ -288,13 +288,13 @@ package_installed() {
}
# Check for package manager and install necessary packages if not installed
if package_installed apk; then
if ! package_installed tar || ! package_installed curl || ! package_installed sha256sum; then
if is_alpine; then
if ! package_installed tar || ! package_installed curl || ! package_installed coreutils; then
apk update
apk add tar curl coreutils shadow
fi
elif package_installed opkg; then
if ! package_installed tar || ! package_installed curl || ! package_installed sha256sum; then
elif is_openwrt; then
if ! package_installed tar || ! package_installed curl || ! package_installed coreutils; then
opkg update
opkg install tar curl coreutils
fi
@@ -335,10 +335,11 @@ else
fi
# Create a dedicated user for the service if it doesn't exist
echo "Creating a dedicated user for the Beszel Agent service..."
if is_alpine; then
if ! id -u beszel >/dev/null 2>&1; then
echo "Creating a dedicated group for the Beszel Agent service..."
addgroup beszel
echo "Creating a dedicated user for the Beszel Agent service..."
adduser -S -D -H -s /sbin/nologin -G beszel beszel
fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists
@@ -346,37 +347,10 @@ if is_alpine; then
echo "Adding beszel to docker group"
usermod -aG docker beszel
fi
elif is_openwrt; then
# Create beszel group first if it doesn't exist (check /etc/group directly)
if ! grep -q "^beszel:" /etc/group >/dev/null 2>&1; then
echo "beszel:x:999:" >> /etc/group
fi
# Create beszel user if it doesn't exist (double-check to prevent duplicates)
if ! id -u beszel >/dev/null 2>&1 && ! grep -q "^beszel:" /etc/passwd >/dev/null 2>&1; then
echo "beszel:x:999:999::/nonexistent:/bin/false" >> /etc/passwd
fi
# Add the user to the docker group if docker group exists and user is not already in it
if grep -q "^docker:" /etc/group >/dev/null 2>&1; then
echo "Adding beszel to docker group"
# Check if beszel is already in docker group
if ! grep "^docker:" /etc/group | grep -q "beszel"; then
# Add beszel to docker group by modifying /etc/group
# Handle both cases: group with existing members and group without members
if grep "^docker:" /etc/group | grep -q ":.*:.*$"; then
# Group has existing members, append with comma
sed -i 's/^docker:\([^:]*:[^:]*:\)\(.*\)$/docker:\1\2,beszel/' /etc/group
else
# Group has no members, just append
sed -i 's/^docker:\([^:]*:[^:]*:\)$/docker:\1beszel/' /etc/group
fi
fi
fi
else
if ! id -u beszel >/dev/null 2>&1; then
echo "Creating a dedicated user for the Beszel Agent service..."
useradd --system --home-dir /nonexistent --shell /bin/false beszel
fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists
@@ -453,11 +427,6 @@ set_selinux_context
# Cleanup
rm -rf "$TEMP_DIR"
# Make sure /etc/machine-id exists for persistent fingerprint
if [ ! -f /etc/machine-id ]; then
cat /proc/sys/kernel/random/uuid | tr -d '-' > /etc/machine-id
fi
# Check for NVIDIA GPUs and grant device permissions for systemd service
detect_nvidia_devices() {
local devices=""
@@ -577,7 +546,10 @@ start_service() {
procd_set_param command /opt/beszel-agent/beszel-agent
procd_set_param user beszel
procd_set_param pidfile /var/run/beszel-agent.pid
procd_set_param env PORT="$PORT" KEY="$KEY" TOKEN="$TOKEN" HUB_URL="$HUB_URL"
procd_set_param env PORT="$PORT"
procd_set_param env KEY="$KEY"
procd_set_param env TOKEN="$TOKEN"
procd_set_param env HUB_URL="$HUB_URL"
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
@@ -601,10 +573,10 @@ EOF
# Enable the service
chmod +x /etc/init.d/beszel-agent
/etc/init.d/beszel-agent enable
service beszel-agent enable
# Start the service
/etc/init.d/beszel-agent restart
service beszel-agent restart
# Auto-update service for OpenWRT using a crontab job
if [ "$AUTO_UPDATE_FLAG" = "true" ]; then
@@ -632,9 +604,9 @@ EOF
esac
# Check service status
if ! /etc/init.d/beszel-agent running >/dev/null 2>&1; then
if ! service beszel-agent running >/dev/null 2>&1; then
echo "Error: The Beszel Agent service is not running."
/etc/init.d/beszel-agent status
service beszel-agent status
exit 1
fi

View File

@@ -217,6 +217,13 @@ function Update-ServicePath {
throw "NSSM is not available in PATH and no valid NSSMPath was provided"
}
# Stop the service
Write-Host "Stopping beszel-agent service..."
& $nssmCommand stop beszel-agent
if ($LASTEXITCODE -ne 0) {
Write-Host "Warning: Failed to stop service, continuing anyway..." -ForegroundColor Yellow
}
# Update the application path
& $nssmCommand set beszel-agent Application $NewAgentPath
if ($LASTEXITCODE -ne 0) {
@@ -226,25 +233,7 @@ function Update-ServicePath {
Write-Host "Service path updated to: $NewAgentPath"
# Start the service
Start-BeszelAgentService -NSSMPath $nssmCommand
}
# Function to start and monitor the service
function Start-BeszelAgentService {
param (
[string]$NSSMPath = ""
)
Write-Host "Starting beszel-agent service..."
# Determine the NSSM executable to use
$nssmCommand = "nssm"
if ($NSSMPath -and (Test-Path $NSSMPath)) {
$nssmCommand = $NSSMPath
} elseif (-not (Test-CommandExists "nssm")) {
throw "NSSM is not available in PATH and no valid NSSMPath was provided"
}
& $nssmCommand start beszel-agent
$startResult = $LASTEXITCODE
@@ -266,7 +255,7 @@ function Start-BeszelAgentService {
if ($serviceStatus -eq "SERVICE_RUNNING") {
$serviceStarted = $true
Write-Host "Success! The beszel-agent service is now running." -ForegroundColor Green
Write-Host "Success! The beszel-agent service is now running with the updated path." -ForegroundColor Green
}
elseif ($serviceStatus -like "*PENDING*") {
Write-Host "Service is still starting (status: $serviceStatus)... waiting" -ForegroundColor Yellow
@@ -284,7 +273,7 @@ function Start-BeszelAgentService {
}
} else {
# NSSM start command was successful
Write-Host "Success! The beszel-agent service is running properly." -ForegroundColor Green
Write-Host "Success! The beszel-agent service is running with the updated path." -ForegroundColor Green
}
}
@@ -298,6 +287,7 @@ $isAdmin = Test-Admin
try {
Write-Host "Beszel Agent Upgrade Script" -ForegroundColor Cyan
Write-Host "===========================" -ForegroundColor Cyan
Write-Host ""
# First: Check if service exists (doesn't require admin)
$existingService = Get-Service -Name "beszel-agent" -ErrorAction SilentlyContinue
@@ -322,13 +312,6 @@ try {
Write-Host "Retrieving current service configuration..."
$currentConfig = Get-ServiceConfiguration -NSSMPath $nssmPath
# Stop the service before upgrade
Write-Host "Stopping beszel-agent service..."
& $nssmPath stop beszel-agent
if ($LASTEXITCODE -ne 0) {
Write-Host "Warning: Failed to stop service, continuing anyway..." -ForegroundColor Yellow
}
# Upgrade the agent (doesn't require admin)
Write-Host "Upgrading beszel-agent..."
$newAgentPath = $null
@@ -357,8 +340,7 @@ try {
# Check if the path has changed
if ($currentConfig.CurrentPath -eq $newAgentPath) {
Write-Host "Agent path has not changed. Restarting service..." -ForegroundColor Green
Start-BeszelAgentService -NSSMPath $nssmPath
Write-Host "Agent path has not changed. Service update not needed." -ForegroundColor Green
Write-Host "Upgrade completed successfully!" -ForegroundColor Green
exit 0
}