Manifold is an intuitive, collaborative platform for scholarly publishing. With iterative texts, powerful annotation tools, rich media support, and robust community dialogue, Manifold transforms scholarly publications into living digital works.
Learn more at manifoldapp.org.
See it in action at manifold.umn.edu.
Join our Slack Channel
Report a bug.
Request a feature.
- Minimum
- 4GB RAM
- 2 CPU cores
- Recommended
- 6GB RAM
- 4 CPU cores
- Install VirtualBox: https://www.virtualbox.org/wiki/Downloads
- This is a temporary requirement and will be removed once this issue with Docker for Mac is resolved: docker/for-mac#1835
Tested on Ubuntu 16.04 LTS and 18.04 LTS. No additional requirements outside of installing Docker (see below).
- Virtualization must be enabled in BIOS
- Hyper-V will automatically be enabled which will prevent VirtualBox from working
- If this is a problem, then recommendation is to use Docker Toolbox instead
- Requires Windows 10 Pro, Enterprise, or Education
- git-bash should be installed (https://git-scm.com/download/win)
git-bash settings selected during testing:
- Use Git from Git Bash only (required change)
- Use the OpenSSL library (default)
- Checkout Windows-style, commit Unix-style line endings (default)
- Use MinTTY (the default terminal of MSYS2) (default)
- Enable file system caching (default)
- Enable Git Credential Manager (default)
- Enable symbolic links (required change)
-
Install Docker for your platform: https://docs.docker.com/install/
- Recommended that you install the current version but minimum version >= 17.03
- For Windows minimum version >= 18.06.0-ce-win70 (build: 19075)
-
Install docker-compose for your platform: https://docs.docker.com/compose/install/
- Note: docker-compose might be installed already with docker depending on your platform.
-
Install docker-machine for your platform: https://docs.docker.com/machine/install-machine/
- Note: docker-machine might be installed already with docker depending on your platform.
To work around path conversion issues in git-bash you need to run the following prior to using the ./manifold-docker
script.
export COMPOSE_CONVERT_WINDOWS_PATHS=1 MSYS_NO_PATHCONV=1;
To work around communication between containers, host.docker.internal is used. As a result, you must pass the DOMAIN
parameter when using ./manifold-docker
. If you are not using a domain, you can simply pass 127.0.0.1
. Example using
compose:
./manifold-docker compose up 1.0.1 127.0.0.1
Clone this repo:
git clone https://github.com/ManifoldScholar/manifold-docker.git
The master branch will always track the latest Manifold release: https://github.com/ManifoldScholar/manifold/releases
Alternatively, you can then checkout a specific tag that corresponds to a Manifold release.
Download a specific release: https://github.com/ManifoldScholar/manifold-docker/releases
./manifold-docker compose up 1.0.1
After the script completes, some basic usage information will be displayed.
An optional domain parameter can be passed to allow access using a domain.
./manifold-docker compose up 1.0.1 example.domain.com
Take it down
./manifold-docker compose down
Alternatively, you can run this through Docker swarm
./manifold-docker stack up 1.0.1
After the script completes, some basic usage information will be displayed.
An optional domain parameter can be passed to allow access using a domain.
./manifold-docker stack up 1.0.1 example.domain.com
Take it down
./manifold-docker stack down
Once the containers or services are running, if you need to run additional commands you can do so using the following:
./manifold-docker compose run VERSION CONTAINER
Valid CONTAINER values: api | client | proxy
/manifold-docker stack run SERVICE
Valid SERVICE values: manifold_api | manifold_client | manifold_proxy