Maintenance
Upgrading DRADIS
DRADIS ships as an immutable image, so there is no in-place upgrade. Upgrading means launching an instance of the new version and moving your configuration across. The setup page has an Instance Migration panel that packages everything transferable into a single bundle for exactly this purpose.
Allow about fifteen minutes, and read the wallet warning below before you start. It is the one step that can cost money if you skip it.
Read first
Your wallet private key travels in the bundle, so after an import both instances control the same wallet. Stop the old instance before the new one starts trading. Two running engines will cancel each other's orders and both claim the same positions.
Before you begin
Export while the old instance is still healthy. The bundle is produced by the running engine, so an instance you have already stopped or terminated cannot give you one.
If you are upgrading because something is broken, export first anyway. A bundle from a misbehaving instance still beats retyping every credential by hand.
01Export the bundle from the running instance
Open the Control Tower, go to the setup page, and find the Instance Migration panel. Export the config bundle and save the file somewhere safe.
The bundle contains your venue API credentials, your wallet private key, your admin password, your signal source keys, and your global and per-squadron configuration. Treat the file exactly as you would treat the keys themselves.
02Launch an instance of the new version
Launch the new version from the AWS Marketplace listing as you did the first time. Use the same instance type unless you have a reason to change it, and apply the same security group restrictions.
Do not enter any credentials on the new instance. The import supplies them.
Give it a Name tag carrying the new version, such as dradis-v1.0.5. For the next few minutes two DRADIS instances will be running against the same wallet and you will need to stop exactly one of them. Two unnamed rows in the EC2 console is how the wrong one gets stopped. The Control Tower footer shows each instance's version too, so an open tab is never ambiguous.
03Import the bundle
Log in to the new instance with user admin and the new instance's EC2 instance ID as the password, then go to the setup page and import the bundle you saved in step 1.
04Restart the engine
Setup will prompt for a restart. Take it. The engine comes back in roughly 30 to 60 seconds with your credentials and configuration applied.
After this restart, log in with your own admin password, not the instance ID. The password travels in the bundle, which is why the instance ID stops working at this point. Your browser session does not carry over, because each instance mints its own session key.
05Verify, then stop the old instance
Confirm the new instance shows what you expect: the right venue selected, your strategy settings intact, and the setup page reporting your credentials as present.
Then stop the old instance before the new one starts trading. Verify first and stop second, so that a bad import leaves you somewhere to fall back to.
Why the old instance has to stop
After an import both instances hold the same wallet key, and two DRADIS engines on one wallet interfere with each other in ways that lose money:
Each engine cancels every open order on the wallet at startup, because from its point of view those are leftovers from a previous session. The new instance will cancel the old instance's live resting quotes while the old instance still believes they are working.
Each engine also reconciles the wallet's on-chain holdings against its own database and adopts anything it does not recognize. Both will therefore claim the same positions and manage them independently, with two sets of stops and two sets of take-profits against one set of shares.
Stopping the old instance is the whole mitigation. Sequence the cutover so the two never trade at once.
What does not transfer
The bundle carries configuration, not history. The new instance starts fresh on trade history, profit and loss history, and the trained model, which begins collecting data again from zero.
None of this affects your money. Your positions live on-chain and belong to the wallet rather than the instance, so the new engine re-adopts them automatically. What resets is what the dashboard can show you about the past.
If your profit and loss history matters to you, keep a copy of the old instance's database from /opt/dradis/logs/ before you terminate it.
Rolling back
Until you terminate the old instance, rolling back is just stopping the new instance and starting the old one again. This is why step 5 says to verify before you stop the old one, and why terminating it should be a separate decision made later.
Troubleshooting
A message that the bundle is for a different venue build. The image carries all three venues, and the bundle records which one the old instance was running. Select the matching venue on the new instance, restart, then import again.
A message about an unsupported bundle version. The bundle is newer than the build you are importing into. Import into a version at least as new as the one that produced it.
A setting did not come across. Configuration is checked against the new version's schema on import, so a setting removed in the new version is dropped and a setting added by it takes its default. This is intended. Check that version's release notes for new settings and set them explicitly if the defaults do not suit you.
The dashboard looks empty afterwards. Expected, as described above. Your balance and any open positions should appear within a minute of the restart. The profit and loss chart does not backfill.
Stuck on something this page does not cover? Open a support request or write to [email protected]. Never include private keys, API secrets or seed phrases. No one at DRADIS will ever ask for them.