100 lines
3.3 KiB
Markdown
100 lines
3.3 KiB
Markdown
|
# ILMO
|
||
|
|
||
|
[Ilmo](https://github.com/moan0s/ILMO2) is an open source library management tool.
|
||
|
|
||
|
Read [the documentation](https://ilmo2.readthedocs.io/) to learn what you can do with it.
|
||
|
|
||
|
**Warning**: This service is a custom solution for a small library. Feel free to use it but don't expect a solution that works for every use case
|
||
|
|
||
|
## Dependencies
|
||
|
|
||
|
This service requires the following other services:
|
||
|
|
||
|
- a [Postgres](postgres.md) database
|
||
|
- a [Traefik](traefik.md) reverse-proxy server
|
||
|
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process:
|
||
|
|
||
|
```yaml
|
||
|
########################################################################
|
||
|
# #
|
||
|
# ilmo #
|
||
|
# #
|
||
|
########################################################################
|
||
|
|
||
|
ilmo_enabled: true
|
||
|
ilmo_hostname: ilmo.example.com
|
||
|
ilmo_instance_name: "My library"
|
||
|
|
||
|
########################################################################
|
||
|
# #
|
||
|
# /ilmo #
|
||
|
# #
|
||
|
########################################################################
|
||
|
```
|
||
|
|
||
|
## Setting up the first user
|
||
|
|
||
|
You need to create a first user (unless you import an existing database).
|
||
|
You can do this conveniently by running
|
||
|
|
||
|
```bash
|
||
|
just run-tags ilmo-add-superuser --extra-vars=username=USERNAME --extra-vars=password=PASSWORD --extra-vars=email=EMAIL
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
After installation, you can go to the ILMO URL, as defined in `ilmo_hostname`. Log in with the user credentials from above.
|
||
|
|
||
|
Follow the [ILMO documentation](https://ilmo2.readthedocs.io/en/latest/index.html) to learn how to use ILMO.
|
||
|
|
||
|
## Migrate an existing instance
|
||
|
|
||
|
The following assumes you want to migrate from `serverA` to `serverB` (managed by mash) but you just cave to adjust the copy commands if you are on the same server.
|
||
|
|
||
|
Stop the initial instance on `serverA`
|
||
|
|
||
|
```bash
|
||
|
serverA$ systemctl stop ilmo
|
||
|
```
|
||
|
|
||
|
Dump the database (depending on your existing setup you might have to adjust this)
|
||
|
```
|
||
|
serverA$ pg_dump ilmo > latest.sql
|
||
|
```
|
||
|
|
||
|
Copy the files to the new server
|
||
|
|
||
|
```bash
|
||
|
serverA$ rsync -av -e "ssh" latest.sql root@serverB:/mash/ilmo/
|
||
|
serverA$ rsync -av -e "ssh" data/* root@serverB:/mash/ilmo/data/
|
||
|
```
|
||
|
|
||
|
Install (but don't start) the service and database on the server and import the database.
|
||
|
|
||
|
```bash
|
||
|
yourPC$ just run-tags install-postgres
|
||
|
yourPC$ just run-tags install-ilmo
|
||
|
yourPC$ just run-tags import-postgres --extra-vars=server_path_postgres_dump=/mash/ilmo/latest.sql --extra-vars=postgres_default_import_database=mash-ilmo
|
||
|
```
|
||
|
|
||
|
Start the services on the new server
|
||
|
|
||
|
```bash
|
||
|
yourPC$ just run-tags start
|
||
|
```
|
||
|
|
||
|
Done 🥳
|
||
|
|
||
|
### Troubleshooting
|
||
|
|
||
|
If you by accident started the service before importing the database you should
|
||
|
|
||
|
* stop the service
|
||
|
* use `/mash/postgres/bin/cli` to get a database interface
|
||
|
* Delete the existing database (THIS WILL DELETE ALL DATA!) `DROP DATABASE ilmo WITH (FORCE);`
|
||
|
* Continue from "Install (but don't start) the service and database on the server and import the database."
|