Ask a port how long its community system took to go live. The answer is rarely counted in days, and almost never in commands.
The problem
A Port Community System connects everyone who touches a container: the shipping line, the ship agent, the terminal, customs, the forwarder, the trucking company, the driver and the port authority. It is what lets a container announced by the line be expected by the terminal, released by customs, booked by a trucker and picked up by a driver who has a slot.
The systems that do this today work, but each installation is a project of its own. Of the community systems we compared on our open-source page, none publishes its code today, so a port can neither read what it runs nor install it itself. An integrator comes, adapts, connects, and the port waits. A mid-sized port, an inland port or a port at the start of its digital journey often cannot afford that wait, let alone the project around it.
That is the problem we work on: not “another PCS”, but a PCS a port can read, audit and run at home.
What we built
Our PCS is cut into bricks, one job each:
- community and identity, with roles per port;
- the vessel call, from arrival notice to departure;
- declarations and the maritime single window;
- customs holds and releases, visible to the trucker;
- truck, barge and rail appointments;
- the gate, with OCR and plate reading;
- container status and event subscriptions;
- booking, release and the electronic bill of lading;
- an EDI hub that turns EDIFACT, API and CSV into one common model;
- payments, empties and street turns, data sharing with consent, carbon, a public API, a portal, and an orchestrator.
The bricks do not start from a blank page. The appointment brick is our truck appointment system and the gate brick is our gate software, both already running in ports. Every brick shows its honest status on the page: “in development” until its functions are written and tested. None is called “available” until a port runs it.
How it installs today
This is the part people ask about first, so here it is plainly. Today the install is one command, and DMS runs it. The same command covers a cloud instance and a server inside the port, behind the port’s own VPN:
# dry run: prints every step, changes nothing
<installer> <site> --onprem --vpn <type>
# the same line with --apply installs
<installer> <site> --onprem --vpn <type> --apply
Behind that line is a plan of small, repeatable steps: the site key, the VPN tunnel, the stack, the code, the apps switched on for that site, the database schema, the accounts, the starting data, a health token, and a final post-flight check. Each step can be run again without breaking what is already there. If the flags disagree with what the site declares (cloud or on premises), the command refuses instead of guessing. DMS has already installed on premises at a terminal this way.
One instance per port: a port’s data never sits next to another port’s, and each port decides when it updates.
What is not done yet
We would rather say it than let you find out. The public repository is not open: it opens once the code has been reviewed and scanned for secrets, and only the most advanced bundles go first. The installer you will run yourself, without us (cloud, on premises, a container image), belongs in that repository and is not published yet. The licence is still to be announced; a strong-reciprocity licence is proposed for the core. Until then, the code is shown on request.
What stays closed is written down: the AI models (quotas, forecasts, turn times, resource planning) and the business rules configured for each terminal.
What you can do tomorrow
- List what your current community system does, message by message: vessel call, customs release, gate, appointments, payments.
- Put each item next to a brick on our open-source page and mark the gaps.
- Ask your supplier one question: “Can we read the code, and could someone else run it if you stopped?”
- If you are an engineer or an integrator, tell us which brick or connector you would build first.
Where DMS comes in
DMS installs and runs the platform for the port with no setup fee; the subscription starts on the first day of connection. DMS has served 10,000 logistics customers in 28 countries since 2020. Bricks, statuses and the request form are at https://dmslog.ai/open-source/

