Docker is a software platform that allows you to build, test, deploy, and share applications quickly. It reduces the time spent on complex setups. Combining Docker with the power of MDriven, app development is faster and more focused on the important parts of your applicationâthat is, the business logic or system gist.
Docker reduces deployment time, increasing productivity and efficiency. Apps are packaged into standardized units called containers that have everything the app needs to run, including libraries, system tools, code, and runtime. It is faster to test, deploy, and scale applications into any environment.
Quick Start: Download Your Configuration
Select your environment and architecture to download the latest pre-configured setup.
(Not sure which architecture you have? Run uname -m in your terminal. x86_64 is AMD64, aarch64 is ARM64.)
Production Deployments
Our production setups come pre-configured with Nginx and your choice of database backend. Select Default (Vista DB) if you want to use the default embedded database (Vista DB), or if you are connecting to an external database like PostgreSQL, MySQL or MSSQL hosted elsewhere.
| Distribution | Architecture | Default (Vista DB) | PostgreSQL | MySQL | MSSQL |
|---|---|---|---|---|---|
| Ubuntu | AMD64 | Download (AMD64) | Download (AMD64) | Download (AMD64) | Download (AMD64) |
| ARM64 | Download (ARM64) | Download (ARM64) | Download (ARM64) | Download (ARM64) | |
| Debian | AMD64 | Download (AMD64) | Download (AMD64) | Download (AMD64) | Download (AMD64) |
| ARM64 | Download (ARM64) | Download (ARM64) | Download (ARM64) | Download (ARM64) | |
| Alpine | AMD64 | Download (Musl) | Download (Musl) | Download (Musl) | Download (Musl) |
Local Development
For fast iteration and debugging on your personal machine.
| Distribution | Architecture | Best For | Download Link |
|---|---|---|---|
| Ubuntu | AMD64 | Windows/Linux PC (Intel/AMD) | Download (AMD64) |
| ARM64 | Apple Silicon (M1/M2/M3) Macs | Download (ARM64) | |
| Debian | AMD64 | Stable Local Testing (Intel/AMD) | Download (AMD64) |
| ARM64 | Stable Local Testing (Mac M-Series) | Download (ARM64) | |
| Alpine | AMD64 | Minimal Local Testing (Intel/AMD) | Download (Musl) |
Understanding the Ecosystem
Docker Desktop
Docker Desktop enhances your development experience by offering a powerful, user-friendly platform that lets you manage your containers, applications, and images directly from your machine. Versions are available for both Windows and Linux.
Docker Compose
Docker Compose simplifies the process of managing multi-container applications. You can define and run complex setups with a single configuration file, making it easier to deploy and scale applications.
Linux vs. Windows Containers
Different flavours of the Windows and Linux operating systems are available for use in Docker containers. MDriven Turnkey and MDriven Server have Linux distributions and can be run in Linux containersâmaking them more portable, easy to share, and run.
- Lightweight: Linux containers are more lightweight than Windows containers.
- Open Source: Linux containers are free and open source compared to Windows containers that require licenses.
- Compatibility: Linux containers are widely supported and compatible with various tools and platforms.
Linux Distributions for MDriven
When deploying, you can choose one of the Linux distributions:
- Alpine: Extremely lightweight with a minimalist approach. It is ideal for lightweight apps, and environments where efficient resource utilization is critical.
- Debian: Known for unwavering stability and reliability. It serves as the upstream foundation for Ubuntu and offers a balance between size and compatibility, making it a solid choice for production servers.
- Ubuntu: Has a larger footprint with more preinstalled packages and tools, ideal for an environment where a wide range of tools and libraries are needed.
Important: Data Persistence & Volumes
When using MDriven's prepared compose files, be aware that Docker volumes persist data even if you stop or remove containers. This means your application state (logs, app files and any changes made to it) will remain between restarts.
The admin database DatabaseVistaDB.vdb6 is saved on the host machine folder settings/mdriven-server and binded to the container /app/App_Data/DatabaseVistaDB.vdb6 so that the data survives container recreation.
- To reset your data (Fresh Start): You must explicitly remove the volumes. Run this command:
docker compose down --volumes- Alternative: If you want to keep the old data but start fresh, you can rename the volumes in your
compose.yamlfile (e.g., changeMDSDatatoMDSDataV2andMDTDatatoMDTDataV2).
Docker Compose Configuration Settings
You can customize the behavior of your deployment by adjusting environment variables and bindings in your compose.yaml file.
1. Application Updates (UPDATE_APP)
You can control the version of the MDriven Server and Turnkey applications directly from the compose file by setting the UPDATE_APP environment variable:
- Upgrade to Latest: Set
UPDATE_APP=trueto ensure the containers pull and run the latest app files. - Specific Version: Set the value in the format
yyyymmdd(for example,UPDATE_APP=20231024) to upgrade or downgrade to a specific version.
2. Container Security (PUID and PGID)
To enhance security, it is highly recommended to run the application processes with lowered permissions:
- Set both
PUID=1000andPGID=1000as environment variables in your compose file. - This ensures that if the application is ever breached, the container itself is not compromised with root privileges.
3. Password Reset (User 'a')
User 'a' is used by MDriven Turnkey to connect to the MDriven Server. To reset this password:
- Create a file named
PwdReset.txtcontaining your new password. - Place this file in your
settings/mdriven-serverfolder. - In your
compose.yamlfile, add a volume bind mapping this file to/pwdreset/PwdReset.txtinside the container. - Go to the
MDrivenServerOverride.xmlfile located in thesettings/mdriven-turnkeyfolder and update the password to the new password otherwise the Turnkey will try to connect to the MDriven Server with the wrong password and User 'a' account will be locked again and Turnkey will go into and error state. - The password will be automatically updated on the next container start or restart.
Choose Your Path
1. Local Development
For developers running MDriven on their personal machines.
- Optimized for: Fast iteration and debugging.
- Includes: MDriven Server, Turnkey.
- No SSL/Proxy: Runs directly on localhost ports for simplicity.
- > Go to the Local Development Guide
2. Production Deployment
For deploying to public-facing servers.
- Optimized for: Security and Stability.
- Includes: Nginx Reverse Proxy (pre-configured), MDriven Server, Turnkey.
- Ready for: SSL Certificates and Domain mapping.
- > Go to the Production Nginx Guide
Advanced: Manual Setup Details
If you are not using our pre-configured compose files and are building your own Docker images or files manually, you must handle the following requirements yourself:
1. Alpine Linux Locales
Alpine Linux only comes with essential packages, which attributes to its lightweight nature. You must install locale packages and set the language to prevent locale errors. MDriven Turnkey uses the Operating System locale settings to determine which locale file to use.
Setup for Dockerfile:
RUN apk add musl-locales
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en2. Healthchecks & VistaDB
Perform healthchecks on the MDriven Server to prevent the Server from being unavailable when VistaDB locks itself. A health check ensures the MDriven Server restarts each time it is in an unhealthy state.
3. Networking
For local deployment, the MDriven Server and MDriven Turnkey must be on the same network to communicate effectively.
