Merge branch 'release/rc-v1.2.0' into feature/manage-notifications-panel
# Conflicts: # packages/client/public/locales/en/Profile.json # packages/client/public/locales/ru/Profile.json
This commit is contained in:
commit
af09362401
6
.github/workflows/4testing-multi-build.yml
vendored
6
.github/workflows/4testing-multi-build.yml
vendored
@ -2,7 +2,7 @@ name: 4testing multiarch-build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "develop" ]
|
||||
branches: [ "release/rc-v1.2.0" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -33,10 +33,10 @@ jobs:
|
||||
cd ./build/install/docker
|
||||
REPO="onlyoffice" \
|
||||
DOCKER_IMAGE_PREFIX="4testing-docspace" \
|
||||
DOCKER_TAG="develop" \
|
||||
DOCKER_TAG="rc-v1.2.0" \
|
||||
DOCKERFILE="Dockerfile.app" \
|
||||
docker buildx bake -f build.yml \
|
||||
--set *.args.GIT_BRANCH="develop" \
|
||||
--set *.args.GIT_BRANCH="release/rc-v1.2.0" \
|
||||
--set *.platform=linux/amd64 \
|
||||
--push
|
||||
shell: bash
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -50,4 +50,3 @@ TestsResults/
|
||||
|
||||
**/.yarn/cache
|
||||
**/.yarn/install-state.gz
|
||||
config/appsettings.dev.json
|
||||
|
783
.yarn/releases/yarn-3.2.2.cjs
vendored
783
.yarn/releases/yarn-3.2.2.cjs
vendored
File diff suppressed because one or more lines are too long
801
.yarn/releases/yarn-3.2.4.cjs
vendored
Executable file
801
.yarn/releases/yarn-3.2.4.cjs
vendored
Executable file
File diff suppressed because one or more lines are too long
@ -8,4 +8,4 @@ plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
|
||||
spec: "@yarnpkg/plugin-version"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.2.2.cjs
|
||||
yarnPath: .yarn/releases/yarn-3.2.4.cjs
|
||||
|
@ -29,6 +29,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Migration.Runner", "com
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ActiveDirectory", "common\ASC.ActiveDirectory\ASC.ActiveDirectory.csproj", "{DD482D67-F700-4C30-9AA6-A2BE7A1079B5}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Migration.PersonalToDocspace", "common\Tools\ASC.MigrationPersonalToDocspace\ASC.Migration.PersonalToDocspace.csproj", "{9493BF4B-46DF-4BE7-AC63-83992B205A00}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Common", "common\ASC.Common\ASC.Common.csproj", "{1C5691B2-4AB1-4D3C-931C-AF7AD9CE8241}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -87,6 +91,14 @@ Global
|
||||
{DD482D67-F700-4C30-9AA6-A2BE7A1079B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DD482D67-F700-4C30-9AA6-A2BE7A1079B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DD482D67-F700-4C30-9AA6-A2BE7A1079B5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9493BF4B-46DF-4BE7-AC63-83992B205A00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9493BF4B-46DF-4BE7-AC63-83992B205A00}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9493BF4B-46DF-4BE7-AC63-83992B205A00}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9493BF4B-46DF-4BE7-AC63-83992B205A00}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1C5691B2-4AB1-4D3C-931C-AF7AD9CE8241}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1C5691B2-4AB1-4D3C-931C-AF7AD9CE8241}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1C5691B2-4AB1-4D3C-931C-AF7AD9CE8241}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1C5691B2-4AB1-4D3C-931C-AF7AD9CE8241}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
60
ASC.Web.sln
60
ASC.Web.sln
@ -42,22 +42,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Notify.Textile", "commo
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ElasticSearch", "common\services\ASC.ElasticSearch\ASC.ElasticSearch.csproj", "{AE1A0E06-6CD4-4E1D-8209-22BBBD6D5652}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Calendar", "products\ASC.Calendar\Server\ASC.Calendar.csproj", "{867BF98F-9638-4E99-BB68-651E1B812547}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Files", "products\ASC.Files\Server\ASC.Files.csproj", "{77BA2F61-6155-4283-BB39-F8E42F46A0B0}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Files.Service", "products\ASC.Files\Service\ASC.Files.Service.csproj", "{5D41FFFF-816C-40B2-95CD-E2DDDCB83784}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ApiSystem", "common\services\ASC.ApiSystem\ASC.ApiSystem.csproj", "{C2BB03A0-C35B-433F-96D4-3A06CBC06AD7}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Feed.Aggregator", "common\services\ASC.Feed.Aggregator\ASC.Feed.Aggregator.csproj", "{07CCC11F-76CB-448E-B15A-72E09FBB348B}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Files.Core", "products\ASC.Files\Core\ASC.Files.Core.csproj", "{F0A39728-940D-4DBE-A37A-05D4EB57F342}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Storage.Migration", "common\services\ASC.Data.Storage.Migration\ASC.Data.Storage.Migration.csproj", "{02356BD7-7E99-457B-BEFF-090CE4DF067D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Storage.Encryption", "common\services\ASC.Data.Storage.Encryption\ASC.Data.Storage.Encryption.csproj", "{17A05AE2-21C8-4C1C-B422-6AB80F13F63E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.TelegramService", "common\services\ASC.TelegramService\ASC.TelegramService.csproj", "{95CE7371-17B6-4EEE-8E38-2FDE6347E955}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.AuditTrail", "common\services\ASC.AuditTrail\ASC.AuditTrail.csproj", "{2C111161-B7C5-4869-9F52-EA725E64BA40}"
|
||||
@ -69,18 +61,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Encryption", "common\ASC.Data.Encryption\ASC.Data.Encryption.csproj", "{C4DF1A63-C9EB-4D8F-A4E5-4FD9249A5089}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Projects", "products\ASC.Projects\Server\ASC.Projects.csproj", "{D1A33923-5680-4B86-A7DA-41E78350D997}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.CRM", "products\ASC.CRM\Server\ASC.CRM.csproj", "{277F4A2C-07CC-4BC5-B4F3-9695BB2DFFB9}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Mail", "products\ASC.Mail\Server\ASC.Mail.csproj", "{137CA67B-D0F5-4746-B8BC-1888D2859B90}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Web.HealthChecks.UI", "web\ASC.Web.HealthChecks.UI\ASC.Web.HealthChecks.UI.csproj", "{0C1A387E-0CD0-4BE8-82FC-9FCAD05BF289}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ClearEvents", "common\services\ASC.ClearEvents\ASC.ClearEvents.csproj", "{448221A8-EABA-4200-9192-E08BF241A487}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.CRM.BackgroundTasks", "products\ASC.CRM\BackgroundTasks\ASC.CRM.BackgroundTasks.csproj", "{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Backup.Core", "common\ASC.Data.Backup.Core\ASC.Data.Backup.Core.csproj", "{F5D9DE01-06CD-4881-9F41-46882E9ED45C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Backup", "common\services\ASC.Data.Backup\ASC.Data.Backup.csproj", "{027EEE53-7491-48F4-B467-6404D68798A7}"
|
||||
@ -103,6 +87,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ActiveDirectory", "comm
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.EventBus.ActiveMQ", "common\ASC.EventBus.ActiveMQ\ASC.EventBus.ActiveMQ.csproj", "{86916EF2-4A1B-441C-B673-EB0F68EC9C3A}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Data.Storage.Encryption", "common\services\ASC.Data.Storage.Encryption\ASC.Data.Storage.Encryption.csproj", "{76BFD0A6-3F28-4BCE-983B-9FE3FBDD966D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.ApiSystem", "common\services\ASC.ApiSystem\ASC.ApiSystem.csproj", "{EB0FC2DF-D8AC-460B-8FBE-307A7B163C6C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -181,10 +169,6 @@ Global
|
||||
{AE1A0E06-6CD4-4E1D-8209-22BBBD6D5652}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AE1A0E06-6CD4-4E1D-8209-22BBBD6D5652}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AE1A0E06-6CD4-4E1D-8209-22BBBD6D5652}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{867BF98F-9638-4E99-BB68-651E1B812547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{867BF98F-9638-4E99-BB68-651E1B812547}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{867BF98F-9638-4E99-BB68-651E1B812547}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{867BF98F-9638-4E99-BB68-651E1B812547}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{77BA2F61-6155-4283-BB39-F8E42F46A0B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{77BA2F61-6155-4283-BB39-F8E42F46A0B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{77BA2F61-6155-4283-BB39-F8E42F46A0B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -193,10 +177,6 @@ Global
|
||||
{5D41FFFF-816C-40B2-95CD-E2DDDCB83784}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5D41FFFF-816C-40B2-95CD-E2DDDCB83784}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5D41FFFF-816C-40B2-95CD-E2DDDCB83784}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C2BB03A0-C35B-433F-96D4-3A06CBC06AD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C2BB03A0-C35B-433F-96D4-3A06CBC06AD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C2BB03A0-C35B-433F-96D4-3A06CBC06AD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C2BB03A0-C35B-433F-96D4-3A06CBC06AD7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{07CCC11F-76CB-448E-B15A-72E09FBB348B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{07CCC11F-76CB-448E-B15A-72E09FBB348B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{07CCC11F-76CB-448E-B15A-72E09FBB348B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -205,14 +185,6 @@ Global
|
||||
{F0A39728-940D-4DBE-A37A-05D4EB57F342}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F0A39728-940D-4DBE-A37A-05D4EB57F342}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F0A39728-940D-4DBE-A37A-05D4EB57F342}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{02356BD7-7E99-457B-BEFF-090CE4DF067D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{02356BD7-7E99-457B-BEFF-090CE4DF067D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{02356BD7-7E99-457B-BEFF-090CE4DF067D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{02356BD7-7E99-457B-BEFF-090CE4DF067D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{17A05AE2-21C8-4C1C-B422-6AB80F13F63E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{17A05AE2-21C8-4C1C-B422-6AB80F13F63E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{17A05AE2-21C8-4C1C-B422-6AB80F13F63E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{17A05AE2-21C8-4C1C-B422-6AB80F13F63E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{95CE7371-17B6-4EEE-8E38-2FDE6347E955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{95CE7371-17B6-4EEE-8E38-2FDE6347E955}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{95CE7371-17B6-4EEE-8E38-2FDE6347E955}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -225,18 +197,6 @@ Global
|
||||
{C4DF1A63-C9EB-4D8F-A4E5-4FD9249A5089}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C4DF1A63-C9EB-4D8F-A4E5-4FD9249A5089}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C4DF1A63-C9EB-4D8F-A4E5-4FD9249A5089}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D1A33923-5680-4B86-A7DA-41E78350D997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D1A33923-5680-4B86-A7DA-41E78350D997}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D1A33923-5680-4B86-A7DA-41E78350D997}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D1A33923-5680-4B86-A7DA-41E78350D997}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{277F4A2C-07CC-4BC5-B4F3-9695BB2DFFB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{277F4A2C-07CC-4BC5-B4F3-9695BB2DFFB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{277F4A2C-07CC-4BC5-B4F3-9695BB2DFFB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{277F4A2C-07CC-4BC5-B4F3-9695BB2DFFB9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{137CA67B-D0F5-4746-B8BC-1888D2859B90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{137CA67B-D0F5-4746-B8BC-1888D2859B90}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{137CA67B-D0F5-4746-B8BC-1888D2859B90}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{137CA67B-D0F5-4746-B8BC-1888D2859B90}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0C1A387E-0CD0-4BE8-82FC-9FCAD05BF289}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0C1A387E-0CD0-4BE8-82FC-9FCAD05BF289}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0C1A387E-0CD0-4BE8-82FC-9FCAD05BF289}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -245,10 +205,6 @@ Global
|
||||
{448221A8-EABA-4200-9192-E08BF241A487}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{448221A8-EABA-4200-9192-E08BF241A487}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{448221A8-EABA-4200-9192-E08BF241A487}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F5D9DE01-06CD-4881-9F41-46882E9ED45C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F5D9DE01-06CD-4881-9F41-46882E9ED45C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F5D9DE01-06CD-4881-9F41-46882E9ED45C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -293,6 +249,14 @@ Global
|
||||
{86916EF2-4A1B-441C-B673-EB0F68EC9C3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{86916EF2-4A1B-441C-B673-EB0F68EC9C3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{86916EF2-4A1B-441C-B673-EB0F68EC9C3A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{76BFD0A6-3F28-4BCE-983B-9FE3FBDD966D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{76BFD0A6-3F28-4BCE-983B-9FE3FBDD966D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{76BFD0A6-3F28-4BCE-983B-9FE3FBDD966D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{76BFD0A6-3F28-4BCE-983B-9FE3FBDD966D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EB0FC2DF-D8AC-460B-8FBE-307A7B163C6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EB0FC2DF-D8AC-460B-8FBE-307A7B163C6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EB0FC2DF-D8AC-460B-8FBE-307A7B163C6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EB0FC2DF-D8AC-460B-8FBE-307A7B163C6C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -18,10 +18,8 @@
|
||||
"common\\ASC.Feed\\ASC.Feed.csproj",
|
||||
"common\\ASC.IPSecurity\\ASC.IPSecurity.csproj",
|
||||
"common\\ASC.MessagingSystem\\ASC.MessagingSystem.csproj",
|
||||
"common\\ASC.Migration\\ASC.Migration.csproj",
|
||||
"common\\ASC.Notify.Textile\\ASC.Notify.Textile.csproj",
|
||||
"common\\ASC.Textile\\ASC.Textile.csproj",
|
||||
"common\\ASC.Webhooks.Core\\ASC.Webhooks.Core.csproj",
|
||||
"common\\services\\ASC.ApiSystem\\ASC.ApiSystem.csproj",
|
||||
"common\\services\\ASC.AuditTrail\\ASC.AuditTrail.csproj",
|
||||
"common\\services\\ASC.ClearEvents\\ASC.ClearEvents.csproj",
|
||||
@ -31,8 +29,6 @@
|
||||
"common\\services\\ASC.Feed.Aggregator\\ASC.Feed.Aggregator.csproj",
|
||||
"common\\services\\ASC.Notify\\ASC.Notify.csproj",
|
||||
"common\\services\\ASC.Studio.Notify\\ASC.Studio.Notify.csproj",
|
||||
"common\\services\\ASC.TelegramService\\ASC.TelegramService.csproj",
|
||||
"common\\services\\ASC.Webhooks.Service\\ASC.Webhooks.Service.csproj",
|
||||
"products\\ASC.Files\\Core\\ASC.Files.Core.csproj",
|
||||
"products\\ASC.Files\\Server\\ASC.Files.csproj",
|
||||
"products\\ASC.Files\\Service\\ASC.Files.Service.csproj",
|
||||
|
7
build/build.backend.docker.bat
Normal file
7
build/build.backend.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/build.backend.docker.ps1 %1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
81
build/build.backend.docker.ps1
Normal file
81
build/build.backend.docker.ps1
Normal file
@ -0,0 +1,81 @@
|
||||
$PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object { $_.major }
|
||||
$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object { $_.minor }
|
||||
|
||||
if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) {
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2."
|
||||
exit
|
||||
}
|
||||
|
||||
$Branch = git branch --show-current
|
||||
$BranchExistRemote = git ls-remote --heads origin $Branch
|
||||
|
||||
if (-not $BranchExistRemote) {
|
||||
Write-Error "The current branch does not exist in the remote repository. Please push changes."
|
||||
exit
|
||||
}
|
||||
|
||||
$RootDir = Split-Path -Parent $PSScriptRoot
|
||||
$DockerDir = ($RootDir + "\build\install\docker")
|
||||
$BuildDate = Get-Date -Format "yyyy-MM-dd"
|
||||
$LocalIp = (Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
|
||||
|
||||
$Doceditor = ($LocalIp + ":5013")
|
||||
$Login = ($LocalIp + ":5011")
|
||||
$Client = ($LocalIp + ":5001")
|
||||
|
||||
$DockerFile = "Dockerfile.dev"
|
||||
$EnvExtension = "dev"
|
||||
$CoreBaseDomain = "localhost"
|
||||
|
||||
# Stop all backend services"
|
||||
& "$PSScriptRoot\start\stop.backend.docker.ps1"
|
||||
|
||||
$Env:COMPOSE_IGNORE_ORPHANS = "True"
|
||||
|
||||
$Containers = docker ps -a -f "name=^onlyoffice" --format="{{.ID}} {{.Names}}" | Select-String -Pattern ("mysql|rabbitmq|redis|elasticsearch|documentserver") -NotMatch | ConvertFrom-String | ForEach-Object P1
|
||||
$Images = docker images onlyoffice/docspace* -q
|
||||
|
||||
if ($Containers) {
|
||||
Write-Host "Remove all backend containers" -ForegroundColor Blue
|
||||
docker rm -f $Containers
|
||||
}
|
||||
|
||||
if ($Images) {
|
||||
Write-Host "Remove all docker images except 'mysql, rabbitmq, redis, elasticsearch, documentserver'" -ForegroundColor Blue
|
||||
docker rmi -f $Images
|
||||
}
|
||||
|
||||
Write-Host "Run MySQL" -ForegroundColor Green
|
||||
docker compose -f ($DockerDir + "\db.yml") up -d
|
||||
|
||||
Write-Host "Run environments (redis, rabbitmq)" -ForegroundColor Green
|
||||
$Env:DOCKERFILE = $DockerFile
|
||||
docker compose -f ($DockerDir + "\redis.yml") -f ($DockerDir + "\rabbitmq.yml") up -d
|
||||
|
||||
if ($args[0] -eq "--no_ds") {
|
||||
Write-Host "SKIP Document server" -ForegroundColor Blue
|
||||
}
|
||||
else {
|
||||
Write-Host "Run Document server" -ForegroundColor Green
|
||||
$Env:DOCUMENT_SERVER_IMAGE_NAME = "onlyoffice/documentserver-de:latest"
|
||||
$Env:ROOT_DIR = $RootDir
|
||||
docker compose -f ($DockerDir + "\ds.dev.yml") up -d
|
||||
}
|
||||
|
||||
Write-Host "Build all backend services" -ForegroundColor Blue
|
||||
$Env:DOCKERFILE = $DockerFile
|
||||
$Env:RELEASE_DATE = $BuildDate
|
||||
$Env:GIT_BRANCH = $Branch
|
||||
$Env:SERVICE_DOCEDITOR = $Doceditor
|
||||
$Env:SERVICE_LOGIN = $Login
|
||||
$Env:SERVICE_CLIENT = $Client
|
||||
$Env:APP_CORE_BASE_DOMAIN = $CoreBaseDomain
|
||||
$Env:ENV_EXTENSION = $EnvExtension
|
||||
docker compose -f ($DockerDir + "\build.dev.yml") build --build-arg GIT_BRANCH=$Branch --build-arg RELEASE_DATE=$BuildDate
|
||||
|
||||
Write-Host "Run DB migration" -ForegroundColor Green
|
||||
$Env:DOCKERFILE = $DockerFile
|
||||
docker compose -f ($DockerDir + "\migration-runner.yml") up -d
|
||||
|
||||
# Start all backend services"
|
||||
& "$PSScriptRoot\start\start.backend.docker.ps1"
|
@ -9,10 +9,17 @@ echo "Root directory:" $dir
|
||||
|
||||
cd $dir
|
||||
|
||||
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
|
||||
branch=$(git branch --show-current)
|
||||
|
||||
echo "GIT_BRANCH:" $branch
|
||||
|
||||
branch_exist_remote=$(git ls-remote --heads origin $branch)
|
||||
|
||||
if [ -z "$branch_exist_remote" ]; then
|
||||
echo "The current branch does not exist in the remote repository. Please push changes."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $dir/build/install/docker/
|
||||
|
||||
docker_dir="$( pwd )"
|
||||
@ -38,11 +45,14 @@ echo "SERVICE_DOCEDITOR: $doceditor"
|
||||
echo "SERVICE_LOGIN: $login"
|
||||
echo "SERVICE_CLIENT: $client"
|
||||
|
||||
echo "Stop all backend services"
|
||||
# Stop all backend services"
|
||||
$dir/build/start/stop.backend.docker.sh
|
||||
|
||||
echo "Remove all backend containers"
|
||||
docker rm -f $(docker ps -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $1}')
|
||||
|
||||
echo "Remove all docker images except 'mysql, rabbitmq, redis, elasticsearch, documentserver'"
|
||||
docker image rm -f $(docker images -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $3}')
|
||||
docker rmi -f $(docker images -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $3}')
|
||||
|
||||
echo "Run MySQL"
|
||||
|
||||
@ -53,7 +63,7 @@ if [ "${arch_name}" = "x86_64" ]; then
|
||||
docker compose -f db.yml up -d
|
||||
elif [ "${arch_name}" = "arm64" ]; then
|
||||
echo "CPU Type: arm64 -> run db.yml with arm64v8 image"
|
||||
MYSQL_IMAGE=arm64v8/mysql:oracle \
|
||||
MYSQL_IMAGE=arm64v8/mysql:8.0.31-oracle \
|
||||
docker compose -f db.yml up -d
|
||||
else
|
||||
echo "Error: Unknown CPU Type: ${arch_name}."
|
||||
@ -68,7 +78,9 @@ if [ "$1" = "--no_ds" ]; then
|
||||
echo "SKIP Document server"
|
||||
else
|
||||
echo "Run Document server"
|
||||
docker compose -f ds.yml up -d
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/documentserver-de:latest \
|
||||
ROOT_DIR=$dir \
|
||||
docker compose -f ds.dev.yml up -d
|
||||
fi
|
||||
|
||||
echo "Build all backend services"
|
||||
@ -86,5 +98,5 @@ echo "Run DB migration"
|
||||
DOCKERFILE=$docker_file \
|
||||
docker compose -f migration-runner.yml up -d
|
||||
|
||||
echo "Start all backend services"
|
||||
# Start all backend services"
|
||||
$dir/build/start/start.backend.docker.sh
|
7
build/build.document.server.docker.bat
Normal file
7
build/build.document.server.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/build.document.server.docker.ps1 %1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
15
build/build.document.server.docker.ps1
Normal file
15
build/build.document.server.docker.ps1
Normal file
@ -0,0 +1,15 @@
|
||||
$PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object { $_.major }
|
||||
$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object { $_.minor }
|
||||
|
||||
if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) {
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2."
|
||||
exit
|
||||
}
|
||||
|
||||
$RootDir = Split-Path -Parent $PSScriptRoot
|
||||
|
||||
Write-Host "Run Document server" -ForegroundColor Green
|
||||
$DOCUMENT_SERVER_IMAGE_NAME = "onlyoffice/documentserver-de:latest"
|
||||
|
||||
|
||||
docker run -i -t -d -p 8085:80 -e JWT_ENABLED=false -e JWT_IN_BODY=false --restart=always -v $RootDir/Data:/var/www/onlyoffice/Data $DOCUMENT_SERVER_IMAGE_NAME
|
@ -29,7 +29,5 @@ pushd $dir/common/ASC.SsoAuth/
|
||||
yarn install
|
||||
pushd $dir/common/ASC.WebDav/
|
||||
yarn install
|
||||
pushd $dir/common/ASC.UrlShortener/
|
||||
yarn install
|
||||
pushd $dir/common/ASC.WebPlugins/
|
||||
yarn install
|
7
build/clear.backend.docker.bat
Normal file
7
build/clear.backend.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/clear.backend.docker.ps1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
21
build/clear.backend.docker.ps1
Normal file
21
build/clear.backend.docker.ps1
Normal file
@ -0,0 +1,21 @@
|
||||
$Containers = docker ps -aqf "name=^onlyoffice"
|
||||
$Images = docker images onlyoffice/docspace* -q
|
||||
|
||||
if ($Containers) {
|
||||
Write-Host "Stop all backend containers" -ForegroundColor Blue
|
||||
docker stop $Containers
|
||||
|
||||
Write-Host "Remove all backend containers" -ForegroundColor Blue
|
||||
docker rm -f $Containers
|
||||
}
|
||||
|
||||
if ($Images) {
|
||||
Write-Host "Remove all docker images except 'mysql, rabbitmq, redis, elasticsearch, documentserver'" -ForegroundColor Blue
|
||||
docker rmi -f $Images
|
||||
}
|
||||
|
||||
Write-Host "Remove unused volumes." -ForegroundColor Blue
|
||||
docker volume prune -f
|
||||
|
||||
Write-Host "Remove unused networks." -ForegroundColor Blue
|
||||
docker network prune -f
|
12
build/clear.backend.docker.sh
Executable file
12
build/clear.backend.docker.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Stop all onlyoffice containers."
|
||||
docker stop $(docker ps -a | egrep "onlyoffice" | awk 'NR>0 {print $1}')
|
||||
echo "Remove all onlyoffice containers."
|
||||
docker rm -f $(docker ps -a | egrep "onlyoffice" | awk 'NR>0 {print $1}')
|
||||
echo "Remove all onlyoffice images."
|
||||
docker rmi -f $(docker images -a | egrep "onlyoffice" | awk 'NR>0 {print $3}')
|
||||
echo "Remove unused volumes."
|
||||
docker volume prune -f
|
||||
echo "Remove unused networks."
|
||||
docker network prune -f
|
@ -88,7 +88,7 @@ echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] http://download.onlyoff
|
||||
mkdir -p -m 700 $HOME/.gnupg
|
||||
gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
|
||||
chmod 644 /usr/share/keyrings/onlyoffice.gpg
|
||||
echo "deb http://static.teamlab.info.s3.amazonaws.com/repo/4testing/debian stable main" | sudo tee /etc/apt/sources.list.d/onlyoffice4testing.list
|
||||
echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] http://static.teamlab.info.s3.amazonaws.com/repo/4testing/debian stable main" | sudo tee /etc/apt/sources.list.d/onlyoffice4testing.list
|
||||
|
||||
declare -x LANG="en_US.UTF-8"
|
||||
declare -x LANGUAGE="en_US:en"
|
||||
|
@ -21,3 +21,11 @@ fi
|
||||
if ! dpkg -l | grep -q "dirmngr"; then
|
||||
apt-get install -yq dirmngr
|
||||
fi
|
||||
|
||||
if ! dpkg -l | grep -q "debian-archive-keyring"; then
|
||||
apt-get install -yq debian-archive-keyring
|
||||
fi
|
||||
|
||||
if ! dpkg -l | grep -q "debconf-utils"; then
|
||||
apt-get install -yq debconf-utils
|
||||
fi
|
||||
|
@ -17,26 +17,27 @@ fi
|
||||
|
||||
apt-get -y update
|
||||
|
||||
if ! dpkg -l | grep -q "locales"; then
|
||||
if ! command -v locale-gen &> /dev/null; then
|
||||
apt-get install -yq locales
|
||||
fi
|
||||
|
||||
if ! dpkg -l | grep -q "dirmngr"; then
|
||||
apt-get install -yq dirmngr
|
||||
if ! dpkg -l | grep -q "apt-transport-https"; then
|
||||
apt-get install -yq apt-transport-https
|
||||
fi
|
||||
|
||||
if ! dpkg -l | grep -q "software-properties-common"; then
|
||||
apt-get install -yq software-properties-common
|
||||
fi
|
||||
|
||||
if [ $(dpkg-query -W -f='${Status}' curl 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
apt-get install -yq curl;
|
||||
locale-gen en_US.UTF-8
|
||||
if [ -f /etc/needrestart/needrestart.conf ]; then
|
||||
sed -e "s_#\$nrconf{restart}_\$nrconf{restart}_" -e "s_\(\$nrconf{restart} =\).*_\1 'a';_" -i /etc/needrestart/needrestart.conf
|
||||
fi
|
||||
|
||||
locale-gen en_US.UTF-8
|
||||
|
||||
# add elasticsearch repo
|
||||
ELASTIC_VERSION="7.13.1"
|
||||
ELASTIC_VERSION="7.16.3"
|
||||
ELASTIC_DIST=$(echo $ELASTIC_VERSION | awk '{ print int($1) }')
|
||||
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg --import
|
||||
echo "deb [signed-by=/usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg] https://artifacts.elastic.co/packages/${ELASTIC_DIST}.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-${ELASTIC_DIST}.x.list
|
||||
@ -49,11 +50,15 @@ curl -sL https://deb.nodesource.com/setup_16.x | bash -
|
||||
if [ "$DIST" = "debian" ] && [ "$DISTRIB_CODENAME" = "stretch" ]; then
|
||||
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
|
||||
wget -O /etc/apt/sources.list.d/microsoft-prod.list https://packages.microsoft.com/config/debian/9/prod.list
|
||||
else
|
||||
elif [ "$DISTRIB_CODENAME" != "jammy" ]; then
|
||||
curl https://packages.microsoft.com/config/$DIST/$REV/packages-microsoft-prod.deb -O
|
||||
dpkg -i packages-microsoft-prod.deb && rm packages-microsoft-prod.deb
|
||||
elif dpkg -l | grep -q "packages-microsoft-prod"; then
|
||||
apt-get purge -y packages-microsoft-prod dotnet*
|
||||
fi
|
||||
|
||||
MYSQL_REPO_VERSION="$(curl https://repo.mysql.com | grep -oP 'mysql-apt-config_\K.*' | grep -o '^[^_]*' | sort --version-sort --field-separator=. | tail -n1)"
|
||||
MYSQL_PACKAGE_NAME="mysql-apt-config_${MYSQL_REPO_VERSION}_all.deb"
|
||||
if ! dpkg -l | grep -q "mysql-server"; then
|
||||
|
||||
MYSQL_SERVER_HOST=${MYSQL_SERVER_HOST:-"localhost"}
|
||||
@ -62,8 +67,7 @@ if ! dpkg -l | grep -q "mysql-server"; then
|
||||
MYSQL_SERVER_PASS=${MYSQL_SERVER_PASS:-"$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 12)"}
|
||||
|
||||
# setup mysql 8.0 package
|
||||
MYSQL_PACKAGE_NAME="mysql-apt-config_0.8.23-1_all.deb"
|
||||
curl -OL http://dev.mysql.com/get/${MYSQL_PACKAGE_NAME}
|
||||
curl -OL http://repo.mysql.com/${MYSQL_PACKAGE_NAME}
|
||||
echo "mysql-apt-config mysql-apt-config/repo-codename select $DISTRIB_CODENAME" | debconf-set-selections
|
||||
echo "mysql-apt-config mysql-apt-config/repo-distro select $DIST" | debconf-set-selections
|
||||
echo "mysql-apt-config mysql-apt-config/select-server select mysql-8.0" | debconf-set-selections
|
||||
@ -76,6 +80,11 @@ if ! dpkg -l | grep -q "mysql-server"; then
|
||||
echo mysql-server-8.0 mysql-server/root_password password ${MYSQL_SERVER_PASS} | debconf-set-selections
|
||||
echo mysql-server-8.0 mysql-server/root_password_again password ${MYSQL_SERVER_PASS} | debconf-set-selections
|
||||
|
||||
apt-get -y update
|
||||
elif dpkg -l | grep -q "mysql-apt-config" && [ "$(apt-cache policy mysql-apt-config | awk 'NR==2{print $2}')" != "${MYSQL_REPO_VERSION}" ]; then
|
||||
curl -OL http://repo.mysql.com/${MYSQL_PACKAGE_NAME}
|
||||
DEBIAN_FRONTEND=noninteractive dpkg -i ${MYSQL_PACKAGE_NAME}
|
||||
rm -f ${MYSQL_PACKAGE_NAME}
|
||||
apt-get -y update
|
||||
fi
|
||||
|
||||
|
@ -70,7 +70,7 @@ DATABASE_MIGRATION="true"
|
||||
ELK_VERSION=""
|
||||
ELK_HOST=""
|
||||
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCUMENT_SERVER_IMAGE_NAME="onlyoffice/4testing-documentserver-ee:latest"
|
||||
DOCUMENT_SERVER_JWT_SECRET=""
|
||||
DOCUMENT_SERVER_JWT_HEADER=""
|
||||
DOCUMENT_SERVER_HOST=""
|
||||
@ -83,7 +83,7 @@ HELP_TARGET="install-Docker.sh";
|
||||
|
||||
SKIP_HARDWARE_CHECK="false";
|
||||
|
||||
EXTERNAL_PORT="8092"
|
||||
EXTERNAL_PORT="80"
|
||||
SERVICE_PORT="5050"
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
@ -124,7 +124,7 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-ids | --installdocumentserver )
|
||||
-idocs | --installdocumentserver )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_DOCUMENT_SERVER=$2
|
||||
shift
|
||||
@ -138,14 +138,14 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-ira | --installrabbitmq )
|
||||
-irb | --installrabbitmq )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_RABBITMQ=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ire | --installredis )
|
||||
-ird | --installredis )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_REDIS=$2
|
||||
shift
|
||||
@ -294,11 +294,11 @@ while [ "$1" != "" ]; do
|
||||
echo " -p, --password dockerhub password"
|
||||
echo " -ids, --installdocspace install or update $PRODUCT (true|false)"
|
||||
echo " -tag, --dockertag select the version to install $PRODUCT (latest|develop|version number)"
|
||||
echo " -ids, --installdocumentserver install or update document server (true|false)"
|
||||
echo " -idocs, --installdocumentserver install or update document server (true|false)"
|
||||
echo " -di, --documentserverimage document server image name"
|
||||
echo " -imysql, --installmysql install or update mysql (true|false)"
|
||||
echo " -ira, --installrabbitmq install or update rabbitmq (true|false)"
|
||||
echo " -ire, --installredis install or update redis (true|false)"
|
||||
echo " -irb, --installrabbitmq install or update rabbitmq (true|false)"
|
||||
echo " -ird, --installredis install or update redis (true|false)"
|
||||
echo " -mysqlrp, --mysqlrootpassword mysql server root password"
|
||||
echo " -mysqld, --mysqldatabase $PRODUCT database name"
|
||||
echo " -mysqlu, --mysqluser $PRODUCT database user"
|
||||
@ -309,25 +309,26 @@ while [ "$1" != "" ]; do
|
||||
echo " -env, --environment $PRODUCT environment"
|
||||
echo " -skiphc, --skiphardwarecheck skip hardware check (true|false)"
|
||||
echo " -ip, --internalport internal $PRODUCT port (default value 5050)"
|
||||
echo " -ep, --externalport external $PRODUCT port (default value 8092)"
|
||||
echo " -ep, --externalport external $PRODUCT port (default value 80)"
|
||||
echo " -mk, --machinekey setting for core.machinekey"
|
||||
echo " -ls, --local_scripts run the installation from local scripts"
|
||||
echo " -dbm, --databasemigration database migration (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
echo " Install all the components without document server:"
|
||||
echo " bash $HELP_TARGET -ids false"
|
||||
echo " bash $HELP_TARGET -idocs false"
|
||||
echo
|
||||
echo " Install Document Server only. Skip the installation of MYSQL and $PRODUCT:"
|
||||
echo " bash $HELP_TARGET -ias false -ids true -imysql false -ims false"
|
||||
echo " bash $HELP_TARGET -ids false -idocs true -imysql false -irb false -ird false"
|
||||
echo
|
||||
echo " Update all installed components. Stop the containers that need to be updated, remove them and run the latest versions of the corresponding components. The portal data should be picked up automatically:"
|
||||
echo " bash $HELP_TARGET -u true"
|
||||
echo
|
||||
echo " Update Document Server only to version 4.4.2.20 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -dv 4.4.2.20 -ias false"
|
||||
echo " Update Document Server only to version 7.2.1.34 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -di onlyoffice/documentserver-ee:7.2.1.34 -ids false"
|
||||
echo
|
||||
echo " Update $PRODUCT only to version 0.1.10 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -av 9.1.0.393 -ids false"
|
||||
echo " Update $PRODUCT only to version 1.2.0 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -tag rc-v1.2.0 -idocs false"
|
||||
echo
|
||||
exit 0
|
||||
;;
|
||||
@ -863,11 +864,11 @@ install_product () {
|
||||
reconfigure DOCKER_TAG ${DOCKER_TAG}
|
||||
|
||||
if [[ -n $EXTERNAL_PORT ]]; then
|
||||
sed -i "s/8092:8092/${EXTERNAL_PORT}:8092/g" $BASE_DIR/appserver.yml
|
||||
sed -i "s/8092:8092/${EXTERNAL_PORT}:8092/g" $BASE_DIR/${PRODUCT}.yml
|
||||
fi
|
||||
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml up -d
|
||||
docker-compose -f $BASE_DIR/appserver.yml up -d
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml up -d
|
||||
docker-compose -f $BASE_DIR/notify.yml up -d
|
||||
}
|
||||
|
||||
@ -900,7 +901,7 @@ check_image_RepoDigest() {
|
||||
}
|
||||
|
||||
docker_image_update() {
|
||||
docker-compose -f $BASE_DIR/notify.yml -f $BASE_DIR/appserver.yml down --volumes
|
||||
docker-compose -f $BASE_DIR/notify.yml -f $BASE_DIR/${PRODUCT}.yml down --volumes
|
||||
docker-compose -f $BASE_DIR/build.yml pull
|
||||
}
|
||||
|
||||
@ -947,7 +948,7 @@ save_parameters_from_configs() {
|
||||
APP_CORE_MACHINEKEY=$(save_parameter APP_CORE_MACHINEKEY $APP_CORE_MACHINEKEY)
|
||||
APP_CORE_BASE_DOMAIN=$(save_parameter APP_CORE_BASE_DOMAIN $APP_CORE_BASE_DOMAIN)
|
||||
if [ ${EXTERNAL_PORT} = "8092" ]; then
|
||||
EXTERNAL_PORT=$(grep -oP '(?<=- ).*?(?=:8092)' /app/onlyoffice/appserver.yml)
|
||||
EXTERNAL_PORT=$(grep -oP '(?<=- ).*?(?=:8092)' /app/onlyoffice/${PRODUCT}.yml)
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -83,8 +83,6 @@ if [ "$DOCUMENT_SERVER_INSTALLED" = "false" ]; then
|
||||
fi
|
||||
|
||||
${package_manager} -y install ${package_sysname}-documentserver
|
||||
|
||||
systemctl restart supervisord
|
||||
|
||||
expect << EOF
|
||||
|
||||
@ -125,20 +123,6 @@ elif [ "$UPDATE" = "true" ] && [ "$DOCUMENT_SERVER_INSTALLED" = "true" ]; then
|
||||
${package_manager} -y update ${package_sysname}-documentserver
|
||||
fi
|
||||
|
||||
NGINX_ROOT_DIR="/etc/nginx"
|
||||
|
||||
NGINX_WORKER_PROCESSES=${NGINX_WORKER_PROCESSES:-$(grep processor /proc/cpuinfo | wc -l)};
|
||||
NGINX_WORKER_CONNECTIONS=${NGINX_WORKER_CONNECTIONS:-$(ulimit -n)};
|
||||
|
||||
sed 's/^worker_processes.*/'"worker_processes ${NGINX_WORKER_PROCESSES};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
|
||||
sed 's/worker_connections.*/'"worker_connections ${NGINX_WORKER_CONNECTIONS};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
|
||||
|
||||
if rpm -q "firewalld"; then
|
||||
firewall-cmd --permanent --zone=public --add-service=http
|
||||
firewall-cmd --permanent --zone=public --add-service=https
|
||||
systemctl restart firewalld.service
|
||||
fi
|
||||
|
||||
{ ${package_manager} check-update ${package_sysname}-${product}; PRODUCT_CHECK_UPDATE=$?; } || true
|
||||
if [ "$PRODUCT_INSTALLED" = "false" ]; then
|
||||
${package_manager} install -y ${package_sysname}-${product}
|
||||
@ -165,6 +149,22 @@ elif [[ $PRODUCT_CHECK_UPDATE -eq $UPDATE_AVAILABLE_CODE ]]; then
|
||||
-mysqlp ${MYSQL_ROOT_PASS}
|
||||
fi
|
||||
|
||||
NGINX_ROOT_DIR="/etc/nginx"
|
||||
|
||||
NGINX_WORKER_PROCESSES=${NGINX_WORKER_PROCESSES:-$(grep processor /proc/cpuinfo | wc -l)};
|
||||
NGINX_WORKER_CONNECTIONS=${NGINX_WORKER_CONNECTIONS:-$(ulimit -n)};
|
||||
|
||||
sed 's/^worker_processes.*/'"worker_processes ${NGINX_WORKER_PROCESSES};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
|
||||
sed 's/worker_connections.*/'"worker_connections ${NGINX_WORKER_CONNECTIONS};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
|
||||
|
||||
if rpm -q "firewalld"; then
|
||||
firewall-cmd --permanent --zone=public --add-service=http
|
||||
firewall-cmd --permanent --zone=public --add-service=https
|
||||
systemctl restart firewalld.service
|
||||
fi
|
||||
|
||||
systemctl restart nginx
|
||||
|
||||
echo ""
|
||||
echo "$RES_INSTALL_SUCCESS"
|
||||
echo "$RES_QUESTIONS"
|
||||
|
@ -25,21 +25,6 @@ if ! [[ "$REV" =~ ^[0-9]+$ ]]; then
|
||||
REV=7;
|
||||
fi
|
||||
|
||||
read_unsupported_installation () {
|
||||
read -p "$RES_CHOICE_INSTALLATION " CHOICE_INSTALLATION
|
||||
case "$CHOICE_INSTALLATION" in
|
||||
y|Y ) yum -y install $DIST*-release
|
||||
;;
|
||||
|
||||
n|N ) exit 0;
|
||||
;;
|
||||
|
||||
* ) echo $RES_CHOICE;
|
||||
read_unsupported_installation
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
{ yum check-update postgresql; PSQLExitCode=$?; } || true #Checking for postgresql update
|
||||
{ yum check-update $DIST*-release; exitCode=$?; } || true #Checking for distribution update
|
||||
|
||||
@ -57,34 +42,44 @@ if rpm -qa | grep mariadb.*config >/dev/null 2>&1; then
|
||||
echo $RES_MARIADB && exit 0
|
||||
fi
|
||||
|
||||
# add epel repo
|
||||
#Add repositories: EPEL, REMI and RPMFUSION
|
||||
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-$REV.noarch.rpm || true
|
||||
rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-$REV.rpm || true
|
||||
yum localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$REV.noarch.rpm
|
||||
|
||||
MONOREV=$REV
|
||||
if [ "$REV" = "9" ]; then
|
||||
MONOREV="8"
|
||||
yum localinstall -y --nogpgcheck https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/xorg-x11-font-utils-7.5-41.el8.x86_64.rpm
|
||||
elif [ "$REV" = "8" ]; then
|
||||
POWERTOOLS_REPO="--enablerepo=powertools"
|
||||
fi
|
||||
|
||||
#add rabbitmq & erlang repo
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | os=centos dist=$MONOREV bash
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | os=centos dist=$MONOREV bash
|
||||
|
||||
#add nodejs repo
|
||||
curl -sL https://rpm.nodesource.com/setup_16.x | bash - || true
|
||||
|
||||
#add yarn
|
||||
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo || true
|
||||
curl -sL https://rpm.nodesource.com/setup_16.x | sed 's/centos|/'$DIST'|/g' | sudo bash - || true
|
||||
|
||||
#add dotnet repo
|
||||
rpm -Uvh https://packages.microsoft.com/config/centos/$REV/packages-microsoft-prod.rpm || true
|
||||
if [ $REV = "7" ] || [[ $DIST != "redhat" && $REV = "8" ]]; then
|
||||
rpm -Uvh https://packages.microsoft.com/config/centos/$REV/packages-microsoft-prod.rpm || true
|
||||
elif rpm -q packages-microsoft-prod; then
|
||||
yum remove -y packages-microsoft-prod dotnet*
|
||||
fi
|
||||
|
||||
#add mysql repo
|
||||
case $REV in
|
||||
8) dnf remove -y @mysql
|
||||
dnf module -y reset mysql && dnf module -y disable mysql
|
||||
${package_manager} localinstall -y https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm || true ;;
|
||||
7) ${package_manager} localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm || true ;;
|
||||
6) ${package_manager} localinstall -y https://dev.mysql.com/get/mysql80-community-release-el6-5.noarch.rpm || true ;;
|
||||
esac
|
||||
[ "$REV" != "7" ] && dnf remove -y @mysql && dnf module -y reset mysql && dnf module -y disable mysql
|
||||
MYSQL_REPO_VERSION="$(curl https://repo.mysql.com | grep -oP "mysql80-community-release-el${REV}-\K.*" | grep -o '^[^.]*' | sort | tail -n1)"
|
||||
yum localinstall -y https://repo.mysql.com/mysql80-community-release-el${REV}-${MYSQL_REPO_VERSION}.noarch.rpm || true
|
||||
|
||||
if ! rpm -q mysql-community-server; then
|
||||
MYSQL_FIRST_TIME_INSTALL="true";
|
||||
fi
|
||||
|
||||
#add elasticsearch repo
|
||||
ELASTIC_VERSION="7.13.1"
|
||||
ELASTIC_VERSION="7.16.3"
|
||||
ELASTIC_DIST=$(echo $ELASTIC_VERSION | awk '{ print int($1) }')
|
||||
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
|
||||
cat > /etc/yum.repos.d/elasticsearch.repo <<END
|
||||
@ -109,45 +104,21 @@ gpgkey=https://nginx.org/keys/nginx_signing.key
|
||||
module_hotfixes=true
|
||||
END
|
||||
|
||||
if [ "$REV" = "8" ]; then
|
||||
rabbitmq_version="-3.8.12"
|
||||
|
||||
cat > /etc/yum.repos.d/rabbitmq-server.repo <<END
|
||||
[rabbitmq-server]
|
||||
name=rabbitmq-server
|
||||
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/\$basearch
|
||||
repo_gpgcheck=1
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
|
||||
sslverify=0
|
||||
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
|
||||
metadata_expire=300
|
||||
END
|
||||
|
||||
fi
|
||||
|
||||
${package_manager} -y install python3-dnf-plugin-versionlock || ${package_manager} -y install yum-plugin-versionlock
|
||||
${package_manager} versionlock clear
|
||||
|
||||
${package_manager} -y install epel-release \
|
||||
python3 \
|
||||
expect \
|
||||
nano \
|
||||
nodejs \
|
||||
gcc-c++ \
|
||||
make \
|
||||
yarn \
|
||||
dotnet-sdk-6.0 \
|
||||
elasticsearch-${ELASTIC_VERSION} --enablerepo=elasticsearch \
|
||||
mysql-server \
|
||||
nginx \
|
||||
supervisor \
|
||||
postgresql \
|
||||
postgresql-server \
|
||||
rabbitmq-server$rabbitmq_version \
|
||||
redis --enablerepo=remi \
|
||||
java
|
||||
SDL2 $POWERTOOLS_REPO
|
||||
|
||||
py3_version=$(python3 -c 'import sys; print(sys.version_info.minor)')
|
||||
if [[ $py3_version -lt 6 ]]; then
|
||||
@ -171,4 +142,4 @@ if [ ! -e /usr/bin/json ]; then
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
package_services="rabbitmq-server postgresql redis supervisord nginx mysqld"
|
||||
package_services="rabbitmq-server postgresql redis nginx mysqld"
|
||||
|
@ -32,3 +32,18 @@ check_hardware () {
|
||||
if [ "$SKIP_HARDWARE_CHECK" != "true" ]; then
|
||||
check_hardware
|
||||
fi
|
||||
|
||||
read_unsupported_installation () {
|
||||
read -p "$RES_CHOICE_INSTALLATION " CHOICE_INSTALLATION
|
||||
case "$CHOICE_INSTALLATION" in
|
||||
y|Y ) yum -y install $DIST*-release
|
||||
;;
|
||||
|
||||
n|N ) exit 0;
|
||||
;;
|
||||
|
||||
* ) echo $RES_CHOICE;
|
||||
read_unsupported_installation
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
@ -47,7 +47,6 @@ dotnet build ASC.Migrations.sln -o ${SRC_PATH}/ASC.Migration.Runner/service/
|
||||
|
||||
# Array of names backend services in directory common (Nodejs)
|
||||
services_name_backend_nodejs=()
|
||||
services_name_backend_nodejs+=(ASC.UrlShortener)
|
||||
services_name_backend_nodejs+=(ASC.Socket.IO)
|
||||
services_name_backend_nodejs+=(ASC.SsoAuth)
|
||||
|
||||
|
@ -242,9 +242,9 @@ restart_services() {
|
||||
echo "OK"
|
||||
|
||||
echo -n "Restarting services... "
|
||||
for SVC in login api urlshortener socket studio-notify notify \
|
||||
people-server files files-services studio backup telegram-service \
|
||||
webhooks-service clear-events backup-background migration ssoauth doceditor
|
||||
for SVC in login api socket studio-notify notify \
|
||||
people-server files files-services studio backup \
|
||||
clear-events backup-background ssoauth doceditor
|
||||
do
|
||||
systemctl enable ${PRODUCT}-$SVC >/dev/null 2>&1
|
||||
systemctl restart ${PRODUCT}-$SVC
|
||||
@ -303,7 +303,7 @@ establish_mysql_conn(){
|
||||
SSL Mode=none;AllowPublicKeyRetrieval=true;Connection Timeout=30;Maximum Pool Size=300"
|
||||
|
||||
$JSON_USERCONF "this.ConnectionStrings={'default': {'connectionString': \"$CONNECTION_STRING\"}}" >/dev/null 2>&1
|
||||
sed "s/Server=.*/$CONNECTION_STRING\"/g" -i $PRODUCT_DIR/services/ASC.Migration.Runner/appsettings.json
|
||||
sed "s/Server=.*/$CONNECTION_STRING\"/g" -i $PRODUCT_DIR/services/ASC.Migration.Runner/appsettings.runner.json
|
||||
|
||||
change_mysql_config
|
||||
|
||||
@ -449,15 +449,11 @@ setup_nginx(){
|
||||
PORTS+=('5011') #ASC.Login
|
||||
PORTS+=('5012') #ASC.Data.Backup
|
||||
PORTS+=('5013') #ASC.Files/editor
|
||||
PORTS+=('5018') #ASC.Migration
|
||||
PORTS+=('5027') #ASC.ClearEvents
|
||||
PORTS+=('5028') #ASC.Socket.IO
|
||||
PORTS+=('5029') #ASC.UrlShortener
|
||||
PORTS+=('5031') #ASC.Webhooks.Service
|
||||
PORTS+=('5032') #ASC.Data.Backup.BackgroundTasks
|
||||
PORTS+=('8081') #Storybook
|
||||
PORTS+=('9834') #ASC.SsoAuth
|
||||
PORTS+=('51702') #ASC.TelegramService
|
||||
setsebool -P httpd_can_network_connect on
|
||||
;;
|
||||
disabled)
|
||||
@ -501,16 +497,6 @@ setup_docs() {
|
||||
'secret': {'value': \"$DOCUMENT_SERVER_JWT_SECRET\",'header': \"$DOCUMENT_SERVER_JWT_HEADER\"}, \
|
||||
'url': {'public': \"http://${DOCUMENT_SERVER_HOST}:${DOCUMENT_SERVER_PORT}\", 'internal': \"http://${DOCUMENT_SERVER_HOST}:${DOCUMENT_SERVER_PORT}\",'portal': \"http://$APP_HOST:$APP_PORT\"}}}" >/dev/null 2>&1
|
||||
|
||||
#Docs Database Migration
|
||||
local DOCUMENT_SERVER_DB_HOST=$(json -f ${DS_CONF} services.CoAuthoring.sql.dbHost)
|
||||
local DOCUMENT_SERVER_DB_PORT=$(json -f ${DS_CONF} services.CoAuthoring.sql.dbPort)
|
||||
local DOCUMENT_SERVER_DB_NAME=$(json -f ${DS_CONF} services.CoAuthoring.sql.dbName)
|
||||
local DOCUMENT_SERVER_DB_USERNAME=$(json -f ${DS_CONF} services.CoAuthoring.sql.dbUser)
|
||||
local DOCUMENT_SERVER_DB_PASSWORD=$(json -f ${DS_CONF} services.CoAuthoring.sql.dbPass)
|
||||
local DS_CONNECTION_STRING="Host=${DOCUMENT_SERVER_DB_HOST};Port=${DOCUMENT_SERVER_DB_PORT};Database=${DOCUMENT_SERVER_DB_NAME};Username=${DOCUMENT_SERVER_DB_USERNAME};Password=${DOCUMENT_SERVER_DB_PASSWORD};"
|
||||
|
||||
sed "s/Host=.*/$DS_CONNECTION_STRING\"/g" -i $PRODUCT_DIR/services/ASC.Migration.Runner/appsettings.json
|
||||
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
|
@ -74,15 +74,12 @@ services_name_backend+=(ASC.Data.Backup)
|
||||
services_name_backend+=(ASC.Files.Service)
|
||||
services_name_backend+=(ASC.Notify)
|
||||
services_name_backend+=(ASC.Studio.Notify)
|
||||
services_name_backend+=(ASC.TelegramService)
|
||||
services_name_backend+=(ASC.UrlShortener.Svc)
|
||||
services_name_backend+=(ASC.Web.Api)
|
||||
services_name_backend+=(ASC.Web.Studio)
|
||||
services_name_backend+=(ASC.Data.Backup.BackgroundTasks)
|
||||
services_name_backend+=(ASC.ClearEvents)
|
||||
services_name_backend+=(ASC.Migration)
|
||||
services_name_backend+=(ASC.Webhooks.Service)
|
||||
services_name_backend+=(ASC.ApiSystem)
|
||||
services_name_backend+=(ASC.Web.HealthChecks.UI)
|
||||
|
||||
# Publish backend services
|
||||
for i in ${!services_name_backend[@]}; do
|
||||
@ -94,7 +91,6 @@ done
|
||||
|
||||
# Array of names backend services in directory common (Nodejs)
|
||||
services_name_backend_nodejs=()
|
||||
services_name_backend_nodejs+=(ASC.UrlShortener)
|
||||
services_name_backend_nodejs+=(ASC.Socket.IO)
|
||||
services_name_backend_nodejs+=(ASC.SsoAuth)
|
||||
|
||||
|
@ -44,7 +44,7 @@ CORE=" --core:products:folder=${BASE_DIR}/products --core:products:subfolder=ser
|
||||
|
||||
SERVICE_NAME=(
|
||||
api
|
||||
urlshortener
|
||||
api-system
|
||||
socket
|
||||
studio-notify
|
||||
notify
|
||||
@ -53,12 +53,9 @@ SERVICE_NAME=(
|
||||
files-services
|
||||
studio
|
||||
backup
|
||||
telegram-service
|
||||
ssoauth
|
||||
webhooks-service
|
||||
clear-events
|
||||
backup-background
|
||||
migration
|
||||
doceditor
|
||||
migration-runner
|
||||
login
|
||||
@ -71,10 +68,10 @@ reassign_values (){
|
||||
WORK_DIR="${BASE_DIR}/studio/ASC.Web.Api/"
|
||||
EXEC_FILE="ASC.Web.Api.dll"
|
||||
;;
|
||||
urlshortener )
|
||||
SERVICE_PORT="5029"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.UrlShortener/"
|
||||
EXEC_FILE="index.js"
|
||||
api-system )
|
||||
SERVICE_PORT="5010"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.ApiSystem/"
|
||||
EXEC_FILE="ASC.ApiSystem.dll"
|
||||
;;
|
||||
socket )
|
||||
SERVICE_PORT="5028"
|
||||
@ -116,21 +113,11 @@ reassign_values (){
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Data.Backup/"
|
||||
EXEC_FILE="ASC.Data.Backup.dll"
|
||||
;;
|
||||
telegram-service )
|
||||
SERVICE_PORT="51702"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.TelegramService/"
|
||||
EXEC_FILE="ASC.TelegramService.dll"
|
||||
;;
|
||||
ssoauth )
|
||||
SERVICE_PORT="9834"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.SsoAuth/"
|
||||
EXEC_FILE="app.js"
|
||||
;;
|
||||
webhooks-service )
|
||||
SERVICE_PORT="5031"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Webhooks.Service/"
|
||||
EXEC_FILE="ASC.Webhooks.Service.dll"
|
||||
;;
|
||||
clear-events )
|
||||
SERVICE_PORT="5027"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.ClearEvents/"
|
||||
@ -141,11 +128,6 @@ reassign_values (){
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Data.Backup.BackgroundTasks/"
|
||||
EXEC_FILE="ASC.Data.Backup.BackgroundTasks.dll"
|
||||
;;
|
||||
migration )
|
||||
SERVICE_PORT="5018"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Migration/"
|
||||
EXEC_FILE="ASC.Migration.dll"
|
||||
;;
|
||||
doceditor )
|
||||
SERVICE_PORT="5013"
|
||||
WORK_DIR="${BASE_DIR}/products/ASC.Files/editor/"
|
||||
|
@ -2,7 +2,7 @@ Source: {{product}}
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: onlyoffice
|
||||
Build-Depends: debhelper (>= 10), nodejs (>=14), dotnet-sdk-6.0, yarn
|
||||
Build-Depends: debhelper (>= 10), nodejs (>=18), dotnet-sdk-6.0, yarn
|
||||
Standards-Version: {{package_header_tag_version}}
|
||||
Homepage: https://www.onlyoffice.com/
|
||||
Architecture: any
|
||||
@ -17,7 +17,6 @@ Depends: {{product}}-api (= {{package_header_tag_version}}),
|
||||
{{product}}-files (= {{package_header_tag_version}}),
|
||||
{{product}}-files-services (= {{package_header_tag_version}}),
|
||||
{{product}}-login (= {{package_header_tag_version}}),
|
||||
{{product}}-migration (= {{package_header_tag_version}}),
|
||||
{{product}}-migration-runner (= {{package_header_tag_version}}),
|
||||
{{product}}-notify (= {{package_header_tag_version}}),
|
||||
{{product}}-people-server (= {{package_header_tag_version}}),
|
||||
@ -26,10 +25,7 @@ Depends: {{product}}-api (= {{package_header_tag_version}}),
|
||||
{{product}}-socket (= {{package_header_tag_version}}),
|
||||
{{product}}-ssoauth (= {{package_header_tag_version}}),
|
||||
{{product}}-studio (= {{package_header_tag_version}}),
|
||||
{{product}}-studio-notify (= {{package_header_tag_version}}),
|
||||
{{product}}-telegram-service (= {{package_header_tag_version}}),
|
||||
{{product}}-urlshortener (= {{package_header_tag_version}}),
|
||||
{{product}}-webhooks-service (= {{package_header_tag_version}})
|
||||
{{product}}-studio-notify (= {{package_header_tag_version}})
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-common
|
||||
@ -80,7 +76,7 @@ Description: Description
|
||||
Package: {{product}}-socket
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
nodejs (>=14),
|
||||
nodejs (>=16),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
@ -93,7 +89,7 @@ Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-telegram-service
|
||||
Package: {{product}}-api
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
dotnet-sdk-6.0,
|
||||
@ -101,15 +97,7 @@ Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-urlshortener
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
nodejs (>=14),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-api
|
||||
Package: {{product}}-api-system
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
dotnet-sdk-6.0,
|
||||
@ -133,7 +121,7 @@ Description: Description
|
||||
Package: {{product}}-ssoauth
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
nodejs (>=14),
|
||||
nodejs (>=16),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
@ -154,14 +142,6 @@ Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-migration
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
dotnet-sdk-6.0,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-migration-runner
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
@ -178,18 +158,10 @@ Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-webhooks-service
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
dotnet-sdk-6.0,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
||||
Package: {{product}}-doceditor
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
nodejs (>=14),
|
||||
nodejs (>=16),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
@ -197,7 +169,7 @@ Description: Description
|
||||
Package: {{product}}-login
|
||||
Architecture: any
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}),
|
||||
nodejs (>=14),
|
||||
nodejs (>=16),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Description
|
||||
|
1
build/install/deb/debian/product-api-system.install
Normal file
1
build/install/deb/debian/product-api-system.install
Normal file
@ -0,0 +1 @@
|
||||
../../../publish/services/ASC.ApiSystem/service/* var/www/{{product}}/services/ASC.ApiSystem
|
@ -1 +0,0 @@
|
||||
../../../publish/services/ASC.Migration/service/* var/www/{{product}}/services/ASC.Migration
|
@ -1 +0,0 @@
|
||||
../../../publish/services/ASC.TelegramService/service/* var/www/{{product}}/services/ASC.TelegramService
|
@ -1 +0,0 @@
|
||||
../../../publish/services/ASC.UrlShortener/service/* var/www/{{product}}/services/ASC.UrlShortener
|
@ -1 +0,0 @@
|
||||
../../../publish/services/ASC.Webhooks.Service/service/* var/www/{{product}}/services/ASC.Webhooks.Service
|
@ -36,8 +36,7 @@ override_dh_auto_build:
|
||||
sed -i "s@var/www@var/www/${PRODUCT}@g" ${SRC_PATH}/config/nginx/*.conf
|
||||
sed -i "s@var/www@var/www/${PRODUCT}@g" ${SRC_PATH}/config/nginx/includes/*.conf
|
||||
|
||||
json -I -f ${SRC_PATH}/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/${PRODUCT}\"" \
|
||||
-e "this.urlshortener={ 'path': '../ASC.UrlShortener/index.js' }" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
json -I -f ${SRC_PATH}/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/${PRODUCT}\"" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
-e "this.ssoauth={ 'path': '../ASC.SsoAuth/' }" -e "this.core={ 'products': { 'folder': '/var/www/${PRODUCT}/products', 'subfolder': 'server'} }"
|
||||
|
||||
override_dh_fixperms:
|
||||
|
@ -5,12 +5,13 @@
|
||||
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
||||
DOCKER_TAG=latest
|
||||
CONTAINER_PREFIX=${PRODUCT}-
|
||||
MYSQL_VERSION=8.0.18
|
||||
MYSQL_VERSION=8.0.31
|
||||
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
||||
ELK_VERSION=7.13.1
|
||||
SERVICE_PORT=5050
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCKERFILE=Dockerfile.app
|
||||
APP_DOTNET_ENV=""
|
||||
|
||||
# zookeeper #
|
||||
ZOO_PORT=2181
|
||||
@ -53,9 +54,6 @@
|
||||
BACKUP_HOST=${CONTAINER_PREFIX}backup
|
||||
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
|
||||
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
|
||||
MIGRATION_HOST=${CONTAINER_PREFIX}migration
|
||||
WEBHOOKS_SERVICE_HOST=${CONTAINER_PREFIX}webhooks-service
|
||||
STORAGE_ENCRYPTION_HOST=${CONTAINER_PREFIX}storage-encryption
|
||||
FILES_HOST=${CONTAINER_PREFIX}files
|
||||
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
|
||||
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
|
||||
@ -63,8 +61,6 @@
|
||||
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
|
||||
SOCKET_HOST=${CONTAINER_PREFIX}socket
|
||||
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
|
||||
TELEGRAM_SERVICE_HOST=${CONTAINER_PREFIX}telegram-service
|
||||
URLSHORTENER_HOST=${CONTAINER_PREFIX}urlshortener
|
||||
API_HOST=${CONTAINER_PREFIX}api
|
||||
STUDIO_HOST=${CONTAINER_PREFIX}studio
|
||||
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
|
||||
@ -72,15 +68,13 @@
|
||||
PROXY_HOST=${CONTAINER_PREFIX}proxy
|
||||
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
|
||||
LOGIN_HOST=${CONTAINER_PREFIX}login
|
||||
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
|
||||
|
||||
# proxy upstream environment #
|
||||
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_MIGRATION=${MIGRATION_HOST}:${SERVICE_PORT}
|
||||
SERVICE_WEBHOOKS_SERVICE=${WEBHOOKS_SERVICE_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STORAGE_ENCRYPTION=${STORAGE_ENCRYPTION_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
|
||||
@ -88,8 +82,6 @@
|
||||
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
|
||||
SERVICE_TELEGRAM_SERVICE=${TELEGRAM_SERVICE_HOST}:${SERVICE_PORT}
|
||||
SERVICE_URLSHORTENER=${URLSHORTENER_HOST}:${SERVICE_PORT}
|
||||
SERVICE_API=${API_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
|
||||
|
@ -140,8 +140,8 @@ RUN cd /app/onlyoffice/src/ && \
|
||||
cp -f config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
|
||||
mkdir -p /etc/nginx/includes/ && cp -f config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && \
|
||||
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
dotnet restore ASC.Web.sln && \
|
||||
dotnet build -r linux-x64 ASC.Web.sln && \
|
||||
dotnet restore ASC.Web.slnf && \
|
||||
dotnet build -r linux-x64 ASC.Web.slnf && \
|
||||
cd products/ASC.People/Server && \
|
||||
dotnet -d publish --no-build --self-contained -r linux-x64 -o /var/www/products/ASC.People/server && \
|
||||
cd ../../../ && \
|
||||
|
@ -1,7 +1,7 @@
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
ARG BUILD_PATH="/var/www"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:6.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:6.0"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:7.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:7.0"
|
||||
|
||||
FROM $DOTNET_SDK AS base
|
||||
ARG RELEASE_DATE="2016-06-22"
|
||||
@ -30,10 +30,11 @@ RUN apt-get -y update && \
|
||||
npm && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
npm install --global yarn && \
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && \
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
|
||||
apt-get install -y nodejs && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ADD https://api.github.com/repos/ONLYOFFICE/DocSpace/git/refs/heads/${GIT_BRANCH} version.json
|
||||
RUN echo ${GIT_BRANCH} && \
|
||||
git clone --recurse-submodules -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace.git ${SRC_PATH}
|
||||
|
||||
@ -92,7 +93,7 @@ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onl
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
|
||||
FROM node:16.16-slim as noderun
|
||||
FROM node:18.12.1-slim as noderun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
@ -149,18 +150,12 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
# changes for upstream configure
|
||||
sed -i 's/127.0.0.1:5010/$service_api_system/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5012/$service_backup/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5021/$service_crm/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5007/$service_files/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5004/$service_people_server/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5020/$service_projects_server/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5000/$service_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5003/$service_studio/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5023/$service_calendar/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9899/$service_socket/' /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:5022/$service_mail/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9999/$service_urlshortener/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5034/$service_migration/' /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/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
@ -168,17 +163,21 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
|
||||
## Doceditor ##
|
||||
FROM noderun as doceditor
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Files/editor
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Editors/editor
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${SRC_PATH}/build/deploy/editor/ .
|
||||
ENTRYPOINT ["node", "server.js"]
|
||||
|
||||
CMD ["server.js", "ASC.Editors"]
|
||||
|
||||
## Login ##
|
||||
FROM noderun as login
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Login/login
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${SRC_PATH}/build/deploy/login/ .
|
||||
ENTRYPOINT ["node", "server.js"]
|
||||
|
||||
CMD ["server.js", "ASC.Login"]
|
||||
|
||||
## ASC.Data.Backup.BackgroundTasks ##
|
||||
FROM dotnetrun AS backup_background
|
||||
@ -196,7 +195,7 @@ WORKDIR ${BUILD_PATH}/services/ASC.ApiSystem/
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ApiSystem/service/ .
|
||||
|
||||
CMD [" ASC.ApiSystem.dll", " ASC.ApiSystem"]
|
||||
CMD ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
|
||||
|
||||
## ASC.ClearEvents ##
|
||||
FROM dotnetrun AS clear-events
|
||||
@ -207,15 +206,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ClearE
|
||||
|
||||
CMD ["ASC.ClearEvents.dll", "ASC.ClearEvents"]
|
||||
|
||||
## ASC.Migration ##
|
||||
FROM dotnetrun AS migration
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Migration/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Migration/service/ .
|
||||
|
||||
CMD ["ASC.Migration.dll", "ASC.Migration"]
|
||||
|
||||
## ASC.Data.Backup ##
|
||||
FROM dotnetrun AS backup
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Data.Backup/
|
||||
@ -288,24 +278,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Studio
|
||||
|
||||
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify"]
|
||||
|
||||
## ASC.TelegramService ##
|
||||
FROM dotnetrun AS telegram_service
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.TelegramService/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
|
||||
|
||||
CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
|
||||
|
||||
## ASC.UrlShortener ##
|
||||
FROM noderun AS urlshortener
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.UrlShortener/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ .
|
||||
|
||||
CMD ["index.js", "ASC.UrlShortener"]
|
||||
|
||||
## ASC.Web.Api ##
|
||||
FROM dotnetrun AS api
|
||||
WORKDIR ${BUILD_PATH}/studio/ASC.Web.Api/
|
||||
@ -315,15 +287,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Ap
|
||||
|
||||
CMD ["ASC.Web.Api.dll", "ASC.Web.Api"]
|
||||
|
||||
## ASC.Webhooks.Service ##
|
||||
FROM dotnetrun AS webhooks-service
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Webhooks.Service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Webhooks.Service/service/ .
|
||||
|
||||
CMD ["ASC.Webhooks.Service.dll", "ASC.Webhooks.Service"]
|
||||
|
||||
## ASC.Web.Studio ##
|
||||
FROM dotnetrun AS studio
|
||||
WORKDIR ${BUILD_PATH}/studio/ASC.Web.Studio/
|
||||
@ -333,6 +296,16 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.St
|
||||
|
||||
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
|
||||
|
||||
## ASC.Web.HealthChecks.UI ##
|
||||
FROM dotnetrun AS healthchecks
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Web.HealthChecks.UI/service
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-healthchecks-entrypoint.sh ./docker-healthchecks-entrypoint.sh
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.HealthChecks.UI/service/ .
|
||||
|
||||
ENTRYPOINT ["./docker-healthchecks-entrypoint.sh"]
|
||||
CMD ["ASC.Web.HealthChecks.UI.dll", "ASC.Web.HealthChecks.UI"]
|
||||
|
||||
## ASC.Migration.Runner ##
|
||||
FROM $DOTNET_RUN AS onlyoffice-migration-runner
|
||||
ARG BUILD_PATH
|
||||
|
@ -1,7 +1,7 @@
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
ARG BUILD_PATH="/var/www"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:6.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:6.0"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:7.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:7.0"
|
||||
|
||||
FROM $DOTNET_SDK AS base
|
||||
ARG RELEASE_DATE="2022-10-09"
|
||||
@ -30,7 +30,7 @@ RUN apt-get -y update && \
|
||||
npm && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
npm install --global yarn && \
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && \
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
|
||||
apt-get install -y nodejs && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@ -91,7 +91,7 @@ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onl
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
|
||||
FROM node:16.16-slim as noderun
|
||||
FROM node:18.12.1-slim as noderun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
@ -130,6 +130,7 @@ ENV DNS_NAMESERVER=127.0.0.11 \
|
||||
|
||||
RUN apt-get -y update && \
|
||||
apt-get install -yq vim && \
|
||||
apt-get install -y dos2unix && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /usr/share/nginx/html/*
|
||||
|
||||
@ -138,8 +139,13 @@ COPY --from=base /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=base /etc/nginx/includes /etc/nginx/includes
|
||||
COPY /config/nginx/templates/upstream.conf.template /etc/nginx/templates/upstream.conf.template
|
||||
COPY /config/nginx/templates/nginx.conf.template /etc/nginx/nginx.conf.template
|
||||
|
||||
COPY prepare-nginx-proxy.sh /docker-entrypoint.d/prepare-nginx-proxy.sh
|
||||
|
||||
RUN dos2unix /docker-entrypoint.d/prepare-nginx-proxy.sh && \
|
||||
apt-get --purge remove -y dos2unix && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# add defualt user and group for no-root run
|
||||
RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
chown nginx:nginx /docker-entrypoint.d/* && \
|
||||
@ -152,8 +158,8 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
sed -i 's/127.0.0.1:5003/$service_studio/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9899/$service_socket/' /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:9999/$service_urlshortener/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5034/$service_migration/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
# sed -i 's/127.0.0.1:9999/$service_urlshortener/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
# sed -i 's/127.0.0.1:5034/$service_migration/' /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:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
@ -164,27 +170,36 @@ FROM dotnetrun AS backup_background
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/service/ .
|
||||
|
||||
CMD ["ASC.Data.Backup.BackgroundTasks.dll", "ASC.Data.Backup.BackgroundTasks"]
|
||||
|
||||
# ASC.ApiSystem ##
|
||||
FROM dotnetrun AS api_system
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.ApiSystem/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ApiSystem/service/ .
|
||||
|
||||
CMD ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
|
||||
|
||||
## ASC.ClearEvents ##
|
||||
FROM dotnetrun AS clear-events
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.ClearEvents/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ClearEvents/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ClearEvents/service/ .
|
||||
|
||||
CMD ["ASC.ClearEvents.dll", "ASC.ClearEvents"]
|
||||
|
||||
## ASC.Migration ##
|
||||
FROM dotnetrun AS migration
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Migration/
|
||||
# FROM dotnetrun AS migration
|
||||
# WORKDIR ${BUILD_PATH}/services/ASC.Migration/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Migration/service/ .
|
||||
# COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
# COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Migration/service/ .
|
||||
|
||||
CMD ["ASC.Migration.dll", "ASC.Migration"]
|
||||
# CMD ["ASC.Migration.dll", "ASC.Migration"]
|
||||
|
||||
## ASC.Data.Backup ##
|
||||
FROM dotnetrun AS backup
|
||||
@ -214,13 +229,13 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.
|
||||
CMD ["ASC.Files.Service.dll", "ASC.Files.Service"]
|
||||
|
||||
## ASC.Notify ##
|
||||
FROM dotnetrun AS notify
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Notify/service
|
||||
# FROM dotnetrun AS notify
|
||||
# WORKDIR ${BUILD_PATH}/services/ASC.Notify/service
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Notify/service/ .
|
||||
# COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
# COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Notify/service/ .
|
||||
|
||||
CMD ["ASC.Notify.dll", "ASC.Notify"]
|
||||
# CMD ["ASC.Notify.dll", "ASC.Notify"]
|
||||
|
||||
## ASC.People ##
|
||||
FROM dotnetrun AS people_server
|
||||
@ -259,22 +274,22 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Studio
|
||||
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify"]
|
||||
|
||||
## ASC.TelegramService ##
|
||||
FROM dotnetrun AS telegram_service
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.TelegramService/
|
||||
# FROM dotnetrun AS telegram_service
|
||||
# WORKDIR ${BUILD_PATH}/services/ASC.TelegramService/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
|
||||
# COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
# COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
|
||||
|
||||
CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
|
||||
# CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
|
||||
|
||||
## ASC.UrlShortener ##
|
||||
FROM noderun AS urlshortener
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.UrlShortener/service/
|
||||
# FROM noderun AS urlshortener
|
||||
# WORKDIR ${BUILD_PATH}/services/ASC.UrlShortener/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ .
|
||||
# COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
# COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ .
|
||||
|
||||
CMD ["index.js", "ASC.UrlShortener"]
|
||||
# CMD ["index.js", "ASC.UrlShortener"]
|
||||
|
||||
## ASC.Web.Api ##
|
||||
FROM dotnetrun AS api
|
||||
@ -286,13 +301,13 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Ap
|
||||
CMD ["ASC.Web.Api.dll", "ASC.Web.Api"]
|
||||
|
||||
## ASC.Webhooks.Service ##
|
||||
FROM dotnetrun AS webhooks-service
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Webhooks.Service/
|
||||
# FROM dotnetrun AS webhooks-service
|
||||
# WORKDIR ${BUILD_PATH}/services/ASC.Webhooks.Service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Webhooks.Service/service/ .
|
||||
# COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
# COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Webhooks.Service/service/ .
|
||||
|
||||
CMD ["ASC.Webhooks.Service.dll", "ASC.Webhooks.Service"]
|
||||
# CMD ["ASC.Webhooks.Service.dll", "ASC.Webhooks.Service"]
|
||||
|
||||
## ASC.Web.Studio ##
|
||||
FROM dotnetrun AS studio
|
||||
@ -310,26 +325,16 @@ ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
ENV SRC_PATH=${SRC_PATH}
|
||||
WORKDIR ${BUILD_PATH}/services/ASC.Migration.Runner/
|
||||
COPY ./docker-migration-entrypoint.sh ./docker-migration-entrypoint.sh
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y dos2unix
|
||||
|
||||
COPY docker-migration-entrypoint.sh docker-migration-entrypoint.sh
|
||||
|
||||
RUN dos2unix docker-migration-entrypoint.sh && \
|
||||
apt-get --purge remove -y dos2unix && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base ${SRC_PATH}/ASC.Migration.Runner/service/ .
|
||||
|
||||
ENTRYPOINT ["./docker-migration-entrypoint.sh"]
|
||||
|
||||
## image for k8s bin-share ##
|
||||
FROM busybox:latest AS bin_share
|
||||
RUN mkdir -p /app/appserver/ASC.Files/server && \
|
||||
mkdir -p /app/appserver/ASC.People/server/ && \
|
||||
addgroup --system --gid 107 onlyoffice && \
|
||||
adduser -u 104 onlyoffice --home /var/www/onlyoffice --system -G onlyoffice
|
||||
|
||||
COPY bin-share-docker-entrypoint.sh /app/docker-entrypoint.sh
|
||||
COPY --from=base /var/www/products/ASC.Files/server/ /app/appserver/ASC.Files/server/
|
||||
COPY --from=base /var/www/products/ASC.People/server/ /app/appserver/ASC.People/server/
|
||||
ENTRYPOINT ["./app/docker-entrypoint.sh"]
|
||||
|
||||
## image for k8s wait-bin-share ##
|
||||
FROM busybox:latest AS wait_bin_share
|
||||
RUN mkdir /app
|
||||
|
||||
COPY wait-bin-share-docker-entrypoint.sh /app/docker-entrypoint.sh
|
||||
ENTRYPOINT ["./app/docker-entrypoint.sh"]
|
||||
|
@ -15,12 +15,12 @@ services:
|
||||
target: clear-events
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-migration:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: migration
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
# onlyoffice-migration:
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: "${DOCKERFILE}"
|
||||
# target: migration
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-backup:
|
||||
build:
|
||||
@ -43,12 +43,12 @@ services:
|
||||
target: files_services
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-notify:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: notify
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-notify:${DOCKER_TAG}"
|
||||
# onlyoffice-notify:
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: "${DOCKERFILE}"
|
||||
# target: notify
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-notify:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-people-server:
|
||||
build:
|
||||
@ -71,19 +71,19 @@ services:
|
||||
target: studio_notify
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-telegram-service:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: telegram_service
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
# onlyoffice-telegram-service:
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: "${DOCKERFILE}"
|
||||
# target: telegram_service
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-urlshortener:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: urlshortener
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
# onlyoffice-urlshortener:
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: "${DOCKERFILE}"
|
||||
# target: urlshortener
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-api:
|
||||
build:
|
||||
@ -92,6 +92,13 @@ services:
|
||||
target: api
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-api-system:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: api_system
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-studio:
|
||||
build:
|
||||
context: ./
|
||||
@ -106,26 +113,12 @@ services:
|
||||
target: ssoauth
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-ssoauth:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-webhooks-service:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: webhooks-service
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-bin-share:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: bin_share
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-bin-share:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-wait-bin-share:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: wait_bin_share
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-wait-bin-share:${DOCKER_TAG}"
|
||||
# onlyoffice-webhooks-service:
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: "${DOCKERFILE}"
|
||||
# target: webhooks-service
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-proxy:
|
||||
build:
|
||||
|
@ -15,13 +15,6 @@ services:
|
||||
target: clear-events
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-migration:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: migration
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-backup:
|
||||
build:
|
||||
context: ./
|
||||
@ -71,20 +64,6 @@ services:
|
||||
target: studio_notify
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-telegram-service:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: telegram_service
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-urlshortener:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: urlshortener
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-api:
|
||||
build:
|
||||
context: ./
|
||||
@ -113,13 +92,6 @@ services:
|
||||
target: ssoauth
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-ssoauth:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-webhooks-service:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: webhooks-service
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-bin-share:
|
||||
build:
|
||||
context: ./
|
||||
@ -161,3 +133,10 @@ services:
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: onlyoffice-migration-runner
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration-runner:${DOCKER_TAG}"
|
||||
|
||||
onlyoffice-healthchecks:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: "${DOCKERFILE}"
|
||||
target: healthchecks
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-healthchecks:${DOCKER_TAG}"
|
||||
|
@ -15,11 +15,6 @@ map $SERVICE_CLIENT $service_client {
|
||||
$SERVICE_CLIENT $SERVICE_CLIENT;
|
||||
}
|
||||
|
||||
map $SERVICE_MIGRATION $service_migration {
|
||||
volatile;
|
||||
$SERVICE_MIGRATION $SERVICE_MIGRATION;
|
||||
}
|
||||
|
||||
map $SERVICE_API_SYSTEM $service_api_system {
|
||||
volatile;
|
||||
$SERVICE_API_SYSTEM $SERVICE_API_SYSTEM;
|
||||
@ -30,21 +25,6 @@ map $SERVICE_BACKUP $service_backup {
|
||||
$SERVICE_BACKUP $SERVICE_BACKUP;
|
||||
}
|
||||
|
||||
map $SERVICE_CALENDAR $service_calendar {
|
||||
volatile;
|
||||
$SERVICE_CALENDAR $SERVICE_CALENDAR;
|
||||
}
|
||||
|
||||
map $SERVICE_CRM $service_crm {
|
||||
volatile;
|
||||
$SERVICE_CRM $SERVICE_CRM;
|
||||
}
|
||||
|
||||
map $SERVICE_STORAGE_ENCRYPTION $service_storage_encryption {
|
||||
volatile;
|
||||
$SERVICE_STORAGE_ENCRYPTION $SERVICE_STORAGE_ENCRYPTION;
|
||||
}
|
||||
|
||||
map $SERVICE_FILES $service_files {
|
||||
volatile;
|
||||
$SERVICE_FILES $SERVICE_FILES;
|
||||
@ -55,16 +35,6 @@ map $SERVICE_FILES_SERVICES $service_files_services {
|
||||
$SERVICE_FILES_SERVICES $SERVICE_FILES_SERVICES;
|
||||
}
|
||||
|
||||
map $SERVICE_MAIL $service_mail {
|
||||
volatile;
|
||||
$SERVICE_MAIL $SERVICE_MAIL;
|
||||
}
|
||||
|
||||
map $SERVICE_STORAGE_MIGRATION $service_storage_migration {
|
||||
volatile;
|
||||
$SERVICE_STORAGE_MIGRATION $SERVICE_STORAGE_MIGRATION;
|
||||
}
|
||||
|
||||
map $SERVICE_NOTIFY $service_notify {
|
||||
volatile;
|
||||
$SERVICE_NOTIFY $SERVICE_NOTIFY;
|
||||
@ -75,11 +45,6 @@ map $SERVICE_PEOPLE_SERVER $service_people_server {
|
||||
$SERVICE_PEOPLE_SERVER $SERVICE_PEOPLE_SERVER;
|
||||
}
|
||||
|
||||
map $SERVICE_PROJECTS_SERVER $service_projects_server {
|
||||
volatile;
|
||||
$SERVICE_PROJECTS_SERVER $SERVICE_PROJECTS_SERVER;
|
||||
}
|
||||
|
||||
map $SERVICE_SOCKET $service_socket {
|
||||
volatile;
|
||||
$SERVICE_SOCKET $SERVICE_SOCKET;
|
||||
@ -90,21 +55,11 @@ map $SERVICE_STUDIO_NOTIFY $service_studio_notify {
|
||||
$SERVICE_STUDIO_NOTIFY $SERVICE_STUDIO_NOTIFY;
|
||||
}
|
||||
|
||||
map $SERVICE_TELEGRAM_SERVICE $service_telegram_service {
|
||||
volatile;
|
||||
$SERVICE_TELEGRAM_SERVICE $SERVICE_TELEGRAM_SERVICE;
|
||||
}
|
||||
|
||||
map $SERVICE_THUMBNAILS $service_thumbnails {
|
||||
volatile;
|
||||
$SERVICE_THUMBNAILS $SERVICE_THUMBNAILS;
|
||||
}
|
||||
|
||||
map $SERVICE_URLSHORTENER $service_urlshortener {
|
||||
volatile;
|
||||
$SERVICE_URLSHORTENER $SERVICE_URLSHORTENER;
|
||||
}
|
||||
|
||||
map $SERVICE_API $service_api {
|
||||
volatile;
|
||||
$SERVICE_API $SERVICE_API;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -21,7 +21,6 @@ MYSQL_HOST = os.environ["MYSQL_HOST"] if environ.get("MYSQL_HOST") else "localho
|
||||
MYSQL_DATABASE = os.environ["MYSQL_DATABASE"] if environ.get("MYSQL_DATABASE") else "onlyoffice"
|
||||
MYSQL_USER = os.environ["MYSQL_USER"] if environ.get("MYSQL_USER") else "onlyoffice_user"
|
||||
MYSQL_PASSWORD = os.environ["MYSQL_PASSWORD"] if environ.get("MYSQL_PASSWORD") else "onlyoffice_pass"
|
||||
DATABASE_MIGRATION = os.environ["DATABASE_MIGRATION"] if environ.get("DATABASE_MIGRATION") else "false"
|
||||
|
||||
APP_CORE_BASE_DOMAIN = os.environ["APP_CORE_BASE_DOMAIN"] if environ.get("APP_CORE_BASE_DOMAIN") is not None else "localhost"
|
||||
APP_CORE_MACHINEKEY = os.environ["APP_CORE_MACHINEKEY"] if environ.get("APP_CORE_MACHINEKEY") else "your_core_machinekey"
|
||||
@ -128,13 +127,11 @@ updateJsonData(jsonData,"$.core.base-domain", APP_CORE_BASE_DOMAIN)
|
||||
updateJsonData(jsonData,"$.core.machinekey", APP_CORE_MACHINEKEY)
|
||||
updateJsonData(jsonData,"$.core.products.subfolder", "server")
|
||||
updateJsonData(jsonData,"$.web.hub.internal", "http://onlyoffice-socket:" + SERVICE_PORT + "/")
|
||||
updateJsonData(jsonData,"$.web.url-shortener.internal", "http://onlyoffice-urlshortener:" + SERVICE_PORT + "/")
|
||||
updateJsonData(jsonData,"$.files.docservice.url.portal", APP_URL_PORTAL)
|
||||
updateJsonData(jsonData,"$.files.docservice.url.public", DOCUMENT_SERVER_URL_PUBLIC)
|
||||
updateJsonData(jsonData,"$.files.docservice.url.internal", DOCUMENT_SERVER_URL_INTERNAL)
|
||||
updateJsonData(jsonData,"$.files.docservice.secret.value", DOCUMENT_SERVER_JWT_SECRET)
|
||||
updateJsonData(jsonData,"$.files.docservice.secret.header", DOCUMENT_SERVER_JWT_HEADER)
|
||||
updateJsonData(jsonData,"$.migration.enabled", DATABASE_MIGRATION)
|
||||
writeJsonFile(filePath, jsonData)
|
||||
|
||||
filePath = "/app/onlyoffice/config/elastic.json"
|
||||
|
46
build/install/docker/docker-healthchecks-entrypoint.sh
Executable file
46
build/install/docker/docker-healthchecks-entrypoint.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# read parameters
|
||||
if [ -n "$1" ]; then
|
||||
RUN_DLL="${1}";
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
NAME_SERVICE="${1}";
|
||||
shift
|
||||
fi
|
||||
|
||||
echo "Executing -- ${NAME_SERVICE}"
|
||||
|
||||
PRODUCT=${PRODUCT:-"onlyoffice"}
|
||||
CONTAINER_PREFIX=${PRODUCT}-
|
||||
SERVICE_PORT=${SERVICE_PORT:-"5050"}
|
||||
SHEME=${SHEME:-"http"}
|
||||
URLS=${URLS:-"${SHEME}://0.0.0.0:${SERVICE_PORT}"}
|
||||
PATH_TO_CONF=${PATH_TO_CONF:-"/var/www/services/ASC.Web.HealthChecks.UI/service"}
|
||||
|
||||
API_SYSTEM_HOST=${API_SYSTEM_HOST:-"${CONTAINER_PREFIX}api-system:${SERVICE_PORT}"}
|
||||
BACKUP_HOST=${BACKUP_HOST:-"${CONTAINER_PREFIX}backup:${SERVICE_PORT}"}
|
||||
BACKUP_BACKGRUOND_TASKS_HOST=${BACKUP_BACKGRUOND_TASKS_HOST:-"${CONTAINER_PREFIX}backup-background-tasks:${SERVICE_PORT}"}
|
||||
CLEAR_EVENTS_HOST=${CLEAR_EVENTS_HOST:-"${CONTAINER_PREFIX}clear-events:${SERVICE_PORT}"}
|
||||
FILES_HOST=${FILES_HOST:-"${CONTAINER_PREFIX}files:${SERVICE_PORT}"}
|
||||
FILES_SERVICES_HOST=${FILES_SERVICES_HOST:-"${CONTAINER_PREFIX}files-services:${SERVICE_PORT}"}
|
||||
NOTIFY_HOST=${NOTIFY_HOST:-"${CONTAINER_PREFIX}notify:${SERVICE_PORT}"}
|
||||
PEOPLE_SERVER_HOST=${PEOPLE_SERVER_HOST:-"${CONTAINER_PREFIX}people-server:${SERVICE_PORT}"}
|
||||
STUDIO_NOTIFY_HOST=${STUDIO_NOTIFY_HOST:-"${CONTAINER_PREFIX}studio-notify:${SERVICE_PORT}"}
|
||||
API_HOST=${API_HOST:-"${CONTAINER_PREFIX}api:${SERVICE_PORT}"}
|
||||
STUDIO_HOST=${STUDIO_HOST:-"${CONTAINER_PREFIX}studio:${SERVICE_PORT}"}
|
||||
|
||||
sed -i "s!localhost:5010!${API_SYSTEM_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5012!${BACKUP_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5032!${BACKUP_BACKGRUOND_TASKS_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5027!${CLEAR_EVENTS_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5007!${FILES_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5009!${FILES_SERVICES_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5005!${NOTIFY_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5004!${PEOPLE_SERVER_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5006!${API_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5000!${STUDIO_NOTIFY_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
sed -i "s!localhost:5003!${STUDIO_HOST}!g" ${PATH_TO_CONF}/appsettings.json
|
||||
|
||||
dotnet ${RUN_DLL} --urls=${URLS}
|
@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
MYSQL_HOST=${MYSQL_HOST:-"localhost"}
|
||||
MYSQL_DATABASE=${MYSQL_DATABASE:-"onlyoffice"}
|
||||
MYSQL_USER=${MYSQL_USER:-"onlyoffice_user"}
|
||||
MYSQL_PASSWORD=${MYSQL_PASSWORD:-"onlyoffice_pass"}
|
||||
|
||||
sed -i "s!\"ConnectionString\".*!\"ConnectionString\": \"Server=${MYSQL_HOST};Database=${MYSQL_DATABASE};User ID=${MYSQL_USER};Password=${MYSQL_PASSWORD}\",!g" ./appsettings.json
|
||||
sed -i "s!\"ConnectionString\".*!\"ConnectionString\": \"Server=${MYSQL_HOST};Database=${MYSQL_DATABASE};User ID=${MYSQL_USER};Password=${MYSQL_PASSWORD}\",!g" ./appsettings.runner.json
|
||||
|
||||
dotnet ASC.Migration.Runner.dll
|
||||
dotnet ASC.Migration.Runner.dll
|
@ -29,6 +29,7 @@ x-service: &x-service-base
|
||||
- files_data:/var/www/products/ASC.Files/server/
|
||||
- people_data:/var/www/products/ASC.People/server/
|
||||
- ${ROOT_DIR}/config/appsettings.${ENV_EXTENSION}.json:/app/onlyoffice/config/appsettings.${ENV_EXTENSION}.json
|
||||
- ${ROOT_DIR}/config/apisystem.${ENV_EXTENSION}.json:/app/onlyoffice/config/apisystem.${ENV_EXTENSION}.json
|
||||
|
||||
services:
|
||||
onlyoffice-elasticsearch:
|
||||
@ -66,10 +67,10 @@ services:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||
container_name: ${CLEAR_EVENTS_HOST}
|
||||
|
||||
onlyoffice-migration:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
container_name: ${MIGRATION_HOST}
|
||||
# onlyoffice-migration:
|
||||
# <<: *x-service-base
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
# container_name: ${MIGRATION_HOST}
|
||||
|
||||
onlyoffice-files:
|
||||
<<: *x-service-base
|
||||
@ -98,24 +99,29 @@ services:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||
container_name: ${STUDIO_NOTIFY_HOST}
|
||||
|
||||
onlyoffice-telegram-service:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
container_name: ${TELEGRAM_SERVICE_HOST}
|
||||
# onlyoffice-telegram-service:
|
||||
# <<: *x-service-base
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
# container_name: ${TELEGRAM_SERVICE_HOST}
|
||||
|
||||
onlyoffice-urlshortener:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
container_name: ${URLSHORTENER_HOST}
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
- "9999"
|
||||
# onlyoffice-urlshortener:
|
||||
# <<: *x-service-base
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
# container_name: ${URLSHORTENER_HOST}
|
||||
# expose:
|
||||
# - ${SERVICE_PORT}
|
||||
# - "9999"
|
||||
|
||||
onlyoffice-api:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
||||
container_name: ${API_HOST}
|
||||
|
||||
onlyoffice-api-system:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
|
||||
container_name: ${API_SYSTEM_HOST}
|
||||
|
||||
onlyoffice-studio:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
|
||||
@ -129,10 +135,10 @@ services:
|
||||
- ${SERVICE_PORT}
|
||||
- "9834"
|
||||
|
||||
onlyoffice-webhooks-service:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
container_name: ${WEBHOOKS_SERVICE_HOST}
|
||||
# onlyoffice-webhooks-service:
|
||||
# <<: *x-service-base
|
||||
# image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
# container_name: ${WEBHOOKS_SERVICE_HOST}
|
||||
|
||||
onlyoffice-proxy:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-proxy:${DOCKER_TAG}"
|
||||
@ -148,16 +154,17 @@ services:
|
||||
- onlyoffice-backup-background-tasks
|
||||
- onlyoffice-backup
|
||||
- onlyoffice-clear-events
|
||||
- onlyoffice-migration
|
||||
- onlyoffice-webhooks-service
|
||||
# - onlyoffice-migration
|
||||
# - webhooks-service
|
||||
- onlyoffice-files
|
||||
- onlyoffice-files-services
|
||||
- onlyoffice-people-server
|
||||
- onlyoffice-socket
|
||||
- onlyoffice-studio-notify
|
||||
- onlyoffice-telegram-service
|
||||
- onlyoffice-urlshortener
|
||||
# - onlyoffice-telegram-service
|
||||
# - onlyoffice-urlshortener
|
||||
- onlyoffice-api
|
||||
- onlyoffice-api-system
|
||||
- onlyoffice-studio
|
||||
- onlyoffice-ssoauth
|
||||
environment:
|
||||
@ -165,15 +172,16 @@ services:
|
||||
- SERVICE_FILES=${SERVICE_FILES}
|
||||
- SERVICE_FILES_SERVICES=${SERVICE_FILES_SERVICES}
|
||||
- SERVICE_CLEAR_EVENTS=${SERVICE_CLEAR_EVENTS}
|
||||
- SERVICE_MIGRATION=${SERVICE_MIGRATION}
|
||||
- SERVICE_WEBHOOKS_SERVICE=${SERVICE_WEBHOOKS_SERVICE}
|
||||
# - SERVICE_MIGRATION=${SERVICE_MIGRATION}
|
||||
# - SERVICE_WEBHOOKS_SERVICE=${SERVICE_WEBHOOKS_SERVICE}
|
||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||
- SERVICE_TELEGRAM_SERVICE=${SERVICE_TELEGRAM_SERVICE}
|
||||
- SERVICE_URLSHORTENER=${SERVICE_URLSHORTENER}
|
||||
# - SERVICE_TELEGRAM_SERVICE=${SERVICE_TELEGRAM_SERVICE}
|
||||
# - SERVICE_URLSHORTENER=${SERVICE_URLSHORTENER}
|
||||
- SERVICE_API=${SERVICE_API}
|
||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||
- SERVICE_STUDIO=${SERVICE_STUDIO}
|
||||
- SERVICE_SSOAUTH=${SERVICE_SSOAUTH}
|
||||
- SERVICE_DOCEDITOR=${SERVICE_DOCEDITOR}
|
||||
@ -189,8 +197,8 @@ services:
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
es_data:
|
||||
|
@ -1,34 +1,33 @@
|
||||
version: "3.8"
|
||||
x-service:
|
||||
&x-service-base
|
||||
container_name: base
|
||||
restart: always
|
||||
expose:
|
||||
x-service: &x-service-base
|
||||
container_name: base
|
||||
restart: always
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
environment:
|
||||
MYSQL_HOST: ${MYSQL_HOST}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
DATABASE_MIGRATION: ${DATABASE_MIGRATION}
|
||||
APP_DOTNET_ENV: ${APP_DOTNET_ENV}
|
||||
APP_CORE_BASE_DOMAIN: ${APP_CORE_BASE_DOMAIN}
|
||||
APP_CORE_MACHINEKEY: ${APP_CORE_MACHINEKEY}
|
||||
DOCUMENT_SERVER_JWT_SECRET: ${DOCUMENT_SERVER_JWT_SECRET}
|
||||
DOCUMENT_SERVER_JWT_HEADER: ${DOCUMENT_SERVER_JWT_HEADER}
|
||||
DOCUMENT_SERVER_URL_PUBLIC: ${DOCUMENT_SERVER_URL_PUBLIC}
|
||||
DOCUMENT_SERVER_URL_INTERNAL: ${DOCUMENT_SERVER_URL_INTERNAL}
|
||||
KAFKA_HOST: ${KAFKA_HOST}
|
||||
ELK_HOST: ${ELK_HOST}
|
||||
PROXY_HOST: ${PROXY_HOST}
|
||||
volumes:
|
||||
environment:
|
||||
MYSQL_HOST: ${MYSQL_HOST}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
DATABASE_MIGRATION: ${DATABASE_MIGRATION}
|
||||
APP_DOTNET_ENV: ${APP_DOTNET_ENV}
|
||||
APP_CORE_BASE_DOMAIN: ${APP_CORE_BASE_DOMAIN}
|
||||
APP_CORE_MACHINEKEY: ${APP_CORE_MACHINEKEY}
|
||||
DOCUMENT_SERVER_JWT_SECRET: ${DOCUMENT_SERVER_JWT_SECRET}
|
||||
DOCUMENT_SERVER_JWT_HEADER: ${DOCUMENT_SERVER_JWT_HEADER}
|
||||
DOCUMENT_SERVER_URL_PUBLIC: ${DOCUMENT_SERVER_URL_PUBLIC}
|
||||
DOCUMENT_SERVER_URL_INTERNAL: ${DOCUMENT_SERVER_URL_INTERNAL}
|
||||
KAFKA_HOST: ${KAFKA_HOST}
|
||||
ELK_HOST: ${ELK_HOST}
|
||||
PROXY_HOST: ${PROXY_HOST}
|
||||
volumes:
|
||||
#- /app/onlyoffice/CommunityServer/data:/app/onlyoffice/data
|
||||
- app_data:/app/onlyoffice/data
|
||||
- files_data:/var/www/products/ASC.Files/server/
|
||||
- people_data:/var/www/products/ASC.People/server/
|
||||
|
||||
services:
|
||||
|
||||
services:
|
||||
onlyoffice-elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION}
|
||||
container_name: ${ELK_HOST}
|
||||
@ -58,17 +57,12 @@ services:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}"
|
||||
container_name: ${BACKUP_HOST}
|
||||
|
||||
|
||||
onlyoffice-clear-events:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||
container_name: ${CLEAR_EVENTS_HOST}
|
||||
|
||||
onlyoffice-migration:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration:${DOCKER_TAG}"
|
||||
container_name: ${MIGRATION_HOST}
|
||||
|
||||
onlyoffice-files:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}"
|
||||
@ -78,7 +72,7 @@ services:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
|
||||
container_name: ${FILES_SERVICES_HOST}
|
||||
|
||||
|
||||
onlyoffice-people-server:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}"
|
||||
@ -89,26 +83,13 @@ services:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-socket:${DOCKER_TAG}"
|
||||
container_name: ${SOCKET_HOST}
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
|
||||
- ${SERVICE_PORT}
|
||||
|
||||
onlyoffice-studio-notify:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||
container_name: ${STUDIO_NOTIFY_HOST}
|
||||
|
||||
onlyoffice-telegram-service:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-telegram-service:${DOCKER_TAG}"
|
||||
container_name: ${TELEGRAM_SERVICE_HOST}
|
||||
|
||||
onlyoffice-urlshortener:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-urlshortener:${DOCKER_TAG}"
|
||||
container_name: ${URLSHORTENER_HOST}
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
- "9999"
|
||||
|
||||
onlyoffice-api:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
||||
@ -123,21 +104,17 @@ services:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
|
||||
container_name: ${STUDIO_HOST}
|
||||
|
||||
|
||||
onlyoffice-ssoauth:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-ssoauth:${DOCKER_TAG}"
|
||||
container_name: ${SSOAUTH_HOST}
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
- "9834"
|
||||
|
||||
onlyoffice-webhooks-service:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-webhooks-service:${DOCKER_TAG}"
|
||||
container_name: ${WEBHOOKS_SERVICE_HOST}
|
||||
- ${SERVICE_PORT}
|
||||
- "9834"
|
||||
|
||||
onlyoffice-doceditor:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-doceditor:${DOCKER_TAG}"
|
||||
container_name: ${DOCEDITOR_HOST}
|
||||
restart: always
|
||||
@ -145,6 +122,7 @@ services:
|
||||
- "5013"
|
||||
|
||||
onlyoffice-login:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-login:${DOCKER_TAG}"
|
||||
container_name: ${LOGIN_HOST}
|
||||
restart: always
|
||||
@ -160,20 +138,16 @@ services:
|
||||
- "8099"
|
||||
- "8092"
|
||||
ports:
|
||||
- 8092:8092
|
||||
- 8092:8092
|
||||
depends_on:
|
||||
- onlyoffice-backup-background-tasks
|
||||
- onlyoffice-backup
|
||||
- onlyoffice-clear-events
|
||||
- onlyoffice-migration
|
||||
- onlyoffice-webhooks-service
|
||||
- onlyoffice-files
|
||||
- onlyoffice-files-services
|
||||
- onlyoffice-people-server
|
||||
- onlyoffice-socket
|
||||
- onlyoffice-studio-notify
|
||||
- onlyoffice-telegram-service
|
||||
- onlyoffice-urlshortener
|
||||
- onlyoffice-api
|
||||
- onlyoffice-api-system
|
||||
- onlyoffice-studio
|
||||
@ -185,14 +159,10 @@ services:
|
||||
- SERVICE_FILES=${SERVICE_FILES}
|
||||
- SERVICE_FILES_SERVICES=${SERVICE_FILES_SERVICES}
|
||||
- SERVICE_CLEAR_EVENTS=${SERVICE_CLEAR_EVENTS}
|
||||
- SERVICE_MIGRATION=${SERVICE_MIGRATION}
|
||||
- SERVICE_WEBHOOKS_SERVICE=${SERVICE_WEBHOOKS_SERVICE}
|
||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||
- SERVICE_TELEGRAM_SERVICE=${SERVICE_TELEGRAM_SERVICE}
|
||||
- SERVICE_URLSHORTENER=${SERVICE_URLSHORTENER}
|
||||
- SERVICE_API=${SERVICE_API}
|
||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||
- SERVICE_STUDIO=${SERVICE_STUDIO}
|
||||
@ -206,8 +176,8 @@ services:
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
es_data:
|
23
build/install/docker/ds.dev.yml
Normal file
23
build/install/docker/ds.dev.yml
Normal file
@ -0,0 +1,23 @@
|
||||
version: "3.6"
|
||||
services:
|
||||
onlyoffice-document-server:
|
||||
image: "${DOCUMENT_SERVER_IMAGE_NAME}"
|
||||
container_name: ${DOCUMENT_SERVER_HOST}
|
||||
# Strings below enable the JSON Web Token validation.
|
||||
environment:
|
||||
- JWT_ENABLED=true
|
||||
- JWT_SECRET=${DOCUMENT_SERVER_JWT_SECRET}
|
||||
- JWT_HEADER=${DOCUMENT_SERVER_JWT_HEADER}
|
||||
- JWT_IN_BODY=true
|
||||
expose:
|
||||
- "80"
|
||||
volumes:
|
||||
- ${ROOT_DIR}/Data:/var/www/onlyoffice/Data
|
||||
stdin_open: true
|
||||
restart: always
|
||||
stop_grace_period: 60s
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
29
build/install/docker/helthchecks.yml
Normal file
29
build/install/docker/helthchecks.yml
Normal file
@ -0,0 +1,29 @@
|
||||
version: "3.8"
|
||||
x-service:
|
||||
&x-service-base
|
||||
container_name: base
|
||||
restart: always
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
volumes:
|
||||
#- /app/onlyoffice/CommunityServer/data:/app/onlyoffice/data
|
||||
- app_data:/app/onlyoffice/data
|
||||
- files_data:/var/www/products/ASC.Files/server/
|
||||
- people_data:/var/www/products/ASC.People/server/
|
||||
|
||||
services:
|
||||
onlyoffice-health-checks-ui:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-healthchecks:${DOCKER_TAG}"
|
||||
container_name: ${HELTHCHECKS_HOST}
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
|
||||
volumes:
|
||||
app_data:
|
||||
files_data:
|
||||
people_data:
|
||||
|
@ -13,5 +13,5 @@ services:
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
@ -1,2 +1,3 @@
|
||||
#!/bin/sh
|
||||
envsubst '$MAP_HASH_BUCKET_SIZE,$COUNT_WORKER_CONNECTIONS' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
|
||||
|
||||
envsubst '$MAP_HASH_BUCKET_SIZE,$COUNT_WORKER_CONNECTIONS' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
|
@ -1,6 +1,6 @@
|
||||
version: '3'
|
||||
services:
|
||||
onlyoffice-rabbitmq:
|
||||
version: "3"
|
||||
services:
|
||||
onlyoffice-rabbitmq:
|
||||
image: rabbitmq:3
|
||||
container_name: onlyoffice-rabbitmq
|
||||
restart: always
|
||||
@ -9,5 +9,5 @@ services:
|
||||
- "80"
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
@ -1,6 +1,6 @@
|
||||
version: '3'
|
||||
services:
|
||||
onlyoffice-redis:
|
||||
version: "3"
|
||||
services:
|
||||
onlyoffice-redis:
|
||||
image: redis:7
|
||||
container_name: onlyoffice-redis
|
||||
restart: always
|
||||
@ -8,5 +8,5 @@ services:
|
||||
- "6379"
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
@ -9,6 +9,5 @@ rename -f -v "s/product([^\/]*)$/%{product}\$1/g" build/install/common/*.sh
|
||||
|
||||
sed -i "s@var/www@var/www/%{product}@g" config/nginx/*.conf && sed -i "s@var/www@var/www/%{product}@g" config/nginx/includes/*.conf && rm config/nginx/onlyoffice-login.conf
|
||||
|
||||
json -I -f %{_builddir}/%{sourcename}/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/%{product}\"" \
|
||||
-e "this.urlshortener={ 'path': '../ASC.UrlShortener/index.js' }" -e "this.thumb={ 'path': '../ASC.Thumbnails/' }" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
json -I -f %{_builddir}/%{sourcename}/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/%{product}\"" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
-e "this.ssoauth={ 'path': '../ASC.SsoAuth/' }" -e "this.core={ 'products': { 'folder': '%{buildpath}/products', 'subfolder': 'server'} }"
|
||||
|
@ -13,6 +13,12 @@
|
||||
%dir %{buildpath}/products/ASC.Files/
|
||||
%dir %{buildpath}/products/ASC.Files/server/
|
||||
|
||||
%files api-system
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.ApiSystem/
|
||||
/usr/lib/systemd/system/%{product}-api-system.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files backup
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.Data.Backup/
|
||||
@ -98,12 +104,6 @@
|
||||
%dir %{buildpath}/products/ASC.Files/
|
||||
%dir %{buildpath}/products/ASC.Files/server/
|
||||
|
||||
%files urlshortener
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.UrlShortener/
|
||||
/usr/lib/systemd/system/%{product}-urlshortener.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files socket
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.Socket.IO/
|
||||
@ -128,31 +128,12 @@
|
||||
%dir %{buildpath}/products/ASC.Files/
|
||||
%dir %{buildpath}/products/ASC.Files/server/
|
||||
|
||||
%files telegram-service
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.TelegramService/
|
||||
%{buildpath}/products/ASC.Files/server/ASC.Files*.dll
|
||||
%{buildpath}/products/ASC.People/server/ASC.People.dll
|
||||
/usr/lib/systemd/system/%{product}-telegram-service.service
|
||||
%dir %{buildpath}/services/
|
||||
%dir %{buildpath}/products/
|
||||
%dir %{buildpath}/products/ASC.Files/
|
||||
%dir %{buildpath}/products/ASC.Files/server/
|
||||
%dir %{buildpath}/products/ASC.People/
|
||||
%dir %{buildpath}/products/ASC.People/server/
|
||||
|
||||
%files ssoauth
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.SsoAuth/
|
||||
/usr/lib/systemd/system/%{product}-ssoauth.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files webhooks-service
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.Webhooks.Service/
|
||||
/usr/lib/systemd/system/%{product}-webhooks-service.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files clear-events
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.ClearEvents/
|
||||
@ -165,12 +146,6 @@
|
||||
/usr/lib/systemd/system/%{product}-backup-background.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files migration
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/services/ASC.Migration/
|
||||
/usr/lib/systemd/system/%{product}-migration.service
|
||||
%dir %{buildpath}/services/
|
||||
|
||||
%files radicale
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%{buildpath}/Tools/radicale/
|
||||
|
@ -13,18 +13,15 @@ mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/server/DocStore/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/service/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.People/client/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.People/server/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.ApiSystem/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.ClearEvents/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Data.Backup.BackgroundTasks/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Data.Backup/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Migration/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Migration.Runner/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Notify/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Socket.IO/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.SsoAuth/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Studio.Notify/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.TelegramService/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.UrlShortener/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/services/ASC.Webhooks.Service/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/studio/ASC.Web.Api/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/studio/ASC.Web.Studio/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/public/"
|
||||
@ -45,17 +42,14 @@ cp -rf %{_builddir}/%{sourcename}/config/nginx/onlyoffice*.conf "%{buildroot}%{_
|
||||
cp -rf %{_builddir}/%{sourcename}/products/ASC.Files/Server/DocStore/* "%{buildroot}%{buildpath}/products/ASC.Files/server/DocStore/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/products/ASC.Files/server/* "%{buildroot}%{buildpath}/products/ASC.Files/server/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/products/ASC.People/server/* "%{buildroot}%{buildpath}/products/ASC.People/server/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.ApiSystem/service/* "%{buildroot}%{buildpath}/services/ASC.ApiSystem/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.ClearEvents/service/* "%{buildroot}%{buildpath}/services/ASC.ClearEvents/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Data.Backup.BackgroundTasks/service/* "%{buildroot}%{buildpath}/services/ASC.Data.Backup.BackgroundTasks/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Data.Backup/service/* "%{buildroot}%{buildpath}/services/ASC.Data.Backup/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Files.Service/service/* "%{buildroot}%{buildpath}/products/ASC.Files/service/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Migration/service/* "%{buildroot}%{buildpath}/services/ASC.Migration/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Notify/service/* "%{buildroot}%{buildpath}/services/ASC.Notify/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Socket.IO/service/* "%{buildroot}%{buildpath}/services/ASC.Socket.IO/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.SsoAuth/service/* "%{buildroot}%{buildpath}/services/ASC.SsoAuth/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Studio.Notify/service/* "%{buildroot}%{buildpath}/services/ASC.Studio.Notify/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.TelegramService/service/* "%{buildroot}%{buildpath}/services/ASC.TelegramService/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.UrlShortener/service/* "%{buildroot}%{buildpath}/services/ASC.UrlShortener/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Web.Api/service/* "%{buildroot}%{buildpath}/studio/ASC.Web.Api/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Web.Studio/service/* "%{buildroot}%{buildpath}/studio/ASC.Web.Studio/"
|
||||
cp -rf %{_builddir}/%{sourcename}/publish/services/ASC.Webhooks.Service/service/* "%{buildroot}%{buildpath}/services/ASC.Webhooks.Service/"
|
||||
|
@ -60,19 +60,11 @@ Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description people-server
|
||||
|
||||
%package urlshortener
|
||||
Summary: urlshortener
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: nodejs >= 14.0
|
||||
AutoReqProv: no
|
||||
%description urlshortener
|
||||
|
||||
%package socket
|
||||
Summary: socket
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: nodejs >= 14.0
|
||||
Requires: nodejs >= 16.0
|
||||
AutoReqProv: no
|
||||
%description socket
|
||||
|
||||
@ -92,30 +84,22 @@ Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description api
|
||||
|
||||
%package telegram-service
|
||||
Summary: telegram-service
|
||||
%package api-system
|
||||
Summary: api-system
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description telegram-service
|
||||
%description api-system
|
||||
|
||||
%package ssoauth
|
||||
Summary: ssoauth
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: nodejs >= 14.0
|
||||
Requires: nodejs >= 16.0
|
||||
AutoReqProv: no
|
||||
%description ssoauth
|
||||
|
||||
%package webhooks-service
|
||||
Summary: webhooks-service
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description webhooks-service
|
||||
|
||||
%package clear-events
|
||||
Summary: clear-events
|
||||
Group: Applications/Internet
|
||||
@ -132,14 +116,6 @@ Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description backup-background
|
||||
|
||||
%package migration
|
||||
Summary: migration
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-6.0
|
||||
AutoReqProv: no
|
||||
%description migration
|
||||
|
||||
%package radicale
|
||||
Summary: radicale
|
||||
Group: Applications/Internet
|
||||
@ -152,7 +128,7 @@ AutoReqProv: no
|
||||
Summary: doceditor
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: nodejs >= 14.0
|
||||
Requires: nodejs >= 16.0
|
||||
AutoReqProv: no
|
||||
%description doceditor
|
||||
|
||||
@ -168,6 +144,6 @@ AutoReqProv: no
|
||||
Summary: login
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: nodejs >= 14.0
|
||||
Requires: nodejs >= 16.0
|
||||
AutoReqProv: no
|
||||
%description login
|
||||
|
@ -19,7 +19,7 @@ Source0: https://github.com/ONLYOFFICE/%{product}/archive/%GIT_BRANCH.tar
|
||||
Source1: https://github.com/ONLYOFFICE/document-templates/archive/main/community-server.tar.gz#/document-templates-main-community-server.tar.gz
|
||||
Source2: https://github.com/ONLYOFFICE/dictionaries/archive/master.tar.gz#/dictionaries-master.tar.gz
|
||||
|
||||
BuildRequires: nodejs >= 14.0
|
||||
BuildRequires: nodejs >= 18.0
|
||||
BuildRequires: yarn
|
||||
BuildRequires: dotnet-sdk-6.0
|
||||
|
||||
@ -31,7 +31,6 @@ Requires: %name-doceditor = %version-%release
|
||||
Requires: %name-files = %version-%release
|
||||
Requires: %name-files-services = %version-%release
|
||||
Requires: %name-login = %version-%release
|
||||
Requires: %name-migration = %version-%release
|
||||
Requires: %name-migration-runner = %version-%release
|
||||
Requires: %name-notify = %version-%release
|
||||
Requires: %name-people-server = %version-%release
|
||||
@ -41,9 +40,6 @@ Requires: %name-socket = %version-%release
|
||||
Requires: %name-ssoauth = %version-%release
|
||||
Requires: %name-studio = %version-%release
|
||||
Requires: %name-studio-notify = %version-%release
|
||||
Requires: %name-telegram-service = %version-%release
|
||||
Requires: %name-urlshortener = %version-%release
|
||||
Requires: %name-webhooks-service = %version-%release
|
||||
|
||||
%description
|
||||
App Server is a platform for building your own online office by connecting ONLYOFFICE modules packed as separate apps.
|
||||
|
@ -41,23 +41,23 @@ namespace Utils
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var redis = new Redis(session["REDIS_HOST_PROP"], Convert.ToInt32(session["REDIS_PORT_PROP"])))
|
||||
using (var redis = new Redis(session["REDIS_HOST"], Convert.ToInt32(session["REDIS_PORT"])))
|
||||
{
|
||||
|
||||
if (!String.IsNullOrEmpty(session["REDIS_PASSWORD_PROP"].Trim()))
|
||||
redis.Password = session["REDIS_PASSWORD_PROP"];
|
||||
if (!String.IsNullOrEmpty(session["REDIS_PWD"].Trim()))
|
||||
redis.Password = session["REDIS_PWD"];
|
||||
|
||||
var pong = redis.Ping("ONLYOFFICE");
|
||||
|
||||
session.Log("Redis Status: IsConnected is {0}", !String.IsNullOrEmpty(pong));
|
||||
session["RedisServerConnectionError"] = !String.IsNullOrEmpty(pong) ? "" : String.Format("Connection Refused HOST:{0},PORT:{1},PASS:{2}", session["REDIS_HOST_PROP"], session["REDIS_PORT_PROP"], session["REDIS_PASSWORD_PROP"]);
|
||||
session["RedisServerConnectionError"] = !String.IsNullOrEmpty(pong) ? "" : String.Format("Connection Refused HOST:{0},PORT:{1},PASS:{2}", session["REDIS_HOST"], session["REDIS_PORT"], session["REDIS_PWD"]);
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
session.Log("RedisConnectionException '{0}'", ex.Message);
|
||||
session["RedisServerConnectionError"] = String.Format("Connection Refused HOST:{0},PORT:{1},PASS:{2}", session["REDIS_HOST_PROP"], session["REDIS_PORT_PROP"], session["REDIS_PASSWORD_PROP"]);
|
||||
session["RedisServerConnectionError"] = String.Format("Connection Refused HOST:{0},PORT:{1},PASS:{2}", session["REDIS_HOST"], session["REDIS_PORT"], session["REDIS_PWD"]);
|
||||
}
|
||||
|
||||
return ActionResult.Success;
|
||||
@ -69,11 +69,11 @@ namespace Utils
|
||||
{
|
||||
ConnectionFactory factory = new ConnectionFactory();
|
||||
|
||||
factory.HostName = session["RABBITMQ_HOSTNAME_PROP"];
|
||||
factory.Port = Convert.ToInt32(session["RABBITMQ_PORT_PROP"]);
|
||||
factory.VirtualHost = session["RABBITMQ_VIRTUALHOST_PROP"];
|
||||
factory.UserName = session["RABBITMQ_USERNAME_PROP"];
|
||||
factory.Password = session["RABBITMQ_PASSWORD_PROP"];
|
||||
factory.HostName = session["AMQP_HOST"];
|
||||
factory.Port = Convert.ToInt32(session["AMQP_PORT"]);
|
||||
factory.VirtualHost = session["AMQP_VHOST"];
|
||||
factory.UserName = session["AMQP_USER"];
|
||||
factory.Password = session["AMQP_PWD"];
|
||||
|
||||
try
|
||||
{
|
||||
@ -82,11 +82,11 @@ namespace Utils
|
||||
session.Log("RabbitMQ Status: IsConnected is {0}", conn.IsOpen);
|
||||
|
||||
session["RabbitMQServerConnectionError"] = conn.IsOpen ? "" : String.Format("Connection Refused HOST:{0}, PORT:{1}, VirtualHost:{2}, UserName:{3}, PASS:{4}",
|
||||
session["RABBITMQ_HOSTNAME_PROP"],
|
||||
session["RABBITMQ_PORT_PROP"],
|
||||
session["RABBITMQ_VIRTUALHOST_PROP"],
|
||||
session["RABBITMQ_USERNAME_PROP"],
|
||||
session["RABBITMQ_PASSWORD_PROP"]
|
||||
session["AMQP_HOST"],
|
||||
session["AMQP_PORT"],
|
||||
session["AMQP_VHOST"],
|
||||
session["AMQP_USER"],
|
||||
session["AMQP_PWD"]
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -95,11 +95,11 @@ namespace Utils
|
||||
|
||||
session.Log("RabbitMQ.Client.Exceptions.BrokerUnreachableException {0}", ex.Message);
|
||||
session["RabbitMQServerConnectionError"] = String.Format("Connection Refused HOST:{0}, PORT:{1}, VirtualHost:{2}, UserName:{3}, PASS:{4}",
|
||||
session["RABBITMQ_HOSTNAME_PROP"],
|
||||
session["RABBITMQ_PORT_PROP"],
|
||||
session["RABBITMQ_VIRTUALHOST_PROP"],
|
||||
session["RABBITMQ_USERNAME_PROP"],
|
||||
session["RABBITMQ_PASSWORD_PROP"]
|
||||
session["AMQP_HOST"],
|
||||
session["AMQP_PORT"],
|
||||
session["AMQP_VHOST"],
|
||||
session["AMQP_USER"],
|
||||
session["AMQP_PWD"]
|
||||
);
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -13,4 +13,4 @@ OutputBaseFilename="MySQL Installer Runner"
|
||||
OutputDir=/
|
||||
|
||||
[Run]
|
||||
Filename: "{pf}\MySQL\MySQL Installer for Windows\MySQLInstallerConsole.exe"; Parameters: "community install server;{param:MYSQL_VERSION|5.7.25};X64:*:servertype=Server;passwd={param:PASSWORD_PROP} -silent"; Flags: runhidden
|
||||
Filename: "{pf}\MySQL\MySQL Installer for Windows\MySQLInstallerConsole.exe"; Parameters: "community install server;{param:MYSQL_VERSION|5.7.25};X64:*:servertype=Server;passwd={param:DB_PWD} -silent"; Flags: runhidden
|
@ -11,11 +11,6 @@ pushd %~1
|
||||
call dotnet build ASC.Web.slnf
|
||||
call dotnet build ASC.Migrations.sln -o %SRC_PATH%\services\ASC.Migration.Runner\service
|
||||
|
||||
echo "== Build ASC.UrlShortener =="
|
||||
pushd common\ASC.UrlShortener
|
||||
call yarn install --frozen-lockfile
|
||||
popd
|
||||
|
||||
echo "== Build ASC.Socket.IO =="
|
||||
pushd common\ASC.Socket.IO
|
||||
call yarn install --frozen-lockfile
|
||||
|
@ -1,7 +1,8 @@
|
||||
REM echo ######## Set variables ########
|
||||
set "publisher="Ascensio System SIA""
|
||||
set "nginx_version=1.21.1"
|
||||
set "nuget="%cd%\thirdparty\SimpleRestServices\src\.nuget\NuGet.exe""
|
||||
set "nginx_version=1.21.1"
|
||||
set "environment=test"
|
||||
|
||||
REM echo ######## Extracting and preparing files to build ########
|
||||
%sevenzip% x build\install\win\nginx-%nginx_version%.zip -o"build\install\win\Files" -y
|
||||
@ -11,26 +12,21 @@ md build\install\win\Files\nginx\temp
|
||||
md build\install\win\Files\nginx\logs
|
||||
md build\install\win\Files\tools
|
||||
md build\install\win\Files\Logs
|
||||
md build\install\win\Files\service\
|
||||
md build\install\win\Files\Data
|
||||
md build\install\win\Files\products\ASC.Files\server\temp
|
||||
md build\install\win\Files\products\ASC.People\server\temp
|
||||
md build\install\win\Files\services\ASC.Data.Backup\service\temp
|
||||
md build\install\win\Files\services\ASC.Files.Service\service\temp
|
||||
md build\install\win\Files\services\ASC.Notify\service\temp
|
||||
md build\install\win\Files\services\ASC.Studio.Notify\service\temp
|
||||
md build\install\win\Files\services\ASC.TelegramService\service\temp
|
||||
md build\install\win\Files\services\ASC.Data.Backup.BackgroundTasks\service\temp
|
||||
md build\install\win\Files\services\ASC.ClearEvents\service\temp
|
||||
md build\install\win\Files\services\ASC.Migration\service\temp
|
||||
md build\install\win\Files\services\ASC.Webhooks.Service\service\temp
|
||||
md build\install\win\Files\services\ASC.Web.Api\service\temp
|
||||
md build\install\win\Files\services\ASC.Web.Studio\service\temp
|
||||
copy build\install\win\WinSW.NET4.exe "build\install\win\Files\tools\Proxy.exe" /y
|
||||
copy build\install\win\tools\Proxy.xml "build\install\win\Files\tools\Proxy.xml" /y
|
||||
copy build\install\win\WinSW3.0.0.exe "build\install\win\Files\tools\Socket.IO.exe" /y
|
||||
copy build\install\win\tools\Socket.IO.xml "build\install\win\Files\tools\Socket.IO.xml" /y
|
||||
copy build\install\win\WinSW3.0.0.exe "build\install\win\Files\tools\UrlShortener.exe" /y
|
||||
copy build\install\win\tools\UrlShortener.xml "build\install\win\Files\tools\UrlShortener.xml" /y
|
||||
copy build\install\win\WinSW3.0.0.exe "build\install\win\Files\tools\SsoAuth.exe" /y
|
||||
copy build\install\win\tools\SsoAuth.xml "build\install\win\Files\tools\SsoAuth.xml" /y
|
||||
copy build\install\win\WinSW3.0.0.exe "build\install\win\Files\tools\DocEditor.exe" /y
|
||||
@ -39,7 +35,13 @@ copy build\install\win\WinSW3.0.0.exe "build\install\win\Files\tools\Login.exe"
|
||||
copy build\install\win\tools\Login.xml "build\install\win\Files\tools\Login.xml" /y
|
||||
copy "build\install\win\nginx.conf" "build\install\win\Files\nginx\conf\nginx.conf" /y
|
||||
rmdir build\install\win\publish /s /q
|
||||
|
||||
::edit environment
|
||||
%sed% -i "s/\(\W\)PRODUCT.ENVIRONMENT.SUB\(\W\)/\1%environment%\2/g" build\install\win\DocSpace.aip
|
||||
|
||||
::delete nginx configs
|
||||
del /f /q build\install\win\Files\nginx\conf\onlyoffice-login.conf
|
||||
del /f /q build\install\win\Files\nginx\conf\onlyoffice-story.conf
|
||||
|
||||
|
||||
REM echo ######## Build Utils ########
|
||||
@ -50,10 +52,6 @@ rmdir build\install\win\CustomActions\C#\Utils\bin /s /q
|
||||
rmdir build\install\win\CustomActions\C#\Utils\obj /s /q
|
||||
|
||||
REM echo ######## Delete temp files ########
|
||||
del /f /q build\install\win\Files\config\sed*
|
||||
del /f /q build\install\win\Files\nginx\conf\sed*
|
||||
del /f /q build\install\win\Files\nginx\conf\includes\sed*
|
||||
del /f /q build\install\win\Files\services\*\service\config\sed*
|
||||
del /f /q build\install\win\*.back.*
|
||||
|
||||
REM echo ######## Build MySQL Server Installer ########
|
||||
@ -61,4 +59,10 @@ iscc /Qp /S"byparam="signtool" sign /a /n "%publisher%" /t http://timestamp.digi
|
||||
|
||||
REM echo ######## Build DocSpace package ########
|
||||
%AdvancedInstaller% /edit build\install\win\DocSpace.aip /SetVersion %BUILD_VERSION%.%BUILD_NUMBER%
|
||||
|
||||
IF "%SignBuild%"=="true" (
|
||||
:%AdvancedInstaller% /edit build\install\win\DocSpace.aip /SetSig
|
||||
:%AdvancedInstaller% /edit build\install\win\DocSpace.aip /SetDigitalCertificateFile -file %onlyoffice_codesign_path% -password "%onlyoffice_codesign_password%"
|
||||
)
|
||||
|
||||
%AdvancedInstaller% /rebuild build\install\win\DocSpace.aip
|
||||
|
@ -12,31 +12,45 @@ $AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12,Tls13'
|
||||
function DownloadComponents {
|
||||
|
||||
param ( $prereq_list, $path )
|
||||
|
||||
[void](New-Item -ItemType Directory -Force -Path $path)
|
||||
|
||||
ForEach ( $item in $prereq_list ) {
|
||||
$url = $item.link
|
||||
$output = $path + $item.name
|
||||
|
||||
if( $item.download_allways ){
|
||||
[system.console]::WriteLine("Downloading $url")
|
||||
Invoke-WebRequest -Uri $url -OutFile $output
|
||||
} else {
|
||||
if(![System.IO.File]::Exists($output)){
|
||||
try
|
||||
{
|
||||
if( $item.download_allways ){
|
||||
[system.console]::WriteLine("Downloading $url")
|
||||
Invoke-WebRequest -Uri $url -OutFile $output
|
||||
} else {
|
||||
if(![System.IO.File]::Exists($output)){
|
||||
[system.console]::WriteLine("Downloading $url")
|
||||
Invoke-WebRequest -Uri $url -OutFile $output
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
Write-Host "[ERROR] Can not download" $item.name "by link" $url
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch ( $env:DOCUMENT_SERVER_VERSION )
|
||||
{
|
||||
latest { $DOCUMENT_SERVER_LINK = "https://download.onlyoffice.com/install/documentserver/windows/onlyoffice-documentserver-ee.exe" }
|
||||
custom { $DOCUMENT_SERVER_LINK = $env:DOCUMENT_SERVER_CUSTOM_LINK.Replace(",", "") }
|
||||
}
|
||||
|
||||
$nginx_version = '1.21.1'
|
||||
$psql_version = '9.5.4'
|
||||
|
||||
$path_prereq = "${pwd}\build\install\win\"
|
||||
|
||||
$prerequisites = @(
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "nginx-${nginx_version}.zip";
|
||||
name = "nginx-${nginx_version}.zip";
|
||||
link = "https://nginx.org/download/nginx-${nginx_version}.zip";
|
||||
}
|
||||
|
||||
@ -45,6 +59,24 @@ $prerequisites = @(
|
||||
name = "WinSW.NET4new.exe";
|
||||
link = "https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW.NET4.exe";
|
||||
}
|
||||
|
||||
@{
|
||||
download_allways = $true;
|
||||
name = "onlyoffice-documentserver.latest.exe";
|
||||
link = $DOCUMENT_SERVER_LINK
|
||||
}
|
||||
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "psqlodbc_x64.msi";
|
||||
link = "http://download.onlyoffice.com/install/windows/redist/psqlodbc_x64.msi"
|
||||
}
|
||||
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "postgresql-${psql_version}-1-windows-x64.exe";
|
||||
link = "https://get.enterprisedb.com/postgresql/postgresql-${psql_version}-1-windows-x64.exe"
|
||||
}
|
||||
)
|
||||
|
||||
$path_nuget_packages = "${pwd}\.nuget\packages\"
|
||||
|
@ -21,22 +21,17 @@ dotnet publish "%PathToRepository%\products\ASC.Files\server\ASC.Files.csproj" -
|
||||
dotnet publish "%PathToRepository%\products\ASC.People\server\ASC.People.csproj" -c Release --self-contained false -o "%PathToAppFolder%\products\ASC.People\server"
|
||||
|
||||
rem backend services (dotnet) in directory 'services'
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.ApiSystem\ASC.ApiSystem.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.ApiSystem\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.Data.Backup\ASC.Data.Backup.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Data.Backup\service"
|
||||
dotnet publish "%PathToRepository%\products\ASC.Files\service\ASC.Files.Service.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Files.Service\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.Notify\ASC.Notify.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Notify\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.Studio.Notify\ASC.Studio.Notify.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Studio.Notify\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.TelegramService\ASC.TelegramService.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.TelegramService\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.Data.Backup.BackgroundTasks\ASC.Data.Backup.BackgroundTasks.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Data.Backup.BackgroundTasks\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.ClearEvents\ASC.ClearEvents.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.ClearEvents\service"
|
||||
dotnet publish "%PathToRepository%\common\ASC.Migration\ASC.Migration.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Migration\service"
|
||||
dotnet publish "%PathToRepository%\common\services\ASC.Webhooks.Service\ASC.Webhooks.Service.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Webhooks.Service\service"
|
||||
dotnet publish "%PathToRepository%\web\ASC.Web.Api\ASC.Web.Api.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Web.Api\service"
|
||||
dotnet publish "%PathToRepository%\web\ASC.Web.Studio\ASC.Web.Studio.csproj" -c Release --self-contained false -o "%PathToAppFolder%\services\ASC.Web.Studio\service"
|
||||
|
||||
rem backend services (Nodejs) in directory 'services'
|
||||
mkdir "%PathToAppFolder%\services\ASC.UrlShortener\service"
|
||||
xcopy "%PathToRepository%\common\ASC.UrlShortener" "%PathToAppFolder%\services\ASC.UrlShortener\service" /s /y /b /i
|
||||
|
||||
mkdir "%PathToAppFolder%\services\ASC.Socket.IO\service"
|
||||
xcopy "%PathToRepository%\common\ASC.Socket.IO" "%PathToAppFolder%\services\ASC.Socket.IO\service" /s /y /b /i
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
<service>
|
||||
<id>ASC.UrlShortener</id>
|
||||
<name>ASC.UrlShortener</name>
|
||||
<description>This service runs ASC.UrlShortener</description>
|
||||
<priority>RealTime</priority>
|
||||
<startmode>Automatic</startmode>
|
||||
<onfailure action="restart" delay="10 sec"/>
|
||||
<executable>node</executable>
|
||||
<arguments>"{APPDIR}services\ASC.UrlShortener\service\index.js"</arguments>
|
||||
<log mode="roll-by-size">
|
||||
<sizeThreshold>10240</sizeThreshold>
|
||||
<keepFiles>8</keepFiles>
|
||||
</log>
|
||||
</service>
|
@ -1,3 +1,123 @@
|
||||
Function RedisSetup
|
||||
On Error Resume Next
|
||||
|
||||
Dim Shell
|
||||
|
||||
Set Shell = CreateObject("WScript.Shell")
|
||||
|
||||
Shell.Run "redis-cli config set save """"", 0, True
|
||||
Shell.Run "redis-cli config rewrite", 0, True
|
||||
|
||||
Set Shell = Nothing
|
||||
End Function
|
||||
|
||||
Function TestPostgreSqlConnection
|
||||
On Error Resume Next
|
||||
|
||||
Dim ErrorText
|
||||
Dim Pos, postgreSqlDriver
|
||||
|
||||
postgreSqlDriver = "PostgreSQL Unicode(x64)"
|
||||
|
||||
Session.Property("PostgreSqlConnectionError") = ""
|
||||
|
||||
Set ConnectionObject = CreateObject("ADODB.Connection")
|
||||
ConnectionObject.Open "Driver={" & postgreSqlDriver & "};" & _
|
||||
"Server=" & Session.Property("PS_DB_HOST") & ";" & _
|
||||
"Port=" & Session.Property("PS_DB_PORT") & ";" & _
|
||||
"Database=" & Session.Property("PS_DB_NAME") & ";" & _
|
||||
"Uid=" & Session.Property("PS_DB_USER") & ";" & _
|
||||
"Pwd=" & Session.Property("PS_DB_PWD")
|
||||
|
||||
If Err.Number <> 0 Then
|
||||
ErrorText = Err.Description
|
||||
Pos = InStrRev( ErrorText, "]" )
|
||||
If 0 < Pos Then
|
||||
ErrorText = Right( ErrorText, Len( ErrorText ) - Pos )
|
||||
End If
|
||||
Session.Property("PostgreSqlConnectionError") = ErrorText
|
||||
End If
|
||||
|
||||
ConnectionObject.Close
|
||||
|
||||
Set ConnectionObject = Nothing
|
||||
|
||||
End Function
|
||||
|
||||
Function PostgreSqlConfigure
|
||||
On Error Resume Next
|
||||
|
||||
If (StrComp(Session.Property("POSTGRE_SQL_PATH"),"FALSE") = 0) Then
|
||||
Wscript.Quit
|
||||
End If
|
||||
|
||||
Dim ErrorText
|
||||
Dim Pos, postgreSqlDriver
|
||||
Dim databaseUserName
|
||||
Dim databaseUserPwd
|
||||
Dim databaseName
|
||||
Dim databasePort
|
||||
Dim databaseHost
|
||||
|
||||
databaseUserName = Session.Property("PS_DB_USER")
|
||||
databaseUserPwd = Session.Property("PS_DB_PWD")
|
||||
databaseName = Session.Property("PS_DB_NAME")
|
||||
databasePort = Session.Property("PS_DB_PORT")
|
||||
databaseHost = Session.Property("PS_DB_HOST")
|
||||
|
||||
Call WriteToLog("PostgreSqlConfig: databaseUserName is " & databaseUserName)
|
||||
Call WriteToLog("PostgreSqlConfig: databaseUserPwd is " & databaseUserPwd)
|
||||
Call WriteToLog("PostgreSqlConfig: databaseName is " & databaseName)
|
||||
Call WriteToLog("PostgreSqlConfig: databasePort is " & databasePort)
|
||||
Call WriteToLog("PostgreSqlConfig: databaseHost is " & databaseHost)
|
||||
|
||||
postgreSqlDriver = "PostgreSQL Unicode(x64)"
|
||||
|
||||
Set ConnectionObject = CreateObject("ADODB.Connection")
|
||||
ConnectionObject.Open "Driver={" & postgreSqlDriver & "};Server=" & databaseHost & ";Port=" & databasePort & ";Database=" & "postgres" & ";Uid=" & "postgres" & ";Pwd=" & "postgres"
|
||||
|
||||
ConnectionObject.Execute "CREATE DATABASE " & databaseName
|
||||
ConnectionObject.Execute "create user " & databaseUserName & " with encrypted password '" & databaseUserPwd & "'"
|
||||
ConnectionObject.Execute "grant all privileges on database " & databaseName & " to " & databaseUserName
|
||||
|
||||
If Err.Number <> 0 Then
|
||||
ErrorText = Err.Description
|
||||
Pos = InStrRev( ErrorText, "]" )
|
||||
If 0 < Pos Then
|
||||
Call WriteToLog("PostgreSqlConfig: error is " & ErrorText)
|
||||
ErrorText = Right( ErrorText, Len( ErrorText ) - Pos )
|
||||
Session.Property("PostgreSqlConnectionError") = ErrorText
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
ConnectionObject.Close
|
||||
|
||||
Set ConnectionObject = Nothing
|
||||
|
||||
End Function
|
||||
|
||||
Function RandomString( ByVal strLen )
|
||||
Dim str, min, max
|
||||
|
||||
Const LETTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789"
|
||||
min = 1
|
||||
max = Len(LETTERS)
|
||||
|
||||
Randomize
|
||||
For i = 1 to strLen
|
||||
str = str & Mid( LETTERS, Int((max-min+1)*Rnd+min), 1 )
|
||||
Next
|
||||
RandomString = str
|
||||
End Function
|
||||
|
||||
Function SetDocumentServerJWTSecretProp
|
||||
On Error Resume Next
|
||||
|
||||
Session.Property("JWT_SECRET") = RandomString( 30 )
|
||||
|
||||
End Function
|
||||
|
||||
Function MySQLConfigure
|
||||
On Error Resume Next
|
||||
|
||||
@ -28,8 +148,8 @@ Function MySQLConfigure
|
||||
Session.Property("MYSQLODBCDRIVER") = mysqlDriver
|
||||
|
||||
Set shell = CreateObject("WScript.Shell")
|
||||
dbname = Session.Property("DATABASE_PROP")
|
||||
dbpass = Session.Property("PASSWORD_PROP")
|
||||
dbname = Session.Property("DB_NAME")
|
||||
dbpass = Session.Property("DB_PWD")
|
||||
|
||||
Err.Clear
|
||||
installDir = shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\MySQL AB\MySQL Server 8.0\Location")
|
||||
@ -101,13 +221,13 @@ Function ElasticSearchSetup
|
||||
Set Shell = CreateObject("WScript.Shell")
|
||||
Set objFSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
APP_INDEX_DIR = Session.Property("APPDIR") & "Data\Index\v7.13.1\"
|
||||
APP_INDEX_DIR = Session.Property("APPDIR") & "Data\Index\v7.16.3\"
|
||||
|
||||
If Not fso.FolderExists(APP_INDEX_DIR) Then
|
||||
Session.Property("NEED_REINDEX_ELASTICSEARCH") = "TRUE"
|
||||
End If
|
||||
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Data\Index\v7.13.1\""",0,true)
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Data\Index\v7.16.3\""",0,true)
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Logs\""",0,true)
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\config\elasticsearch.yml", ForReading)
|
||||
@ -159,7 +279,7 @@ Function ElasticSearchSetup
|
||||
End if
|
||||
|
||||
oRE.Pattern = "path.data:.*"
|
||||
fileContent = oRE.Replace(fileContent, "path.data: " & Session.Property("APPDIR") & "Data\Index\v7.13.1\")
|
||||
fileContent = oRE.Replace(fileContent, "path.data: " & Session.Property("APPDIR") & "Data\Index\v7.16.3\")
|
||||
|
||||
oRE.Pattern = "path.logs:.*"
|
||||
fileContent = oRE.Replace(fileContent, "path.logs: " & Session.Property("APPDIR") & "Logs\")
|
||||
@ -215,8 +335,8 @@ Function ElasticSearchInstallPlugin
|
||||
|
||||
Set Shell = CreateObject("WScript.Shell")
|
||||
|
||||
ShellInstallCommand = """C:\Program Files\Elastic\Elasticsearch\7.13.1\bin\elasticsearch-plugin""" & " install -b -s ingest-attachment"""
|
||||
ShellRemoveCommand = """C:\Program Files\Elastic\Elasticsearch\7.13.1\bin\elasticsearch-plugin""" & " remove -s ingest-attachment"""
|
||||
ShellInstallCommand = """C:\Program Files\Elastic\Elasticsearch\7.16.3\bin\elasticsearch-plugin""" & " install -b -s ingest-attachment"""
|
||||
ShellRemoveCommand = """C:\Program Files\Elastic\Elasticsearch\7.16.3\bin\elasticsearch-plugin""" & " remove -s ingest-attachment"""
|
||||
|
||||
Call Shell.Run("cmd /C " & """" & ShellRemoveCommand & """",0,true)
|
||||
Call Shell.Run("cmd /C " & """" & ShellInstallCommand & """",0,true)
|
||||
@ -260,7 +380,7 @@ Function TestSqlConnection
|
||||
Session.Property("MYSQLODBCDRIVER") = mysqlDriver
|
||||
|
||||
Set ConnectionObject = CreateObject("ADODB.Connection")
|
||||
ConnectionObject.Open "Driver={" & mysqlDriver & "};Server=" & Session.Property("SERVER_PROP") & ";Port=" & Session.Property("PORT_PROP") & ";Uid=" & Session.Property("USERNAME_PROP") & ";Pwd=" & Session.Property("PASSWORD_PROP")
|
||||
ConnectionObject.Open "Driver={" & mysqlDriver & "};Server=" & Session.Property("DB_HOST") & ";Port=" & Session.Property("DB_PORT") & ";Uid=" & Session.Property("DB_USER") & ";Pwd=" & Session.Property("DB_PWD")
|
||||
|
||||
If Err.Number <> 0 Then
|
||||
ErrorText = Err.Description
|
||||
|
@ -1,2 +1,4 @@
|
||||
PUSHD %~dp0..
|
||||
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html -r TestsResults
|
||||
set dir=%~dp0..
|
||||
echo %dir%
|
||||
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html --environment "BASE_DIR=%dir%" --results-directory "%dir%/TestsResults"
|
@ -5,4 +5,4 @@ dir=$(builtin cd $rd/../; pwd)
|
||||
|
||||
echo "Root directory:" $dir
|
||||
|
||||
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html -r $dir/TestsResults
|
||||
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir"
|
@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\common\services\ASC.Data.Backup.BackgroundTasks\bin\Debug\ASC.Data.Backup.BackgroundTasks.exe urls=http://0.0.0.0:5032 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=backup.backgroundtasks pathToConf=%cd%\config core:products:folder=%cd%\products
|
||||
set servicepath=%cd%\common\services\ASC.Data.Backup.BackgroundTasks\bin\Debug\ASC.Data.Backup.BackgroundTasks.exe urls=http://0.0.0.0:5032 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=backup.backgroundtasks pathToConf=%cd%\config core:products:folder=%cd%\products core:eventBus:subscriptionClientName=asc_event_bus_backup_queue
|
@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\products\ASC.Files\Service\bin\Debug\ASC.Files.Service.exe urls=http://0.0.0.0:5009 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=files.service pathToConf=%cd%\config core:products:folder=%cd%\products
|
||||
set servicepath=%cd%\products\ASC.Files\Service\bin\Debug\ASC.Files.Service.exe urls=http://0.0.0.0:5009 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=files.service pathToConf=%cd%\config core:products:folder=%cd%\products core:eventBus:subscriptionClientName=asc_event_bus_files_service_queue
|
||||
|
@ -1,4 +0,0 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\common\ASC.Migration\bin\Debug\ASC.Migration.exe urls=http://0.0.0.0:5034 $STORAGE_ROOT=%cd%\Data pathToConf=%cd%\config log:dir=%cd%\Logs log:name=migration core:products:folder=%cd%\products
|
@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\common\services\ASC.Notify\bin\Debug\ASC.Notify.exe urls=http://0.0.0.0:5005 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=notify pathToConf=%cd%\config core:products:folder=%cd%\products
|
||||
set servicepath=%cd%\common\services\ASC.Notify\bin\Debug\ASC.Notify.exe urls=http://0.0.0.0:5005 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=notify pathToConf=%cd%\config core:products:folder=%cd%\products core:eventBus:subscriptionClientName=asc_event_bus_notify_queue
|
@ -1,10 +0,0 @@
|
||||
<service>
|
||||
<id>OnlyofficeRadicale</id>
|
||||
<name>ONLYOFFICE Radicale</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>python</executable>
|
||||
<arguments>-m radicale --config %BASE%/../../config/radicale.config</arguments>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="5 sec" />
|
||||
</service>
|
@ -1,4 +0,0 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\common\services\ASC.TelegramService\bin\Debug\ASC.TelegramService.exe urls=http://0.0.0.0:51702 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=telegram pathToConf=%cd%\config
|
@ -1,10 +0,0 @@
|
||||
<service>
|
||||
<id>OnlyofficeUrlShortenerService</id>
|
||||
<name>ONLYOFFICE UrlShortenerService</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>node</executable>
|
||||
<arguments>../../common/ASC.UrlShortener/index.js</arguments>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="5 sec" />
|
||||
</service>
|
@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\web\ASC.Web.HealthChecks.UI\bin\Debug\ASC.Web.HealthChecks.UI.exe urls=http://0.0.0.0:5027
|
||||
set servicepath=%cd%\web\ASC.Web.HealthChecks.UI\bin\Debug\ASC.Web.HealthChecks.UI.exe urls=http://0.0.0.0:5033
|
@ -1,4 +0,0 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\common\services\ASC.Webhooks.Service\bin\Debug\ASC.Webhooks.Service.exe urls=http://0.0.0.0:5031 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=webhooks pathToConf=%cd%\config core:products:folder=%cd%\products
|
@ -3,8 +3,8 @@
|
||||
|
||||
cd /D "%~dp0"
|
||||
call start\stop.bat nopause
|
||||
dotnet build ..\asc.web.slnf
|
||||
dotnet build ..\asc.web.slnf
|
||||
dotnet build ..\ASC.Migrations.sln
|
||||
PUSHD %~dp0..\common\Tools\ASC.Migration.Runner\bin\Debug\net6.0
|
||||
PUSHD %~dp0..\common\Tools\ASC.Migration.Runner\bin\Debug\net7.0
|
||||
dotnet ASC.Migration.Runner.dll
|
||||
pause
|
@ -9,7 +9,7 @@ echo "Run script directory:" $rd
|
||||
dir=$(builtin cd $rd/../; pwd)
|
||||
echo "Root directory:" $dir
|
||||
|
||||
dotnet build $dir/asc.web.slnf
|
||||
dotnet build $dir/asc.web.slnf
|
||||
dotnet build $dir/ASC.Migrations.sln
|
||||
|
||||
pushd $dir/common/Tools/ASC.Migration.Runner/bin/Debug/net6.0
|
||||
|
@ -10,8 +10,11 @@ const localesDir = join(
|
||||
"locales"
|
||||
);
|
||||
|
||||
//console.log("localesDir", localesDir);
|
||||
|
||||
const getFileList = (dirName) => {
|
||||
let files = [];
|
||||
|
||||
const items = readdirSync(dirName, { withFileTypes: true });
|
||||
|
||||
for (const item of items) {
|
||||
@ -29,6 +32,8 @@ const files = getFileList(localesDir);
|
||||
|
||||
files.forEach((filePath) => {
|
||||
try {
|
||||
if (filePath.endsWith(".DS_Store")) return;
|
||||
|
||||
let content = readFileSync(filePath);
|
||||
writeFileSync(filePath, minifyJson(content, filePath));
|
||||
//console.log(`File '${filePath}' minified`);
|
||||
|
@ -1,7 +0,0 @@
|
||||
PUSHD %~dp0..
|
||||
|
||||
cd %~dp0../../common/ASC.UrlShortener/
|
||||
|
||||
call yarn install --immutable
|
||||
|
||||
POPD
|
16
build/start/change-service-timeout.bat
Normal file
16
build/start/change-service-timeout.bat
Normal file
@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..
|
||||
call runasadmin.bat "%~dpnx0"
|
||||
|
||||
POPD
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
pwsh %~dp0/command.ps1 "increase-service-timeout"
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
if "%1"=="nopause" goto start
|
||||
pause
|
||||
:start
|
@ -2,14 +2,29 @@ $PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object
|
||||
$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object {$_.minor}
|
||||
|
||||
if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) {
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2. Press Enter to exit."
|
||||
Pause
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2."
|
||||
exit
|
||||
}
|
||||
|
||||
$WorkDir = "$(Split-Path -Parent $PSScriptRoot)\run";
|
||||
$CommandName = "$($args[0])";
|
||||
|
||||
if ( $CommandName -eq "increase-service-timeout" ) {
|
||||
$RegistryPath = 'HKLM:\SYSTEM\CurrentControlSet\Control'
|
||||
$Name = 'ServicesPipeTimeout'
|
||||
$Value = '90000'
|
||||
|
||||
Write-Output "Changing service start timeout from default value (30000 ms ) to $($Value) ms"
|
||||
|
||||
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force
|
||||
|
||||
|
||||
Write-Warning "Please, restart the computer for the changes to take effect."
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
|
||||
#Write-Output "Starting $($CommandName) services at time: $(Get-Date -Format HH:mm:ss)"
|
||||
#Write-Output ""
|
||||
|
||||
|
7
build/start/restart.backend.docker.bat
Normal file
7
build/start/restart.backend.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/restart.backend.docker.ps1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
5
build/start/restart.backend.docker.ps1
Normal file
5
build/start/restart.backend.docker.ps1
Normal file
@ -0,0 +1,5 @@
|
||||
# Stop all backend services"
|
||||
& "$PSScriptRoot\stop.backend.docker.ps1"
|
||||
|
||||
# Start all backend services"
|
||||
& "$PSScriptRoot\start.backend.docker.ps1"
|
7
build/start/start.backend.docker.bat
Normal file
7
build/start/start.backend.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/start.backend.docker.ps1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
41
build/start/start.backend.docker.ps1
Normal file
41
build/start/start.backend.docker.ps1
Normal file
@ -0,0 +1,41 @@
|
||||
$PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object { $_.major }
|
||||
$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object { $_.minor }
|
||||
|
||||
if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) {
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2."
|
||||
exit
|
||||
}
|
||||
|
||||
$Branch = git branch --show-current
|
||||
$BranchExistRemote = git ls-remote --heads origin $Branch
|
||||
|
||||
if (-not $BranchExistRemote) {
|
||||
Write-Error "The current branch does not exist in the remote repository. Please push changes."
|
||||
exit
|
||||
}
|
||||
|
||||
$RootDir = Split-Path (Split-Path -Parent $PSScriptRoot) -Parent
|
||||
$DockerDir = ($RootDir + "\build\install\docker")
|
||||
$BuildDate = Get-Date -Format "yyyy-MM-dd"
|
||||
$LocalIp = (Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
|
||||
|
||||
$Doceditor = ($LocalIp + ":5013")
|
||||
$Login = ($LocalIp + ":5011")
|
||||
$Client = ($LocalIp + ":5001")
|
||||
|
||||
$DockerFile = "Dockerfile.dev"
|
||||
$EnvExtension = "dev"
|
||||
$CoreBaseDomain = "localhost"
|
||||
|
||||
Write-Host "Start all backend services (containers)" -ForegroundColor Green
|
||||
$Env:DOCKERFILE = $DockerFile
|
||||
$Env:ROOT_DIR = $RootDir
|
||||
$Env:RELEASE_DATE = $BuildDate
|
||||
$Env:GIT_BRANCH = $Branch
|
||||
$Env:SERVICE_DOCEDITOR = $Doceditor
|
||||
$Env:SERVICE_LOGIN = $Login
|
||||
$Env:SERVICE_CLIENT = $Client
|
||||
$Env:APP_CORE_BASE_DOMAIN = $CoreBaseDomain
|
||||
$Env:APP_URL_PORTAL = ("http://" + $LocalIp + ":8092")
|
||||
$Env:ENV_EXTENSION = $EnvExtension
|
||||
docker compose -f ($DockerDir + "\docspace.dev.yml") up -d
|
@ -9,10 +9,17 @@ echo "Root directory:" $dir
|
||||
|
||||
cd $dir
|
||||
|
||||
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
|
||||
branch=$(git branch --show-current)
|
||||
|
||||
echo "GIT_BRANCH:" $branch
|
||||
|
||||
branch_exist_remote=$(git ls-remote --heads origin $branch)
|
||||
|
||||
if [ -z "$branch_exist_remote" ]; then
|
||||
echo "The current branch does not exist in the remote repository. Please push changes."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $dir/build/install/docker/
|
||||
|
||||
docker_dir="$( pwd )"
|
||||
@ -39,7 +46,7 @@ docker_file=Dockerfile.dev
|
||||
env_extension="dev"
|
||||
core_base_domain="localhost"
|
||||
|
||||
echo "Start all backend services"
|
||||
echo "Start all backend services (containers)"
|
||||
DOCKERFILE=$docker_file \
|
||||
ROOT_DIR=$dir \
|
||||
RELEASE_DATE=$build_date \
|
||||
|
7
build/start/stop.backend.docker.bat
Normal file
7
build/start/stop.backend.docker.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
pwsh %~dp0/stop.backend.docker.ps1
|
||||
|
||||
echo.
|
||||
|
||||
pause
|
17
build/start/stop.backend.docker.ps1
Normal file
17
build/start/stop.backend.docker.ps1
Normal file
@ -0,0 +1,17 @@
|
||||
$PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object { $_.major }
|
||||
$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object { $_.minor }
|
||||
|
||||
if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) {
|
||||
Write-Error "Powershell version must be greater than or equal to 7.2."
|
||||
exit
|
||||
}
|
||||
|
||||
$Containers = docker ps -a -f "name=^onlyoffice" --format="{{.ID}} {{.Names}}" | Select-String -Pattern ("mysql|rabbitmq|redis|elasticsearch|documentserver") -NotMatch | ConvertFrom-String | ForEach-Object P1
|
||||
|
||||
if (-not $Containers) {
|
||||
Write-Host "No containers to stop" -ForegroundColor Blue
|
||||
exit
|
||||
}
|
||||
|
||||
Write-Host "Stop all backend services (containers)" -ForegroundColor Green
|
||||
docker stop $Containers
|
@ -1,23 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
#rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
#echo "Run script directory:" $dir
|
||||
|
||||
#dir=$(builtin cd $rd/../../; pwd)
|
||||
|
||||
#echo "Root directory:" $dir
|
||||
|
||||
#cd $dir/build/install/docker/
|
||||
|
||||
#docker_dir="$( pwd )"
|
||||
|
||||
#echo "Docker directory:" $docker_dir
|
||||
|
||||
echo "Stop all backend containers"
|
||||
# DOCKERFILE=Dockerfile.dev \
|
||||
# docker compose -f docspace.dev.yml down
|
||||
docker stop $(docker ps -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $1}')
|
||||
echo "Remove all backend containers"
|
||||
docker rm -f $(docker ps -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $1}')
|
||||
echo "Remove all backend images"
|
||||
docker rmi -f $(docker images -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $3}')
|
||||
echo "Stop all backend services (containers)"
|
||||
docker stop $(docker ps -a | egrep "onlyoffice" | egrep -v "mysql|rabbitmq|redis|elasticsearch|documentserver" | awk 'NR>0 {print $1}')
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -24,8 +24,6 @@
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
using ASC.Core.Common.EF.Context;
|
||||
|
||||
namespace ASC.ActiveDirectory.Base;
|
||||
|
||||
[Scope]
|
||||
|
@ -364,7 +364,7 @@ public class LdapUserImporter : IDisposable
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool TrySyncUserGroupMembership(Tuple<UserInfo, LdapObject> ldapUserInfo)
|
||||
public async Task<bool> TrySyncUserGroupMembership(Tuple<UserInfo, LdapObject> ldapUserInfo)
|
||||
{
|
||||
if (ldapUserInfo == null ||
|
||||
!Settings.GroupMembership)
|
||||
@ -401,12 +401,12 @@ public class LdapUserImporter : IDisposable
|
||||
groupInfo = UserManager.SaveGroupInfo(_ldapObjectExtension.ToGroupInfo(ldapUserGroup, Settings));
|
||||
|
||||
_logger.DebugTrySyncUserGroupMembershipAddingUserToGroup(userInfo.UserName, ldapUser.Sid, groupInfo.Name, groupInfo.Sid);
|
||||
UserManager.AddUserIntoGroup(userInfo.Id, groupInfo.ID);
|
||||
await UserManager.AddUserIntoGroup(userInfo.Id, groupInfo.ID);
|
||||
}
|
||||
else if (!portalUserLdapGroups.Contains(groupInfo))
|
||||
{
|
||||
_logger.DebugTrySyncUserGroupMembershipAddingUserToGroup(userInfo.UserName, ldapUser.Sid, groupInfo.Name, groupInfo.Sid);
|
||||
UserManager.AddUserIntoGroup(userInfo.Id, groupInfo.ID);
|
||||
await UserManager.AddUserIntoGroup(userInfo.Id, groupInfo.ID);
|
||||
}
|
||||
|
||||
actualPortalLdapGroups.Add(groupInfo);
|
||||
|
@ -136,7 +136,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
InitDisturbedTask();
|
||||
}
|
||||
|
||||
protected override void DoJob()
|
||||
protected override async Task DoJob()
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -206,7 +206,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
Do();
|
||||
await Do();
|
||||
}
|
||||
catch (AuthorizingException authError)
|
||||
{
|
||||
@ -247,7 +247,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
}
|
||||
}
|
||||
|
||||
private void Do()
|
||||
private async Task Do()
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -288,7 +288,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
_logger.DebugLdapSettings(sb.ToString());
|
||||
}
|
||||
|
||||
SyncLDAP();
|
||||
await SyncLDAP();
|
||||
|
||||
if (!string.IsNullOrEmpty(Error))
|
||||
{
|
||||
@ -380,7 +380,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
|
||||
_logger.DebugSaveUserInfo(existingLDAPUser.GetUserInfoString());
|
||||
|
||||
_userManager.SaveUserInfo(existingLDAPUser);
|
||||
_userManager.UpdateUserInfo(existingLDAPUser);
|
||||
break;
|
||||
case LdapOperationType.SaveTest:
|
||||
case LdapOperationType.SyncTest:
|
||||
@ -394,7 +394,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
}
|
||||
}
|
||||
|
||||
private void SyncLDAP()
|
||||
private async Task SyncLDAP()
|
||||
{
|
||||
var currentDomainSettings = _settingsManager.Load<LdapCurrentDomain>();
|
||||
|
||||
@ -408,21 +408,21 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
{
|
||||
_logger.DebugSyncLDAPUsers();
|
||||
|
||||
SyncLDAPUsers();
|
||||
await SyncLDAPUsers();
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.DebugSyncLDAPUsersInGroups();
|
||||
|
||||
SyncLDAPUsersInGroups();
|
||||
await SyncLDAPUsersInGroups();
|
||||
}
|
||||
|
||||
SyncLdapAvatar();
|
||||
await SyncLdapAvatar();
|
||||
|
||||
SyncLdapAccessRights();
|
||||
await SyncLdapAccessRights();
|
||||
}
|
||||
|
||||
private void SyncLdapAvatar()
|
||||
private async Task SyncLdapAvatar()
|
||||
{
|
||||
SetProgress(90, Resource.LdapSettingsStatusUpdatingUserPhotos);
|
||||
|
||||
@ -438,7 +438,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
foreach (var guid in ph.CurrentPhotos.Keys)
|
||||
{
|
||||
_logger.InfoSyncLdapAvatarsRemovingPhoto(guid);
|
||||
_userPhotoManager.RemovePhoto(guid);
|
||||
await _userPhotoManager.RemovePhoto(guid);
|
||||
_userPhotoManager.ResetThumbnailSettings(guid);
|
||||
}
|
||||
|
||||
@ -511,16 +511,16 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
_settingsManager.Save(photoSettings);
|
||||
}
|
||||
|
||||
private void SyncLdapAccessRights()
|
||||
private async Task SyncLdapAccessRights()
|
||||
{
|
||||
SetProgress(95, Resource.LdapSettingsStatusUpdatingAccessRights);
|
||||
|
||||
var currentUserRights = new List<LdapSettings.AccessRight>();
|
||||
TakeUsersRights(_currentUser != null ? currentUserRights : null);
|
||||
await TakeUsersRights(_currentUser != null ? currentUserRights : null);
|
||||
|
||||
if (LDAPSettings.GroupMembership && LDAPSettings.AccessRights != null && LDAPSettings.AccessRights.Count > 0)
|
||||
{
|
||||
GiveUsersRights(LDAPSettings.AccessRights, _currentUser != null ? currentUserRights : null);
|
||||
await GiveUsersRights(LDAPSettings.AccessRights, _currentUser != null ? currentUserRights : null);
|
||||
}
|
||||
|
||||
if (currentUserRights.Count > 0)
|
||||
@ -531,7 +531,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
_settingsManager.Save(LDAPSettings);
|
||||
}
|
||||
|
||||
private void TakeUsersRights(List<LdapSettings.AccessRight> currentUserRights)
|
||||
private async Task TakeUsersRights(List<LdapSettings.AccessRight> currentUserRights)
|
||||
{
|
||||
var current = _settingsManager.Load<LdapCurrentAcccessSettings>();
|
||||
|
||||
@ -558,7 +558,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
else
|
||||
{
|
||||
_logger.DebugTakingAdminRights(right.Key, user);
|
||||
_webItemSecurity.SetProductAdministrator(LdapSettings.AccessRightsGuids[right.Key], userId, false);
|
||||
await _webItemSecurity.SetProductAdministrator(LdapSettings.AccessRightsGuids[right.Key], userId, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -567,7 +567,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
_settingsManager.Save(current);
|
||||
}
|
||||
|
||||
private void GiveUsersRights(Dictionary<LdapSettings.AccessRight, string> accessRightsSettings, List<LdapSettings.AccessRight> currentUserRights)
|
||||
private async Task GiveUsersRights(Dictionary<LdapSettings.AccessRight, string> accessRightsSettings, List<LdapSettings.AccessRight> currentUserRights)
|
||||
{
|
||||
var current = _settingsManager.Load<LdapCurrentAcccessSettings>();
|
||||
var currentAccessRights = new Dictionary<LdapSettings.AccessRight, List<string>>();
|
||||
@ -618,7 +618,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
if (_webItemSecurity.IsProductAdministrator(prodId, user.Id))
|
||||
{
|
||||
cleared = true;
|
||||
_webItemSecurity.SetProductAdministrator(prodId, user.Id, false);
|
||||
await _webItemSecurity.SetProductAdministrator(prodId, user.Id, false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -636,7 +636,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
|
||||
SetProgress((int)currentPercent,
|
||||
string.Format(Resource.LdapSettingsStatusGivingRights, _userFormatter.GetUserName(user, DisplayUserNameFormat.Default), access.Key));
|
||||
_webItemSecurity.SetProductAdministrator(LdapSettings.AccessRightsGuids[access.Key], user.Id, true);
|
||||
await _webItemSecurity.SetProductAdministrator(LdapSettings.AccessRightsGuids[access.Key], user.Id, true);
|
||||
|
||||
if (currentUserRights != null && currentUserRights.Contains(access.Key))
|
||||
{
|
||||
@ -651,7 +651,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
_settingsManager.Save(current);
|
||||
}
|
||||
|
||||
private void SyncLDAPUsers()
|
||||
private async Task SyncLDAPUsers()
|
||||
{
|
||||
SetProgress(15, Resource.LdapSettingsStatusGettingUsersFromLdap);
|
||||
|
||||
@ -675,14 +675,14 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
: Resource.LdapSettingsStatusSyncingUsers,
|
||||
"");
|
||||
|
||||
SyncDbUsers(ldapUsers);
|
||||
await SyncDbUsers(ldapUsers);
|
||||
|
||||
SetProgress(70, Resource.LdapSettingsStatusRemovingOldGroups, "");
|
||||
|
||||
RemoveOldDbGroups(new List<GroupInfo>()); // Remove all db groups with sid
|
||||
}
|
||||
|
||||
private void SyncLDAPUsersInGroups()
|
||||
private async Task SyncLDAPUsersInGroups()
|
||||
{
|
||||
SetProgress(15, Resource.LdapSettingsStatusGettingGroupsFromLdap);
|
||||
|
||||
@ -717,11 +717,11 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
: Resource.LdapSettingsStatusSyncingUsers,
|
||||
"");
|
||||
|
||||
var newUniqueLdapGroupUsers = SyncGroupsUsers(uniqueLdapGroupUsers);
|
||||
var newUniqueLdapGroupUsers = await SyncGroupsUsers(uniqueLdapGroupUsers);
|
||||
|
||||
SetProgress(60, Resource.LdapSettingsStatusSavingGroups, "");
|
||||
|
||||
SyncDbGroups(ldapGroupsUsers);
|
||||
await SyncDbGroups(ldapGroupsUsers);
|
||||
|
||||
SetProgress(80, Resource.LdapSettingsStatusRemovingOldGroups, "");
|
||||
|
||||
@ -732,7 +732,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
RemoveOldDbUsers(newUniqueLdapGroupUsers);
|
||||
}
|
||||
|
||||
private void SyncDbGroups(Dictionary<GroupInfo, List<UserInfo>> ldapGroupsWithUsers)
|
||||
private async Task SyncDbGroups(Dictionary<GroupInfo, List<UserInfo>> ldapGroupsWithUsers)
|
||||
{
|
||||
const double percents = 20;
|
||||
|
||||
@ -765,18 +765,18 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
|
||||
if (Equals(dbLdapGroup, Constants.LostGroupInfo))
|
||||
{
|
||||
AddNewGroup(ldapGroup, ldapGroupUsers, gIndex, gCount);
|
||||
await AddNewGroup(ldapGroup, ldapGroupUsers, gIndex, gCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateDbGroup(dbLdapGroup, ldapGroup, ldapGroupUsers, gIndex, gCount);
|
||||
await UpdateDbGroup(dbLdapGroup, ldapGroup, ldapGroupUsers, gIndex, gCount);
|
||||
}
|
||||
|
||||
percentage += step;
|
||||
}
|
||||
}
|
||||
|
||||
private void AddNewGroup(GroupInfo ldapGroup, List<UserInfo> ldapGroupUsers, int gIndex, int gCount)
|
||||
private async Task AddNewGroup(GroupInfo ldapGroup, List<UserInfo> ldapGroupUsers, int gIndex, int gCount)
|
||||
{
|
||||
if (!ldapGroupUsers.Any()) // Skip empty groups
|
||||
{
|
||||
@ -815,7 +815,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
++index, count,
|
||||
_userFormatter.GetUserName(userBySid, DisplayUserNameFormat.Default)));
|
||||
|
||||
_userManager.AddUserIntoGroup(userBySid.Id, ldapGroup.ID);
|
||||
await _userManager.AddUserIntoGroup(userBySid.Id, ldapGroup.ID);
|
||||
}
|
||||
break;
|
||||
case LdapOperationType.SaveTest:
|
||||
@ -846,7 +846,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
return needUpdate;
|
||||
}
|
||||
|
||||
private void UpdateDbGroup(GroupInfo dbLdapGroup, GroupInfo ldapGroup, List<UserInfo> ldapGroupUsers, int gIndex,
|
||||
private async Task UpdateDbGroup(GroupInfo dbLdapGroup, GroupInfo ldapGroup, List<UserInfo> ldapGroupUsers, int gIndex,
|
||||
int gCount)
|
||||
{
|
||||
SetProgress(currentSource:
|
||||
@ -911,7 +911,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
++index, count,
|
||||
_userFormatter.GetUserName(userInfo, DisplayUserNameFormat.Default)));
|
||||
|
||||
_userManager.AddUserIntoGroup(userInfo.Id, dbLdapGroup.ID);
|
||||
await _userManager.AddUserIntoGroup(userInfo.Id, dbLdapGroup.ID);
|
||||
}
|
||||
|
||||
if (dbGroupMembers.All(dbUser => groupMembersToRemove.Exists(u => u.Id.Equals(dbUser.Id)))
|
||||
@ -965,7 +965,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
return foundUser;
|
||||
}
|
||||
|
||||
private void SyncDbUsers(List<UserInfo> ldapUsers)
|
||||
private async Task SyncDbUsers(List<UserInfo> ldapUsers)
|
||||
{
|
||||
const double percents = 35;
|
||||
|
||||
@ -992,12 +992,11 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
{
|
||||
case LdapOperationType.Save:
|
||||
case LdapOperationType.Sync:
|
||||
_lDAPUserManager.SyncLDAPUser(userInfo, ldapUsers);
|
||||
await _lDAPUserManager.SyncLDAPUser(userInfo, ldapUsers);
|
||||
break;
|
||||
case LdapOperationType.SaveTest:
|
||||
case LdapOperationType.SyncTest:
|
||||
LdapChangeCollection changes;
|
||||
_lDAPUserManager.GetLDAPSyncUserChange(userInfo, ldapUsers, out changes);
|
||||
var changes = (await _lDAPUserManager.GetLDAPSyncUserChange(userInfo, ldapUsers)).LdapChangeCollection;
|
||||
_ldapChanges.AddRange(changes);
|
||||
break;
|
||||
default:
|
||||
@ -1065,7 +1064,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
|
||||
_logger.DebugSaveUserInfo(removedUser.GetUserInfoString());
|
||||
|
||||
_userManager.SaveUserInfo(removedUser);
|
||||
_userManager.UpdateUserInfo(removedUser);
|
||||
break;
|
||||
case LdapOperationType.SaveTest:
|
||||
case LdapOperationType.SyncTest:
|
||||
@ -1129,7 +1128,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
}
|
||||
}
|
||||
|
||||
private List<UserInfo> SyncGroupsUsers(List<UserInfo> uniqueLdapGroupUsers)
|
||||
private async Task<List<UserInfo>> SyncGroupsUsers(List<UserInfo> uniqueLdapGroupUsers)
|
||||
{
|
||||
const double percents = 30;
|
||||
|
||||
@ -1157,7 +1156,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
{
|
||||
case LdapOperationType.Save:
|
||||
case LdapOperationType.Sync:
|
||||
user = _lDAPUserManager.SyncLDAPUser(ldapGroupUser, uniqueLdapGroupUsers);
|
||||
user = await _lDAPUserManager.SyncLDAPUser(ldapGroupUser, uniqueLdapGroupUsers);
|
||||
if (!Equals(user, Constants.LostUser))
|
||||
{
|
||||
newUniqueLdapGroupUsers.Add(user);
|
||||
@ -1165,8 +1164,9 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
break;
|
||||
case LdapOperationType.SaveTest:
|
||||
case LdapOperationType.SyncTest:
|
||||
LdapChangeCollection changes;
|
||||
user = _lDAPUserManager.GetLDAPSyncUserChange(ldapGroupUser, uniqueLdapGroupUsers, out changes);
|
||||
var wrapper = await _lDAPUserManager.GetLDAPSyncUserChange(ldapGroupUser, uniqueLdapGroupUsers);
|
||||
user = wrapper.UserInfo;
|
||||
var changes = wrapper.LdapChangeCollection;
|
||||
if (!Equals(user, Constants.LostUser))
|
||||
{
|
||||
newUniqueLdapGroupUsers.Add(user);
|
||||
|
@ -51,11 +51,13 @@ global using ASC.ActiveDirectory.Novell;
|
||||
global using ASC.ActiveDirectory.Novell.Data;
|
||||
global using ASC.ActiveDirectory.Novell.Exceptions;
|
||||
global using ASC.ActiveDirectory.Novell.Extensions;
|
||||
global using ASC.ActiveDirectory.Wrapper;
|
||||
global using ASC.Common;
|
||||
global using ASC.Common.Security.Authorizing;
|
||||
global using ASC.Common.Threading;
|
||||
global using ASC.Core;
|
||||
global using ASC.Core.Common.EF;
|
||||
global using ASC.Core.Common.EF.Context;
|
||||
global using ASC.Core.Common.Settings;
|
||||
global using ASC.Core.Tenants;
|
||||
global using ASC.Core.Users;
|
||||
@ -69,7 +71,6 @@ global using ASC.Web.Core;
|
||||
global using ASC.Web.Core.PublicResources;
|
||||
global using ASC.Web.Core.Quota;
|
||||
global using ASC.Web.Core.Users;
|
||||
global using ASC.Web.Core.Utility;
|
||||
global using ASC.Web.Studio.Utility;
|
||||
|
||||
global using Microsoft.EntityFrameworkCore;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user