Skip to content

Commit 9838936

Browse files
committed
Initial commit
0 parents  commit 9838936

File tree

22 files changed

+728
-0
lines changed

22 files changed

+728
-0
lines changed

.github/workflows/main.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# .github/workflows/main.yml
2+
name: Build
3+
on:
4+
push:
5+
braches: [main]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@master
12+
- name: Getting Go Binaries
13+
uses: actions/setup-go@v2
14+
with:
15+
go-version: '1.18'
16+
- name: Build Application
17+
run: |
18+
go get -u && go mod tidy
19+
go build -o rest-server
20+
- name: Create Zip
21+
run: |
22+
zip -r /tmp/rest-server-${{ github.run_number }}.zip rest-server
23+
- name: Release
24+
id: create_release
25+
uses: softprops/action-gh-release@v1
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.TOKEN }}
28+
with:
29+
files: /tmp/rest-server-${{ github.run_number }}.zip
30+
name: "Release ${{ github.run_number }}"
31+
tag_name: "release.${{ github.run_number }}"

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.env
2+
tmp/

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Liman MYS Render Engine
2+

app/controllers/test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package controllers
2+
3+
import (
4+
"github.com/gofiber/fiber/v2"
5+
"github.com/limanmys/render-engine/app/models"
6+
"github.com/limanmys/render-engine/internal/bridge"
7+
)
8+
9+
func CredentialTest(c *fiber.Ctx) error {
10+
11+
credentials, err := bridge.GetCredentials(
12+
&models.User{
13+
ID: c.Params("user"),
14+
},
15+
&models.Server{
16+
ID: c.Params("server"),
17+
},
18+
)
19+
20+
if err != nil {
21+
return err
22+
}
23+
24+
return c.JSON(credentials)
25+
}

app/models/AccessToken.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package models
2+
3+
// AccessToken Structure of the personal access token
4+
type AccessToken struct {
5+
ID string `json:"id"`
6+
Name string `json:"name"`
7+
UserID string `json:"user_id"`
8+
LastUsedAt string `json:"last_used_at"`
9+
LastUsedIP string `json:"last_used_ip"`
10+
Token string `json:"token"`
11+
CreatedAt string `json:"created_at"`
12+
UpdatedAt string `json:"updated_at"`
13+
IPRange string `json:"ip_range"`
14+
}
15+
16+
func (AccessToken) TableName() string {
17+
return "access_tokens"
18+
}

app/models/Credentials.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package models
2+
3+
type Credentials struct {
4+
// Type
5+
Type string `json:"type"`
6+
7+
// Username
8+
Username string `json:"username"`
9+
10+
// Certificate or password
11+
Key string `json:"key"`
12+
13+
// Connection port
14+
Port string `json:"port"`
15+
}

app/models/Extension.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package models
2+
3+
// Extension Structure of the extension obj
4+
type Extension struct {
5+
ID string `json:"id"`
6+
Name string `json:"name"`
7+
Version string `json:"version"`
8+
Icon string `json:"icon"`
9+
Service string `json:"service"`
10+
CreatedAt string `json:"created_at"`
11+
UpdatedAt string `json:"updated_at"`
12+
Order int `json:"order"`
13+
SslPorts string `json:"sslPorts" pg:"sslPorts"`
14+
Issuer string `json:"issuer"`
15+
Language string `json:"language"`
16+
Support string `json:"support"`
17+
Displays string `json:"displays"`
18+
Status string `json:"status"`
19+
RequireKey string `json:"require_key"`
20+
}
21+
22+
func (Extension) TableName() string {
23+
return "extensions"
24+
}

app/models/Server.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package models
2+
3+
// ServerModel Structure of the server obj
4+
type Server struct {
5+
ID string `json:"id"`
6+
Name string `json:"name"`
7+
Type string `json:"type"`
8+
IPAddress string `json:"ip_address"`
9+
City string `json:"city"`
10+
ControlPort string `json:"control_port"`
11+
UserID string `json:"user_id"`
12+
CreatedAt string `json:"created_at"`
13+
UpdatedAt string `json:"updated_at"`
14+
Os string `json:"os"`
15+
Enabled string `json:"enabled"`
16+
KeyPort int `json:"key_port"`
17+
SharedKey int `json:"shared_key"`
18+
}
19+
20+
func (Server) TableName() string {
21+
return "servers"
22+
}

app/models/ServerKey.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package models
2+
3+
import (
4+
"os"
5+
6+
"github.com/mervick/aes-everywhere/go/aes256"
7+
)
8+
9+
// ServerKey Structure of the server keys
10+
type ServerKey struct {
11+
ID string `json:"id"`
12+
Type string `json:"type"`
13+
Data string `json:"data"`
14+
ServerID string `json:"server_id"`
15+
UserID string `json:"user_id"`
16+
CreatedAt string `json:"created_at"`
17+
UpdatedAt string `json:"updated_at"`
18+
}
19+
20+
type KeyData struct {
21+
ClientUsername string `json:"clientUsername"`
22+
ClientPassword string `json:"clientPassword"`
23+
KeyPort string `json:"key_port"`
24+
}
25+
26+
func (ServerKey) TableName() string {
27+
return "server_keys"
28+
}
29+
30+
func (d KeyData) DecryptKey(user *User, server *Server) *Credentials {
31+
key := os.Getenv("APP_KEY") + user.ID + server.ID
32+
33+
return &Credentials{
34+
Username: aes256.Decrypt(d.ClientUsername, key),
35+
Key: aes256.Decrypt(d.ClientPassword, key),
36+
Port: d.KeyPort,
37+
}
38+
}

app/models/Token.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package models
2+
3+
// TokenModel Structure of the tokens tableD
4+
type Token struct {
5+
ID string `json:"id"`
6+
UserID string `json:"user_id"`
7+
Token string `json:"token"`
8+
CreatedAt string `json:"created_at"`
9+
UpdatedAt string `json:"updated_at"`
10+
}
11+
12+
func (Token) TableName() string {
13+
return "tokens"
14+
}

0 commit comments

Comments
 (0)