This commit is contained in:
dannielshalev 2025-08-28 16:16:16 +03:00 committed by GitHub
commit fd9685f965
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 556 additions and 9 deletions

1
.github/CODEOWNERS vendored Normal file
View file

@ -0,0 +1 @@
.github/** @dannielshalev @eladso @stav-uveye @it-uveye

38
.github/workflows/main.yaml vendored Normal file
View file

@ -0,0 +1,38 @@
name: Build and push Docker Image to ECR
on:
push:
branches:
- main
- 'release_v**'
env:
REPOSITORY_NAME: "vnc-desktop"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Build Docker Image
uses: docker/build-push-action@v3
with:
context: .
push: true
tags: "${{ secrets.AWS_REGISTRY }}/${{ env.REPOSITORY_NAME }}:${{ github.ref_name }}.${{ github.run_number }}"

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
*.pyc
tags
cscope*
.idea

View file

@ -121,6 +121,10 @@ COPY rootfs /
RUN ln -sf /usr/local/lib/web/frontend/static/websockify /usr/local/lib/web/frontend/static/novnc/utils/websockify && \
chmod +x /usr/local/lib/web/frontend/static/websockify/run
# Copy
COPY icons/applications/* /usr/share/applications/
COPY icons/*.desktop /home/uvdesk/Desktop/
EXPOSE 80
WORKDIR /root
ENV HOME=/home/ubuntu \

132
SEC_README.md Normal file
View file

@ -0,0 +1,132 @@
<h3>Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.</h3>
#### Changes included in this PR
- Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
- rootfs/usr/local/lib/web/backend/requirements.txt
<details>
<summary>⚠️ <b>Warning</b></summary>
```
Werkzeug 2.2.3 has requirement MarkupSafe>=2.1.1, but you have MarkupSafe 1.1.1.
requests 2.22.0 has requirement urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1, but you have urllib3 1.26.5.
```
</details>
#### Vulnerabilities that will be fixed
##### By pinning:
Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity
:-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:-------------------------
![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity") | **554/1000** <br/> **Why?** Has a fix available, CVSS 6.8 | Insufficient Verification of Data Authenticity <br/>[SNYK-PYTHON-CERTIFI-3164749](https://snyk.io/vuln/SNYK-PYTHON-CERTIFI-3164749) | `certifi:` <br> `2019.9.11 -> 2022.12.7` <br> | No | No Known Exploit
![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **599/1000** <br/> **Why?** Has a fix available, CVSS 7.7 | HTTP Header Injection <br/>[SNYK-PYTHON-URLLIB3-1014645](https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-1014645) | `urllib3:` <br> `1.25.6 -> 1.26.5` <br> | No | No Known Exploit
![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity") | **479/1000** <br/> **Why?** Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS) <br/>[SNYK-PYTHON-URLLIB3-1533435](https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-1533435) | `urllib3:` <br> `1.25.6 -> 1.26.5` <br> | No | No Known Exploit
![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity") | **509/1000** <br/> **Why?** Has a fix available, CVSS 5.9 | Denial of Service (DoS) <br/>[SNYK-PYTHON-URLLIB3-559452](https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-559452) | `urllib3:` <br> `1.25.6 -> 1.26.5` <br> | No | No Known Exploit
![low severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/l.png "low severity") | **344/1000** <br/> **Why?** Has a fix available, CVSS 2.6 | Access Restriction Bypass <br/>[SNYK-PYTHON-WERKZEUG-3319935](https://snyk.io/vuln/SNYK-PYTHON-WERKZEUG-3319935) | `werkzeug:` <br> `0.16.0 -> 2.2.3` <br> | No | No Known Exploit
![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **589/1000** <br/> **Why?** Has a fix available, CVSS 7.5 | Denial of Service (DoS) <br/>[SNYK-PYTHON-WERKZEUG-3319936](https://snyk.io/vuln/SNYK-PYTHON-WERKZEUG-3319936) | `werkzeug:` <br> `0.16.0 -> 2.2.3` <br> | No | No Known Exploit
(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.
------------
**Note:** *You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.*
For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI1MGU3OWFhMy1jNGFkLTQ2MjQtOTYzMi0yNDkyMDYyOTBkYzMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjUwZTc5YWEzLWM0YWQtNDYyNC05NjMyLTI0OTIwNjI5MGRjMyJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/dannielshalev/project/2d42f184-efd7-4f3b-a34b-39b7fd0e450d?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr)
🛠 [Adjust project settings](https://app.snyk.io/org/dannielshalev/project/2d42f184-efd7-4f3b-a34b-39b7fd0e450d?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr/settings)
📚 [Read more about Snyk's upgrade and patch logic](https://support.snyk.io/hc/en-us/articles/360003891078-Snyk-patches-to-fix-vulnerabilities)
[//]: # (snyk:metadata:{"prId":"50e79aa3-c4ad-4624-9632-249206290dc3","prPublicId":"50e79aa3-c4ad-4624-9632-249206290dc3","dependencies":[{"name":"certifi","from":"2019.9.11","to":"2022.12.7"},{"name":"urllib3","from":"1.25.6","to":"1.26.5"},{"name":"werkzeug","from":"0.16.0","to":"2.2.3"}],"packageManager":"pip","projectPublicId":"2d42f184-efd7-4f3b-a34b-39b7fd0e450d","projectUrl":"https://app.snyk.io/org/dannielshalev/project/2d42f184-efd7-4f3b-a34b-39b7fd0e450d?utm_source=github&utm_medium=referral&page=fix-pr","type":"user-initiated","patch":[],"vulns":["SNYK-PYTHON-CERTIFI-3164749","SNYK-PYTHON-URLLIB3-1014645","SNYK-PYTHON-URLLIB3-1533435","SNYK-PYTHON-URLLIB3-559452","SNYK-PYTHON-WERKZEUG-3319935","SNYK-PYTHON-WERKZEUG-3319936"],"upgrade":[],"isBreakingChange":false,"env":"prod","prType":"fix","templateVariants":["pr-warning-shown","priorityScore"],"priorityScoreList":[554,599,479,509,344,589],"remediationStrategy":"vuln"})
---
**Learn how to fix vulnerabilities with free interactive lessons:**
🦉 [Regular Expression Denial of Service (ReDoS)](https://learn.snyk.io/lessons/redos/javascript/?loc&#x3D;fix-pr)
🦉 [Access Restriction Bypass](https://learn.snyk.io/lessons/broken-access-control/python/?loc&#x3D;fix-pr)
🦉 [Denial of Service (DoS)](https://learn.snyk.io/lessons/no-rate-limiting/python/?loc&#x3D;fix-pr)
<h3>Snyk has created this PR to fix one or more vulnerable packages in the `yarn` dependencies of this project.</h3>
#### Changes included in this PR
- Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
- web/package.json
- web/yarn.lock
#### Note for [zero-installs](https://yarnpkg.com/features/zero-installs) users
If you are using the Yarn feature [zero-installs](https://yarnpkg.com/features/zero-installs) that was introduced in Yarn V2, note that this PR does not update the `.yarn/cache/` directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run `yarn` to update the contents of the `./yarn/cache` directory.
If you are not using zero-install you can ignore this as your flow should likely be unchanged.
#### Vulnerabilities that will be fixed
##### With an upgrade:
Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity
:-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------
![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **696/1000** <br/> **Why?** Proof of Concept exploit, Has a fix available, CVSS 7.5 | Regular Expression Denial of Service (ReDoS) <br/>[SNYK-JS-AXIOS-1579269](https://snyk.io/vuln/SNYK-JS-AXIOS-1579269) | No | Proof of Concept
(*) Note that the real score may have changed since the PR was raised.
Check the changes in this PR to ensure they won't cause issues with your project.
------------
**Note:** *You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.*
For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI1ZmZiZTNiZS1kMzAzLTRhYjktYWNkMi1iODczYjAxZjdjZGIiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjVmZmJlM2JlLWQzMDMtNGFiOS1hY2QyLWI4NzNiMDFmN2NkYiJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/dannielshalev/project/1f02abc0-324a-411b-ba42-2a338069ae7d?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr)
🛠 [Adjust project settings](https://app.snyk.io/org/dannielshalev/project/1f02abc0-324a-411b-ba42-2a338069ae7d?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr/settings)
📚 [Read more about Snyk's upgrade and patch logic](https://support.snyk.io/hc/en-us/articles/360003891078-Snyk-patches-to-fix-vulnerabilities)
[//]: # (snyk:metadata:{"prId":"5ffbe3be-d303-4ab9-acd2-b873b01f7cdb","prPublicId":"5ffbe3be-d303-4ab9-acd2-b873b01f7cdb","dependencies":[{"name":"axios","from":"0.21.1","to":"0.21.3"}],"packageManager":"yarn","projectPublicId":"1f02abc0-324a-411b-ba42-2a338069ae7d","projectUrl":"https://app.snyk.io/org/dannielshalev/project/1f02abc0-324a-411b-ba42-2a338069ae7d?utm_source=github&utm_medium=referral&page=fix-pr","type":"user-initiated","patch":[],"vulns":["SNYK-JS-AXIOS-1579269"],"upgrade":["SNYK-JS-AXIOS-1579269"],"isBreakingChange":false,"env":"prod","prType":"fix","templateVariants":["updated-fix-title","priorityScore"],"priorityScoreList":[696],"remediationStrategy":"vuln"})
---
**Learn how to fix vulnerabilities with free interactive lessons:**
🦉 [Regular Expression Denial of Service (ReDoS)](https://learn.snyk.io/lessons/redos/javascript/?loc&#x3D;fix-pr)

23
helm/.helmignore Normal file
View file

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

6
helm/Chart.yaml Normal file
View file

@ -0,0 +1,6 @@
apiVersion: v2
name: uv-portal-desktop
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: "0.0.1"

1
helm/templates/NOTES.txt Normal file
View file

@ -0,0 +1 @@
1. Get the application URL by running these commands:

View file

@ -0,0 +1,71 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "uv-portal-desktop.name" -}}
uv-portal-desktop
{{- end }}
{{- define "uv-portal-desktop.db.name" -}}
uvportal-postgres
{{- end }}
{{- define "uv-portal-desktop.namespace" -}}
{{- default .Release.Namespace .Values.namespace -}}
{{- end }}
{{- define "uv-portal-desktop.matchLabels" -}}
k8s-app: {{ include "uv-portal-desktop.name" . }}
app.kubernetes.io/name: {{ include "uv-portal-desktop.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "uv-portal-desktop.common.metaLabels" -}}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
helm.sh/chart: {{ include "uv-portal-desktop.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "uv-portal-desktop.name" . }}
{{- with .Values.commonMetaLabels}}
{{ toYaml . }}
{{- end }}
{{- end -}}
{{- define "uv-portal-desktop.labels" -}}
{{ include "uv-portal-desktop.matchLabels" . }}
{{ include "uv-portal-desktop.common.metaLabels" . }}
{{- 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 "uv-portal-desktop.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 "uv-portal-desktop.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "uv-portal-desktop.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "uv-portal-desktop.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

11
helm/templates/cm.yaml Normal file
View file

@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
"helm.sh/hook-weight": "-5"
labels:
{{- include "uv-portal-desktop.labels" . | nindent 4 }}
name: {{ include "uv-portal-desktop.name" . }}
namespace: {{ include "uv-portal-desktop.namespace" . }}
data:
{{- .Values.configMapData | toYaml | nindent 2 }}

View file

@ -0,0 +1,85 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
{{- include "uv-portal-desktop.labels" . | nindent 4 }}
{{- if .Values.labels }}
{{ toYaml .Values.labels | nindent 4 }}
{{- end}}
name: {{ include "uv-portal-desktop.name" . }}
namespace: {{ include "uv-portal-desktop.namespace" . }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "uv-portal-desktop.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "uv-portal-desktop.matchLabels" . | nindent 8 }}
name: {{ include "uv-portal-desktop.name" . }}
spec:
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
hostAliases:
- ip: 10.43.100.100
hostnames:
- uvportal.uveye.local
containers:
- name: {{ include "uv-portal-desktop.name" . }}
ports:
- containerPort: 5900
name: vnc
- containerPort: 6080
name: http
env:
{{- toYaml .Values.env | nindent 10 }}
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: IfNotPresent
{{- with .Values.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- name: x11-unix
mountPath: /tmp/.X11-unix
- name: x11-xkb
mountPath: /usr/share/X11/xkb
- name: xserver
mountPath: /root/.Xauthority
- name: {{ include "uv-portal-desktop.name" . }}
mountPath: /etc/supervisor/conf.d/
- name: cache-volume
mountPath: /dev/shm
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
- name: x11-unix
hostPath:
path: /tmp/.X11-unix
- name: x11-xkb
hostPath:
path: /usr/share/X11/xkb
- configMap:
name: {{ include "uv-portal-desktop.name" . }}
name: {{ include "uv-portal-desktop.name" . }}
- name: xserver
hostPath:
path: /home/uvadmin/.Xauthority
type: File
- name: cache-volume
emptyDir:
medium: Memory
sizeLimit: 512Mi

29
helm/templates/svc.yaml Normal file
View file

@ -0,0 +1,29 @@
{{- if .Values.service.enabled -}}
apiVersion: v1
kind: Service
metadata:
{{- if .Values.service.annotations }}
annotations:
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
labels:
{{- include "uv-portal-desktop.labels" . | nindent 4 }}
{{- if .Values.service.labels }}
{{ toYaml .Values.service.labels | indent 4 }}
{{- end }}
name: {{ include "uv-portal-desktop.name" . }}
namespace: {{ include "uv-portal-desktop.namespace" . }}
spec:
ports:
- name: http
port: 30080
nodePort: 30080
targetPort: http
- name: vnc
port: 5900
nodePort: 30590
targetPort: vnc
selector:
{{- include "uv-portal-desktop.matchLabels" . | nindent 4 }}
type: "{{ .Values.service.type }}"
{{- end -}}

117
helm/values.yaml Normal file
View file

@ -0,0 +1,117 @@
replicaCount: 1
imagePullSecrets:
- name: regcred
image:
repository: 230690759643.dkr.ecr.eu-west-1.amazonaws.com
name: vnc-desktop
tag: ''
namespace: uveye
resources:
limits:
memory: 4096Mi
cpu: "2"
requests:
memory: 512Mi
cpu: "0.4"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: In
values:
- "true"
service:
enabled: true
type: LoadBalancer
env:
- name: USER
value: uvdesk
- name: VNC_PASSWORD
valueFrom:
secretKeyRef:
name: secrets-uv-portal-vnc-desktop
key: password
- name: HTTP_PASSWORD
valueFrom:
secretKeyRef:
name: secrets-uv-portal-vnc-desktop
key: password
- name: PASSWORD
valueFrom:
secretKeyRef:
name: secrets-uv-portal-vnc-desktop
key: password
- name: DISPLAY
value: ":1.0"
livenessProbe: {}
readinessProbe: {}
configMapData:
supervisord.conf: |-
[supervisord]
redirect_stderr=true
stopsignal=QUIT
autorestart=true
directory=/root
#
[program:nginx]
priority=10
command=nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
#
[program:web]
priority=10
directory=/usr/local/lib/web/backend
command=/usr/local/lib/web/backend/run.py
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/1
stderr_logfile_maxbytes=0
#
#
[group:x]
programs=xvfb,wm,lxpanel,pcmanfm,x11vnc,novnc
#
[program:wm]
priority=15
command=/usr/bin/openbox
environment=DISPLAY=":1",HOME="/root",USER="root"
#
[program:lxpanel]
priority=15
directory=/home/uvdesk
command=/usr/bin/lxpanel --profile LXDE
user=uvdesk
environment=DISPLAY=":1",HOME="/home/uvdesk",USER="uvdesk"
#
[program:pcmanfm]
priority=15
directory=/home/uvdesk
command=/usr/bin/pcmanfm --desktop --profile LXDE
user=uvdesk
environment=DISPLAY=":1",HOME="/home/uvdesk",USER="uvdesk"
#
[program:xvfb]
priority=10
command=/usr/local/bin/xvfb.sh
stopsignal=KILL
#
[program:x11vnc]
priority=20
command=x11vnc -display :1 -xkb -forever -shared -repeat -capslock -rfbauth /.password2
#
[program:novnc]
priority=25
directory=/usr/local/lib/web/frontend/static/novnc
command=bash /usr/local/lib/web/frontend/static/novnc/utils/launch.sh --listen 6081
stopasgroup=true
#

View file

@ -0,0 +1,6 @@
[Desktop Entry]
Name=lpr
Type=Application
Icon=google-chrome
Exec=/usr/bin/google-chrome http://192.168.5.245
Terminal=false

View file

@ -0,0 +1,6 @@
[Desktop Entry]
Name=UVportal
Type=Application
Icon=google-chrome
Exec=/usr/bin/google-chrome http://uvportal.uveye.local
Terminal=false

5
icons/lpr.desktop Normal file
View file

@ -0,0 +1,5 @@
[Desktop Entry]
Type=Link
Name=lpr
Icon=google-chrome
URL=/usr/share/applications/lpr.desktop

5
icons/uvportal.desktop Normal file
View file

@ -0,0 +1,5 @@
[Desktop Entry]
Type=Link
Name=UVportal
Icon=google-chrome
URL=/usr/share/applications/uvportal.desktop

View file

@ -1,5 +1,5 @@
backports.ssl-match-hostname==3.7.0.1
certifi==2019.9.11
certifi==2022.12.7
chardet==3.0.4
Click==7.0
Flask==1.1.1
@ -14,6 +14,6 @@ MarkupSafe==1.1.1
meld3==2.0.0
requests==2.22.0
six==1.12.0
urllib3==1.25.6
urllib3==1.26.5
websocket-client==0.47.0
Werkzeug==0.16.0
Werkzeug==2.0.3

View file

@ -13,7 +13,7 @@
"build": "node build/build.js"
},
"dependencies": {
"axios": "^0.21.1",
"axios": "^0.21.3",
"vue": "^2.5.2",
"vue-material": "^1.0.0-beta-10.2",
"vue-router": "^3.0.1"

View file

@ -374,11 +374,12 @@ aws4@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
axios@^0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
axios@^0.21.3:
version "0.21.4"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
dependencies:
follow-redirects "^1.10.0"
follow-redirects "^1.14.0"
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
@ -3023,10 +3024,15 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
follow-redirects@^1.0.0, follow-redirects@^1.10.0:
follow-redirects@^1.0.0:
version "1.13.3"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267"
follow-redirects@^1.14.0:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"