Skip to content

Commit

Permalink
ANW-2218 add docker support on production
Browse files Browse the repository at this point in the history
  • Loading branch information
thimios committed Dec 5, 2024
1 parent 9588608 commit 9897358
Show file tree
Hide file tree
Showing 8 changed files with 220 additions and 133 deletions.
124 changes: 0 additions & 124 deletions src/content/docs/administration/getting_started.md

This file was deleted.

7 changes: 0 additions & 7 deletions src/content/docs/development/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@ title: Docker

The [Docker](https://www.docker.com/) configuration is used to create [automated builds](https://hub.docker.com/r/archivesspace/archivesspace/) on Docker Hub, which are deployed to [the latest version](http://test.archivesspace.org) when the build completes.

Please note:

- Docker is not supported as an install method.
- Docker configuration is being used for internal purposes only.
- Use of Docker by anyone else is "use at your own risk".
- Docker related files may be updated at anytime without warning or presence in release notes.

## Custom builds

Run ArchivesSpace with MySQL, external Solr and a Web Proxy. Switch to the
Expand Down
89 changes: 89 additions & 0 deletions src/content/docs/getting_started/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: Running with Docker
---

## Installing

The easiest way to get ArchivesSpace up and running is by using [Docker](https://www.docker.com/). Using docker eases installing, upgrading, starting and stopping ArchivesSpace.
It also makes it easy to have ArchivesSpace running as a system service that starts automatically on every reboot.

If you prefer not to use Docker, another (more involved ) way to get ArchivesSpace up and running is installing the latest [distribution `.zip` file](/getting_started/zip_distribution).

### System requirements

See [System Requirements](/getting_started/system_requirements)

### Software Dependencies

When using Docker, the only software dependency is [Docker](https://www.docker.com/).

Follow the [instructions](https://docs.docker.com/get-started/get-docker/) to install the docker engine.
Optionally installing [Docker Desktop](https://www.docker.com/products/docker-desktop/) provides a graphical way to manage, start and stop your docker containers.

### Downloading the configuration package

To run ArchivesSpace with Docker, first download the ArchivesSpace docker configuration package of the latest release from [github](https://github.com/archivesspace/archivesspace/releases) (scroll down to the "Assets" section of the latest release page).

Unzipping the downloaded file will create an `archivespace-docker-vX.X.X` directory with the following contents:
```
.
├── config
│   └── config.rb
├── docker-compose.yml
├── .env.docker.db
├── .env.docker.prod
└── plugins
```

* The `config.rb` file contains the main configuration of ArchivesSpace.
* `docker-compose.yml` contains all the information required by Docker to build and run ArchivesSpace
* `.env.docker.db` contains the credentials used by archivespace to access its MySQL database. It is recommended to default root and user passwords to something safer.
* `.env.docker.prod` contains the database connection URI which should also be updated accordingly after the database user password is updated.
* The `plugins` directory is there to accommodate any [plugins](/customization/plugins/) you wish to install.

## Running
### Start

Open a terminal, change to the `archivespace-docker-vX.X.X` directory that contains the `docker-compose.yml` file and run:

```
docker compose up --detach
```

The first time you start ArchivesSpace with Docker, the container images will be downloaded and configuration steps such as database setup and solr index initialization will be performed automatically.
It is expected that the whole process takes up to ten minutes or even more depending on the power of your machine and internet connection speed.

Starting with the `--detach` option allows closing the terminal without stoping ArchivesSpace. Viewing the logs of running ArchivesSpace containers is possible in [Docker Desktop](https://www.docker.com/products/docker-desktop/) or in a terminal with:

```
docker compose logs --follow
```

Watch the logs for the welcome message:

```
2024-12-04 18:42:17 archivesspace | ************************************************************
2024-12-04 18:42:17 archivesspace | Welcome to ArchivesSpace!
2024-12-04 18:42:17 archivesspace | You can now point your browser to http://localhost:8080
2024-12-04 18:42:17 archivesspace | ************************************************************
```

You can then [login and verify](/getting_started/first_steps) that it is running correctly.

If you have also [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed, you can use it to start, stop and manage the ArchivesSpace containers after they have been created for the first time. At the time of writing this, there is no way to call `docker compose` using Docker Desktop.

### Stop

You can stop running containers without removing them with the command:

```
docker compose stop
```

They can be started again with:

```
docker compose start
```

## Upgrading
19 changes: 19 additions & 0 deletions src/content/docs/getting_started/first_steps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: First Steps
---

Once it is ready, confirm that ArchivesSpace is running correctly by accessing the following URLs in your browser:

- http://localhost:8089/ -- the backend
- http://localhost:8080/ -- the staff interface
- http://localhost:8081/ -- the public interface
- http://localhost:8082/ -- the OAI-PMH server
- http://localhost:8090/ -- the Solr admin console

To start using the Staff interface application, log in using the administrator account:

- Username: `admin`
- Password: `admin`

Then, you can create a new repository by selecting "System" -> "Manage repositories" at the top right hand side of the screen. From the "System" menu, you can perform a variety of administrative tasks,
such as creating and modifying user accounts. **Be sure to change the "admin" user's password at this time.**
5 changes: 5 additions & 0 deletions src/content/docs/getting_started/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: Overview
---

you can use docker or the zip distribution
11 changes: 11 additions & 0 deletions src/content/docs/getting_started/system_requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: System requirements
---

### Operating system

ArchivesSpace is known to operate well on Ubuntu Linux, Mac OS X, and Windows.

### Memory

At least 1024 MB RAM allocated to the application are required. We recommend using at least 2 GB for optimal performance.
87 changes: 87 additions & 0 deletions src/content/docs/getting_started/zip_distribution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: Running the zip distribution
---

If you prefer not to [use Docker](/getting_started/docker.md), another way to get ArchivesSpace up and running is to download the latest distribution `.zip`
file and use your own-managed Database and Solr services. This requires more effort to get all requirements in place, as explained below.

## System requirements

See [System Requirements](/getting_started/system_requirements)

## Software Dependencies

When using the zip distribution of ArchivesSpace, the following software dependencies are required:

### Java Runtime Environment

You will need to have Java installed on your machine. You can check your Java version by running the command:

java -version

We recommend using [OpenJDK](https://openjdk.org/projects/jdk/). The following table lists the supported Java versions for each version of ArchivesSpace:

| ArchivesSpace version | OpenJDK version |
| --------------------- | --------------- |
| ≤ v3.5.1 | 8 or 11 |
| ≥ v4.0.0 | 11 or 17 |

If you are running an earlier version of java upgrade to one of the supported ones (not the newest one). If you are running a newer version of Java you should revert back to or force your machine to use a supported version.

### Solr

Up to ArchivesSpace v3.1.1, the zip file distribution includes an embedded Solr v4 instance, which is deprecated and not supported anymore.

ArchivesSpace v3.2.0 or above requires an external Solr instance. The table below summarizes the supported Solr versions for each ArchivesSpace version:

| ArchivesSpace version | External Solr version |
| --------------------- | ------------------------- |
| ≤ v3.1.1 | no external solr required |
| v3.1.1 up to v3.5.1 | 8 (8.11) |
| ≥ v4.0.0 | 9 (9.4.1) |

Each ArchivesSpace version is tested for compatibility with the corresponding Solr version listed in the table above, both during development and automated testing.

It may be possible to use ArchivesSpace with an older version of Solr. However in that case it is important to check the [release notes](https://github.com/archivesspace/archivesspace/releases)
for any potential version compatibility issues.

**Note: the ArchivesSpace Program Team can only provide support for Solr deployments using the "officially" supported version with the standard configuration provided by
the application. Everything else will be treated as "best effort" community-led support.**

See [Running with external Solr](/provisioning/solr) for more information on installing and upgrading Solr.

### Database

While the ArchivesSpace zip distribution does include an embedded database for demonstration purposes, MySQL is required for production use. (While not officially supported by ArchivesSpace, some community members use MariaDB so there is some community support for version 10.4.10 only.)

**The embedded database is for testing purposes only. You should use MySQL or MariaDB for any data intended for production, including data in a test instance that you intend to move over to
a production instance.**

All ArchivesSpace versions can run on MySQL version 5.x or 8.x. See [MySQL](/provisioning/mysql) for detailed instructions on setting up MySQL for ArchivesSpace.

## Downloading and Installing

Once you have Java, MySQL and Solr in place, you are ready to download and install ArchivesSpace. **Do not proceed until MySQL and Solr are running.** The latest version of the ArchivesSpace zip distribution (and all older ones) are available at: [https://github.com/archivesspace/archivesspace/releases](https://github.com/archivesspace/archivesspace/releases)

When you extract the `.zip` file, it will create a directory called `archivesspace`.

It is now time to download and install the [JDBC driver for MySQL](https://docs.archivesspace.org/provisioning/mysql/#download-mysql-connector).

### Start ArchivesSpace

To run the system, just execute the appropriate startup script for your platform. On Linux and OSX:

cd /path/to/archivesspace
./archivesspace.sh

and for Windows:

cd \path\to\archivesspace
archivesspace.bat

This will start ArchivesSpace running in foreground mode (so it will shut down when you close your terminal window). Log output will be written to the file `logs/archivesspace.out` (by default).

**Note:** If you're running Windows and you get an error message like `unable to resolve type 'size_t'` or `no such file to load -- bundler`,make sure that there are no spaces in any part of the
path name in which the ArchivesSpace directory is located.

The first time it starts, the system will take a minute or so to start up. You can then [login and verify](/getting_started/first_steps) that it is running correctly.
11 changes: 9 additions & 2 deletions src/siteNavigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@
},
{
"label": "Getting started",
"link": "administration/getting_started"
"collapsed": false,
"items": [
"getting_started/overview",
"getting_started/system_requirements",
"getting_started/docker",
"getting_started/zip_distribution",
"getting_started/first_steps"
]
},
{
"label": "Architecture",
"collapsed": false,
"collapsed": true,
"items": [
"architecture/jsonmodel",
"architecture/backend",
Expand Down

0 comments on commit 9897358

Please sign in to comment.