Starting Alfresco with Docker and Experiencing the Records Management Lifecycle via REST API

Overview In this article, we will start Alfresco Governance Services Community Edition (hereinafter AGS) latest version (25.3.0) with Docker and experience the entire records management lifecycle using the REST API. Specifically, we assume the following business scenario. Scenario: Contract Management The business department creates and registers a contract The records manager declares it as a record and classifies it in the file plan Set up a Retention Schedule After contract termination, execute cutoff (active to inactive) After the retention period (3 years) elapses, dispose of the record If litigation arises, suspend disposal using a hold (freeze) Based on the previous article, this article introduces the setup procedure and API usage for the latest version. ...

February 15, 2026 · 257 min · Nakamura

Docker + GitHub Actions Deployment Configuration

This document explains the setup procedure for automatically deploying Docker containers with GitHub Actions. Table of Contents Docker Configuration GitHub Actions Configuration Server-Side Configuration Troubleshooting Docker Configuration Dockerfile (Static Site + nginx) Generates static HTML and serves it with nginx. F W C R C R # F # # C C E C R O O U O U R O O X M O R P N P N n O F F P P P D M K Y Y g M o o Y Y O D n n i r r S [ n I p p . p n n n E " o R a m m x g N N - g n d c i u u f i 8 g e / k i r f n x x r n 0 i : a a n u o x t t o x n 2 p g s n r : m . x 2 p e t a 3 2 = c " - * a g s l : : b o , a . l e e p u n l j l n r i d i f " p s e v n o i l - i o r i e u s d / g n n a n t t e e " e t g p r t , e u c A s t / / " S t / a n d a p p g a b t u p i e u i b / n m i c l . x o l i o / n d f c u c e i t o o r l p n f e u f f s t . ; d " p / ] u d b e l f i a c u l / t u . s c r n s f h a r e / n g i n x / h t m l nginx.conf (SPA Configuration) For SPAs, dynamic routes (/item/:id, etc.) need to fall back to index.html. ...

November 28, 2025 · 20 min · Nakamura

Complete Guide to Migrating an Omeka-S Docker Environment to Another Server

Introduction This article explains the procedure for migrating an Omeka-S environment set up with Docker Compose, including volume data, to another server. You can proceed with the migration safely while maintaining data integrity. Environment Source server: Ubuntu 22.04 Destination server: Ubuntu 22.04 (new setup) Stack: Omeka-S + MariaDB + phpMyAdmin + Traefik + Mailpit Migration Flow Backup on the source server Download to local machine Docker environment setup on the destination server Data restoration and startup Step 1: Backup on the Source Server 1.1 Check the Current Environment # d # d o o C c C c h k h k e e e e c r c r k k p r s D o u o l n c u n k m i e e n r g l s c o o l n u t m a e i s n e r s Output example: ...

October 16, 2025 · 31 min · Nakamura

A Scalable OCR Processing System Using NDL Classical Japanese OCR Lite on Azure Container Apps

Important Usage Notice The system introduced in this article may place load on external servers. Please exercise caution when using it. Server Load: Parallel requests place load on target servers DoS Attack Risk: Large numbers of simultaneous accesses may be mistaken for DoS attacks Recommended Approach: It is recommended to download images locally in advance and run only the OCR processing in parallel Check Terms of Use: Always check the terms of use for target servers and obtain prior permission if necessary Appropriate Rate Limiting: For production use, conservative concurrency settings (around 5-10 parallel) are strongly recommended Responsible Usage: Be considerate of server administrators and other users This article is a record of a technical proof of concept. We ask readers to use it responsibly. ...

August 31, 2025 · 13 min · Nakamura

Setting Up the WDB Module on Drupal 10 in a Docker Environment

Overview This article explains the steps to build Drupal 10 in a Docker environment and install the WDB module for linguistic databases. Prerequisites Docker Desktop is installed Git is installed Steps 1. Building the Docker Environment First, create a docker-compose.yml file: s e o r m d l m v a r u a i r i r e u i d p r m r c i m e o n p m o e o e e i e a a s l - v M M M M a a l p - r - s s a s d g t u i Y Y Y Y l g u e t t : d : b e a m m r S S S S : e m n m s 8 a b : : r e a o Q Q Q Q : e / d a : 0 r : t s r n L L L L s d d d d s r 8 t m : : i m _ _ _ _ d : r r r r _ i 0 : { a a e R D U P r u u u u o a : } r a d n O A S A u p p p p n d 8 a i l b t O T E S p a a a a : b 0 l a w : : T A R S a l l l l w d a / _ B : W l / / / / a b y v P A O : f m t p y : s a A S d R 1 i o h r s l r S E r D 0 l d e i a / S : u : . e u m v t l W p 2 s l e a e i O d a d . : e s t s b R r l r 7 / s : e t / D u u - o : : m : p p p p o / y a a h t p o s d l l p p t p q r 8 d t t l u . r d / p 2 u d r d a - p r u r l a a u p u p l p a p a / a l a c w l l h e w / e b w e p - / e b r b s b i u i t v l t m h a l e o e t s s d m e e / u e y d l s e e e f s a u l t / f i l e s Next, create the necessary directories and start the containers: ...

August 7, 2025 · 7 min · Nakamura

Introducing Omeka S Docker: A Modern and Secure Solution for Digital Collections

! This article was created by AI. Welcome to Omeka S Docker! This project provides a production-ready Docker setup for Omeka S, a web publication system for universities, galleries, libraries, archives, and museums. GitHub Repository: https://github.com/nakamura196/omeka-s-docker Why Omeka S Docker? Managing digital collections does not need to be complex. That is why we created a Docker-based solution that simplifies deploying and managing Omeka S. Key Features Quick Setup: Get Omeka S running within minutes with a single command Security First: Built with security best practices including non-root containers and secure default settings Module Management: Automatic installation and updates of popular Omeka S modules Easy Upgrades: Seamless version upgrades while maintaining data persistence Production Ready: Optimized for both development and production environments Traefik Integration: Built-in support for reverse proxy and SSL termination Getting Started Prerequisites Docker and Docker Compose installed Basic command line knowledge (Optional) A domain name for production deployment with SSL Understanding Setup Options This Docker setup provides two deployment modes: ...

July 30, 2025 · 6 min · Nakamura

Trying Out the Viewer from the "Pre-modern Japan-Asia Relations Digital Archive"

Overview The “Pre-modern Japan-Asia Relations Digital Archive” was released on July 25, 2025. https://asia-da.lit.kyushu-u.ac.jp/ The viewer is also available at: https://github.com/localmedialabs/tei_comparative_viewer In this article, I share my experience trying out this viewer. As a result, I was able to self-host it as shown below: https://tei-comparative-viewer.aws.ldas.jp/ It loads the following XML file of “Kaitoshokokki” (Record of Countries and Peoples in the Eastern Sea): https://asia-da.lit.kyushu-u.ac.jp/viewer/300 Running Locally Detailed instructions are provided at the following link, which I followed to get it running: ...

July 29, 2025 · 33 min · Nakamura

Investigating and Resolving Disk Pressure Caused by Docker [Ubuntu 22.04 Case Study]

Introduction This article records a case where Elasticsearch errors occurred due to disk pressure caused by Docker containers and images, along with the investigation and resolution methods. We hope this serves as a reference for those facing similar issues. Problem Occurrence The following error occurred in a running Elasticsearch instance. { } " } " e , s r " " " t r t r p a o y e h t r p a a u " e s s s : " o e " : n " : { " : " : 5 s " 0 e " q 3 a a u r l e c l r h y _ s " p h , h a a r s d e s _ e f x a e i c l u e t d i " o , n _ e x c e p t i o n " , Initial investigation revealed that indices were in a close state, and insufficient disk space was suspected. ...

May 22, 2025 · 6 min · Nakamura

Running AtoM (Access to Memory) with Docker

Overview I had the opportunity to run AtoM (Access to Memory) with Docker, so here are my notes. Manual The documentation is available at the following link. https://www.accesstomemory.org/es/docs/2.9/dev-manual/env/compose/ g c e d i d x o t p c a o k c t r e l o t r o m n C c e O o M m - P p b O o S s q E e a _ / F u 2 I p . L x E - = d h " t $ t P p W s D : / / d / o g c i k t e h r u / b d . o c c o k m e / r a r c t o e m f p a o c s t e u . a d l e / v a . t y o m m l . " g i t a t o m Then, run the following. ...

March 12, 2025 · 2 min · Nakamura

Running ArchivesSpace with Docker

Overview I had an opportunity to run ArchivesSpace with Docker, so here are my notes. Method Instructions are described at the following link. https://docs.archivesspace.org/administration/docker/ Clone and start the containers as follows. g c d i d o t c a k c r e l c r o h n i c e v o e m h s p t s o t p s p a e s c : e u / p / g i - t d h e u t b a . c c h o m / a r c h i v e s s p a c e / a r c h i v e s s p a c e The documentation states the following, but I was able to access the Public User interface on port 3001, the Staff User Interface on port 3000, and the backend system on port 4567. ...

March 11, 2025 · 2 min · Nakamura

Serving IIIF Images Using mdx.jp Object Storage and IIP Image (IIIF Image Server)

Overview This is a note on my experiment with serving IIIF images using mdx.jp object storage and IIP Image (IIIF Image Server). This is a continuation of the following article. Docker Version of IIP Image A Docker image for the IIPImage server is available at the following link, so I will use that. https://hub.docker.com/r/iipsrv/iipsrv Refer to the following article and others for installing Docker. https://qiita.com/Marron-chan/items/570c7c7baaae3b4d6b11 Execution Following the previous article, mount the mdx.jp object storage as follows. ...

March 7, 2025 · 7 min · Nakamura

Starting Alfresco Governance Services Community Edition

Overview I attempted to install Alfresco Governance Services Community Edition, referring to the following manual, so here are my notes. https://support.hyland.com/r/Alfresco/Alfresco-Governance-Services-Community-Edition/23.4/Alfresco-Governance-Services-Community-Edition References As a similar effort, the following is available. Please refer to it as well. https://irisawadojo.blogspot.com/2020/11/72alfresco2.html Virtual Machine The following machine was created as an Azure virtual machine. Image: Ubuntu Server 24.04 LTS - Gen2 VM Architecture: x64 Size: Standard D2ads v6 (2 vcpus, 8 GiB memory) Open port 8080 for use. ...

January 23, 2025 · 30 min · Nakamura

Cantaloupe: Serving Images Stored in Microsoft Azure Blob Storage

Overview This is a memo on how to serve images stored in Microsoft Azure Blob Storage using Cantaloupe Image Server, one of the IIIF image servers. This is the Microsoft Azure Blob Storage version of the following article. Method This time we will use the Docker version. Please clone the following repository. https://github.com/nakamura196/docker_cantaloupe In particular, rename .env.azure.example to .env and set the environment variables. # C C C # C L A A A A E F N N N F N T o T T T o T S r A A A r A _ L L L L E M O O O T O N i U U U r U C c P P P a P R r E E E e E Y o _ _ _ f _ P s A A A i H T o Z Z Z k O _ f U U U S E t R R R T M E E E = A A S S S I z T T T L u O O O = r R R R e A A A G G G B E E E l S S S o O O O b U U U R R R S C C C t E E E o _ _ _ r A A C a C C O g C C N e O O T U U A N N I T T N _ _ E N K R A E _ M Y N E = A = M E = The last two settings also include HTTPS configuration using Traefik. ...

December 23, 2024 · 2 min · Nakamura

Building a Gradio App Using NDL Kotenseki OCR-Lite

Overview I built a Gradio App using NDL Kotenseki OCR-Lite. You can try it at the following URL. https://huggingface.co/spaces/nakamura196/ndlkotenocr-lite “NDL Kotenseki OCR-Lite” provides a desktop application, so an execution environment is available without the need for a web app like Gradio. Therefore, the intended use cases for this web app include usage from smartphones or tablets, and integration via web API. Development Notes and Bug Fixes Using Submodules The original ndlkotenocr-lite was introduced as a submodule. ...

December 4, 2024 · 20 min · Nakamura

Reverse Proxy Settings for Drupal Running with Docker + Traefik

Overview I was running Drupal with HTTPS using Docker + Traefik, as introduced in the following article. At the time, with Drupal’s default settings, URLs were set with http as shown below. The problem with this was that, for example, when setting up Google account login as described in the following article, the redirect URL started with http, while the Google Cloud console requires URLs starting with https. This discrepancy caused authentication to fail in some cases. ...

July 4, 2024 · 3 min · Nakamura

Operating Multiple HTTPS-Enabled Containers with Traefik

Overview This is a note on how to operate multiple HTTPS-enabled containers with Traefik. https://github.com/traefik/traefik Background Previously, I was using jwilder/nginx-proxy and jrcs/letsencrypt-nginx-proxy-companion with the following configuration. Proxy v # s n e e o e r p r n l l c h v d t d s r v g e u e t h h w e i o i i i c p l r t i c d - - - m r m o p o f e o x c n m o o o a e s m o e o e t l s a r a x n y e x a n r - - l - - - b - s e a n p " l c v h s s : t r k u t n : s - g t t u e t n g t e n u e h t v : : : a s l e a : p e a s " " m h d v c / l " a c e a n g m r o m a m : t r m ' r : i : 8 4 e t h h e s s c r r : i d i e t s l r : : n e 3 o n 0 4 s m p o r a r : o t y n s n s s t : a : ' x j e : 3 : l a s t r m : p j e _ x : : : r l y w r 8 : : r t s / / . t r r o - / u u : c : i _ 0 4 / a : : r d g a : c _ n p e e s n o l n " 4 u m / / u o i l s n : r t t r m d a 3 s : e e n c t w / a o c c d m e m " r t t / k h a l m x / s o o r e e c c d e u y e e y n n h c n / : s t / / o r b s t : " g g a k _ n h c n n c / . s i i r e l g n a / g g k n j e n n n e r i i g r n i i e g r n g x x . n n i e g n n r i c c i / n s k x n / i x x . n s r n c v g o - x n n / s x . y x e h i c p - g x c o - l p - r o n k r p i / h e c p e t p t s x : o r n d o r k r t - r s t / x o x h s t : s n o : . h v y x / p t s x e g x r d t a y h a . : t y n i y w m r t r d r m - c n - l / m a o p w r x l r l m / i y - e u d t p p t n o h t r s / c - _ o - d k e n x e o e n g y n c r c i - c k . r n c r e s y x o y r o p _ m p . c t p p t s k / r a o : l o n c r o x i k o g y o : : _ n r / c o v o a m r p / a l n o i g o / n n . g n i g n i x n x _ p r o x y " Container Below is a Django example. ...

July 4, 2024 · 13 min · Nakamura

Configuring CORS for Docker-based Omeka S

Overview When implementing CORS configuration for a Docker-based Omeka S as described in the following article, a server error occurred. This is a memo about that issue. Dockerfile The target is a Dockerfile like the following. F L R E R R # R R # A R & & & & C # C R & & & & & & V C R A U N U U U U R U & & & & O O U & & & & & & O M O B N V N N P N N D G N P C P N L D M E H o u r r m Y o Y r l r l c f U L a D a a z l l l i u w P d d w v w n m m v n m m n m n h i M [ p 2 E p p l i i i m n g o o n e g z f k o n E " h m e B t t i b b b a z e e c c l r e i - i / d - - - w d a p a n I - - b p j f g i t x k k o s t p v r v . g d i v s R s n p : i m A g g 1 n p r e p t e e a i a f a h u a r a f v a a n o N e e g g e e m e r r d o h - r r t r t r - v a c p t d _ t t - - g e a \ n - - n t q / / a e a - v v R a r h a a F d d - t g s p p O = t w w c b p w a v a r / e c i r R - i e e d y i i h h m 4 p w a w c a w r a r w / w 2 h n e O q n v v e p c o p p e . s v w r w e o s w r w w w - e e w N q s v e k n - - k 1 : a / / s l e v w w w w w f r r T t 6 s e e a . / r w o s u . a h w w w - w / o = i E u a - \ x x - 1 / m w m m i r t w w w d / h r " t N p l d t t s g w e w e e n / m / w a h t e S e D d l e - - i w k / k v s i w l h h t t m g a a v i c t w a h a a w / t h t a m l r t n t - n o h / - t - r a w c m t m : l / o o o e y s n u o s m s / n v / o l m l w / v u r n t f b m - l w d a h n / l w v o n u i & \ a i . e $ w r t f v w o l d n & l g c k { w p / m i f o - l u " N t l u o a v v / e w l g l i l d u m ] a e a r m - e a h r w / / u l u a m e k r p - e / s r r t m w d m e m t e / a a t j o - s / m i / o a e s e a / m c - $ g m $ i w l s h l t / / / u t g ( d e { o w / s t u a c f - r i e n k v n w . i m m b o i v t a v t p a e } / h o l e a n l a y e r - / r . h t n / / s f e r p < - o w o s z t a s f e i s e n q c i m i i m c o i . g w a q ) t e o p l c l l i / w f . h k n / e u e n d w k - i - a } \ s m s i a v / - a y c j - . s e t a h e m o p s z \ a r t x u u n e / i c b / m e r p v g r p o a w l c a g = e n s w / . r p / l - f e w c 1 a d u e d i . h 2 d o s a g i h m 6 e r s / n t o 3 p / e v i m d @ d i s a l g o n / r / 6 m _ c d v f 0 a m l w a i 0 i y u w w r l l s d n w / e { . q e l w s } c l / w o a w \ \ m m d / ; > y - / h " s w v t q i $ m l t { l i h v / - e c g f r o d r s n e i f e o i t n g y } / p / d e o a = m t / e a u k b s a a r - s / s e i - . n $ i c { n l v i u e d r \ e s / i o n } . z i p - O v a r / w w w / o m e k a - s - $ { v e r s i o n } . z i p \ Cause and Solution The following line needed to be added. ...

July 2, 2024 · 6 min · Nakamura

Rebuilding and Restarting Containers with docker-compose

When you want to rebuild and restart containers simultaneously using the docker-compose command, you can execute the following commands. Here are methods for running the build and restart separately, and for executing them in a single command. Running Build and Restart Separately Build: d o c k e r - c o m p o s e - f / d o c k e r - c o m p o s e . p r o d . y m l b u i l d Restart: d o c k e r - c o m p o s e - f / d o c k e r - c o m p o s e . p r o d . y m l r e s t a r t Running Build and Restart in a Single Command To build and then restart services, you can use the up command with the --build option and the restart policy. However, since a restart option does not exist for the up command, you actually stop and restart the services. ...

June 12, 2024 · 2 min · Nakamura

How to Fix the 413 Request Entity Too Large Error in nginx-proxy

Overview I installed Docker on EC2 and used nginx-proxy and nginx-proxy-lets-encrypt to set up SSL. Everything was working fine with the above configuration, but when I created an app that POSTs relatively large files, the following error occurred and the upload failed. n g i n x - p r o x y 4 1 3 ( P a y l o a d T o o L a r g e ) I needed to increase Nginx’s client_max_body_size. ...

February 4, 2024 · 5 min · Nakamura

Trying Out File Information Tool Set (FITS)

Overview While investigating Archivematica, there were aspects of File Information Tool Set (FITS) behavior I wanted to verify, so I tried it using Docker. This is a memo of that process. https://github.com/harvard-lts/fits Installation The installation method using Docker is described at the following page. https://github.com/harvard-lts/fits?tab=readme-ov-file#docker-installation However, when accessing the following page mentioned in the manual, the latest release (1.6.0) that includes the Dockerfile could not be downloaded. https://projects.iq.harvard.edu/fits/downloads Instead, the latest zip file could be downloaded from the following GitHub releases page. ...

January 26, 2024 · 30 min · Nakamura