mirror of
https://github.com/IceWhaleTech/CasaOS.git
synced 2025-12-23 13:04:42 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d088afcc5 | ||
|
|
34f35bbf20 | ||
|
|
b6f413b9e9 | ||
|
|
091be6d12e | ||
|
|
aefa68d8f8 | ||
|
|
9aed323d8d | ||
|
|
eba607fc53 | ||
|
|
d064f20a04 |
4
.github/workflows/push_events_to_discord.yml
vendored
4
.github/workflows/push_events_to_discord.yml
vendored
@@ -36,13 +36,13 @@ jobs:
|
||||
webhook: ${{ secrets.Discord_CasaOS_App_Request_Webhook }}
|
||||
|
||||
- name: Bug Issues & Comments
|
||||
if: ${{ ( github.event_name == 'issues' || github.event_name == 'issue_comment' ) && contains(github.event.issue.labels.*.name, 'bug') && !contains(!github.event.issue.labels.*.name, 'alpha') }}
|
||||
if: ${{ ( github.event_name == 'issues' || github.event_name == 'issue_comment' ) && contains(github.event.issue.labels.*.name, 'bug') && !contains(github.event.issue.labels.*.name, 'alpha') }}
|
||||
uses: joseph-montanez/forward-event-action@v3.0.0
|
||||
with:
|
||||
webhook: ${{ secrets.Discord_CasaOS_Bug_Webhook }}
|
||||
|
||||
- name: Alpha Issues & Comments
|
||||
if: ${{ ( github.event_name == 'issues' || github.event_name == 'issue_comment' ) && contains(!github.event.issue.labels.*.name, 'alpha') }}
|
||||
if: ${{ ( github.event_name == 'issues' || github.event_name == 'issue_comment' ) && contains(github.event.issue.labels.*.name, 'alpha') }}
|
||||
uses: joseph-montanez/forward-event-action@v3.0.0
|
||||
with:
|
||||
webhook: ${{ secrets.Discord_CasaOS_Alpha_Webhook }}
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -38,3 +38,6 @@ main
|
||||
CasaOS
|
||||
github.com
|
||||
.all-contributorsrc
|
||||
build
|
||||
dist
|
||||
.goreleaser.yaml
|
||||
@@ -5,15 +5,18 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/config"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/samba"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/command"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/encryption"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/file"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
|
||||
"github.com/IceWhaleTech/CasaOS/service"
|
||||
model2 "github.com/IceWhaleTech/CasaOS/service/model"
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func InitFunction() {
|
||||
@@ -24,7 +27,8 @@ func InitFunction() {
|
||||
// Soon to be removed
|
||||
ChangeAPIUrl()
|
||||
MoveUserToDB()
|
||||
InitNetworkMount()
|
||||
go InitNetworkMount()
|
||||
|
||||
}
|
||||
|
||||
func CheckSerialDiskMount() {
|
||||
@@ -141,12 +145,14 @@ func MoveUserToDB() {
|
||||
}
|
||||
|
||||
func InitNetworkMount() {
|
||||
time.Sleep(time.Second * 10)
|
||||
connections := service.MyService.Connections().GetConnectionsList()
|
||||
for _, v := range connections {
|
||||
connection := service.MyService.Connections().GetConnectionByID(fmt.Sprint(v.ID))
|
||||
directories, err := samba.GetSambaSharesList(connection.Host, connection.Port, connection.Username, connection.Password)
|
||||
if err != nil {
|
||||
service.MyService.Connections().DeleteConnection(fmt.Sprint(connection.ID))
|
||||
loger.Error("mount samba err", zap.Any("err", err), zap.Any("info", connection))
|
||||
continue
|
||||
}
|
||||
baseHostPath := "/mnt/" + connection.Host
|
||||
|
||||
@@ -220,7 +220,7 @@ func AppInfo(c *gin.Context) {
|
||||
// sort.EnvSort(envOrder).Sort(info.Envs)
|
||||
// sort.VolSort(volOrder).Sort(info.Volumes.([]model.PathMap))
|
||||
// sort.DevSort(devOrder).Sort(info.Devices)
|
||||
|
||||
info.Image += ":" + info.ImageVersion
|
||||
info.MaxMemory = (service.MyService.System().GetMemInfo()["total"]).(uint64) >> 20
|
||||
|
||||
c.JSON(common_err.SUCCESS, &model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: info})
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -209,6 +211,9 @@ func GetDisksUSBList(c *gin.Context) {
|
||||
tempChildren.Size, _ = strconv.ParseUint(child.FSSize, 10, 64)
|
||||
tempChildren.Avail, _ = strconv.ParseUint(child.FSAvail, 10, 64)
|
||||
tempChildren.Name = child.Label
|
||||
if len(tempChildren.Name) == 0 {
|
||||
tempChildren.Name = filepath.Base(child.MountPoint)
|
||||
}
|
||||
avail, _ := strconv.ParseUint(child.FSAvail, 10, 64)
|
||||
children = append(children, tempChildren)
|
||||
temp.Avail += avail
|
||||
@@ -255,6 +260,8 @@ func DeleteDisksUmount(c *gin.Context) {
|
||||
service.MyService.Disk().UmountPointAndRemoveDir(v.Path)
|
||||
//delete data
|
||||
service.MyService.Disk().DeleteMountPoint(v.Path, v.MountPoint)
|
||||
|
||||
service.MyService.Shares().DeleteShareByPath(v.MountPoint)
|
||||
}
|
||||
|
||||
service.MyService.Disk().RemoveLSBLKCache()
|
||||
@@ -367,7 +374,7 @@ func PostDiskAddPartition(c *gin.Context) {
|
||||
js := make(map[string]interface{})
|
||||
c.ShouldBind(&js)
|
||||
path := js["path"].(string)
|
||||
//name := js["name"].(string)
|
||||
name := js["name"].(string)
|
||||
format := js["format"].(bool)
|
||||
|
||||
if len(path) == 0 {
|
||||
@@ -412,10 +419,16 @@ func PostDiskAddPartition(c *gin.Context) {
|
||||
// c.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.DISK_NEEDS_FORMAT, Message: common_err.GetMsg(common_err.DISK_NEEDS_FORMAT)})
|
||||
// return
|
||||
// }
|
||||
fmt.Println(name)
|
||||
if len(name) == 0 {
|
||||
name = "Storage"
|
||||
}
|
||||
fmt.Println(name)
|
||||
for i := 0; i < len(currentDisk.Children); i++ {
|
||||
childrenName := currentDisk.Children[i].Label
|
||||
if len(childrenName) == 0 {
|
||||
childrenName = "Storage_" + currentDisk.Children[i].Name
|
||||
//childrenName = name + "_" + currentDisk.Children[i].Name
|
||||
childrenName = name + "_" + strconv.Itoa(i+1)
|
||||
}
|
||||
mountPath := "/DATA/" + childrenName
|
||||
if !file.CheckNotExist(mountPath) {
|
||||
|
||||
@@ -1120,7 +1120,7 @@ func ContainerUpdateInfo(c *gin.Context) {
|
||||
showENV := info.Config.Labels["show_env"]
|
||||
showENVList := strings.Split(showENV, ",")
|
||||
showENVMap := make(map[string]string)
|
||||
if len(showENVList) > 0 {
|
||||
if len(showENVList) > 0 && showENVList[0] != "" {
|
||||
for _, name := range showENVList {
|
||||
showENVMap[name] = "1"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.com
|
||||
* @Date: 2022-07-26 11:08:48
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-05 12:16:39
|
||||
* @LastEditTime: 2022-08-17 18:25:42
|
||||
* @FilePath: /CasaOS/route/v1/samba.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@@ -85,6 +85,7 @@ func PostSambaSharesCreate(c *gin.Context) {
|
||||
shareDBModel.Anonymous = true
|
||||
shareDBModel.Path = v.Path
|
||||
shareDBModel.Name = filepath.Base(v.Path)
|
||||
os.Chmod(v.Path, 0777)
|
||||
service.MyService.Shares().CreateShare(shareDBModel)
|
||||
}
|
||||
|
||||
@@ -127,8 +128,8 @@ func PostSambaConnectionsCreate(c *gin.Context) {
|
||||
c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
|
||||
return
|
||||
}
|
||||
connection.Host = strings.Split(connection.Host, "/")[0]
|
||||
// check is exists
|
||||
|
||||
connections := service.MyService.Connections().GetConnectionByHost(connection.Host)
|
||||
if len(connections) > 0 {
|
||||
c.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.Record_ALREADY_EXIST, Message: common_err.GetMsg(common_err.Record_ALREADY_EXIST), Data: common_err.GetMsg(common_err.Record_ALREADY_EXIST)})
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.com
|
||||
* @Date: 2022-07-11 16:02:29
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-11 14:20:02
|
||||
* @LastEditTime: 2022-08-17 19:14:50
|
||||
* @FilePath: /CasaOS/route/v1/storage.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@@ -11,8 +11,8 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
||||
"github.com/IceWhaleTech/CasaOS/model"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
|
||||
@@ -70,7 +70,12 @@ func GetStorageList(c *gin.Context) {
|
||||
stor.Type = v.FsType
|
||||
stor.DriveName = v.Name
|
||||
if len(v.Label) == 0 {
|
||||
stor.Label = "Storage" + strconv.Itoa(diskNumber) + "_" + strconv.Itoa(children)
|
||||
if stor.MountPoint == "/" {
|
||||
stor.Label = "System"
|
||||
} else {
|
||||
stor.Label = filepath.Base(stor.MountPoint)
|
||||
}
|
||||
|
||||
children += 1
|
||||
} else {
|
||||
stor.Label = v.Label
|
||||
|
||||
@@ -535,13 +535,14 @@ func (ds *dockerService) DockerContainerCreate(m model.CustomizationPostData, id
|
||||
// info.NetworkSettings = &types.NetworkSettings{}
|
||||
hostConfig = info.HostConfig
|
||||
config = info.Config
|
||||
}
|
||||
|
||||
} else {
|
||||
config.Cmd = m.Cmd
|
||||
config.Image = m.Image
|
||||
config.Env = envArr
|
||||
config.Hostname = m.HostName
|
||||
config.ExposedPorts = ports
|
||||
}
|
||||
|
||||
config.Labels["origin"] = m.Origin
|
||||
config.Labels["casaos"] = "casaos"
|
||||
config.Labels["web"] = m.PortMap
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
/*
|
||||
* @Author: LinkLeong link@icewhale.org
|
||||
* @Date: 2021-12-07 17:14:41
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-17 18:46:43
|
||||
* @FilePath: /CasaOS/service/model/o_disk.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
* Copyright (c) 2022 by icewhale, All Rights Reserved.
|
||||
*/
|
||||
package model
|
||||
|
||||
//SerialAdvanced Technology Attachment (STAT)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.org
|
||||
* @Date: 2022-07-26 11:21:14
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-11 14:04:00
|
||||
* @LastEditTime: 2022-08-18 11:16:25
|
||||
* @FilePath: /CasaOS/service/shares.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@@ -30,12 +30,18 @@ type SharesService interface {
|
||||
DeleteShare(id string)
|
||||
UpdateConfigFile()
|
||||
InitSambaConfig()
|
||||
DeleteShareByPath(path string)
|
||||
}
|
||||
|
||||
type sharesStruct struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func (s *sharesStruct) DeleteShareByPath(path string) {
|
||||
s.db.Where("path LIKE ?", path+"%").Delete(&model.SharesDBModel{})
|
||||
s.UpdateConfigFile()
|
||||
}
|
||||
|
||||
func (s *sharesStruct) GetSharesByName(name string) (shares []model2.SharesDBModel) {
|
||||
s.db.Select("anonymous,path,id").Where("name = ?", name).Find(&shares)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.com
|
||||
* @Date: 2022-02-17 18:53:22
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-10 13:50:57
|
||||
* @LastEditTime: 2022-08-25 10:49:46
|
||||
* @FilePath: /CasaOS/types/system.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@@ -10,6 +10,6 @@
|
||||
*/
|
||||
package types
|
||||
|
||||
const CURRENTVERSION = "0.3.5"
|
||||
const CURRENTVERSION = "0.3.5.1"
|
||||
|
||||
const BODY = " "
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<title>
|
||||
CasaOS
|
||||
</title>
|
||||
<link href="/ui/css/13.a16d5119.css" rel="prefetch"><link href="/ui/css/14.cf8c898a.css" rel="prefetch"><link href="/ui/css/4.f17f9b01.css" rel="prefetch"><link href="/ui/css/5.e8438f80.css" rel="prefetch"><link href="/ui/css/6.d72d6157.css" rel="prefetch"><link href="/ui/css/7.805596b0.css" rel="prefetch"><link href="/ui/css/8.92188e4d.css" rel="prefetch"><link href="/ui/css/9.dccf29b4.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.c78d232d.css" rel="preload" as="style"><link href="/ui/css/vendors~app.c42f9a2b.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.c42f9a2b.css" rel="stylesheet"><link href="/ui/css/app.c78d232d.css" rel="stylesheet"></head>
|
||||
<link href="/ui/css/13.3244968c.css" rel="prefetch"><link href="/ui/css/14.edf73182.css" rel="prefetch"><link href="/ui/css/4.0b84e87b.css" rel="prefetch"><link href="/ui/css/5.b9bdfac7.css" rel="prefetch"><link href="/ui/css/6.c3a0b3d4.css" rel="prefetch"><link href="/ui/css/7.fdbd0ee0.css" rel="prefetch"><link href="/ui/css/8.d53635ba.css" rel="prefetch"><link href="/ui/css/9.b2f820da.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.274cdf77.css" rel="preload" as="style"><link href="/ui/css/vendors~app.a44f2742.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.a44f2742.css" rel="stylesheet"><link href="/ui/css/app.274cdf77.css" rel="stylesheet"></head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
|
||||
110
web/js/4.js
110
web/js/4.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
506
web/js/app.js
506
web/js/app.js
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user