Deployment
Configuring the Booking service
Booking is a component of seatmap.pro
.
It is an application built with Spring Boot.
In the application.yaml file, you can configure the parameters described below.
Server settings
Port at which to start the application.
Parameter | Description | Default value |
---|---|---|
server.port | Server port | 9090 |
Java Spring framework properties
Parameter | Description | Default value |
---|---|---|
spring.datasource.url | Database location | jdbc:postgresql://localhost:15432/seatmap |
spring.datasource.username | Username for connecting to the database | seatmap |
spring.datasource.password | Password for connecting to the database | postgres |
spring.datasource.hikari.connection-timeout | Connection timeout | 60000 (sixty seconds) |
spring.datasource.hikari.maximum-pool-size | Maximum pool size | 20 |
spring.datasource.driver-class-name | JDBC driver for communicating with the database | org.postgresql.Driver |
spring.data.redis.host | Redis server host | localhost |
spring.data.redis.port | Redis server port | 16379 |
spring.security.oauth2.authorizationserver.issuer | Authorization server location | http://localhost:9090 |
spring.security.oauth2.resourceserver.jwt.issuer-uri | Resource server location | http://localhost:9090 |
Delimiter settings
Composite key delimiter (sector;;row;;seat).
Configuring the Editor service
Editor is a component of seatmap.pro
.
It is an application built with Spring Boot.
The Editor configuration consists of two files:
- application.yaml - general system settings
- application-seatmap.yaml - application-specific settings
application.yaml
Delay settings
Delay before starting the jobs after the system is started.
Parameter | Description | Default value |
---|---|---|
initial | Delay in milliseconds | 5000 (five seconds) |
Java Spring framework properties
Parameter | Description | Default value |
---|---|---|
spring.profiles.include | Whether to add the properties from another profile | seatmap |
spring.jpa.generate-ddl | Whether to enable DDL generation | truspring.e |
spring.jpa.properties.hibernate.jdbc.batch_size | Number of INSERT, UPDATE, and DELETE statements to be set in a single database call | 50 |
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults | Whether to consult the JDBC metadata to determine certain settings default values when the database may not be available | false |
spring.jpa.properties.hibernate.order_inserts | Whether to order SQL inserts by the primary key value of the items being inserted | false |
spring.jpa.properties.javax.persistence.schema-generation.create-source | Whether to generate the schema DDL commands | metadata |
spring.jpa.properties.javax.persistence.schema-generation.scripts.action | Whether to create or update the database schema | update |
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target | File name for script generation | ddl_jpa_creation.sql |
spring.jpa.hibernate.ddl-auto | How to initialize the database | update |
spring.jpa.hibernate.use-new-id-generator-mappings | Whether to generate identifier values based on an sequence-style database structure | true |
spring.jpa.database-platform | Used database | org.hibernate.dialect.PostgreSQL95Dialect |
spring.jpa.open-in-view | Whether to enable OSIV | false |
spring.jackson.mapper.DEFAULT_VIEW_INCLUSION | Whether to include non-annotated properties in all views | true |
spring.flyway.baseline-on-migrate | Whether to automatically call baseline when migrate is executed against a non-empty schema with no schema history table | ’true' |
spring.datasource.hikari.data-source-properties.reWriteBatchedInserts | Whether to rewrite regular insert statements into multi-value ones for batched inserts | true |
spring.datasource.hikari.maximum-pool-size | Maximum pool size | 20 |
spring.datasource.hikari.connection-timeout | Connection timeout | 60000 |
spring.datasource.driver-class-name | JDBC driver for communicating with the database | org.postgresql.Driver |
spring.datasource.password | Password for connecting to the database | ${DB_PASSWORD:postgres} |
spring.datasource.username | Username for connecting to the database | ${DB_USERNAME:seatmap} |
spring.datasource.url | Database location | ${DB_URL:jdbc:postgresql://localhost:15432/seatmap} |
spring.servlet.multipart.enabled | Whether to enable support of multipart uploads | true |
spring.servlet.multipart.max-file-size | Maximum size permitted for uploaded files | 200MB |
spring.servlet.multipart.max-request-size | Maximum size allowed for multipart/form-data requests | 215MB |
spring.servlet.multipart.file-size-threshold | Size threshold after which files will be written to disk | 2KB |
spring.mvc.pathmatch.matching-strategy | Implementation strategy for matching request paths to Controller handlers | ant_path_matcher |
spring.redis.port | Redis server port | 16379 |
spring.session.jdbc.schema | Database script | classpath:org/springframework/session/jdbc/schema-postgresql.sql |
spring.session.jdbc.initialize-schema | When to initialize the schema | always |
spring.session.jdbc.table-name | Table name to use | SPRING_SESSION |
spring.session.store-type | Data store type | jdbc |
Logging settings
Logging settings to apply to the classes in the pro.seatmap package.
Image Converter configuration guide
This document describes all the configuration options for the Image Converter application.
Core settings
Setting | Type | Default | Description |
---|---|---|---|
DEBUG | boolean | false | Enables debug mode. Not recommended for production use |
FLASK_ENV | string | production | Flask environment setting. Options: development , production |
LOG_LEVEL | string | INFO | Logging level. Options: DEBUG , INFO , WARNING , ERROR , CRITICAL |
File handling settings
Setting | Type | Default | Description |
---|---|---|---|
MAX_CONTENT_LENGTH | integer | 33554432 | Maximum allowed file size in bytes (32MB) |
UPLOAD_FOLDER | string | /tmp/ | Temporary directory for file uploads |
Image processing settings
Setting | Type | Default | Description |
---|---|---|---|
MAX_IMAGE_WIDTH | integer | 15000 | Maximum allowed image width in pixels |
MAX_IMAGE_HEIGHT | integer | 15000 | Maximum allowed image height in pixels |
DEFAULT_WIDTH | integer | 440 | Default width for image resizing |
DEFAULT_HEIGHT | integer | 246 | Default height for image resizing |
BLUR_RADIUS | integer | 2 | Gaussian blur radius for image processing |
Storage settings
Setting | Type | Default | Description |
---|---|---|---|
STORAGE_TYPE | string | s3 | Storage backend type. Options: local , s3 |
AWS S3 configuration
These settings are required only when
STORAGE_TYPE=s3
On-premise deployment
Deployment options
- Docker Compose (the artifacts will be provided after the contract is signed)
This option is a single host deployment suitable for lightweight deployments.- Helm Charts k8s (the artifacts will be provided after the contract is signed) documentation example
This option is recommended for scalable high-load systems. While this deployment option will require more effort it will also provide a lot of benefits, such as:
- Enhanced security
- Full control over data and infrastructure
- Customization and flexibility
- Few or no external dependencies
- Bare metal (case-by-case)
Server settings
To set the server settings, configure the following services:
Seatmap Helm chart documentation
Overview
The Seatmap Helm chart deploys a complete Seatmap.pro application stack including Editor, Booking, and converter services along with the required dependencies like PostgreSQL and Redis.
- Chart Version: 1.1.2
- Application Version: 1.40.0
Prerequisites
- Kubernetes 1.19+
- Helm 3.2.0+
- PV provisioner support in the underlying infrastructure
- LoadBalancer support (for ingress)
Dependencies
The chart includes the following Bitnami dependencies:
- PostgreSQL (version 12.x.x)
- Redis (version 17.x.x)
Installation
Installation from GitLab registry
- Log in to the GitLab registry:
helm registry login registry.gitlab.com \ --username ${REGISTRY_USERNAME} \ --password ${REGISTRY_PASSWORD}
- Install or upgrade the chart:
helm upgrade --install seatmap oci://registry.gitlab.com/seatmap.pro/helm-charts/stable/seatmap \ --version 1.1.2 \ --create-namespace \ --namespace seatmap \ --set global.s3.bucket=${S3_BUCKET} \ --set global.s3.region=${S3_REGION} \ --set global.s3.endpoint=${S3_ENDPOINT} \ --set global.mail.host=${MAIL_HOST} \ --set global.mail.fromAddress=${MAIL_FROM} \ --set global.mail.port=${MAIL_PORT} \ --set global.mail.socket.port=${MAIL_SOCKET_PORT} \ --set-string secrets.s3.accessKey=${S3_ACCESS_KEY} \ --set-string secrets.s3.secretKey=${S3_SECRET_KEY} \ --set-string secrets.mail.username=${MAIL_USERNAME} \ --set-string secrets.mail.password=${MAIL_PASSWORD} \ --set-string secrets.google.apiKey=${GOOGLE_API_KEY} \ --set imageCredentials.registry=${REGISTRY} \ --set-string imageCredentials.username=${REGISTRY_USERNAME} \ --set-string imageCredentials.password=${REGISTRY_PASSWORD}
Configuration
Global parameters
Host Configuration
global: hosts: editor: editor.test-5.seatmap.dev booking: booking.test-5.seatmap.dev
Image Registry
imageCredentials: registry: registry.gitlab.com username: seatmap password: <password>
Resource configurations
global: resources: default: requests: cpu: "500m" memory: "2Gi" limits: cpu: "1000m" memory: "3Gi" frontend: requests: cpu: "100m" memory: "128Mi" limits: cpu: "200m" memory: "256Mi"
Ingress configuration
The chart provides ingress configurations for both Editor and Booking services with separate hostnames.