This commit is contained in:
zhaojing1987 2024-04-26 11:00:36 +08:00
commit c8b7ac459b
14 changed files with 106 additions and 47 deletions

View file

@ -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

View file

@ -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

View file

@ -3,7 +3,3 @@ path = /websoft9/library/apps
[app_media]
path = /websoft9/media/json/
[max_apps]
key =

View file

@ -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 = [

View file

@ -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...

View file

@ -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

View file

@ -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"

View file

@ -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 /

View file

@ -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

View file

@ -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/

View file

@ -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;

View file

@ -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
}

View file

@ -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')
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")

View file

@ -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"
},