mirror of
https://github.com/Websoft9/websoft9.git
synced 2024-11-25 00:50:30 +00:00
update
This commit is contained in:
commit
c8b7ac459b
14 changed files with 106 additions and 47 deletions
|
@ -7,7 +7,22 @@ If you're planning to implement a new feature or change the api please [create a
|
|||
|
||||
## Not Sure Architecture?
|
||||
|
||||
It's important to figure out the design [architecture of Websoft9](docs/architecture.md)
|
||||
It's important to figure out the design [Architecture of Websoft9](docs/architecture.md)
|
||||
|
||||
## Code of Conduct{#conduct}
|
||||
|
||||
This project use [Code of Conduct](https://code.fb.com/codeofconduct), you should read it carefully.
|
||||
|
||||
## Consistency convention
|
||||
|
||||
In the process of your participation, we hope that everyone has a good habit of abiding by the agreement, including:
|
||||
|
||||
- Create Issue based on template
|
||||
- Select tags instead of creating tags
|
||||
- Complete the smallest unit independent task at one time
|
||||
- Meaningful remarks when commit your code, you should select from: docs, test, fix, install, misc and so on
|
||||
- Although the project has automated tests, I still hope that you can test without problems before submitting
|
||||
- Following the branch management strategy, the core team maintains two branches: main and dev
|
||||
|
||||
## Fork
|
||||
|
||||
|
@ -15,13 +30,12 @@ Contributor only allow to fork [main branch](https://github.com/Websoft9/websoft
|
|||
|
||||
## Branch
|
||||
|
||||
This repository have these branchs:
|
||||
This repository have these branches:
|
||||
|
||||
* **Contributor's branch**: Develpoer can fork main branch as their delelopment branch anytime
|
||||
* **main branch**: The only branch that accepts PR from Contributors's branch
|
||||
* **Contributor's branch**: Developer can fork main branch as their development branch anytime
|
||||
* **main branch**: The only branch that accepts PR from Contributors' branch
|
||||
* **production branch**: For version release and don't permit modify directly, only merge PR from **main branch**
|
||||
|
||||
|
||||
Flow: Contributor's branch → main branch → production branch
|
||||
|
||||
|
||||
|
@ -58,7 +72,7 @@ Websoft9 use below [Artifact](https://jfrog.com/devops-tools/article/what-is-a-s
|
|||
|
||||
### Tags
|
||||
|
||||
- Type tags: Bug, enhancement, Documetation
|
||||
- Type tags: Bug, enhancement, Documentation
|
||||
- Stages Tags: PRD, Dev, QA(include deployment), Documentation
|
||||
|
||||
### WorkFlow
|
||||
|
|
17
README.md
17
README.md
|
@ -5,9 +5,9 @@
|
|||
|
||||
# What is Websoft9?
|
||||
|
||||
[Websoft9](https://github.com/Websoft9/websoft9) is web-based PaaS platform for running 200+ hot [open source application](https://github.com/Websoft9/docker-library/tree/main/apps) on your own server.
|
||||
[Websoft9](https://github.com/Websoft9/websoft9) is web-based PaaS/Linux Panel for running 200+ hot [open source application](https://github.com/Websoft9/docker-library/tree/main/apps) on your own server.
|
||||
|
||||
Websoft9 help you running multiple applications in a single server, that means we believe Microservices on single machine is reasonable. On the contrary, it becomes more and more valuable as computing power increases
|
||||
Websoft9 help you to run multiple applications in a single server, that means we believe Microservices on single machine is reasonable. On the contrary, it becomes more and more valuable as computing power increases
|
||||
|
||||
Although the Cloud Native emphasizes high availability and clustering, but most of the time, applications do not need to implement complex clusters or K8S.
|
||||
|
||||
|
@ -15,12 +15,21 @@ Websoft9's [architecture](https://github.com/Websoft9/websoft9/blob/main/docs/ar
|
|||
|
||||
## Demos
|
||||
|
||||
You can see the sceenshoots below:
|
||||
You can see the screenshots below:
|
||||
|
||||
| ![image](https://github.com/Websoft9/websoft9/assets/16741975/8321780c-4824-4e40-997d-676a31534063) | ![image](https://github.com/Websoft9/websoft9/assets/16741975/e842575b-60bc-4b0d-a57b-28c26b16196a) | ![image](https://github.com/Websoft9/websoft9/assets/16741975/c598412a-9529-4286-ba03-6234d6da99b9) |
|
||||
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
||||
| ![image](https://github.com/Websoft9/websoft9/assets/16741975/7bed3744-1e9f-429e-8678-3714c8c262e2) | ![image](https://github.com/Websoft9/websoft9/assets/16741975/a0923c69-2792-4cde-bfaf-bc018b61aee9) | ![image](https://github.com/Websoft9/websoft9/assets/16741975/901efd1c-31a0-4b31-b79c-fc2d441bb679) |
|
||||
|
||||
|
||||
|
||||
Below is demo server, please **give stars** if you like it:
|
||||
```
|
||||
Demo URL: http://t.demo.goweb.cc:9000/
|
||||
user: demo
|
||||
password: websoft9
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
- Applications listing
|
||||
|
@ -70,4 +79,4 @@ Follow the [contributing guidelines](CONTRIBUTING.md) if you want to propose a c
|
|||
|
||||
# License
|
||||
|
||||
Websoft9 is licensed under the [LGPL-3.0](/License.md), and additional Terms: It is not allowed to publish free or paid image based on this repository in any Cloud platform's Marketplace without authorization
|
||||
Websoft9 is licensed under the [LGPL-3.0](/LICENSE.md), and additional Terms: It is not allowed to publish free or paid image based on this repository in any Cloud platform's Marketplace without authorization
|
||||
|
|
|
@ -2,8 +2,4 @@
|
|||
path = /websoft9/library/apps
|
||||
|
||||
[app_media]
|
||||
path = /websoft9/media/json/
|
||||
|
||||
[max_apps]
|
||||
key =
|
||||
|
||||
path = /websoft9/media/json/
|
|
@ -10,7 +10,7 @@ class PasswordGenerator:
|
|||
lowercase_letters = string.ascii_lowercase # all lowercase letters
|
||||
uppercase_letters = string.ascii_uppercase # all uppercase letters
|
||||
digits = string.digits # all digits
|
||||
special_symbols = "!@#$" # all special symbols
|
||||
special_symbols = "!#" # all special symbols
|
||||
|
||||
# get 4 random characters from each category
|
||||
password = [
|
||||
|
@ -79,4 +79,4 @@ class PasswordGenerator:
|
|||
random.shuffle(password_list)
|
||||
|
||||
# Convert list to string
|
||||
return ''.join(password_list)
|
||||
return ''.join(password_list)
|
||||
|
|
|
@ -1,2 +1,8 @@
|
|||
1. improve all plugins githubaction
|
||||
2. install plugin by shell
|
||||
bug:
|
||||
drupal pull image error
|
||||
metabase pull image error
|
||||
mattermost connect database error
|
||||
nocodb connect database error
|
||||
|
||||
appstore:
|
||||
add runtime app: PHP, Java, Python, Node.js, Go, Ruby...
|
|
@ -1,4 +1,4 @@
|
|||
APPHUB_VERSION=0.0.6
|
||||
DEPLOYMENT_VERSION=2.19.0
|
||||
GIT_VERSION=1.20.4
|
||||
PROXY_VERSION=2.10.4
|
||||
APPHUB_VERSION=0.0.7
|
||||
DEPLOYMENT_VERSION=2.20.1
|
||||
GIT_VERSION=1.21.9
|
||||
PROXY_VERSION=2.11.1
|
|
@ -1,16 +1,16 @@
|
|||
# This file can running at actions
|
||||
# MEDIA_VERSION and LIBRARY_VERSION will trigger its release
|
||||
# modify time: 202403121139, you can modify here to trigger Docker Build action
|
||||
# modify time: 202404241608, you can modify here to trigger Docker Build action
|
||||
|
||||
|
||||
FROM python:3.10-slim-bullseye
|
||||
LABEL maintainer="Websoft9<help@websoft9.com>"
|
||||
LABEL version="0.0.6"
|
||||
LABEL version="0.0.7"
|
||||
|
||||
WORKDIR /websoft9
|
||||
|
||||
ARG MEDIA_VERSION="0.0.9"
|
||||
ARG LIBRARY_VERSION="0.5.21"
|
||||
ARG MEDIA_VERSION="0.1.0"
|
||||
ARG LIBRARY_VERSION="0.6.0"
|
||||
ARG WEBSOFT9_REPO="https://github.com/Websoft9/websoft9"
|
||||
ARG WEBSOFT9_ARTIFACT="https://w9artifact.blob.core.windows.net/release/websoft9"
|
||||
ARG LIBRARY_REPO="https://github.com/Websoft9/docker-library"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# modify time: 202311031633, you can modify here to trigger Docker Build action
|
||||
# modify time: 202404101102, you can modify here to trigger Docker Build action
|
||||
# step1: Build entrypoint execute program init_portainer by golang
|
||||
|
||||
FROM golang:latest AS builder
|
||||
|
@ -14,9 +14,9 @@ RUN chmod +x /endpoint
|
|||
|
||||
# step2: Copy build go program to portainer
|
||||
# Dockerfile refer to: https://github.com/portainer/portainer/blob/develop/build/linux/Dockerfile
|
||||
FROM portainer/portainer-ce:2.19.0
|
||||
FROM portainer/portainer-ce:2.20.1
|
||||
LABEL maintainer="websoft9<help@websoft9.com>"
|
||||
LABEL version="2.19.0"
|
||||
LABEL version="2.20.1"
|
||||
COPY --from=builder /init_portainer /
|
||||
COPY --from=builder /endpoint /
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# modify time: 202403061259, you can modify here to trigger Docker Build action
|
||||
# modify time: 202403261345, you can modify here to trigger Docker Build action
|
||||
# Dockerfile refer to: https://github.com/go-gitea/gitea/blob/main/Dockerfile
|
||||
FROM gitea/gitea:1.20.4
|
||||
FROM gitea/gitea:1.21.9
|
||||
|
||||
LABEL maintainer="Websoft9<help@websoft9.com>"
|
||||
LABEL version="1.20.4"
|
||||
LABEL version="1.21.9"
|
||||
COPY ./src/s6/user /etc/s6/user
|
||||
RUN chmod -R 755 /etc/s6/user
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# modify time: 20240118, you can modify here to trigger Docker Build action
|
||||
# modify time: 202404101148, you can modify here to trigger Docker Build action
|
||||
# from Dockerfile: https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/Dockerfile
|
||||
# from image: https://hub.docker.com/r/jc21/nginx-proxy-manager
|
||||
|
||||
FROM jc21/nginx-proxy-manager:2.10.4
|
||||
FROM jc21/nginx-proxy-manager:2.11.1
|
||||
|
||||
LABEL maintainer="Websoft9<help@websoft9.com>"
|
||||
LABEL version="2.10.4"
|
||||
LABEL version="2.11.1"
|
||||
|
||||
RUN apt-get update && apt-get install --no-install-recommends -y curl jq && rm -rf /var/lib/apt/lists/*
|
||||
COPY ./config/initproxy.conf /etc/
|
||||
|
|
|
@ -39,11 +39,11 @@ server {
|
|||
if ($request_method = OPTIONS) {
|
||||
return 204;
|
||||
}
|
||||
set $quot_tmp "\"";
|
||||
set $portainer_jwt "${quot_tmp}${cookie_portainerJWT}${quot_tmp}";
|
||||
sub_filter '</head>' "<script>($portainer_jwt)?window.localStorage.setItem('portainer.JWT', '$portainer_jwt'):null;</script></head>";
|
||||
sub_filter_once on;
|
||||
sub_filter_types *;
|
||||
# set $quot_tmp "\"";
|
||||
# set $portainer_jwt "${quot_tmp}${cookie_portainerJWT}${quot_tmp}";
|
||||
# sub_filter '</head>' "<script>($portainer_jwt)?window.localStorage.setItem('portainer.JWT', '$portainer_jwt'):null;</script></head>";
|
||||
# sub_filter_once on;
|
||||
# sub_filter_types *;
|
||||
}
|
||||
|
||||
# proxy for Nginx proxy Manager
|
||||
|
@ -103,7 +103,7 @@ server {
|
|||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://websoft9-apphub:8080/;
|
||||
proxy_pass http://websoft9-apphub:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
|
|
@ -28,6 +28,11 @@ export PATH
|
|||
#
|
||||
# $ sudo bash install.sh --path "/data/websoft9/source"
|
||||
#
|
||||
# --apps <wordpress,gitlab>
|
||||
# Use the --apps option to set Websoft9 appstore dispaly. default is null and display all applicaionts. If you set it, appstore only display the defined, for example:
|
||||
#
|
||||
# $ sudo bash install.sh --apps "wordpress,gitlab"
|
||||
#
|
||||
# --devto
|
||||
# Use the --devto option to developer mode, devto is the developer code path, for example:
|
||||
#
|
||||
|
@ -40,6 +45,7 @@ export PATH
|
|||
version="latest"
|
||||
channel="release"
|
||||
path="/data/websoft9/source"
|
||||
apps=""
|
||||
|
||||
# 获取参数值
|
||||
while [[ $# -gt 0 ]]; do
|
||||
|
@ -80,6 +86,15 @@ while [[ $# -gt 0 ]]; do
|
|||
path="$1"
|
||||
shift
|
||||
;;
|
||||
--apps)
|
||||
shift
|
||||
if [[ $1 == --* ]]; then
|
||||
echo "Missing value for --apps"
|
||||
exit 1
|
||||
fi
|
||||
apps="$1"
|
||||
shift
|
||||
;;
|
||||
--devto)
|
||||
shift
|
||||
if [[ $1 == --* ]]; then
|
||||
|
@ -121,6 +136,7 @@ echo "--version: $version"
|
|||
echo "--port: $port"
|
||||
echo "--channel: $channel"
|
||||
echo "--path: $path"
|
||||
echo "--apps: $apps"
|
||||
echo "--devto: $devto"
|
||||
|
||||
echo -e "\nYour OS: "
|
||||
|
@ -134,6 +150,7 @@ export https_port=443
|
|||
export install_path=$path
|
||||
export channel
|
||||
export version
|
||||
export apps
|
||||
export systemd_path="/opt/websoft9/systemd"
|
||||
export source_zip="websoft9-$version.zip"
|
||||
export source_unzip="websoft9"
|
||||
|
@ -420,6 +437,7 @@ install_backends() {
|
|||
|
||||
if [ "$execute_mode" = "install" ]; then
|
||||
sudo docker exec -i websoft9-apphub apphub setconfig --section domain --key wildcard_domain --value ""
|
||||
sudo docker exec -i websoft9-apphub apphub setconfig --section initial_apps --key keys --value $apps
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -23,8 +23,24 @@ check_ports() {
|
|||
function get_volume_path() {
|
||||
local container_name="$1"
|
||||
local volume_name="$2"
|
||||
local mounts=$(docker inspect -f '{{ json .Mounts }}' "$container_name" | jq -r '.[] | select(.Name == "'$volume_name'") | .Source')
|
||||
echo "$mounts"
|
||||
local retries=0
|
||||
local max_retries=5
|
||||
local mounts
|
||||
|
||||
while [ $retries -lt $max_retries ]; do
|
||||
mounts=$(docker inspect -f '{{ json .Mounts }}' "$container_name" | jq -r ".[] | select(.Name == \"$volume_name\") | .Source")
|
||||
|
||||
if [[ "$mounts" == *"/"* ]]; then
|
||||
echo "$mounts"
|
||||
return 0
|
||||
fi
|
||||
|
||||
((retries++))
|
||||
sleep 5
|
||||
done
|
||||
|
||||
echo "Cannot get volume path"
|
||||
exit 1
|
||||
}
|
||||
|
||||
volume_path=$(get_volume_path "$container_name" "$volume_name")
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"version": "2.0.1",
|
||||
"version": "2.1.1",
|
||||
"plugins": {
|
||||
"portainer": "0.0.9",
|
||||
"portainer": "0.1.0",
|
||||
"nginx": "0.0.7",
|
||||
"gitea": "0.0.5",
|
||||
"myapps": "0.1.7",
|
||||
"appstore": "0.1.4",
|
||||
"appstore": "0.1.5",
|
||||
"settings": "0.0.9",
|
||||
"navigator": "0.5.10"
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue