diff --git a/Project-Overview.md b/Project-Overview.md new file mode 100644 index 0000000..9ae3db3 --- /dev/null +++ b/Project-Overview.md @@ -0,0 +1,124 @@ +# Project Overview + +## Purpose + +The Romexis Docker project provides a reproducible Docker-based environment for running Planmeca Romexis Server on Linux. + +The project is designed to: + +- run Romexis Server in containers +- keep runtime configuration externalized +- avoid manual Windows-style setup steps +- support persistent application and database data +- support migration from existing installations +- support repeatable CI/CD builds +- prepare a path for both Microsoft SQL Server and Firebird database backends + +--- + +## Design Principles + +### No Romexis binaries in Git + +The repository does not contain Romexis application binaries. + +Instead, the build process downloads official installer packages and extracts only the required server components into payload images. + +### Layered image architecture + +The build system is split into reusable layers: + +```text +Payload image + Contains extracted Romexis application files and SQL payload. + +Base image + Contains reusable runtime dependencies such as Java, JavaFX and database tools. + +Server image + Combines payload + base + runtime scripts + Java agent. +``` + +This keeps individual images easier to maintain and avoids repeated installer downloads when the payload already exists. + +### Architecture-independent payloads + +The Romexis payload itself is architecture independent. Architecture-specific parts such as Chilkat native libraries remain in the final server image. + +This allows the same payload to be reused for both: + +```text +linux/amd64 +linux/arm64 +``` + +### Database backend flexibility + +Microsoft SQL Server remains the default backend. + +Firebird support is being added in parallel because macOS-based Romexis installations use Firebird and because this path is more realistic for ARM64 environments. + +--- + +## Main Features + +- Romexis Server 6.5 Docker runtime +- Microsoft SQL Server 2022 support +- Firebird backend preparation +- automatic database initialization +- persistent runtime volumes +- Java Property Agent for runtime property injection +- versioned payload images +- multi-architecture base and server images +- Drone CI/CD pipeline +- migration service with Web UI, REST API and SFTP +- Windows migration client +- Gitea package registry publishing + +--- + +## Supported Platforms + +| Platform | Status | +|---|---| +| linux/amd64 | Primary supported target | +| linux/arm64 | Supported for Romexis runtime images | +| Microsoft SQL Server on amd64 | Default backend | +| Firebird on amd64/arm64 | In progress / experimental | +| macOS source migrations | Planned through Firebird and client workflow | + +--- + +## Repository Areas + +```text +romexis-base/ + Reusable runtime base image. + +romexis-payload/ + Windows installer payload extraction. + +romexis-firebird-payload/ + macOS installer Firebird SQL payload extraction. + +romexis/ + Final Romexis Server image. + +migration-service/ + Migration orchestration service. + +migration-client/ + Migration helper client. + +docs/ + Extended documentation. + +docker-compose.yml + Default runtime stack. + +docker-compose.firebird.yml + Firebird runtime variant. + +.drone.yml + CI/CD pipeline. +```