Compare commits

...

92 Commits

Author SHA1 Message Date
c80e895b9e Unify names of environment variables for branches 2024-07-25 14:09:34 +03:00
bfbb2e18eb Refactor to use ARG for setting BUILDTOOLS_BRANCH 2024-07-24 18:26:46 +03:00
fb03be5097 Merge branch 'feature/custom-build' of github.com:ONLYOFFICE/DocSpace-buildtools into feature/custom-build 2024-07-23 13:55:38 +03:00
266221b6e0 Add build from last commits 2024-07-23 13:55:30 +03:00
Valeria Bagisheva
6afcf4c6ff
Change repo name in git lone 2024-07-21 18:54:19 +03:00
f95931cf4f Get branch from docker environment variable 2024-07-18 16:31:19 +03:00
4203dafe94 Add customize for branch and commit 2024-07-18 16:30:38 +03:00
c523250337 Merge branch 'release/v2.6.0' into develop
# Conflicts:
#	config/nginx/onlyoffice.conf
#	install/OneClickInstall/install-RedHat/install-preq.sh
#	run/Login.xml
2024-07-12 10:34:33 +04:00
c312ba632b
Feature/oauth2 client (#276) 2024-07-09 16:24:04 +03:00
13f67192bf Rename oauth to identity, add flag for build in dev mode 2024-07-09 15:41:51 +03:00
a9d9ba70a8 added IdentityServer to hide settings 2024-07-09 12:04:49 +03:00
2813bd572f
Separate dashboards location (#259) 2024-07-09 10:22:27 +03:00
1cd5d9a2e9 ASC.Identity: fixed runner 2024-07-04 16:01:28 +03:00
6d0c14ebc3 Fix the .next folder packing for login service 2024-07-01 13:38:51 +03:00
33ac365992 Fix package build substitution errors 2024-07-01 12:17:20 +03:00
9d9e76acb1
fix Bug 68851 - Fix packages conflict for RabbirMQ: mkfontscale (#265) 2024-06-28 18:02:30 +03:00
26f8014056
Fix update of held dependencies (#262) 2024-06-28 17:48:56 +03:00
aff3c13d5c Fix build oauth 2024-06-28 13:36:14 +03:00
58f8ef4d27 Rename dashboards and mentionings to server-dashboards 2024-06-26 00:11:03 +03:00
415fe6e605 Merge branch 'develop' into feature/oauth2-client 2024-06-24 14:31:26 +03:00
3f2087a60c Update docker build for oauth services 2024-06-24 14:15:03 +03:00
5c567ad109 Install:Docker: fix env 2024-06-19 18:13:52 +03:00
f4e91b7b3d Merge branch 'develop' into feature/oauth2-client 2024-06-19 15:16:18 +03:00
Valeria Bagisheva
9f88fc61f0
Brush up some spaces 2024-06-14 17:22:33 +03:00
0cb0448c44 Delete useless 2024-06-14 13:00:35 +03:00
191ab2db6f Merge branch 'develop' into feature/oauth2-client 2024-06-14 12:27:01 +03:00
3545708a25 Nginx: fix for oauth2 2024-05-30 12:14:17 +03:00
5aa3339a6f Run: fix start Login SSR 2024-05-30 10:15:35 +03:00
c959e430f2 Merge branch 'develop' into feature/oauth2-client 2024-05-23 18:42:26 +03:00
dc099c3eb1 Separate dashboards location 2024-05-13 17:01:07 +03:00
bbd4d8013d identity: added LOG_FILE_PATH to startup service 2024-02-19 14:35:04 +03:00
2ee869d9bb identity: added LOG_FILE_PATH to startup service 2024-02-15 19:09:55 +03:00
3d8d1c5e21 oauth2: fixed config 2024-02-12 17:59:00 +03:00
b567e10880 Merge branch 'develop' into feature/oauth2-client 2024-02-12 16:45:54 +03:00
1517c48add Fix oauth build 2024-01-22 11:43:49 +03:00
e248c9d317 Install:Docker: fix build oauth 2023-12-14 10:37:57 +03:00
bbc46c5676 Merge branch 'develop' into feature/oauth2-client 2023-11-29 10:26:01 +03:00
893e3dca78 identity: change path 2023-11-28 20:39:56 +03:00
bb30917778 Buildtools: change ASC.OAuth to ASC.Identity 2023-11-17 15:33:39 +03:00
4a3b1d943e Fix 2023-11-10 16:42:23 +03:00
e1c2632e09 Fix after merge 2023-11-10 13:16:01 +03:00
67821b7297 Merge branch 'develop' into feature/oauth2-client 2023-11-10 12:11:17 +03:00
5edc87293a Merge branch 'develop' into feature/oauth2-client 2023-10-31 10:47:18 +03:00
40d19b1746 Fix nginx oauth config 2023-10-27 12:29:25 +03:00
f745a71e43 Fix nginx; fix build oauth containers 2023-10-25 11:41:13 +03:00
8f0ed06219 Build: fix oauth build 2023-10-23 11:02:31 +03:00
d4efd04825 Fix nginx config and oauth.yml 2023-10-19 18:08:18 +03:00
d8eff9bdb8 identity: added starter for windows 2023-10-19 16:43:09 +03:00
242340255b Merge branch 'develop' into feature/oauth2-client 2023-10-04 15:13:25 +03:00
d7ea6fad02 Merge branch 'develop' into feature/oauth2-client 2023-10-04 13:49:47 +03:00
ad047bc372 Merge branch 'develop' into feature/oauth2-client 2023-10-02 10:05:58 +03:00
e02510be1d Build: Docker: Fixed docker build scripts and .env 2023-09-29 16:50:36 +03:00
bb5b8cccdd Common: OAuth: Migration: Fixed sql script 2023-09-29 16:48:46 +03:00
ba23f9bb7b fixed migration 2023-09-29 14:39:22 +03:00
84afb50b66 merge from develop 2023-09-29 14:28:10 +03:00
aa6545bfe1 Build: add build docker oauth2 services for unix 2023-09-28 17:59:35 +03:00
4b888c6640 Build: add build docker oauth2 services 2023-09-28 17:42:06 +03:00
a34bedef1e Web:Client:OAUth: add preview 2023-09-28 14:36:53 +03:00
f6dca051ac Rename oauth service to oauth_api_service, add new oauth service 2023-09-28 13:26:00 +03:00
ca73c5b0c4 Web:Client:OAuth: add row view 2023-09-28 10:21:43 +03:00
807215a0cb Web:Client:OAuth: fix mobx warning, add infinity list for table view 2023-09-27 18:13:07 +03:00
2381fcf68f chore: remove react client 2023-09-27 18:14:30 +05:00
8ee516850b fix: use server side templates 2023-09-27 18:14:21 +05:00
0f9d61b9f0 fix: server side resources 2023-09-27 18:13:54 +05:00
bbce172bba Move ASC.OAuth from web to common 2023-09-27 14:05:59 +03:00
5f8718c78d Add yarn.lock for ASC.OAuth client 2023-09-27 14:02:16 +03:00
76e439bad3 Merge branch 'feature/oauth2' into feature/oauth2-client 2023-09-27 14:01:10 +03:00
d8a535432d Web:Client:PortalSettings:OAuth: add table view 2023-09-27 14:00:11 +03:00
6956adc231 Web:Client:PortalSettings: fix create and edit oauth client 2023-09-26 11:47:27 +03:00
310f2d5dc5 Web:Client:PortalSettings: add OAuth edit and create page 2023-09-26 10:31:22 +03:00
61c920555b Nginx: fix /api/scopes for OAuth 2023-09-25 17:04:55 +03:00
8b0bca3a44 Web:Client:Routes: fix OAuth create and edit routes 2023-09-25 17:04:30 +03:00
74e94c0a10 Web:Client:Store: rewrite OAuth store to typescipt 2023-09-25 17:03:57 +03:00
dc1274fb88 Web:Client:PortalSettings: add OAuth empty page 2023-09-25 17:03:25 +03:00
3b9c56c5f4 Web:Common:OAuth: add new utils, new interfaces 2023-09-25 17:02:28 +03:00
a56a46236c Web:Client:PortalSettings: add OAuth page 2023-09-25 10:09:24 +03:00
17f6195d8c Merge branch 'develop' into feature/oauth2-client 2023-09-25 08:54:25 +03:00
31bf677340 Merge branch 'develop' into feature/oauth2-client 2023-09-22 17:31:22 +03:00
8e751923d9 Web:OAuth2: add CRUD 2023-09-22 17:28:37 +03:00
ebdffb55ea Update yarn.lock 2023-09-22 15:38:32 +03:00
ac496b82a2 Add oauth service proxy 2023-09-22 15:38:11 +03:00
6d6116c5ce merge from develop 2023-09-22 13:39:24 +03:00
11c322f03b chore: client url 2023-09-13 17:41:05 +05:00
2a36d19707 feat: authorization server 2023-09-13 16:10:28 +05:00
4a7f1710de merge from develop 2023-08-15 19:50:23 +03:00
a4d69eebe8 Web: Client: OAuth: Fixed DTO and client view styles 2023-07-18 12:36:44 +03:00
e173c5932d Web: Client: OAuth: Added view page 2023-07-18 12:36:44 +03:00
fbaace1941 Web: Client: PortalSettings: Fixed OAuth settings page 2023-07-18 12:36:44 +03:00
a0b9e56097 Web: Client: PortalSettings: Added base OAuth page 2023-07-18 12:36:44 +03:00
06c63bdb6f ASC.MigrationPersonalToDocspace: fixed 2023-07-06 19:40:10 +03:00
d5b009554e backend: update JWT dll. Added authorize via JWT token 2023-06-29 20:47:47 +03:00
eefb4b5e2e refactoring:Authorization replace mvc filter to route 2023-06-16 19:46:14 +03:00
22 changed files with 524 additions and 234 deletions

View File

@ -18,10 +18,29 @@ jobs:
run: | run: |
all_branches=$(git ls-remote -hq | sed -n 's/^[0-9a-f]\{40\}\s\+refs\/heads\//''/p') all_branches=$(git ls-remote -hq | sed -n 's/^[0-9a-f]\{40\}\s\+refs\/heads\//''/p')
matching_branches="" matching_branches=""
hashes=""
for branch in $all_branches; do for branch in $all_branches; do
if [[ $branch =~ ^release/v[0-9]+ || $branch =~ ^hotfix/v[0-9]+ || $branch == "develop" ]]; then if [[ $branch =~ ^release/v[0-9]+ || $branch =~ ^hotfix/v[0-9]+ || $branch == "develop" ]]; then
matching_branches="${matching_branches},\"${branch}\"" matching_branches="${matching_branches},\"${branch}\""
curl_buildtools=$(curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/commits/${branch}" | jq -r '.sha')
curl_client=$(curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/ONLYOFFICE/DocSpace-client/commits/${branch}" | jq -r '.sha')
curl_server=$(curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/ONLYOFFICE/DocSpace-server/commits/${branch}" | jq -r '.sha')
echo "${branch}_buildtools_hash=${curl_buildtools}" >> $GITHUB_ENV
echo "${branch}_client_hash=${curl_client}" >> $GITHUB_ENV
echo "${branch}_server_hash=${curl_server}" >> $GITHUB_ENV
fi fi
done done
@ -35,12 +54,15 @@ jobs:
run: | run: |
echo "${{ steps.list-branches.outputs.json_output }}" echo "${{ steps.list-branches.outputs.json_output }}"
payload=$((env | grep '_hash=' | awk -F'=' '{print "\"" $1 "\": \"" $2 "\""}' | paste -sd, - | sed 's/^/{/;s/$/}/')| tr -d '[:space:]')
echo "Payload JSON: $payload"
curl \ curl \
-X POST \ -X POST \
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \ -u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \ "https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \
-H "Accept: application/vnd.github.everest-preview+json" \ -H "Accept: application/vnd.github.everest-preview+json" \
--data '{"event_type": "cron-trigger-action", "client_payload": { "branches": ${{ steps.list-branches.outputs.json_output }}}}' --data '{"event_type": "cron-trigger-action", "client_payload": { "branches": ${{ steps.list-branches.outputs.json_output }}, "hashes": '$payload' } }'
curl \ curl \
-X POST \ -X POST \

View File

@ -62,6 +62,12 @@ jobs:
DOCKER_TAG=${PRODUCT_VERSION}.${{github.run_number}} DOCKER_TAG=${PRODUCT_VERSION}.${{github.run_number}}
fi fi
export DOCKER_TAG export DOCKER_TAG
BUILDTOOLS_ENV="${{ github.event.client_payload.hashes[ format('{0}_buildtools_hash', matrix.branch)] }}"
SERVER_ENV="${{ github.event.client_payload.hashes[ format('{0}_server_hash', matrix.branch)] }}"
CLIENT_ENV="${{ github.event.client_payload.hashes[ format('{0}_client_hash', matrix.branch)] }}"
echo "buildtools_hash: $BUILDTOOLS_ENV"
echo "server_hash: $SERVER_ENV"
echo "client_hash: $CLIENT_ENV"
docker buildx bake -f build.yml \ docker buildx bake -f build.yml \
--set *.args.GIT_BRANCH=${{ matrix.branch }} \ --set *.args.GIT_BRANCH=${{ matrix.branch }} \
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \ --set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
@ -69,6 +75,9 @@ jobs:
--set *.platform=linux/amd64 \ --set *.platform=linux/amd64 \
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \ --set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
--set *.args.BUILD_NUMBER=${{github.run_number}} \ --set *.args.BUILD_NUMBER=${{github.run_number}} \
--set *.args.BUILDTOOLS_COMMIT=$BUILDTOOLS_ENV \
--set *.args.SERVER_COMMIT=$SERVER_ENV \
--set *.args.CLIENT_COMMIT=$CLIENT_ENV \
--push --push
echo "version=${DOCKER_TAG}" >> "$GITHUB_OUTPUT" echo "version=${DOCKER_TAG}" >> "$GITHUB_OUTPUT"

View File

@ -11,13 +11,14 @@ def help():
# Display Help # Display Help
print("Build and run backend and working environment. (Use 'yarn start' to run client -> https://github.com/ONLYOFFICE/DocSpace-client)") print("Build and run backend and working environment. (Use 'yarn start' to run client -> https://github.com/ONLYOFFICE/DocSpace-client)")
print() print()
print("Syntax: available params [-h|f|s|c|d|]") print("Syntax: available params [-h|f|s|c|d|i")
print("options:") print("options:")
print("h Print this Help.") print("h Print this Help.")
print("f Force rebuild base images.") print("f Force rebuild base images.")
print("s Run as SAAS otherwise as STANDALONE.") print("s Run as SAAS otherwise as STANDALONE.")
print("c Run as COMMUNITY otherwise ENTERPRISE.") print("c Run as COMMUNITY otherwise ENTERPRISE.")
print("d Run dnsmasq.") print("d Run dnsmasq.")
print("i Run identity (oauth2).")
print() print()
@ -37,6 +38,8 @@ if local_ip == "127.0.0.1":
doceditor = f"{local_ip}:5013" doceditor = f"{local_ip}:5013"
login = f"{local_ip}:5011" login = f"{local_ip}:5011"
client = f"{local_ip}:5001" client = f"{local_ip}:5001"
identity_auth = f"{local_ip}:8080"
identity_api = f"{local_ip}:9090"
management = f"{local_ip}:5015" management = f"{local_ip}:5015"
portal_url = f"http://{local_ip}" portal_url = f"http://{local_ip}"
@ -44,13 +47,14 @@ force = False
dns = False dns = False
standalone = True standalone = True
community = False community = False
identity = False
migration_type = "STANDALONE" # SAAS migration_type = "STANDALONE" # SAAS
installation_type = "ENTERPRISE" installation_type = "ENTERPRISE"
document_server_image_name = "onlyoffice/documentserver-de:latest" document_server_image_name = "onlyoffice/documentserver-de:latest"
# Get the options # Get the options
opts, args = getopt.getopt(sys.argv[1:], "hfscd") opts, args = getopt.getopt(sys.argv[1:], "hfscdi")
for opt, arg in opts: for opt, arg in opts:
if opt == "-h": if opt == "-h":
help() help()
@ -63,6 +67,8 @@ for opt, arg in opts:
community = arg if arg else True community = arg if arg else True
elif opt == "-d": elif opt == "-d":
dns = arg if arg else True dns = arg if arg else True
elif opt == "-i":
identity = arg if arg else True
else: else:
print("Error: Invalid '-" + opt + "' option") print("Error: Invalid '-" + opt + "' option")
sys.exit() sys.exit()
@ -80,6 +86,7 @@ print(f"DOCSPACE_APP_URL: {portal_url}")
print() print()
print("FORCE REBUILD BASE IMAGES:", force) print("FORCE REBUILD BASE IMAGES:", force)
print("Run dnsmasq:", dns) print("Run dnsmasq:", dns)
print("Run identity:", identity)
if standalone == False: if standalone == False:
migration_type = "SAAS" migration_type = "SAAS"
@ -182,6 +189,8 @@ os.environ["SERVICE_DOCEDITOR"] = doceditor
os.environ["SERVICE_LOGIN"] = login os.environ["SERVICE_LOGIN"] = login
os.environ["SERVICE_MANAGEMENT"] = management os.environ["SERVICE_MANAGEMENT"] = management
os.environ["SERVICE_CLIENT"] = client os.environ["SERVICE_CLIENT"] = client
os.environ["SERVICE_IDENTITY"] = identity_auth
os.environ["SERVICE_IDENTITY_API"] = identity_api
os.environ["ROOT_DIR"] = dir os.environ["ROOT_DIR"] = dir
os.environ["BUILD_PATH"] = "/var/www" os.environ["BUILD_PATH"] = "/var/www"
os.environ["SRC_PATH"] = os.path.join(dir, "publish/services") os.environ["SRC_PATH"] = os.path.join(dir, "publish/services")
@ -191,6 +200,10 @@ os.environ["MIGRATION_TYPE"] = migration_type
subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "docspace.profiles.yml"), "-f", os.path.join( subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "docspace.profiles.yml"), "-f", os.path.join(
dockerDir, "docspace.overcome.yml"), "--profile", "migration-runner", "--profile", "backend-local", "up", "-d"]) dockerDir, "docspace.overcome.yml"), "--profile", "migration-runner", "--profile", "backend-local", "up", "-d"])
if identity:
print("Run identity")
subprocess.run(["docker-compose", "-f",os.path.join(dockerDir, "identity.yml"), "up", "-d" ])
print() print()
print("Run script directory:", dir) print("Run script directory:", dir)
print("Root directory:", dir) print("Root directory:", dir)

26
build.backend.dotnet.bat Normal file
View File

@ -0,0 +1,26 @@
@echo off
echo Start build backend...
echo.
cd /D "%~dp0"
call runasadmin.bat "%~dpnx0"
if %errorlevel% == 0 (
call start\stop.bat nopause
dotnet build ..\server\asc.web.slnf /fl1 /flp1:logfile=asc.web.log;verbosity=normal
echo.
)
if %errorlevel% == 0 (
call start\start.bat nopause
)
echo.
if "%1"=="nopause" goto end
pause
:end

View File

@ -31,6 +31,10 @@ if containers or images:
db_command = f"docker compose -f {os.path.join(docker_dir, 'db.yml')} down --volumes" db_command = f"docker compose -f {os.path.join(docker_dir, 'db.yml')} down --volumes"
subprocess.run(db_command, shell=True) subprocess.run(db_command, shell=True)
print("Remove docker contatiners 'Identity'")
identity_command = f"docker compose -f {os.path.join(docker_dir, 'identity.yml')} down --volumes"
subprocess.run(identity_command, shell=True)
print("Remove docker volumes") print("Remove docker volumes")
volumes_command = f"docker volume prune -fa" volumes_command = f"docker volume prune -fa"
subprocess.run(volumes_command, shell=True) subprocess.run(volumes_command, shell=True)

View File

@ -38,7 +38,10 @@
}, },
"themelimit": "9", "themelimit": "9",
"oidc": { "oidc": {
"authority": "" "authority": "",
"disableValidateToken": "true",
"requireHttps": "false",
"showPII": "true"
}, },
"server-root": "", "server-root": "",
"username": { "username": {
@ -123,7 +126,7 @@
"api-system": "", "api-system": "",
"api-cache": "", "api-cache": "",
"images": "static/images", "images": "static/images",
"hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch", "hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch,IdentityServer",
"hub": { "hub": {
"url": "/socket.io", "url": "/socket.io",
"internal": "http://localhost:9899/" "internal": "http://localhost:9899/"

View File

@ -9,6 +9,6 @@ server=8.8.4.4
server=8.8.8.8 server=8.8.8.8
strict-order strict-order
#serve all .company queries using a specific nameserver #serve all .company queries using a specific nameserver
server=/site/127.0.0.1 server=/site/192.168.0.18
#explicitly define host-ip mappings #explicitly define host-ip mappings
address=/docspace.site/127.0.0.1 address=/docspace.site/192.168.0.18

View File

@ -0,0 +1,12 @@
location ^~ /dashboards/ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
rewrite ^/dashboards(/.*)$ $1 break;
proxy_pass http://127.0.0.1:5601;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}

View File

@ -104,8 +104,7 @@ server {
local accept_header = ngx.req.get_headers()["Accept"] local accept_header = ngx.req.get_headers()["Accept"]
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath|/api/") then if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath|/api/") then
if not ngx.re.match(ngx.var.request_uri, "login|sdk|filehandler|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*|token=.") then if not ngx.re.match(ngx.var.request_uri, "login|oauth2|sdk|filehandler|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*|token=.") then if ngx.var.http_cookie == nil or not string.find(ngx.var.http_cookie, "asc_auth_key") then
if ngx.var.http_cookie == nil or not string.find(ngx.var.http_cookie, "asc_auth_key") then
if ngx.var.request_uri == "/" then if ngx.var.request_uri == "/" then
return ngx.redirect("/login") return ngx.redirect("/login")
else else
@ -168,18 +167,7 @@ server {
} }
location ^~ /dashboards/ { include /etc/nginx/includes/server-*.conf;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
rewrite ^/dashboards(/.*)$ $1 break;
proxy_pass http://127.0.0.1:5601;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
location / { location / {
proxy_pass http://127.0.0.1:5001; proxy_pass http://127.0.0.1:5001;
@ -333,7 +321,26 @@ server {
location ~* /migration { location ~* /migration {
proxy_pass http://127.0.0.1:5034; proxy_pass http://127.0.0.1:5034;
} }
location ~* /(clients|scopes) {
proxy_pass http://127.0.0.1:9090;
}
location ~* /oauth2 {
rewrite api/2.0/(.*) /$1 break;
proxy_redirect off;
proxy_pass http://127.0.0.1:8080;
}
} }
location /oauth2/.well-known/openid-configuration {
rewrite oauth2/(.*) /$1 break;
proxy_pass http://127.0.0.1:8080;
}
location /oauth2 {
proxy_pass http://127.0.0.1:8080;
}
location /sso { location /sso {
rewrite sso/(.*) /$1 break; rewrite sso/(.*) /$1 break;

View File

@ -30,9 +30,11 @@ def fetchCommits(url, type):
print("Error folder does not exists", path) print("Error folder does not exists", path)
return return
branch_env = f"{type.upper()}_BRANCH"
branch = os.environ.get(branch_env)
repo = Repo(path) repo = Repo(path)
info = f"| [DocSpace-{type}]({url}) | [{repo.active_branch.name}]({url}/tree/{repo.active_branch.name}) | [{repo.head.commit}]({url}/commit/{repo.head.commit}) |{os.linesep}" info = f"| [DocSpace-{type}]({url}) | [{branch}]({url}/tree/{branch}) | [{repo.head.commit}]({url}/commit/{repo.head.commit}) |{os.linesep}"
commits_str = repo.git.log(f"--pretty=format: {format}", "--no-merges", f"--since={LIMIT_DAYS}.days") commits_str = repo.git.log(f"--pretty=format: {format}", "--no-merges", f"--since={LIMIT_DAYS}.days")
#print(commits_str) #print(commits_str)

View File

@ -1,127 +1,145 @@
# docker-compose tags # # docker-compose tags #
PRODUCT=onlyoffice PRODUCT=onlyoffice
REPO=${PRODUCT} REPO=${PRODUCT}
INSTALLATION_TYPE=COMMUNITY INSTALLATION_TYPE=COMMUNITY
STATUS="" STATUS=""
DOCKER_IMAGE_PREFIX=${STATUS}docspace DOCKER_IMAGE_PREFIX=${STATUS}docspace
DOCKER_TAG=latest DOCKER_TAG=latest
CONTAINER_PREFIX=${PRODUCT}- CONTAINER_PREFIX=${PRODUCT}-
MYSQL_VERSION=8.3.0 MYSQL_VERSION=8.3.0
MYSQL_IMAGE=mysql:${MYSQL_VERSION} MYSQL_IMAGE=mysql:${MYSQL_VERSION}
SERVICE_PORT=5050 SERVICE_PORT=5050
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
DOCKERFILE=Dockerfile.app DOCKERFILE=Dockerfile.app
APP_DOTNET_ENV="" APP_DOTNET_ENV=""
EXTERNAL_PORT="80" EXTERNAL_PORT="80"
# opensearch stack # # opensearch stack #
ELK_VERSION=2.11.1 ELK_VERSION=2.11.1
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
ELK_SHEME=http ELK_SHEME=http
ELK_HOST="" ELK_HOST=""
ELK_PORT=9200 ELK_PORT=9200
DASHBOARDS_VERSION=2.11.1 DASHBOARDS_VERSION=2.11.1
DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards
DASHBOARDS_USERNAME=onlyoffice DASHBOARDS_USERNAME=onlyoffice
DASHBOARDS_PASSWORD=onlyoffice DASHBOARDS_PASSWORD=onlyoffice
FLUENT_BIT_VERSION=3.0.2 FLUENT_BIT_VERSION=3.0.2
FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit
# app service environment # # app service environment #
ENV_EXTENSION=none ENV_EXTENSION=none
APP_CORE_BASE_DOMAIN=localhost APP_CORE_BASE_DOMAIN=localhost
APP_URL_PORTAL="http://localhost:8092" APP_URL_PORTAL="http://localhost:8092"
OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx" OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx"
WRONG_PORTAL_NAME_URL="" WRONG_PORTAL_NAME_URL=""
LOG_LEVEL="Warning" LOG_LEVEL="Warning"
DEBUG_INFO="false" DEBUG_INFO="false"
APP_KNOWN_PROXIES="" APP_KNOWN_PROXIES=""
APP_KNOWN_NETWORKS="" APP_KNOWN_NETWORKS=""
APP_CORE_MACHINEKEY=your_core_machinekey APP_CORE_MACHINEKEY=your_core_machinekey
CERTIFICATE_PATH="" CERTIFICATE_PATH=""
CERTIFICATE_KEY_PATH="" CERTIFICATE_KEY_PATH=""
DHPARAM_PATH="" DHPARAM_PATH=""
# docs # # docs #
DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server
DOCUMENT_SERVER_URL_EXTERNAL="" DOCUMENT_SERVER_URL_EXTERNAL=""
DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret
DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/ DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/
# redis # # redis #
REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis
REDIS_HOST="" REDIS_HOST=""
REDIS_PORT=6379 REDIS_PORT=6379
REDIS_USER_NAME="" REDIS_USER_NAME=""
REDIS_PASSWORD="" REDIS_PASSWORD=""
# rabbitmq # # rabbitmq #
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
RABBIT_HOST="" RABBIT_HOST=""
RABBIT_PORT=5672 RABBIT_PORT=5672
RABBIT_VIRTUAL_HOST=/ RABBIT_VIRTUAL_HOST=/
RABBIT_USER_NAME=guest RABBIT_USER_NAME=guest
RABBIT_PASSWORD=guest RABBIT_PASSWORD=guest
# mysql # # mysql #
MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server
MYSQL_HOST="" MYSQL_HOST=""
MYSQL_PORT=3306 MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=my-secret-pw MYSQL_ROOT_PASSWORD=my-secret-pw
MYSQL_DATABASE=docspace MYSQL_DATABASE=docspace
MYSQL_USER=${PRODUCT}_user MYSQL_USER=${PRODUCT}_user
MYSQL_PASSWORD=${PRODUCT}_pass MYSQL_PASSWORD=${PRODUCT}_pass
DATABASE_MIGRATION=false DATABASE_MIGRATION=false
MIGRATION_TYPE="SAAS" MIGRATION_TYPE="SAAS"
# service host # # service host #
API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system
BACKUP_HOST=${CONTAINER_PREFIX}backup BACKUP_HOST=${CONTAINER_PREFIX}backup
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
FILES_HOST=${CONTAINER_PREFIX}files FILES_HOST=${CONTAINER_PREFIX}files
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
NOTIFY_HOST=${CONTAINER_PREFIX}notify NOTIFY_HOST=${CONTAINER_PREFIX}notify
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
SOCKET_HOST=${CONTAINER_PREFIX}socket SOCKET_HOST=${CONTAINER_PREFIX}socket
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
API_HOST=${CONTAINER_PREFIX}api API_HOST=${CONTAINER_PREFIX}api
STUDIO_HOST=${CONTAINER_PREFIX}studio STUDIO_HOST=${CONTAINER_PREFIX}studio
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
PROXY_HOST=${CONTAINER_PREFIX}proxy PROXY_HOST=${CONTAINER_PREFIX}proxy
ROUTER_HOST=${CONTAINER_PREFIX}router ROUTER_HOST=${CONTAINER_PREFIX}router
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
LOGIN_HOST=${CONTAINER_PREFIX}login LOGIN_HOST=${CONTAINER_PREFIX}login
MANAGEMENT_HOST={CONTAINER_PREFIX}management MANAGEMENT_HOST={CONTAINER_PREFIX}management
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
# router upstream environment # # router upstream environment #
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT} SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT} SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT} SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT} SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT} SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT} SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT} SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT} SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT} SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT} SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT} SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
SERVICE_API=${API_HOST}:${SERVICE_PORT} SERVICE_API=${API_HOST}:${SERVICE_PORT}
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT} SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT} SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT} SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT}
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013 SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
SERVICE_LOGIN=${LOGIN_HOST}:5011 SERVICE_LOGIN=${LOGIN_HOST}:5011
SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT} SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT}
SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT} SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT}
NETWORK_NAME=${PRODUCT} NETWORK_NAME=${PRODUCT}
COMPOSE_IGNORE_ORPHANS=True COMPOSE_IGNORE_ORPHANS=True
# identity #
IDENTITY_DOCKERFILE=/Dockerfile
JDBC_USER_NAME=root
JDBC_PASSWORD=${MYSQL_ROOT_PASSWORD}
JDBC_URL=${MYSQL_CONTAINER_NAME}
JDBC_DATABASE=${MYSQL_DATABASE}
IDENTITY_PROFILE="dev"
IDENTITY_MIGRATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity_migration
IDENTITY_MIGRATION_SERVER_PORT=8081
IDENTITY_AUTHORIZATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity-authorization
IDENTITY_AUTHORIZATION_SERVER_PORT=8080
IDENTITY_API_CONTAINER_NAME=${CONTAINER_PREFIX}identity-api
IDENTITY_API_SERVER_PORT=9090
REDIS_ADDRESSES=redis://onlyoffice-redis:6379

View File

@ -28,7 +28,7 @@ ARG PRODUCT_VERSION=0.0.0
ARG BUILD_NUMBER=0 ARG BUILD_NUMBER=0
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \ LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
maintainer="Ascensio System SIA <support@onlyoffice.com>" maintainer="Ascensio System SIA <support@onlyoffice.com>"
ENV LANG=en_US.UTF-8 \ ENV LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \ LANGUAGE=en_US:en \
@ -40,10 +40,10 @@ COPY . .
RUN apt-get -y update && \ RUN apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
sudo \ sudo \
locales \ locales \
git \ git \
npm && \ npm && \
locale-gen en_US.UTF-8 && \ locale-gen en_US.UTF-8 && \
npm install --global yarn && \ npm install --global yarn && \
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
@ -81,7 +81,7 @@ RUN mkdir -p /app/onlyoffice/ && \
rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \ rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \
rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \ rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.People/Server/* rm -rf ${SRC_PATH}/products/ASC.People/Server/*
FROM $DOTNET_RUN as dotnetrun FROM $DOTNET_RUN as dotnetrun
ARG BUILD_PATH ARG BUILD_PATH
ARG SRC_PATH ARG SRC_PATH
@ -98,16 +98,16 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
python3-pip \ python3-pip \
nano \ nano \
curl \ curl \
vim \ vim \
libgdiplus && \ libgdiplus && \
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \ pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
#USER onlyoffice #USER onlyoffice
EXPOSE 5050 EXPOSE 5050
ENTRYPOINT ["python3", "docker-entrypoint.py"] ENTRYPOINT ["python3", "docker-entrypoint.py"]
@ -127,10 +127,10 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
nano \ nano \
curl \ curl \
vim \ vim \
python3-pip && \ python3-pip && \
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \ pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
@ -176,6 +176,8 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \ if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \ if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \

View File

@ -16,20 +16,34 @@ ARG DEPLOY_ARGS="deploy"
ARG DEBUG_INFO="true" ARG DEBUG_INFO="true"
ARG PUBLISH_CNF="Release" ARG PUBLISH_CNF="Release"
ARG GIT_BRANCH_BUILDTOOLS=""
ARG GIT_BRANCH_SERVER=""
ARG GIT_BRANCH_CLIENT=""
ARG GIT_BRANCH_CAMPAIGNS=""
ARG BUILDTOOLS_COMMIT=""
ARG SERVER_COMMIT=""
ARG CLIENT_COMMIT=""
ARG CAMPAIGNS_COMMIT=""
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \ LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
maintainer="Ascensio System SIA <support@onlyoffice.com>" maintainer="Ascensio System SIA <support@onlyoffice.com>"
ENV LANG=en_US.UTF-8 \ ENV LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \ LANGUAGE=en_US:en \
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
ARG GIT_BRANCH_BUILDTOOLS=${GIT_BRANCH_BUILDTOOLS:-$GIT_BRANCH}
ARG GIT_BRANCH_SERVER=${GIT_BRANCH_SERVER:-$GIT_BRANCH}
ARG GIT_BRANCH_CLIENT=${GIT_BRANCH_CLIENT:-$GIT_BRANCH}
ARG GIT_BRANCH_CAMPAIGNS=${GIT_BRANCH_CAMPAIGNS:-$GIT_BRANCH}
RUN apt-get -y update && \ RUN apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
sudo \ sudo \
locales \ locales \
git \ git \
python3-pip \ python3-pip \
npm && \ npm && \
locale-gen en_US.UTF-8 && \ locale-gen en_US.UTF-8 && \
npm install --global yarn && \ npm install --global yarn && \
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
@ -39,11 +53,15 @@ RUN apt-get -y update && \
apt-get install -y nodejs && \ apt-get install -y nodejs && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
ADD https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/git/refs/heads/${GIT_BRANCH} version.json ADD https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/git/refs/heads/${GIT_BRANCH_BUILDTOOLS} version.json
RUN git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-buildtools.git ${SRC_PATH}/buildtools && \ RUN git clone -b ${GIT_BRANCH_BUILDTOOLS} https://github.com/ONLYOFFICE/DocSpace-buildtools.git ${SRC_PATH}/buildtools && \
git clone --recurse-submodules -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Server.git ${SRC_PATH}/server && \ if [ -n "${BUILDTOOLS_COMMIT}" ]; then git -C ${SRC_PATH}/buildtools checkout ${BUILDTOOLS_COMMIT}; fi && \
git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Client.git ${SRC_PATH}/client && \ git clone --recurse-submodules -b ${SERVER_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Server.git ${SRC_PATH}/server && \
git clone -b "master" --depth 1 https://github.com/ONLYOFFICE/ASC.Web.Campaigns.git ${SRC_PATH}/campaigns if [ -n "${SERVER_COMMIT}" ]; then git -C ${SRC_PATH}/server checkout ${SERVER_COMMIT}; fi && \
git clone -b ${GIT_BRANCH_CLIENT} https://github.com/ONLYOFFICE/DocSpace-Client.git ${SRC_PATH}/client && \
if [ -n "${CLIENT_COMMIT}" ]; then git -C ${SRC_PATH}/client checkout ${CLIENT_COMMIT}; fi && \
git clone -b master --depth 1 https://github.com/ONLYOFFICE/ASC.Web.Campaigns.git ${SRC_PATH}/campaigns && \
if [ -n "${CAMPAIGNS_COMMIT}" ]; then git -C ${SRC_PATH}/campaigns checkout ${CAMPAIGNS_COMMIT}; fi
RUN cd ${SRC_PATH} && \ RUN cd ${SRC_PATH} && \
mkdir -p /app/onlyoffice/config/ && \ mkdir -p /app/onlyoffice/config/ && \
@ -52,7 +70,7 @@ RUN cd ${SRC_PATH} && \
cd ${SRC_PATH} && \ cd ${SRC_PATH} && \
cp buildtools/config/*.config /app/onlyoffice/config/ && \ cp buildtools/config/*.config /app/onlyoffice/config/ && \
mkdir -p /etc/nginx/conf.d && cp -f buildtools/config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \ mkdir -p /etc/nginx/conf.d && cp -f buildtools/config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && \ mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/server-*.conf /etc/nginx/includes/ && \
sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \ sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \ sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
cd ${SRC_PATH}/buildtools/install/common/ && \ cd ${SRC_PATH}/buildtools/install/common/ && \
@ -66,7 +84,7 @@ RUN cd ${SRC_PATH} && \
rm -rf ${SRC_PATH}/server/products/ASC.Files/Server/* && \ rm -rf ${SRC_PATH}/server/products/ASC.Files/Server/* && \
rm -rf ${SRC_PATH}/server/products/ASC.Files/Service/* && \ rm -rf ${SRC_PATH}/server/products/ASC.Files/Service/* && \
rm -rf ${SRC_PATH}/server/products/ASC.People/Server/* rm -rf ${SRC_PATH}/server/products/ASC.People/Server/*
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
FROM $DOTNET_RUN as dotnetrun FROM $DOTNET_RUN as dotnetrun
@ -85,17 +103,17 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
sudo \ sudo \
nano \ nano \
curl \ curl \
vim \ vim \
python3-pip \ python3-pip \
libgdiplus && \ libgdiplus && \
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \ pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
#USER onlyoffice #USER onlyoffice
EXPOSE 5050 EXPOSE 5050
ENTRYPOINT ["python3", "docker-entrypoint.py"] ENTRYPOINT ["python3", "docker-entrypoint.py"]
@ -115,12 +133,12 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
sudo \ sudo \
nano \ nano \
curl \ curl \
vim \ vim \
python3-pip && \ python3-pip && \
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \ pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
@ -170,10 +188,12 @@ RUN sed -i 's/127.0.0.1:5010/$service_api_system/' /etc/nginx/conf.d/onlyoffice.
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \ if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \ if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/includes/server-dashboards.conf && \
sed -i 's/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i '/client_body_temp_path/ i \ \ \ \ $MAP_HASH_BUCKET_SIZE' /etc/nginx/nginx.conf.template && \ sed -i '/client_body_temp_path/ i \ \ \ \ $MAP_HASH_BUCKET_SIZE' /etc/nginx/nginx.conf.template && \
@ -253,11 +273,11 @@ ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/ WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
RUN echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list && \ RUN echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list && \
apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \ apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \
apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \ apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq libssl1.1 && \ apt-get install -yq libssl1.1 && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ . COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .

View File

@ -36,11 +36,11 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
python3-pip \ python3-pip \
nano \ nano \
curl \ curl \
vim \ vim \
libgdiplus && \ libgdiplus && \
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \ pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
@ -64,10 +64,10 @@ RUN mkdir -p /var/log/onlyoffice && \
chown onlyoffice:onlyoffice /var/www -R && \ chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \ apt-get -y update && \
apt-get install -yq \ apt-get install -yq \
nano \ nano \
curl \ curl \
vim \ vim \
python3-pip && \ python3-pip && \
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \ pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
@ -122,6 +122,8 @@ RUN chown onlyoffice:onlyoffice /etc/nginx/* -R && \
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \ sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \

View File

@ -54,6 +54,18 @@ map $SERVICE_API $service_api {
default $SERVICE_API; default $SERVICE_API;
} }
map $SERVICE_IDENTITY_API $service_identity_api {
volatile;
"" 127.0.0.1:9090;
default $SERVICE_IDENTITY_API;
}
map $SERVICE_IDENTITY $service_identity {
volatile;
"" 127.0.0.1:8080;
default $SERVICE_IDENTITY;
}
map $SERVICE_STUDIO $service_studio { map $SERVICE_STUDIO $service_studio {
volatile; volatile;
"" 127.0.0.1:5003; "" 127.0.0.1:5003;

View File

@ -264,6 +264,8 @@ services:
- SERVICE_NOTIFY=${SERVICE_NOTIFY} - SERVICE_NOTIFY=${SERVICE_NOTIFY}
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER} - SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
- SERVICE_SOCKET=${SERVICE_SOCKET} - SERVICE_SOCKET=${SERVICE_SOCKET}
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY} - SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
- SERVICE_API=${SERVICE_API} - SERVICE_API=${SERVICE_API}
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM} - SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}

View File

@ -1,5 +1,5 @@
x-healthcheck: version: "3.8"
&x-healthcheck x-healthcheck: &x-healthcheck
test: curl --fail http://127.0.0.1 || exit 1 test: curl --fail http://127.0.0.1 || exit 1
interval: 60s interval: 60s
retries: 5 retries: 5
@ -64,48 +64,48 @@ services:
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup-background:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup-background:${DOCKER_TAG}"
container_name: ${BACKUP_BACKGRUOND_TASKS_HOST} container_name: ${BACKUP_BACKGRUOND_TASKS_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1 test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1
onlyoffice-backup: onlyoffice-backup:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}"
container_name: ${BACKUP_HOST} container_name: ${BACKUP_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1 test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1
onlyoffice-clear-events: onlyoffice-clear-events:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
container_name: ${CLEAR_EVENTS_HOST} container_name: ${CLEAR_EVENTS_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1 test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1
onlyoffice-files: onlyoffice-files:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}"
container_name: ${FILES_HOST} container_name: ${FILES_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_FILES}/health/ || exit 1 test: curl --fail http://${SERVICE_FILES}/health/ || exit 1
onlyoffice-files-services: onlyoffice-files-services:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
container_name: ${FILES_SERVICES_HOST} container_name: ${FILES_SERVICES_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1 test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1
onlyoffice-people-server: onlyoffice-people-server:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}"
container_name: ${PEOPLE_SERVER_HOST} container_name: ${PEOPLE_SERVER_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1 test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1
onlyoffice-socket: onlyoffice-socket:
<<: *x-service-base <<: *x-service-base
@ -119,32 +119,32 @@ services:
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
container_name: ${STUDIO_NOTIFY_HOST} container_name: ${STUDIO_NOTIFY_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1 test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1
onlyoffice-api: onlyoffice-api:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
container_name: ${API_HOST} container_name: ${API_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_API}/health/ || exit 1 test: curl --fail http://${SERVICE_API}/health/ || exit 1
onlyoffice-api-system: onlyoffice-api-system:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
container_name: ${API_SYSTEM_HOST} container_name: ${API_SYSTEM_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1 test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1
onlyoffice-studio: onlyoffice-studio:
<<: *x-service-base <<: *x-service-base
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
container_name: ${STUDIO_HOST} container_name: ${STUDIO_HOST}
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1 test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1
onlyoffice-ssoauth: onlyoffice-ssoauth:
<<: *x-service-base <<: *x-service-base
@ -161,8 +161,8 @@ services:
expose: expose:
- "5013" - "5013"
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1 test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1
onlyoffice-login: onlyoffice-login:
<<: *x-service-base <<: *x-service-base
@ -171,16 +171,16 @@ services:
expose: expose:
- "5011" - "5011"
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1 test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1
onlyoffice-router: onlyoffice-router:
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-router:${DOCKER_TAG}" image: "${REPO}/${DOCKER_IMAGE_PREFIX}-router:${DOCKER_TAG}"
container_name: ${ROUTER_HOST} container_name: ${ROUTER_HOST}
restart: always restart: always
healthcheck: healthcheck:
<<: *x-healthcheck <<: *x-healthcheck
test: nginx -t || exit 1 test: nginx -t || exit 1
expose: expose:
- "8081" - "8081"
- "8099" - "8099"
@ -208,6 +208,8 @@ services:
- SERVICE_NOTIFY=${SERVICE_NOTIFY} - SERVICE_NOTIFY=${SERVICE_NOTIFY}
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER} - SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
- SERVICE_SOCKET=${SERVICE_SOCKET} - SERVICE_SOCKET=${SERVICE_SOCKET}
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY} - SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
- SERVICE_API=${SERVICE_API} - SERVICE_API=${SERVICE_API}
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM} - SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}

View File

@ -0,0 +1,69 @@
version: "3.8"
services:
onlyoffice-identity-authorization:
build:
context: ../../../server/common/ASC.Identity
dockerfile: ${IDENTITY_DOCKERFILE}
args:
- MODULE=authorization/authorization-container
container_name: ${IDENTITY_AUTHORIZATION_CONTAINER_NAME}
restart: always
ports:
- 8080:8080
environment:
- SPRING_PROFILES_ACTIVE=${IDENTITY_PROFILE}
- SPRING_APPLICATION_NAME=ASC.Identity.Authorization
- SERVER_PORT=${IDENTITY_AUTHORIZATION_SERVER_PORT}
- JDBC_PASSWORD=${JDBC_PASSWORD}
- JDBC_URL=${JDBC_URL}
- JDBC_USER_NAME=${JDBC_USER_NAME}
- JDBC_DATABASE=${JDBC_DATABASE}
- RABBIT_HOST=onlyoffice-rabbitmq
- REDIS_HOST=onlyoffice-redis
depends_on:
- onlyoffice-identity-migration
onlyoffice-identity-api:
build:
context: ../../../server/common/ASC.Identity
dockerfile: ${IDENTITY_DOCKERFILE}
args:
- MODULE=registration/registration-container
container_name: ${IDENTITY_API_CONTAINER_NAME}
ports:
- 9090:9090
environment:
- SPRING_PROFILES_ACTIVE=${PROFILE}
- SPRING_APPLICATION_NAME=ASC.Identity.Registration
- SERVER_PORT=${IDENTITY_API_SERVER_PORT}
- JDBC_PASSWORD=${JDBC_PASSWORD}
- JDBC_URL=${JDBC_URL}
- JDBC_USER_NAME=${JDBC_USER_NAME}
- JDBC_DATABASE=${JDBC_DATABASE}
- RABBIT_HOST=onlyoffice-rabbitmq
- REDIS_HOST=onlyoffice-redis
depends_on:
- onlyoffice-identity-migration
onlyoffice-identity-migration:
build:
context: ../../../server/common/ASC.Identity
dockerfile: ${IDENTITY_DOCKERFILE}
args:
- MODULE=infrastructure/infrastructure-migration-runner
container_name: ${IDENTITY_MIGRATION_CONTAINER_NAME}
restart: "no"
ports:
- 8081:8081
environment:
- JDBC_PASSWORD=${JDBC_PASSWORD}
- JDBC_URL=${JDBC_URL}
- JDBC_USER_NAME=${JDBC_USER_NAME}
- JDBC_DATABASE=${JDBC_DATABASE}
- RABBIT_HOST=onlyoffice-rabbitmq
- REDIS_HOST=onlyoffice-redis
networks:
default:
name: ${NETWORK_NAME}
external: true

12
run/IdentityApi.xml Normal file
View File

@ -0,0 +1,12 @@
<service>
<id>OnlyofficeIdentityApi</id>
<name>ONLYOFFICE IdentityApi</name>
<startmode>manual</startmode>
<executable>java</executable>
<env name="LOG_FILE_PATH" value="../../Logs/identity-api.log"/>
<env name="SPRING_PROFILES_ACTIVE" value=""/>
<arguments>-jar ../../server/common/ASC.Identity/registration/registration-container/target/registration-container-1.0.0.jar</arguments>
<log mode="none"/>
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="restart" delay="5 sec" />
</service>

12
run/IdentityMigration.xml Normal file
View File

@ -0,0 +1,12 @@
<service>
<id>OnlyofficeIdentityMigration</id>
<name>ONLYOFFICE IdentityMigration</name>
<startmode>manual</startmode>
<executable>java</executable>
<env name="LOG_FILE_PATH" value="../../Logs/identity-migration.log"/>
<env name="SPRING_PROFILES_ACTIVE" value="dev"/>
<arguments>-jar ../../server/common/ASC.Identity/infrastructure/infrastructure-migration-runner/target/infrastructure-migration-runner-1.0.0.jar</arguments>
<log mode="none"/>
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="restart" delay="5 sec" />
</service>

13
run/IdentityService.xml Normal file
View File

@ -0,0 +1,13 @@
<service>
<id>OnlyofficeIdentityService</id>
<name>ONLYOFFICE IdentityService</name>
<startmode>manual</startmode>
<executable>java</executable>
<env name="LOG_FILE_PATH" value="../../Logs/identity-authorization.log"/>
<env name="SERVER_PORT" value="8080"/>
<env name="SPRING_PROFILES_ACTIVE" value=""/>
<arguments>-jar ../../server/common/ASC.Identity/authorization/authorization-container/target/authorization-container-1.0.0.jar</arguments>
<log mode="none"/>
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="restart" delay="5 sec" />
</service>

28
scripts/identity.bat Normal file
View File

@ -0,0 +1,28 @@
PUSHD %~dp0..
cd %~dp0../../server/common/ASC.Identity/
echo Start build ASC.Identity project...
echo.
echo ASC.Identity: resolves all project dependencies...
echo.
call mvn dependency:go-offline -q
if %errorlevel% == 0 (
echo ASC.Identity: take the compiled code and package it in its distributable format, such as a JAR...
call mvn package -DskipTests -q
)
if %errorlevel% == 0 (
echo ASC.Identity: build completed
echo.
)
POPD