Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
9c36e56
add roaster
fmacca May 21, 2026
8310ff0
factorize roaster version
fmacca May 21, 2026
4fdf839
Bump benjlevesque/short-sha from 3.0 to 4.0 (#675)
dependabot[bot] Jun 15, 2026
f43c01e
Bump actions/add-to-project from 1.0.2 to 2.0.0 (#674)
dependabot[bot] Jun 15, 2026
7a18640
Merge branch 'develop' into roaster-dependency
fmacca Jun 17, 2026
809c33d
Add Roaster as a dependency (#676)
fmacca Jun 17, 2026
91c9e2b
Bump actions/checkout from 6 to 7 (#677)
dependabot[bot] Jun 22, 2026
667510e
Merge main in develop (#670)
daniel-jettka Apr 15, 2026
b383f68
docker-compose: remove trailing whitespaces
bwbohl Sep 24, 2025
d82bf36
Create Dockerfile
bwbohl Feb 6, 2026
7355d2e
Create advanced-developer-options.md
bwbohl Feb 6, 2026
04792ab
builder/Dockerfile: use Java 8 for Sencha Cmd compatibility
bwbohl Feb 9, 2026
7a28fab
Use shared builder in frontend and backend images
bwbohl Feb 9, 2026
dec89a4
Create Dockerfile.local
bwbohl Feb 10, 2026
22e8f20
Update Dockerfile
bwbohl Feb 10, 2026
3962b11
Update Dockerfile.local
bwbohl Feb 10, 2026
ea56a4e
Update Dockerfile
bwbohl Feb 10, 2026
b71bc69
Create Dockerfile.local
bwbohl Feb 10, 2026
6c03d52
Update advanced-developer-options.md
bwbohl Feb 10, 2026
525a7d5
backend local source: copy autodeploy from backend service context
bwbohl Mar 3, 2026
9c0fbdc
builder/Dockerfile: use BuildKit cache mounts for downloads
bwbohl Mar 3, 2026
1739e81
docker-compose: add default profile to regular services
bwbohl Mar 3, 2026
0bd27cf
docker-compose: add interactive builder, and local profiles for front…
bwbohl Mar 3, 2026
39178c9
docker-compose: add usage comment
bwbohl Mar 3, 2026
c193206
docker-compose: apply consistent formatting
bwbohl Mar 3, 2026
9f81daa
docs: modernise BuildKit requirement in advance developer options
bwbohl Mar 3, 2026
8f091d1
docs: advance developer options – add hint to build builder when buid…
bwbohl Mar 3, 2026
07abc09
README: update Fast-lane installation
bwbohl Mar 3, 2026
44943ac
README: update step-by-step installation guide
bwbohl Mar 3, 2026
d7a0823
docs: advanced developer option – update local frontend info
bwbohl Mar 3, 2026
4cc5757
docs: advanced developer options – update section on local backend
bwbohl Mar 3, 2026
4cf05a8
docs: advanced developer options – update section on full stack devel…
bwbohl Mar 3, 2026
363782f
docs: advanced developer options – add comment in bash example
bwbohl Mar 3, 2026
9db34cf
docs: advanced developer options – update Combined interactive builde…
bwbohl Mar 3, 2026
fe1feaa
docs: advanced developer options – update section on download cache
bwbohl Mar 3, 2026
e98c1ba
fix typo
bwbohl Mar 4, 2026
4fad026
advanced developer options: deploying backend changes – remove option 2
bwbohl Mar 4, 2026
017c58e
docker-compose: remove buggy self-reference
bwbohl Mar 4, 2026
fd8bcfa
README: remove trailing whitespaces
bwbohl Mar 4, 2026
6f96620
README: add references to advanced developer options
bwbohl Mar 9, 2026
02f70d5
docker-compose: add profile `local-fullstack`
bwbohl Mar 9, 2026
7710b07
advanced-developer-options: add shortdescription of default profile
bwbohl Mar 9, 2026
5fb7423
advanced-developer-optinons: improve prifles overview
bwbohl Mar 9, 2026
9bd81e0
advanced-developer-option: rephrase docs on local-fronted profile
bwbohl Mar 9, 2026
f3ab229
advanced-developer-option: rephrase docs on local-backend profile
bwbohl Mar 9, 2026
c158956
advanced-developer-option: docs on local-fullstack
bwbohl Mar 9, 2026
f502d6c
advanced-developer-option: rework docs on Shared Builder Architecture
bwbohl Mar 9, 2026
2c785d7
docker compose: convert builder dependency to note
bwbohl Mar 9, 2026
21bee59
Create builder/eo – Edirom Onkin builder task runner script
bwbohl Mar 9, 2026
eac6435
builder: Copy eo-taskrunner script
bwbohl Mar 9, 2026
aef7029
advanced-developer-options: document end-user deployment method via b…
bwbohl Mar 9, 2026
c3369b4
docs/eo-task-runner: documentation for interactive builder script
bwbohl Mar 9, 2026
539f25f
advanced-developer-options: update frontend container rebuild command
bwbohl Mar 9, 2026
36e058c
advanced-developer-options: rewrite section on deploying backend changes
bwbohl Mar 9, 2026
96196f1
advanced-developer-options: add not to manual XAR deployment
bwbohl Mar 9, 2026
4c110f7
advanced-developer-options: graphical formatting deployment method he…
bwbohl Mar 9, 2026
0443631
advanced-developer-options: remove quick-reference ad troubleshooting
bwbohl Mar 9, 2026
eed569b
advanced-develoer-options: add prerequisites to fullstack profile
bwbohl Mar 9, 2026
0e36233
advanced-developer-options: formatting
bwbohl Mar 9, 2026
72a7c5a
advanced-developer-options: add todo
bwbohl Mar 9, 2026
7d2e9e4
README: remove deprecated note
bwbohl Mar 9, 2026
ad3e6a4
backend local: remove all existing XARs before rebuilding to avoid fa…
bwbohl Mar 9, 2026
6d41e67
apply consistent naming schemes for services, images, containers and …
bwbohl Mar 9, 2026
c732e21
builder eo script: use new build command
bwbohl Mar 24, 2026
81de2f2
buld eo sript: fix EXIST_URL
bwbohl Mar 24, 2026
c473bc9
builder script eo: increase verbosity options
bwbohl Mar 24, 2026
ae84f0c
frontend/Dockerfile.local: align with frontend/Dockerfile
bwbohl Mar 25, 2026
898358a
docker-compose: remove local services `extends` dependency to default…
bwbohl Mar 25, 2026
e5a78c7
README: fix build commands to match the changed service names
bwbohl Mar 25, 2026
df29c43
README: improve verbosity of build description
bwbohl Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/add-new-issues-and-prs-to-project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v1.0.2
- uses: actions/add-to-project@v2.0.0
with:
project-url: https://github.com/orgs/Edirom/projects/4
github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }}
10 changes: 5 additions & 5 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
submodules: 'recursive'

- name: Get short sha
uses: benjlevesque/short-sha@v3.0
uses: benjlevesque/short-sha@v4.0
id: short-sha
with:
length: 7
Expand Down Expand Up @@ -55,7 +55,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Install libsaxonhe-java for XQuery support
run: |
sudo apt-get update
Expand All @@ -70,7 +70,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Install libxml2-utils for xmllint
run: |
sudo apt-get update
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Delete dev-release
run: gh release delete dev --cleanup-tag -y
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-citation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Update or add commit and date-released fields
run: |
Expand Down
114 changes: 68 additions & 46 deletions README.md

Large diffs are not rendered by default.

39 changes: 11 additions & 28 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,12 @@
# 1. Build Environment
#########################

FROM eclipse-temurin:21 as builder
FROM edirom-online-builder:latest AS eo-builder

ARG ANT_VERSION=1.10.12
ARG SOURCE=https://github.com/Edirom/Edirom-Online-Backend.git
ARG BRANCH=v1.3.0
ARG EDITION


# Install wget and unzip and ruby and other dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
sudo \
wget \
git \
unzip \
libfreetype6 \
fontconfig \
&& rm -rf /var/lib/apt/lists/*

# Download and extract Apache Ant to opt folder
RUN wget --no-check-certificate --no-cookies http://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \
wget --no-check-certificate --no-cookies http://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz.sha512 && \
echo "$(cat apache-ant-${ANT_VERSION}-bin.tar.gz.sha512) apache-ant-${ANT_VERSION}-bin.tar.gz" | sha512sum -c && \
tar -zvxf apache-ant-${ANT_VERSION}-bin.tar.gz -C /opt/ && \
ln -s /opt/apache-ant-${ANT_VERSION} /opt/ant && \
unlink apache-ant-${ANT_VERSION}-bin.tar.gz && \
unlink apache-ant-${ANT_VERSION}-bin.tar.gz.sha512

# Put ant in the path
ENV PATH="/opt/ant/bin:${PATH}"
ARG ROASTER_VERSION=1.11.0


###########################
Expand All @@ -54,6 +30,7 @@ RUN echo "Cloning from repo $SOURCE" && \
echo "Building Backend XAR..." && \
ant

# Download edition XAR if specified
RUN if [ -n "$EDITION" ]; then \
echo "Downloading Edition XAR from $EDITION" && \
mkdir -p /opt/eo-editions && \
Expand All @@ -64,6 +41,11 @@ RUN if [ -n "$EDITION" ]; then \
echo "Note: EDITION_XAR not provided. Please add manually to eXist-db."; \
fi

RUN echo "Downloading dependencies..." && \
mkdir -p /opt/roaster && \
cd /opt/roaster && \
curl -L -O "https://exist-db.org/exist/apps/public-repo/public/roaster-${ROASTER_VERSION}.xar";


#########################
# 3. Run/deploy eXist-db
Expand All @@ -76,5 +58,6 @@ ENV EXIST_PASSWORD=changeme
ADD ./autodeploy ${EXIST_HOME}/autodeploy/

# copy built XARs to autodeploy directory of exist
COPY --from=builder /opt/eo-backend/build-xar/*.xar ${EXIST_HOME}/autodeploy/
COPY --from=builder /opt/eo-editions/*.xar ${EXIST_HOME}/autodeploy/
COPY --from=eo-builder /opt/eo-backend/build-xar/*.xar ${EXIST_HOME}/autodeploy/
COPY --from=eo-builder /opt/eo-editions/*.xar ${EXIST_HOME}/autodeploy/
COPY --from=builder /opt/roaster/*.xar ${EXIST_HOME}/autodeploy/
57 changes: 57 additions & 0 deletions backend/Dockerfile.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
########################################
# Local dev: Multi-stage Dockerfile
# Uses mounted local frontend source
# 1. Set up the build environment
# 2. Build Edirom-Online packages
# 3. Run the eXist-db and deploy XARs
#######################################


#########################
# 1. Build Environment
#########################

# Use shared builder image
FROM edirom-online-builder:latest AS eo-builder

ARG EDITION

###########################
# 2. Edirom-Online Backend
###########################

# Get build for Edirom-Online-Backend
WORKDIR /opt/eo-backend

# Copy source code from build context (BE_LOCAL_SOURCE)
COPY . .

# Build the local source (clean build-xar first to avoid stale XARs in autodeploy)
RUN echo "Building Backend XAR from local source..." && \
rm -f build-xar/*.xar && \
ant

# Download edition XAR if specified
RUN if [ -n "$EDITION" ]; then \
echo "Downloading Edition XAR from $EDITION" && \
mkdir -p /opt/eo-editions && \
cd /opt/eo-editions && \
curl -L -O "$EDITION"; \
else \
mkdir -p /opt/eo-editions && \
echo "Note: EDITION_XAR not provided. Please add manually to eXist-db."; \
fi

#########################
# 3. Run/deploy eXist-db
#########################

FROM stadlerpeter/existdb:6
ENV EXIST_PASSWORD=changeme

# add XARs to autodeploy directory of exist (from additional_contexts)
COPY --from=backend ./autodeploy ${EXIST_HOME}/autodeploy/

# copy built XARs to autodeploy directory of exist
COPY --from=eo-builder /opt/eo-backend/build-xar/*.xar ${EXIST_HOME}/autodeploy/
COPY --from=eo-builder /opt/eo-editions/*.xar ${EXIST_HOME}/autodeploy/
61 changes: 61 additions & 0 deletions builder/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#############################################################
# Builder Environment Dockerfile
# Interactive build environment for local development
# Keeps build tools and dependencies alive for fast iteration
# Note: Uses Java 8 for Sencha Cmd (frontend) compatibility
#############################################################

# Use Java 8 for Sencha Cmd compatibility (requires Nashorn JavaScript engine)
FROM eclipse-temurin:8-jdk-focal

ARG ANT_VERSION=1.10.12

# Install build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
sudo \
wget \
git \
unzip \
libfreetype6 \
fontconfig \
ruby-full \
vim \
less \
&& rm -rf /var/lib/apt/lists/*

# Download and extract Apache Ant to opt folder
# Use cache mount to persist downloads across builds
RUN --mount=type=cache,target=/var/cache/downloads \
if [ ! -f /var/cache/downloads/apache-ant-${ANT_VERSION}-bin.tar.gz ]; then \
wget --no-check-certificate --no-cookies http://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz -O /var/cache/downloads/apache-ant-${ANT_VERSION}-bin.tar.gz && \
wget --no-check-certificate --no-cookies http://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz.sha512 -O /var/cache/downloads/apache-ant-${ANT_VERSION}-bin.tar.gz.sha512; \
fi && \
cd /var/cache/downloads && \
echo "$(cat apache-ant-${ANT_VERSION}-bin.tar.gz.sha512) apache-ant-${ANT_VERSION}-bin.tar.gz" | sha512sum -c && \
tar -zvxf /var/cache/downloads/apache-ant-${ANT_VERSION}-bin.tar.gz -C /opt/ && \
ln -s /opt/apache-ant-${ANT_VERSION} /opt/ant

# Download and install SenchaCmd Community Edition
# Use cache mount to persist downloads across builds
RUN --mount=type=cache,target=/var/cache/downloads \
if [ ! -f /var/cache/downloads/senchaCmd.zip ]; then \
curl --silent http://cdn.sencha.com/cmd/7.0.0.40/no-jre/SenchaCmd-7.0.0.40-linux-amd64.sh.zip -o /var/cache/downloads/senchaCmd.zip; \
fi && \
unzip /var/cache/downloads/senchaCmd.zip -d /tmp && \
chmod o+x /tmp/SenchaCmd-7.0.0.40-linux-amd64.sh && \
/tmp/SenchaCmd-7.0.0.40-linux-amd64.sh -Dall=true -q -dir /opt/Sencha/Cmd/7.0.0.40 && \
rm /tmp/SenchaCmd-7.0.0.40-linux-amd64.sh

# Put ant and sencha in the path
ENV PATH="/opt/ant/bin:/opt/Sencha/Cmd:${PATH}"

# Install eo task runner (available as 'eo' anywhere in the container)
COPY eo /usr/local/bin/eo
RUN chmod +x /usr/local/bin/eo

# Set working directory where source will be mounted
WORKDIR /opt/eo-frontend

# Keep container running with bash
CMD ["/bin/bash"]
Loading
Loading