Compare commits

..

5 Commits

23 changed files with 185 additions and 242 deletions

15
.env
View File

@@ -1,15 +0,0 @@
ALFRESCO_DIR=~/alfresco
ALFRESCO_LICENSE_DIR=~/alfresco/license
PROXY_PROTOCOL=http
PROXY_HOST=localhost
PROXY_PORT=8080
ACS_TAG=7.4.1.1
ATR_TAG=3.0.0
ATE_AIO_TAG=4.0.0
ASFS_TAG=3.0.0
AAMQ_TAG=latest
POSTGRES_TAG=13
ASIE_TAG=2.0.8.2
ALF_SYNC_SERV_TAG=3.9.0

View File

@@ -3,11 +3,3 @@
This Git Repository intends to represent environments in Docker Compose. All environments are effectively a derivative of other environments. The original environment is the environment represented by the `base` branch. All derivative environments are represented by other branches. Those branches are named in the format `{core}.{parent}`. This Git Repository intends to represent environments in Docker Compose. All environments are effectively a derivative of other environments. The original environment is the environment represented by the `base` branch. All derivative environments are represented by other branches. Those branches are named in the format `{core}.{parent}`.
## Licensing
This version of Alfresco requires licensing.
### ACS Enterprise
The enterprise version of ACS requires a license file for it to work for more than 2 days. This means it isn't really required, but it is becomes important when you utilize any `persist` branch. For licensing to work, you must place your license file in the following directory relative to the user home directory that runs the Docker Compose command: `alfresco/license/acs`. There must be just one file in there that ends in `.lic`.

View File

@@ -1,142 +1,5 @@
# Originally sourced from https://github.com/Alfresco/acs-deployment/blob/4.0.3/docker-compose/docker-compose.yml # Sourced from https://github.com/Alfresco/acs-deployment/blob/4.0.3/docker-compose/docker-compose.yml
# #
version: "3" # Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"
services:
platform:
image: quay.io/alfresco/alfresco-governance-repository-enterprise:${ACS_TAG}
environment:
JAVA_TOOL_OPTIONS: "
-Dencryption.keystore.type=JCEKS
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
-Dencryption.keyAlgorithm=DESede
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
-Dmetadata-keystore.password=mp6yc0UD9e
-Dmetadata-keystore.aliases=metadata
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
-Dmetadata-keystore.metadata.algorithm=DESede
"
JAVA_OPTS: "
-Xms512m -Xmx1g
-Ddb.driver=org.postgresql.Driver
-Ddb.username=alfresco
-Ddb.password=alfresco
-Ddb.url=jdbc:postgresql://postgres-acs:5432/alfresco
-Dindex.subsystem.name=solr6
-Dsolr.host=search
-Dsolr.secureComms=secret
-Dsolr.sharedSecret=alfresco-secret
-Dalfresco.host=${PROXY_HOST}
-Dalfresco.port=${PROXY_PORT}
-Dalfresco.protocol=${PROXY_PROTOCOL}
-Daos.baseUrlOverwrite=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/alfresco/aos
-Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
-Ddeployment.method=DOCKER_COMPOSE
-Dcsrf.filter.enabled=false
-Dcors.enabled=false
-Dtransform.service.enabled=true
-Dtransform.service.url=http://transform-router:8095
-Dsfs.url=http://shared-file-store:8099
-Dlocal.transform.service.enabled=true
-Dalfresco-pdf-renderer.url=http://transform-engine-aio:8090
-Djodconverter.url=http://transform-engine-aio:8090
-Dimg.url=http://transform-engine-aio:8090
-Dtika.url=http://transform-engine-aio:8090
-Dtransform.misc.url=http://transform-engine-aio:8090
-Ddsync.service.uris=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/sync
-Dsystem.content.eagerOrphanCleanup=true
-Dsystem.content.orphanProtectDays=0
-Djodconverter.enabled=false
"
depends_on:
- postgres-acs
- activemq
- shared-file-store
volumes:
- "$ALFRESCO_LICENSE_DIR/acs:/usr/local/tomcat/shared/classes/alfresco/extension/license:ro"
transform-router:
image: quay.io/alfresco/alfresco-transform-router:${ATR_TAG}
environment:
ACTIVEMQ_URL: "nio://activemq:61616"
CORE_AIO_URL : "http://transform-core-aio:8090"
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
depends_on:
- activemq
- shared-file-store
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:${ATE_AIO_TAG}
environment:
ACTIVEMQ_URL: "nio://activemq:61616"
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
depends_on:
- activemq
- shared-file-store
shared-file-store:
image: quay.io/alfresco/alfresco-shared-file-store:${ASFS_TAG}
volumes:
- shared-file-store-volume:/tmp/Alfresco/sfs
postgres-acs:
image: postgres:${POSTGRES_TAG}
environment:
POSTGRES_PASSWORD: alfresco
POSTGRES_USER: alfresco
POSTGRES_DB: alfresco
command: postgres -c max_connections=300 -c log_min_messages=LOG
search:
image: alfresco/alfresco-search-services:${ASIE_TAG}
environment:
SOLR_ALFRESCO_HOST: platform
SOLR_SOLR_HOST: search
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
ALFRESCO_SECURE_COMMS: secret
JAVA_TOOL_OPTIONS: "
-Dalfresco.secureComms.secret=alfresco-secret
"
healthcheck:
test: "curl -fsS http://localhost:8983/solr"
activemq:
image: alfresco/alfresco-activemq:${AAMQ_TAG}
environment:
ACTIVEMQ_OPTS_MEMORY: -Xms64m -Xmx256m
ACTIVEMQ_ADMIN_LOGIN: alfresco
ACTIVEMQ_ADMIN_PASSWORD: alfresco
sync:
image: quay.io/alfresco/service-sync:${ALF_SYNC_SERV_TAG}
environment:
JAVA_OPTS : "
-Xms64m -Xmx256m
-Dsql.db.driver=org.postgresql.Driver
-Dsql.db.url=jdbc:postgresql://postgres-acs:5432/alfresco
-Dsql.db.username=alfresco
-Dsql.db.password=alfresco
-Dmessaging.broker.host=activemq
-Drepo.hostname=platform
-Drepo.port=8080
-Ddw.server.applicationConnectors[0].type=http
"
depends_on:
- postgres-acs
- activemq
proxy:
build: ./nginx-ingress
image: local/nginx-ingress:acs-sync
ports:
- 8080:8080
depends_on:
- platform
- sync
volumes:
shared-file-store-volume:
driver_opts:
type: tmpfs
device: tmpfs

View File

@@ -1,8 +0,0 @@
FROM nginx:stable-alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]

View File

@@ -1,15 +0,0 @@
#!/bin/sh
if [[ $ACS_PLATFORM_URL ]]; then
sed -i s%http:\/\/platform:8080%"$ACS_PLATFORM_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ACS_SYNC_URL ]]; then
sed -i s%http:\/\/sync:9090%"$ACS_SYNC_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ACCESS_LOG ]]; then
sed -i s%\#ENV_ACCESS_LOG%"access_log $ACCESS_LOG;"%g /etc/nginx/nginx.conf
fi
nginx -g "daemon off;"

View File

@@ -1,56 +0,0 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen *:8080;
client_max_body_size 0;
set $allowOriginSite *;
proxy_pass_request_headers on;
proxy_pass_header Set-Cookie;
# External settings, do not remove
#ENV_ACCESS_LOG
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_header Set-Cookie;
# Protect access to SOLR APIs
location ~ ^(/.*/service/api/solr/.*)$ {return 403;}
location ~ ^(/.*/s/api/solr/.*)$ {return 403;}
location ~ ^(/.*/wcservice/api/solr/.*)$ {return 403;}
location ~ ^(/.*/wcs/api/solr/.*)$ {return 403;}
location ~ ^(/.*/proxy/alfresco/api/solr/.*)$ {return 403 ;}
location ~ ^(/.*/-default-/proxy/alfresco/api/.*)$ {return 403;}
# Protect access to Prometheus endpoint
location ~ ^(/.*/s/prometheus)$ {return 403;}
location / {
proxy_pass http://platform:8080;
}
location /alfresco/ {
proxy_pass http://platform:8080;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
location /sync/ {
proxy_pass http://sync:9090/alfresco/;
}
}
}

View File

@@ -0,0 +1,8 @@
REM Usage: .\download-maven-alfresco-private.bat org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=https://artifacts.alfresco.com/nexus/content/groups/private
call "%THISDIR%\download-maven.bat" %MAVEN_BASEURL% %*

View File

@@ -0,0 +1,6 @@
# Usage: .\download-maven-alfresco-private.ps1 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL="https://artifacts.alfresco.com/nexus/content/groups/private"
Invoke-Expression "& '${THISDIR}\download-maven.ps1' '${MAVEN_BASEURL}' $args"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-alfresco-private.sh org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEDIR="https://artifacts.alfresco.com/nexus/content/groups/private"
${THISDIR}/download-maven.sh "${MAVEN_BASEDIR}" $*

View File

@@ -0,0 +1,8 @@
REM Usage: .\download-maven-alfresco-public.bat org/maven/group/path maven-artifact-id 1.2.3 jar
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=https://artifacts.alfresco.com/nexus/content/groups/public
call "%THISDIR%\download-maven.bat" %MAVEN_BASEURL% %*

View File

@@ -0,0 +1,6 @@
# Usage: .\download-maven-alfresco-public.ps1 org/maven/group/path maven-artifact-id 1.2.3 jar
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL="https://artifacts.alfresco.com/nexus/content/groups/public"
Invoke-Expression "& '${THISDIR}\download-maven.ps1' '${MAVEN_BASEURL}' $args"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-alfresco-public.sh org/maven/group/path maven-artifact-id 1.2.3 jar
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEDIR="https://artifacts.alfresco.com/nexus/content/groups/public"
${THISDIR}/download-maven.sh "${MAVEN_BASEDIR}" $*

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-inteligr8-private.sh org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL="http://repos.yateslong.us/nexus/repository/inteligr8"
${THISDIR}/download-maven.sh "${MAVEN_BASEURL}" $*

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-inteligr8-public.sh org/maven/group/path maven-artifact-id 1.2.3 jar
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL="http://repos.yateslong.us/nexus/repositories/inteligr8-public"
${THISDIR}/download-maven.sh "${MAVEN_BASEURL}" $*

View File

@@ -0,0 +1,18 @@
REM Usage: .\download-maven.bat https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
REM Usage: .\download-maven.bat https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=%1
set MAVEN_GROUP_PATH=%2
set MAVEN_ARTIFACT_ID=%3
set MAVEN_ARTIFACT_VERSION=%4
set MAVEN_PACKAGING=%5
set HTTP_USERNAME=%6
set HTTP_PASSWORD=%7
set MAVEN_ARTIFACT_FILENAME=%MAVEN_ARTIFACT_ID%-%MAVEN_ARTIFACT_VERSION%.%MAVEN_PACKAGING%
set MAVEN_URL=%MAVEN_BASEURL%/%MAVEN_GROUP_PATH%/%MAVEN_ARTIFACT_ID%/%MAVEN_ARTIFACT_VERSION%/%MAVEN_ARTIFACT_FILENAME%
call "%THISDIR%\download-url.bat" %MAVEN_URL% %MAVEN_ARTIFACT_FILENAME% %HTTP_USERNAME% %HTTP_PASSWORD%

View File

@@ -0,0 +1,16 @@
# Usage: .\download-maven.ps1 https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
# Usage: .\download-maven.ps1 https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL=$args[0]
$MAVEN_GROUP_PATH=$args[1]
$MAVEN_ARTIFACT_ID=$args[2]
$MAVEN_ARTIFACT_VERSION=$args[3]
$MAVEN_PACKAGING=$args[4]
$HTTP_USERNAME=$args[5]
$HTTP_PASSWORD=$args[6]
$MAVEN_ARTIFACT_FILENAME="${MAVEN_ARTIFACT_ID}-${MAVEN_ARTIFACT_VERSION}.${MAVEN_PACKAGING}"
$MAVEN_URL="${MAVEN_BASEURL}/${MAVEN_GROUP_PATH}/${MAVEN_ARTIFACT_ID}/${MAVEN_ARTIFACT_VERSION}/${MAVEN_ARTIFACT_FILENAME}"
Invoke-Expression "& '${THISDIR}\download-url.ps1' '${MAVEN_URL}' '${MAVEN_ARTIFACT_FILENAME}' '${HTTP_USERNAME}' '${HTTP_PASSWORD}'"

18
scripts/download-maven.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
# Usage: ./download-maven.sh https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
# Usage: ./download-maven.sh https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL=$1
MAVEN_GROUP_PATH=$2
MAVEN_ARTIFACT_ID=$3
MAVEN_ARTIFACT_VERSION=$4
MAVEN_PACKAGING=$5
HTTP_USERNAME=$6
HTTP_PASSWORD=$7
MAVEN_ARTIFACT_FILENAME=${MAVEN_ARTIFACT_ID}-${MAVEN_ARTIFACT_VERSION}.${MAVEN_PACKAGING}
MAVEN_URL=${MAVEN_BASEURL}/${MAVEN_GROUP_PATH}/${MAVEN_ARTIFACT_ID}/${MAVEN_ARTIFACT_VERSION}/${MAVEN_ARTIFACT_FILENAME}
echo $MAVEN_URL
${THISDIR}/download-url.sh "${MAVEN_URL}" "${MAVEN_ARTIFACT_FILENAME}" "${HTTP_USERNAME}" "${HTTP_PASSWORD}"

13
scripts/download-url.bat Normal file
View File

@@ -0,0 +1,13 @@
REM Usage: .\download.bat https://www.a.url/to/download filename_for_downloaded.file
REM Usage: .\download.bat https://www.a.url/to/download filename_for_downloaded.file a_username a_password
@echo off
set URL=%1
set FILENAME=%2
if NOT "%~3" == "" (
set USERNAME=%3
set PASSWORD=%4
curl -L -o %FILENAME% -u %USERNAME%:%PASSWORD% %URL%
) else (
curl -L -o %FILENAME% %URL%
)

16
scripts/download-url.ps1 Normal file
View File

@@ -0,0 +1,16 @@
# Usage: .\download.ps1 https://www.a.url/to/download filename_for_downloaded.file
# Usage: .\download.ps1 https://www.a.url/to/download filename_for_downloaded.file a_username a_password
$URL=$args[0]
$FILENAME=$args[1]
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if ($args.count -gt 2) {
$USERNAME=$args[2]
$PASSWORD=$args[3]
$AUTH_PAIR=[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($USERNAME):$($PASSWORD)"))
$AUTH_HEADERS=@{Authorization="Basic $AUTH_PAIR"}
Invoke-WebRequest -Uri "${URL}" -OutFile "${FILENAME}" -Headers ${AUTH_HEADERS}
} else {
Invoke-WebRequest -Uri "${URL}" -OutFile "${FILENAME}"
}

13
scripts/download-url.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
# Usage: ./download.sh https://www.a.url/to/download filename_for_downloaded.file
# Usage: ./download.sh https://www.a.url/to/download filename_for_downloaded.file a_username a_password
URL=$1
FILENAME=$2
if [ "$#" -gt 2 ]; then
USERNAME=$3
PASSWORD=$4
curl -L -o "${FILENAME}" -u "${USERNAME}:${PASSWORD}" ${URL}
else
curl -L -o "${FILENAME}" ${URL}
fi

11
scripts/unpack.bat Normal file
View File

@@ -0,0 +1,11 @@
REM Usage: .\unpack.bat filename.zip
REM Usage: .\unpack.bat filename.zip c:\
@echo off
set FILENAME=%1
if NOT "%~2" == "" (
set DESTPATH=%2
powershell -command "Expand-Archive -Force -Path '%FILENAME%' -DestinationPath '%DESTPATH%'"
) else (
powershell -command "Expand-Archive -Force -Path '%FILENAME%' -DestinationPath '%~dp0'"
)

10
scripts/unpack.ps1 Normal file
View File

@@ -0,0 +1,10 @@
# Usage: .\unpack.ps1 filename.zip
# Usage: .\unpack.ps1 filename.zip c:\
$FILENAME=$args[0]
if ($args.count -gt 1) {
$DESTPATH=$args[1]
Expand-Archive -Force -Path "${FILENAME}" -DestinationPath "${DESTPATH}"
} else {
Expand-Archive -Force -Path "${FILENAME}"
}

11
scripts/unpack.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
# Usage: ./unpack.sh filename.zip
# Usage: ./unpack.sh filename.zip /home/user
FILENAME=$1
if [ "$#" -gt 1 ]; then
DESTPATH=$2
unzip -d ${DESTPATH} ${FILENAME}
else
unzip ${FILENAME}
fi