https://github.com/gip-recia/karuta-deployer
Gradle client to deploy Karuta
https://github.com/gip-recia/karuta-deployer
Last synced: about 1 month ago
JSON representation
Gradle client to deploy Karuta
- Host: GitHub
- URL: https://github.com/gip-recia/karuta-deployer
- Owner: GIP-RECIA
- License: apache-2.0
- Created: 2021-09-21T10:47:32.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-10T19:50:13.000Z (7 months ago)
- Last Synced: 2024-11-10T20:33:45.695Z (7 months ago)
- Language: JavaScript
- Size: 70.9 MB
- Stars: 0
- Watchers: 4
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# karuta-deployer
gradle-war-deployer for karuta
embed deployed app on tomcat, like the tomcat-manager, psi-probe**[For installation and migration details please read the documentation on the wiki](https://github.com/avenirs-esr/karuta-deployer/wiki)**
**Following are only additional informations for the project !**
- [karuta-deployer](#karuta-deployer)
- [Requirements](#requirements)
- [How to install](#how-to-install)
- [Deployment](#deployment)
- [Database init](#database-init)
- [Tomcat configuration](#tomcat-configuration)
- [Reverse proxy configuration](#reverse-proxy-configuration)
- [Run and init](#run-and-init)
- [Upgrades](#upgrades)
- [General case](#general-case)
- [Database Migration](#database-migration)## Requirements
**run with java 11 minimum**
## How to install
### Deployment
- customize tomcat path install `cp build.properties.sample build.properties` and edit `build.properties`
- run `./gradlew tomcatInstall` to
- unzip tomcat from offical sources
- deploy custom conf from `etc/tomcat/` - this task call the `tomcatConfig` task that could be used for deploying only a new tomcat conf on an existing tomcat
- copy karuta backend and filserver config from `etc/karuta/` into `$PROJECT_HOME` path.
- the default path use `$CATALINA_BASE` if set, or `server.base` property from `build.properties`
- this variable will be overriden by `$KARUTA_HOME` if set
- if no `$KARUTA_HOME` is set, this can be overriden by `project.home` property from `build.properties` or passed in argument of all gradle commands
- WARNING: `etc/karuta/` path is defined from `appName` property into `gradle.properties`, don't modify it !
- run `./gradlew tomcatDeploy --refresh-dependencies` will deploy on tomcat webapps directory
- `psi-probe` for tomcat overview and management
- `karuta-backend`
- `karuta-fileserver`
- `karuta-frontend` (on `karuta`)
- run `./gradlew deployKarutaConfig` to deploy into tomcat webapps the `karuta-config` webapp from `etc/karuta-config/`
- customize your jvm env with a such configuration example to adapt:** You should set jvm env variables **
You can set the env conf into the `${karutaDeployerPath}/etc/tomcat/bin/setenv.sh` or in your script runing the tomcat start command.
NOTE 1: You can have a git repository to manage `karuta-backend_config` and `karuta-fileserver_config`, or have a NFS shared directory for all *_config + fileserver_data on which you apply snapshot save.
NOTE 2: You can set `KARUTA_REPORT_FOLDER` environnement variable to customize the folder where log reports will be produced.
### Database init
**The database should be created first with required grants for the server where is deployed Karuta. For that you can use the sql script etc/database/karuta-account.sql as example.**
NB: The database should be tuned with this conf:
- create custom file for mariadb 10.5 on debian 11 like `/etc/mysql/mariadb.conf.d/51-custom.cnf`
- edit and add the content```conf
[mariadb]
tmp_memory_table_size=2G
max_heap_table_size=2G
```Following provide all commands that you should run from the project (it's an example on what can be done):
1. `mysql -h${sql.server.host} -u ${user} -p ${password} ${database} < etc/database/karuta-backend-func.sql`
2. `mysql -h${sql.server.host} -u ${user} -p ${password} ${database} < etc/database/karuta-backend.sql`
3. `mysql -h${sql.server.host} -u ${user} -p ${password} ${database} < etc/database/report-helper.sql`### Tomcat configuration
Most important file to watch on is `etc/tomcat/server.xml`:
- the connector configured by default is for proxy HTTP and not for AJP
- you can set the `` to use a secured, managed, monitored from jmx JDBC pool. The default conf is nearly a good one for production
- accesslog valve is configured for a HAproxy frontend### Reverse proxy configuration
You should set a proxy http configurations on a frontal server
### Run and init
`./gradlew tomcatStart`
Connect to the Karuta app and import the ZIP files that are into `etc/model/` in the order of file names (a number provide the order to import).
## Upgrades
**Before any upgrade, consider to make:**
1. a dump of the database
2. a backup of the fileserver data (path from $KARUTA_HOME/karuta-fileserver_data/)### General case
For most case you should only do some git command updates to upgrade the karuta-deployer which permit to upgrade all karuta's apps. But see all docs indicated, or watch around commit change on this project for more actions during upgrade process.
```shell
# save local change and sync remote repositories
git stash && git fetch --all
# Checkout the version of your choice
git checkout -b v1.0.8 v1.0.8
# re-apply local changes
git stash --apply
# watch all files properties for changes (_init.js, configKaruta.properties)
./gradlew tomcatInstall
./gradlew tomcatDeploy
./gradlew deployKarutaConfig
```### Database Migration
- When migrating from kapc1.2 or 1.3.x, apply :
- `mysql -h${sql.server.host} -u ${user} -p ${password} ${database} -e "DROP TABLE vector_table;"`
- `mysql -h${sql.server.host} -u ${user} -p ${password} ${database} < etc/database/report-helper.sql`- ~~When migrating from kapc 1.3, apply also such change on database:~~
- ~~make dump of database, apply `sed -e 's/^) ENGINE=MyISAM/) ENGINE=InnoDB/'` on file and import dump - warning fonctions (routines) should be dumped too, or you will need to import `etc/database/karuta-backend-func.sql`~~