oftp2/os4x

By oftp2

Updated 8 days ago

OS4X - the OFTP2 system for Unix

Image
Networking
Integration & delivery
2

10K+

oftp2/os4x repository overview

Quick reference

What is OS4X?

logo

OS4X (the OFTP2 system for Unix) is a professional, certified OFTP2 solution for managed file transfers for CAD and EDI data. It offers an state-of-the-art easy to use HTML5 web interface for administration and end-user interaction. With hundreds of features, OS4X offers a wide set of functionality for all automated tasks of data transmission, conversion, documentation etc.

https://www.os4x.com

What is included

Since OS4X has a defined list of system requirements, this docker image offers everything to start with OS4X instantly:

  • Latest OS4X version
  • Apache webserver
  • PHP
  • Exim4 mail server
  • required tools (ZIP, TAR, gzip, bzip2, xsltproc, bc, ...)

Disclaimer

This Docker setup is considered experimental / proof of concept and is not suitable for production use. Use it at your own risk. There is no warranty or guarantee regarding functionality, stability, or data integrity. In particular, technical requirements and behavior may change at any time without notice due to updates in the Docker Engine, operating system, or dependent components.

Just to mention some issues, you will have to maintain the following:

  • If available, keep the content of the file /sys/class/dmi/id/product_uuid static (depends highly on supporting container technology, if this UUID is provideed at all!)
  • Use a filesystem for the data volume which supports the "creation date" information. Verify this with stat /etc/os4x.conf, the output must contain a value not equal to zero in the line starting with Birth.
  • When upgrading from older versions to newest, verify the MariaDB image: check for network listener, optionally configure certificate for TLS listener, handle upgrade of data content correctly.

Requirement

This container requires a MariaDB container to be available with the alias mariadb (see below). You can easily deploy one via

$ docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb

Please give the database container time to start up correctly. It must be running the network listener (after a temporary database server has been started for initial setup). This may take some seconds.

How to use this image

During startup, this image requires a volume os4x_data (mounted at /os4x_data) where content is dynamically filled during first startup.

The exposed TCP ports are:

  • 80 and 443 for HTTP(s)
  • 3305 for OFTP1.x over plain TCP
  • 6619 for OFTP2 over TLS

Fast startup via docker-compose (x86_64 and arm64/Apple M1) on Unix

Save this docker-compose.yml into an empty directory;

version: '3.3'

services:
 mariadb:
   image: mariadb
   restart: always
   volumes:
     - $HOME/OS4X_DB:/var/lib/mysql
   environment:
     MARIADB_ROOT_PASSWORD: "my-secret-pw"
 os4x:
   image: oftp2/os4x
   restart: always
   depends_on:
     - mariadb
   ports:
     - 8080:80
     - 6619:6619
   volumes:
     - $HOME/OS4X:/os4x_data
   environment:
     MARIADB_NAME: mariadb
     MARIADB_ENV_MARIADB_MAJOR: "10.6"
     MARIADB_ENV_MYSQL_ROOT_PASSWORD: "my-secret-pw"

then change into this directory and start up the docker container:

docker-compose up -d

Fast startup via docker-compose (x86_64) on Windows

Save this docker-compose.yml into an empty directory;

version: '3.3'

services:
 mariadb:
   image: mariadb
   restart: always
   volumes:
     - ${LOCALAPPDATA}/OS4X_DB:/var/lib/mysql
   environment:
     MARIADB_ROOT_PASSWORD: "my-secret-pw"
 os4x:
   image: oftp2/os4x
   restart: always
   depends_on:
     - mariadb
   ports:
     - 8080:80
     - 6619:6619
   volumes:
     - ${LOCALAPPDATA}/OS4X:/os4x_data
   environment:
     MARIADB_NAME: mariadb
     MARIADB_ENV_MARIADB_MAJOR: "10.6"
     MARIADB_ENV_MYSQL_ROOT_PASSWORD: "my-secret-pw"

then change into this directory and start up the docker container:

docker-compose up -d
Start with a defined volume directory and expose port 80 (as local port 8080) and 6619 (most common use-case)

Important: the selected network must be the same as the newly created one above.

$ docker run --name my-os4x -d \
  --network=os4x-network \
  -e MARIADB_NAME=some-mariadb \
  -e MARIADB_ENV_MYSQL_ROOT_PASSWORD=my-secret-pw \
  -e MARIADB_ENV_MARIADB_MAJOR=10.6 \
  -p 8080:80 -p 6619:6619 \
  -v /data/OS4X:/os4x_data \
  oftp2/os4x

All important data is stored in /data/OS4X and can be used to recover an OS4X instance.

Updating

Updating consists of several steps:

  • Obtaining the latest image ("pull")
  • Create a new container, based on the new (updated) image, using your previous volume

The steps are as an example:

$ docker pull oftp2/os4x
$ docker-compose up -d

Because creating a new container also changes the MAC and IP address of the new container, we have implemented a...

Luxury feature

During startup, the OS4X docker container checks if a license exists. If this is the case and if it doesn't match the local parameters (i.e. after upgrade), it will convert the existing license via an online service (if available). Requirement: you must have a commercial OS4X license.

Environment Variables

OS4X creates dynamically a new database with the given parameters, if not existing. The parameters for this database can be influenced by the following environment variables which can be passed to the container.

OS4X_DB_NAME

Name of the created database. Default: os4x.

OS4X_DB_USER

Name of the created or used MariaDB user. Default: os4x.

OS4X_DB_PASSWORD

Password of the used MariaDB user. Default: os4x.

Tag summary

Content type

Image

Digest

sha256:d3e4c691a

Size

342.5 MB

Last updated

8 days ago

docker pull oftp2/os4x