If you’re new to Alfresco and want to get it running on your Linux machine quickly, this guide walks you through the entire process step-by-step. No prior Docker experience needed.
We’ll use Docker to run Alfresco and its required services without worrying about complex manual installations, and the Alfresco CLI to generate all the necessary configuration for you.
First, update your package list and install some required packages:
sudo apt-get update
sudo apt-get install ca-certificates curl
Then, add Docker official GPG key and repository:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Update your package list again and install Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker lets us run applications in containers, self-contained environments with all dependencies pre-installed.
By default, Docker needs sudo to run. Let’s add your user to the docker group so you can run Docker commands without sudo:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
The Alfresco CLI will generate all the Docker Compose files and configuration for you.
wget https://github.com/aborroy/alf-cli/releases/download/0.1.1/alfresco_linux_amd64
mv alfresco_linux_amd64 alf-cli
chmod +x alf-cli
Run the CLI to create your Alfresco configuration:
./alf-cli docker-compose
You’ll be asked a few questions, here is an example run:
Welcome to the Alfresco CLI!
Use 'alfresco --help' to see available commands.
Detected resources available for Docker: CPUs=4, RAM (in GB)=31
Which ACS version do you want to use?: 25.2
Do you want to enable HTTPS?: No
What is the name of your server?: 52.16.161.42
Choose the password for your 'admin' user: •••••
What HTTP port do you want to use (all the services are using the same port)?: 80
Do you want to specify a custom binding IP for HTTP?: No
Do you want to use FTP (default port is 2121)?: No
Which Database Engine do you want to use?: postgres
Are you using content in different languages (this is the most common scenario)?: Yes
Do you want to search in the content of the documents?: Yes
Which Solr communication method do you want to use?: secret
Do you want to use the Events service (ActiveMQ)?: No
Select the addons to be installed: (none)
Do you want Docker to manage volume storage (recommended)?: No
WARNING: Before starting Alfresco for the first time, run 'sudo ./create-volumes.sh'
Tip: Choose "Docker-managed volumes" unless you have a specific reason to bind mount folders. This avoids Linux file permission issues.
After running the command, you’ll see something like:
tree
.
├── README.md # Quick reference for your stack
├── alf-cli # The CLI tool you downloaded
├── alfresco/ # Alfresco Repository build files
│ ├── Dockerfile
│ └── modules/ # Place custom modules here
│ ├── amps/empty
│ └── jars/empty
├── share/ # Alfresco Share build files
│ ├── Dockerfile
│ └── modules/...
├── search/ # Search Services build files
│ └── Dockerfile
├── config/nginx.conf # Reverse proxy configuration
├── compose.yaml # Docker Compose definition
├── create_volumes.sh # Script to prepare storage volumes
├── libs/ # Extra libraries (e.g. ActiveMQ broker JAR)
└── README.md
Tip: You can place your own custom AMP or JAR extensions into the "alfresco/modules" or "share/modules" folders before building.
Before starting Alfresco, if you chose bind volumes, you must create the storage volumes:
chmod +x create_volumes.sh
sudo ./create_volumes.sh
Now you can launch the entire Alfresco stack:
docker compose up --build
You’ll see logs showing Alfresco and its services starting up.
alfresco-1 | 11-Aug-2025 10:42:57.725 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
alfresco-1 | 11-Aug-2025 10:42:57.809 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1173] milliseconds
Once the startup finishes, open your browser and check these URLs (replace "52.16.161.42" with your server IP):
You’ve just installed Alfresco on Linux using Docker in 7 simple steps:
1. Install Docker
2. Add your user to the Docker group
3. Download the Alfresco CLI
4. Generate the Docker configuration
5. Create volumes
6. Start the stack
7. Access the services in your browser
This setup is great for development, testing, or learning Alfresco. For production, you’ll need to consider HTTPS, backups, scaling, and monitoring. But that’s a topic for another post.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.